.\" Copyright (c) 2018 by Eugene Syromyatnikov <evgsyr@gmail.com>,
.\" and Copyright (c) 2018 Michael Kerrisk <mtk.manpages@gmail.com>
.\"
.\" %%%LICENSE_START(VERBATIM)
.\" Permission is granted to make and distribute verbatim copies of this
.\" manual provided the copyright notice and this permission notice are
.\" preserved on all copies.
.\"
.\" Permission is granted to copy and distribute modified versions of this
.\" manual under the conditions for verbatim copying, provided that the
.\" entire resulting derived work is distributed under the terms of a
.\" permission notice identical to this one.
.\"
.\" Since the Linux kernel and libraries are constantly changing, this
.\" manual page may be incorrect or out-of-date.  The author(s) assume no
.\" responsibility for errors or omissions, or for damages resulting from
.\" the use of the information contained herein.  The author(s) may not
.\" have taken the same level of care in the production of this manual,
.\" which is licensed free of charge, as they might when working
.\" professionally.
.\"
.\" Formatted or processed versions of this manual, if unaccompanied by
.\" the source, must acknowledge the copyright and authors of this work.
.\" %%%LICENSE_END
.\"
.TH ADDRESS_FAMILIES 7 2018-10-16 "Linux" "Linux Programmer's Manual"
.SH NAME
address_families \- socket address families (domains)
.SH SYNOPSIS
.BR "#include <sys/types.h>" "          /* See NOTES */"
.br
.B #include <sys/socket.h>
.PP
.BI "int socket(int " domain ", int " type ", int " protocol );
.SH DESCRIPTION
The
.I domain
argument of the
.BR socket (2)
specifies a communication domain; this selects the protocol
family which will be used for communication.
These families are defined in
.IR <sys/socket.h> .
The formats currently understood by the Linux kernel include:
.TP
.BR AF_UNIX ", " AF_LOCAL
Local communication
For further information, see
.BR unix (7).
.TP
.B AF_INET
IPv4 Internet protocols.
For further information, see
.BR ip (7).
.TP
.B AF_AX25
Amateur radio AX.25 protocol.
For further information, see
.BR ax25 (4).
.\" Part of ax25-tools
.TP
.B AF_IPX
IPX \- Novell protocols.
.TP
.B AF_APPLETALK
AppleTalk
For further information, see
.BR ddp (7).
.TP
.B AF_NETROM
AX.25 packet layer protocol.
For further information, see
.BR netrom (4),
.\" Part of ax25-tools package
.UR https://www.tldp.org/HOWTO/AX25-HOWTO/x61.html
.I The Packet Radio Protocols and Linux
.UE
and the
.IR AX.25 ", " NET/ROM ", and " "ROSE network programming"
chapters of the
.UR https://www.tldp.org/HOWTO/AX25-HOWTO/x2107.html
.I Linux Amateur Radio AX.25 HOWTO
.UE .
.TP
.B AF_BRIDGE
Can't be used for creating sockets;
mostly used for bridge links in
.BR rtnetlink (7)
protocol commands.
.TP
.B AF_ATMPVC
Access to raw ATM Permanent Virtual Circuits (PVCs).
For further information, see the
.UR https://www.tldp.org/HOWTO/text/ATM-Linux-HOWTO
.I ATM on Linux HOWTO
.UE .
.TP
.B AF_X25
ITU-T X.25 / ISO-8208 protocol.
For further information, see
.BR x25 (7).
.TP
.B AF_INET6
IPv6 Internet protocols.
For further information, see
.BR ipv6 (7).
.TP
.B AF_ROSE
RATS (Radio Amateur Telecommunications Society)
Open Systems environment (ROSE) AX.25 packet layer protocol.
For further information, see the resources listed for
.BR AF_NETROM .
.TP
.B AF_DECnet
DECet protocol sockets.
See
.I Documentation/networking/decnet.txt
in the Linux kernel source tree for details.
.TP
.B AF_NETBEUI
Reserved for "802.2LLC project"; never used.
.TP
.B AF_SECURITY
This was a short-lived (between Linux 2.1.30 and 2.1.99pre2) protocol family
for firewall upcalls.
.TP
.B AF_KEY
Key management protocol, originally developed for usage with IPsec
(since Linux 2.1.38).
This has no relation to
.BR keyctl (2)
and the in-kernel key storage facility.
See
.UR https://tools.ietf.org/html/rfc2367
RFC 2367
.I PF_KEY Key Management API, Version 2
.UE
for details.
.TP
.B AF_NETLINK
Kernel user interface device
For further information, see
.BR netlink (7).
.TP
.B AF_PACKET
Low-level packet interface.
For further information, see
.BR packet (7).
.\" .TP
.\" .B AF_ASH
.\" Asynchronous Serial Host protocol (?)
.\" Notes from Eugene Syromyatnikov:
.\" I haven't found any concrete information about this one;
.\" it never was implemented in Linux, at least, judging by historical
.\" repos.  There is also this file (and its variations):
.\" https://github.com/ecki/net-tools/blob/master/lib/ash.c
.\" ( https://github.com/ecki/net-tools/commits/master/lib/ash.c )
.\" it mentions "NET-2 distribution" (BSD Net/2?), but, again, I failed
.\" to find any mentions of "ash" protocol there.
.\" (for the reference:
.\" ftp://pdp11.org.ru/pub/unix-archive/Distributions/UCB/Net2/net2.tar.gz )
.\" Another source that mentions it is
.\" https://www.silabs.com/documents/public/user-guides/ug101-uart-gateway-protocol-reference.pdf
.\" https://www.silabs.com/documents/public/user-guides/ug115-ashv3-protocol-reference.pdf
.\" but I doubt that it's related, as former files use 64-byte addresses and
.\" "Hamming-encode of hops", and that's barely combines with a protocol
.\" that is mainly used over serial connection.
.TP
.B AF_ECONET
.\" commit: 349f29d841dbae854bd7367be7c250401f974f47
Acorn Econet protocol (removed in Linux 3.5).
See the
.UR http://www.8bs.com/othrdnld/manuals/econet.shtml
Econet documentation
.UE
for details.
.TP
.B AF_ATMSVC
Access to ATM Switched Virtual Circuits (SVCs)
See the
.UR https://www.tldp.org/HOWTO/text/ATM-Linux-HOWTO
.I ATM on Linux HOWTO
.UE
for details.
.TP
.B AF_RDS
.\" commit: 639b321b4d8f4e412bfbb2a4a19bfebc1e68ace4
Reliable Datagram Sockets (RDS) protocol (since Linux 2.6.30).
RDS over RDMA has no relation to
.B AF_SMC
or
.BR AF_XDP .
For further information see
.\" rds-tools: https://github.com/oracle/rds-tools/blob/master/rds.7
.\" rds-tools: https://github.com/oracle/rds-tools/blob/master/rds-rdma.7
.BR rds (7),
.BR rds\-rdma (7),
and
.I Documentation/networking/rds.txt
in the Linux kernel source tree.
.TP
.B AF_IRDA
.\" commits: 1ca163afb6fd569b, d64c2a76123f0300
Socket interface over IrDA
(moved to staging in Linux 4.14, removed in Linux 4.17).
.\" irda-utils: https://sourceforge.net/p/irda/code/HEAD/tree/tags/IRDAUTILS_0_9_18/irda-utils/man/irda.7.gz?format=raw
For further information see
.BR irda (7).
.TP
.B AF_PPPOX
Generic PPP transport layer, for setting up L2 tunnels
(L2TP and PPPoE).
See
.I Documentation/networking/l2tp.txt
in the Linux kernel source tree for details.
.TP
.B AF_WANPIPE
.\" commits: ce0ecd594d78710422599918a608e96dd1ee6024
Legacy protocol for wide area network (WAN) connectivity
that was used by Sangoma WAN cards (called "WANPIPE");
removed in Linux 2.6.21.
.TP
.B AF_LLC
.\" linux-history commit: 34beb106cde7da233d4df35dd3d6cf4fee937caa
Logical link control (IEEE 802.2 LLC) protocol, upper part
of data link layer of ISO/OSI networking protocol stack
(since Linux 2.4);
has no relation to
.BR AF_PACKET .
See chapter
.I 13.5.3. Logical Link Control
in
.I Understanding Linux Kernel Internals
(O'Reilly Media, 2006)
and
.I IEEE Standards for Local Area Networks: Logical Link Control
(The Institute of Electronics and Electronics Engineers, Inc.,
New York, New York, 1985)
for details.
See also
.UR https://wiki.linuxfoundation.org/networking/llc
some historical notes
.UE
regarding its development.
.TP
.B AF_IB
.\" commits: 8d36eb01da5d371f..ce117ffac2e93334
InfiniBand native addressing (since Linux 3.11).
.TP
.B AF_MPLS
.\" commits: 0189197f441602acdca3f97750d392a895b778fd
Multiprotocol Label Switching (since Linux 4.1);
mostly used for configuring MPLS routing via
.BR netlink (7),
as it doesn't expose ability to create sockets to user space.
.TP
.B AF_CAN
.\" commits: 8dbde28d9711475a..5423dd67bd0108a1
Controller Area Network automotive bus protocol (since Linux 2.6.25).
See
.I Documentation/networking/can.rst
in the Linux kernel source tree for details.
.TP
.B AF_TIPC
.\" commits: b97bf3fd8f6a16966d4f18983b2c40993ff937d4
TIPC, "cluster domain sockets" protocol (since Linux 2.6.16).
See
.UR http://tipc.io/programming.html
.I TIPC Programmer's Guide
.UE
and the
.UR http://tipc.io/protocol.html
protocol description
.UE
for details.
.TP
.B AF_BLUETOOTH
.\" commits: 8d36eb01da5d371f..ce117ffac2e93334
Bluetooth low-level socket protocol (since Linux 3.11).
See
.UR https://git.kernel.org\:/pub/scm\:/bluetooth/bluez.git\:/tree/doc/mgmt-api.txt
.I Bluetooth Management API overview
.UE
and
.UR https://people.csail.mit.edu/albert/bluez-intro/
.I An Introduction to Bluetooth Programming
by Albert Huang
.UE
for details.
.TP
.B AF_IUCV
.\" commit: eac3731bd04c7131478722a3c148b78774553116
IUCV (inter-user communication vehicle) z/VM protocol
for hypervisor-guest interaction (since Linux 2.6.21);
has no relation to
.B AF_VSOCK
and/or
.BR AF_SMC
See
.UR https://www.ibm.com\:/support\:/knowledgecenter\:/en/SSB27U_6.4.0\:/com.ibm.zvm.v640.hcpb4\:/iucv.htm
.I IUCV protocol overview
.UE
for details.
.TP
.B AF_RXRPC
.\" commit: 17926a79320afa9b95df6b977b40cca6d8713cea
.\" http://people.redhat.com/~dhowells/rxrpc/
.\" https://www.infradead.org/~dhowells/kafs/af_rxrpc_client.html
.\" http://workshop.openafs.org/afsbpw09/talks/thu_2/kafs.pdf
.\" http://pages.cs.wisc.edu/~remzi/OSTEP/dist-afs.pdf
.\" http://web.mit.edu/kolya/afs/rx/rx-spec
Rx, Andrew File System remote procedure call protocol
(since Linux 2.6.22).
See
.I Documentation/networking/rxrpc.txt
in the Linux kernel source tree for details.
.TP
.B AF_ISDN
.\" commit: 1b2b03f8e514e4f68e293846ba511a948b80243c
New "modular ISDN" driver interface protocol (since Linux 2.6.27).
See the
.UR http://www.misdn.eu/wiki/Main_Page/
mISDN wiki
.UE
for details.
.TP
.B AF_PHONET
.\" commit: 4b07b3f69a8471cdc142c51461a331226fef248a
Nokia cellular modem IPC/RPC interface (since Linux 2.6.31).
See
.I Documentation/networking/phonet.txt
in the Linux kernel source tree for details.
.TP
.B AF_IEEE802154
.\" commit: 9ec7671603573ede31207eb5b0b3e1aa211b2854
IEEE 802.15.4 WPAN (wireless personal area network) raw packet protocol
(since Linux 2.6.31).
See
.I Documentation/networking/ieee802154.txt
in the Linux kernel source tree for details.
.TP
.B AF_CAIF
.\" commit: 529d6dad5bc69de14cdd24831e2a14264e93daa4
.\" https://lwn.net/Articles/371017/
.\" http://read.pudn.com/downloads157/doc/comm/698729/Misc/caif/Com%20CPU%20to%20Appl%20CPU%20Interface%20DESCRIPTION_LZN901%202002_revR1C.pdf
.\" http://read.pudn.com/downloads157/doc/comm/698729/Misc/caif/Com%20CPU%20to%20Appl%20CPU%20Interface%20PROTOCOL%20SPECIFICATION_LZN901%201708_revR1A.pdf
Ericsson's Communication CPU to Application CPU interface (CAIF) protocol
(since Linux 2.6.36).
See
.I Documentation/networking/caif/Linux-CAIF.txt
in the Linux kernel source tree for details.
.TP
.B AF_ALG
Interface to kernel crypto API (since Linux 2.6.38).
See
.I Documentation/crypto/userspace-if.rst
in the Linux kernel source tree for details.
.TP
.B AF_VSOCK
.\" commit: d021c344051af91f42c5ba9fdedc176740cbd238
VMWare VSockets protocol for hypervisor-guest interaction (since Linux 3.9);
has no relation to
.B AF_IUCV
and
.BR AF_SMC .
For further information, see
.BR vsock (7).
.TP
.B AF_KCM
.\" commit: 03c8efc1ffeb6b82a22c1af8dd908af349563314
KCM (kernel connection multiplexor) interface (since Linux 4.6).
See
.I Documentation/networking/kcm.txt
in the Linux kernel source tree for details.
.TP
.B AF_QIPCRTR
.\" commit: bdabad3e363d825ddf9679dd431cca0b2c30f881
Qualcomm IPC router interface protocol (since Linux 4.7).
.TP
.B AF_SMC
.\" commit: f3a3e248f3f7cd9a4bed334022704d7e7fc781bf
SMC-R (shared memory communications over RDMA) protocol (since Linux 4.11),
and SMC-D (shared memory communications, direct memory access) protocol
for intra-node z/VM quest interaction (since Linux 4.19);
has no relation to
.BR AF_RDS ", " AF_IUCV
or
.BR AF_VSOCK .
See
.UR https://tools.ietf.org/html/rfc7609
RFC 7609
.I IBM's Shared Memory Communications over RDMA (SMC-R) Protocol
.UE
for details regarding SMC-R.
See
.UR https://www-01.ibm.com\:/software/network\:/commserver\:/SMC-D/index.html
.I SMC-D Reference Information
.UE
for details regarding SMC-D.
.TP
.B AF_XDP
.\" commit: c0c77d8fb787cfe0c3fca689c2a30d1dad4eaba7
XDP (express data path) interface (since Linux 4.18).
See
.I Documentation/networking/af_xdp.rst
in the Linux kernel source tree for details.
.SH SEE ALSO
.BR socket (2),
.BR socket (7)
