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
60              environment  (ROSE)  AX.25  packet  layer protocol.  For further
61              information, 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,
105              removed 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
124              details.       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       AF_RXRPC
159              Rx, Andrew File System  remote  procedure  call  protocol
160              (since   Linux   2.6.22).    See   Documentation/network‐
161              ing/rxrpc.txt  in  the  Linux  kernel  source  tree   for
162              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
171              2.6.31).  See Documentation/networking/phonet.txt in  the
172              Linux kernel source tree for details.
173
174       AF_IEEE802154
175              IEEE  802.15.4  WPAN (wireless personal area network) raw
176              packet protocol (since  Linux  2.6.31).   See  Documenta‐
177              tion/networking/ieee802154.txt in the Linux kernel source
178              tree for details.
179
180       AF_CAIF
181              Ericsson's Communication CPU to Application CPU interface
182              (CAIF)  protocol  (since  Linux  2.6.36).  See Documenta‐
183              tion/networking/caif/Linux-CAIF.txt in the  Linux  kernel
184              source tree for details.
185
186       AF_ALG Interface to kernel crypto API (since Linux 2.6.38).  See
187              Documentation/crypto/userspace-if.rst in the Linux kernel
188              source tree for details.
189
190       AF_VSOCK
191              VMWare VSockets protocol for hypervisor-guest interaction
192              (since Linux 3.9); has no relation to AF_IUCV and AF_SMC.
193              For further information, see vsock(7).
194
195       AF_KCM KCM  (kernel  connection  multiplexor)  interface  (since
196              Linux 4.6).  See Documentation/networking/kcm.txt in  the
197              Linux kernel source tree for details.
198
199       AF_QIPCRTR
200              Qualcomm IPC router interface protocol (since Linux 4.7).
201
202       AF_SMC SMC-R  (shared  memory communications over RDMA) protocol
203              (since Linux 4.11), and SMC-D (shared  memory  communica‐
204              tions, direct memory access) protocol for intra-node z/VM
205              quest interaction (since Linux 4.19); has no relation  to
206              AF_RDS,  AF_IUCV  or AF_VSOCK.  See RFC 7609 IBM's Shared
207              Memory  Communications   over   RDMA   (SMC-R)   Protocol
208https://tools.ietf.org/html/rfc7609⟩ for details regard‐
209              ing   SMC-R.     See    SMC-D    Reference    Information
210https://www-01.ibm.com/software/network/commserver/SMC-
211              D/index.html⟩ for details regarding SMC-D.
212
213       AF_XDP XDP (express data path)  interface  (since  Linux  4.18).
214              See Documentation/networking/af_xdp.rst in the Linux ker‐
215              nel source tree for details.
216

SEE ALSO

218       socket(2), socket(7)
219

COLOPHON

221       This page is  part  of  release  5.04  of  the  Linux  man-pages
222       project.   A  description  of  the  project,  information  about
223       reporting bugs, and the latest version  of  this  page,  can  be
224       found at https://www.kernel.org/doc/man-pages/.
225
226
227
228Linux                             2018-10-16               ADDRESS_FAMILIES(7)
Impressum