1ADDRESS_FAMILIES(7)        Linux Programmer's Manual       ADDRESS_FAMILIES(7)
2
3
4

NAME

6       address_families - socket address families (domains)
7

SYNOPSIS

9       #include <sys/types.h>          /* See NOTES */
10       #include <sys/socket.h>
11
12       int socket(int domain, int type, int protocol);
13

DESCRIPTION

15       The  domain argument of the socket(2) specifies a communication domain;
16       this selects the protocol family which will be used for  communication.
17       These  families  are  defined in <sys/socket.h>.  The formats currently
18       understood by the Linux kernel include:
19
20       AF_UNIX, AF_LOCAL
21              Local communication For further information, see unix(7).
22
23       AF_INET
24              IPv4 Internet protocols.  For further information, see ip(7).
25
26       AF_AX25
27              Amateur radio AX.25  protocol.   For  further  information,  see
28              ax25(4).
29
30       AF_IPX IPX - Novell protocols.
31
32       AF_APPLETALK
33              AppleTalk For further information, see ddp(7).
34
35       AF_NETROM
36              AX.25  packet  layer  protocol.   For  further  information, see
37              netrom(4),   The    Packet    Radio    Protocols    and    Linux
38https://www.tldp.org/HOWTO/AX25-HOWTO/x61.html⟩  and the AX.25,
39              NET/ROM, and ROSE network  programming  chapters  of  the  Linux
40              Amateur              Radio              AX.25              HOWTO
41https://www.tldp.org/HOWTO/AX25-HOWTO/x2107.html⟩.
42
43       AF_BRIDGE
44              Can't be used for creating sockets; mostly used for bridge links
45              in rtnetlink(7) protocol commands.
46
47       AF_ATMPVC
48              Access  to  raw ATM Permanent Virtual Circuits (PVCs).  For fur‐
49              ther   information,    see    the    ATM    on    Linux    HOWTO
50https://www.tldp.org/HOWTO/text/ATM-Linux-HOWTO⟩.
51
52       AF_X25 ITU-T  X.25  /  ISO-8208 protocol.  For further information, see
53              x25(7).
54
55       AF_INET6
56              IPv6 Internet protocols.  For further information, see ipv6(7).
57
58       AF_ROSE
59              RATS (Radio Amateur Telecommunications Society) Open Systems en‐
60              vironment  (ROSE)  AX.25 packet layer protocol.  For further in‐
61              formation, see the resources listed for AF_NETROM.
62
63       AF_DECnet
64              DECet protocol sockets.  See Documentation/networking/decnet.txt
65              in the Linux kernel source tree for details.
66
67       AF_NETBEUI
68              Reserved for "802.2LLC project"; never used.
69
70       AF_SECURITY
71              This  was  a  short-lived  (between Linux 2.1.30 and 2.1.99pre2)
72              protocol family for firewall upcalls.
73
74       AF_KEY Key management protocol, originally  developed  for  usage  with
75              IPsec  (since  Linux 2.1.38).  This has no relation to keyctl(2)
76              and the in-kernel key storage facility.  See RFC 2367 PF_KEY Key
77              Management  API, Version 2https://tools.ietf.org/html/rfc2367
78              for details.
79
80       AF_NETLINK
81              Kernel  user  interface  device  For  further  information,  see
82              netlink(7).
83
84       AF_PACKET
85              Low-level   packet  interface.   For  further  information,  see
86              packet(7).
87
88       AF_ECONET
89              Acorn Econet protocol (removed in Linux 3.5).   See  the  Econet
90              documentation ⟨http://www.8bs.com/othrdnld/manuals/econet.shtml
91              for details.
92
93       AF_ATMSVC
94              Access to ATM Switched Virtual Circuits (SVCs) See  the  ATM  on
95              Linux   HOWTOhttps://www.tldp.org/HOWTO/text/ATM-Linux-HOWTO
96              for details.
97
98       AF_RDS Reliable Datagram Sockets (RDS) protocol (since  Linux  2.6.30).
99              RDS  over RDMA has no relation to AF_SMC or AF_XDP.  For further
100              information see rds(7), rds-rdma(7), and  Documentation/network‐
101              ing/rds.txt in the Linux kernel source tree.
102
103       AF_IRDA
104              Socket  interface over IrDA (moved to staging in Linux 4.14, re‐
105              moved in Linux 4.17).  For further information see irda(7).
106
107       AF_PPPOX
108              Generic PPP transport layer, for setting up L2 tunnels (L2TP and
109              PPPoE).  See Documentation/networking/l2tp.txt in the Linux ker‐
110              nel source tree for details.
111
112       AF_WANPIPE
113              Legacy protocol for wide area network  (WAN)  connectivity  that
114              was  used  by  Sangoma  WAN cards (called "WANPIPE"); removed in
115              Linux 2.6.21.
116
117       AF_LLC Logical link control (IEEE 802.2 LLC) protocol,  upper  part  of
118              data  link  layer  of  ISO/OSI  networking protocol stack (since
119              Linux 2.4); has no relation to AF_PACKET.  See  chapter  13.5.3.
120              Logical  Link  Control  in  Understanding Linux Kernel Internals
121              (O'Reilly Media, 2006) and IEEE Standards for  Local  Area  Net‐
122              works:  Logical  Link  Control (The Institute of Electronics and
123              Electronics Engineers, Inc., New York, New York, 1985)  for  de‐
124              tails.        See      also      some      historical      notes
125https://wiki.linuxfoundation.org/networking/llc⟩ regarding  its
126              development.
127
128       AF_IB  InfiniBand native addressing (since Linux 3.11).
129
130       AF_MPLS
131              Multiprotocol Label Switching (since Linux 4.1); mostly used for
132              configuring MPLS routing via netlink(7), as  it  doesn't  expose
133              ability to create sockets to user space.
134
135       AF_CAN Controller  Area  Network  automotive  bus protocol (since Linux
136              2.6.25).  See Documentation/networking/can.rst in the Linux ker‐
137              nel source tree for details.
138
139       AF_TIPC
140              TIPC,  "cluster  domain  sockets" protocol (since Linux 2.6.16).
141              See TIPC  Programmer's  Guidehttp://tipc.io/programming.html
142              and  the protocol description ⟨http://tipc.io/protocol.html⟩ for
143              details.
144
145       AF_BLUETOOTH
146              Bluetooth low-level socket protocol  (since  Linux  3.11).   See
147              Bluetooth   Management   API   overviewhttps://git.kernel.org
148              /pub/scm/bluetooth/bluez.git/tree/doc/mgmt-api.txt⟩    and    An
149              Introduction   to   Bluetooth   Programming   by   Albert  Huang
150https://people.csail.mit.edu/albert/bluez-intro/⟩ for details.
151
152       AF_IUCV
153              IUCV (inter-user communication vehicle) z/VM protocol for hyper‐
154              visor-guest interaction (since Linux 2.6.21); has no relation to
155              AF_VSOCK   and/or   AF_SMC   See    IUCV    protocol    overview
156https://www.ibm.com/support/knowledgecenter/en/SSB27U_6.4.0
157              /com.ibm.zvm.v640.hcpb4/iucv.htm⟩ for details.
158
159       AF_RXRPC
160              Rx, Andrew File System remote  procedure  call  protocol  (since
161              Linux  2.6.22).   See  Documentation/networking/rxrpc.txt in the
162              Linux kernel source tree for details.
163
164       AF_ISDN
165              New  "modular  ISDN"  driver  interface  protocol  (since  Linux
166              2.6.27).           See          the          mISDN          wiki
167http://www.misdn.eu/wiki/Main_Page/⟩ for details.
168
169       AF_PHONET
170              Nokia cellular modem IPC/RPC  interface  (since  Linux  2.6.31).
171              See  Documentation/networking/phonet.txt  in  the  Linux  kernel
172              source tree for details.
173
174       AF_IEEE802154
175              IEEE 802.15.4 WPAN (wireless personal area network)  raw  packet
176              protocol   (since  Linux  2.6.31).   See  Documentation/network‐
177              ing/ieee802154.txt in the Linux kernel source tree for details.
178
179       AF_CAIF
180              Ericsson's Communication CPU to Application CPU interface (CAIF)
181              protocol   (since  Linux  2.6.36).   See  Documentation/network‐
182              ing/caif/Linux-CAIF.txt in the Linux kernel source tree for  de‐
183              tails.
184
185       AF_ALG Interface  to kernel crypto API (since Linux 2.6.38).  See Docu‐
186              mentation/crypto/userspace-if.rst in  the  Linux  kernel  source
187              tree for details.
188
189       AF_VSOCK
190              VMWare VSockets protocol for hypervisor-guest interaction (since
191              Linux 3.9); has no relation to AF_IUCV and AF_SMC.  For  further
192              information, see vsock(7).
193
194       AF_KCM KCM (kernel connection multiplexer) interface (since Linux 4.6).
195              See Documentation/networking/kcm.txt in the Linux kernel  source
196              tree for details.
197
198       AF_QIPCRTR
199              Qualcomm IPC router interface protocol (since Linux 4.7).
200
201       AF_SMC SMC-R  (shared  memory communications over RDMA) protocol (since
202              Linux 4.11), and SMC-D  (shared  memory  communications,  direct
203              memory  access)  protocol  for intra-node z/VM quest interaction
204              (since Linux 4.19);  has  no  relation  to  AF_RDS,  AF_IUCV  or
205              AF_VSOCK.   See RFC 7609 IBM's Shared Memory Communications over
206              RDMA (SMC-R) Protocolhttps://tools.ietf.org/html/rfc7609⟩  for
207              details   regarding  SMC-R.   See  SMC-D  Reference  Information
208https://www-01.ibm.com/software/network/commserver/SMC-
209              D/index.html⟩ for details regarding SMC-D.
210
211       AF_XDP XDP (express data path) interface (since Linux 4.18).  See Docu‐
212              mentation/networking/af_xdp.rst in the Linux kernel source  tree
213              for details.
214

SEE ALSO

216       socket(2), socket(7)
217

COLOPHON

219       This  page  is  part of release 5.12 of the Linux man-pages project.  A
220       description of the project, information about reporting bugs,  and  the
221       latest     version     of     this    page,    can    be    found    at
222       https://www.kernel.org/doc/man-pages/.
223
224
225
226Linux                             2021-03-22               ADDRESS_FAMILIES(7)
Impressum