1ADDRESS_FAMILIES(7) Linux Programmer's Manual ADDRESS_FAMILIES(7)
2
3
4
6 address_families - socket address families (domains)
7
9 #include <sys/types.h> /* See NOTES */
10 #include <sys/socket.h>
11
12 int socket(int domain, int type, int protocol);
13
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
38 ⟨https://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
41 ⟨https://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
50 ⟨https://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 2 ⟨https://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 HOWTO ⟨https://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
125 ⟨https://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 Guide ⟨http://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 overview ⟨https://git.kernel.org
148 /pub/scm/bluetooth/bluez.git/tree/doc/mgmt-api.txt⟩ and An
149 Introduction to Bluetooth Programming by Albert Huang
150 ⟨https://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
156 ⟨https://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
167 ⟨http://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) Protocol ⟨https://tools.ietf.org/html/rfc7609⟩ for
207 details regarding SMC-R. See SMC-D Reference Information
208 ⟨https://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
216 socket(2), socket(7)
217
219 This page is part of release 5.13 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)