man/: ffix
[man-pages.git] / man / man7 / address_families.7
blob3c2400820627035d2fced0d9e49d61aa01e2d3f3
1 .\" Copyright (c) 2018 by Eugene Syromyatnikov <evgsyr@gmail.com>,
2 .\" and Copyright (c) 2018 Michael Kerrisk <mtk.manpages@gmail.com>
3 .\"
4 .\" SPDX-License-Identifier: Linux-man-pages-copyleft
5 .\"
6 .TH address_families 7 (date) "Linux man-pages (unreleased)"
7 .SH NAME
8 address_families \- socket address families (domains)
9 .SH SYNOPSIS
10 .nf
11 .BR "#include <sys/types.h>" "          /* See NOTES */"
12 .B #include <sys/socket.h>
14 .BI "int socket(int " domain ", int " type ", int " protocol );
15 .fi
16 .SH DESCRIPTION
17 The
18 .I domain
19 argument of the
20 .BR socket (2)
21 specifies a communication domain; this selects the protocol
22 family which will be used for communication.
23 These families are defined in
24 .IR <sys/socket.h> .
25 The formats currently understood by the Linux kernel include:
26 .TP
27 .B AF_UNIX
28 .TQ
29 .B AF_LOCAL
30 Local communication.
31 For further information, see
32 .BR unix (7).
33 .TP
34 .B AF_INET
35 IPv4 Internet protocols.
36 For further information, see
37 .BR ip (7).
38 .TP
39 .B AF_AX25
40 Amateur radio AX.25 protocol.
41 For further information, see
42 .BR ax25 (4).
43 .\" Part of ax25-tools
44 .TP
45 .B AF_IPX
46 IPX \- Novell protocols.
47 .TP
48 .B AF_APPLETALK
49 AppleTalk
50 For further information, see
51 .BR ddp (7).
52 .TP
53 .B AF_NETROM
54 AX.25 packet layer protocol.
55 For further information, see
56 .BR netrom (4),
57 .\" Part of ax25-tools package
58 .UR https://www.tldp.org/HOWTO/AX25-HOWTO/x61.html
59 .I The Packet Radio Protocols and Linux
60 .UE
61 and the
62 .IR AX.25 ", " NET/ROM ", and " "ROSE network programming"
63 chapters of the
64 .UR https://www.tldp.org/HOWTO/AX25-HOWTO/x2107.html
65 .I Linux Amateur Radio AX.25 HOWTO
66 .UE .
67 .TP
68 .B AF_BRIDGE
69 Can't be used for creating sockets;
70 mostly used for bridge links in
71 .BR rtnetlink (7)
72 protocol commands.
73 .TP
74 .B AF_ATMPVC
75 Access to raw ATM Permanent Virtual Circuits (PVCs).
76 For further information, see the
77 .UR https://www.tldp.org/HOWTO/text/ATM-Linux-HOWTO
78 .I ATM on Linux HOWTO
79 .UE .
80 .TP
81 .B AF_X25
82 ITU-T X.25 / ISO/IEC\~8208 protocol.
83 For further information, see
84 .BR x25 (7).
85 .TP
86 .B AF_INET6
87 IPv6 Internet protocols.
88 For further information, see
89 .BR ipv6 (7).
90 .TP
91 .B AF_ROSE
92 RATS (Radio Amateur Telecommunications Society).
93 Open Systems environment (ROSE) AX.25 packet layer protocol.
94 For further information, see the resources listed for
95 .BR AF_NETROM .
96 .TP
97 .B AF_DECnet
98 DECet protocol sockets.
99 See
100 .I Documentation/networking/decnet.txt
101 in the Linux kernel source tree for details.
103 .B AF_NETBEUI
104 Reserved for "802.2LLC project"; never used.
106 .B AF_SECURITY
107 This was a short-lived (between Linux 2.1.30 and 2.1.99pre2) protocol family
108 for firewall upcalls.
110 .B AF_KEY
111 Key management protocol, originally developed for usage with IPsec
112 (since Linux 2.1.38).
113 This has no relation to
114 .BR keyctl (2)
115 and the in-kernel key storage facility.
117 .UR https://tools.ietf.org/html/rfc2367
118 RFC 2367
119 .I PF_KEY Key Management API, Version 2
121 for details.
123 .B AF_NETLINK
124 Kernel user interface device.
125 For further information, see
126 .BR netlink (7).
128 .B AF_PACKET
129 Low-level packet interface.
130 For further information, see
131 .BR packet (7).
132 .\" .TP
133 .\" .B AF_ASH
134 .\" Asynchronous Serial Host protocol (?)
135 .\" Notes from Eugene Syromyatnikov:
136 .\" I haven't found any concrete information about this one;
137 .\" it never was implemented in Linux, at least, judging by historical
138 .\" repos.  There is also this file (and its variations):
139 .\" https://github.com/ecki/net-tools/blob/master/lib/ash.c
140 .\" ( https://github.com/ecki/net-tools/commits/master/lib/ash.c )
141 .\" it mentions "NET-2 distribution" (BSD Net/2?), but, again, I failed
142 .\" to find any mentions of "ash" protocol there.
143 .\" (for the reference:
144 .\" ftp://pdp11.org.ru/pub/unix-archive/Distributions/UCB/Net2/net2.tar.gz )
145 .\" Another source that mentions it is
146 .\" https://www.silabs.com/documents/public/user-guides/ug101-uart-gateway-protocol-reference.pdf
147 .\" https://www.silabs.com/documents/public/user-guides/ug115-ashv3-protocol-reference.pdf
148 .\" but I doubt that it's related, as former files use 64-byte addresses and
149 .\" "Hamming-encode of hops", and that's barely combines with a protocol
150 .\" that is mainly used over serial connection.
152 .B AF_ECONET
153 .\" commit: 349f29d841dbae854bd7367be7c250401f974f47
154 Acorn Econet protocol (removed in Linux 3.5).
155 See the
156 .UR http://www.8bs.com/othrdnld/manuals/econet.shtml
157 Econet documentation
159 for details.
161 .B AF_ATMSVC
162 Access to ATM Switched Virtual Circuits (SVCs)
163 See the
164 .UR https://www.tldp.org/HOWTO/text/ATM-Linux-HOWTO
165 .I ATM on Linux HOWTO
167 for details.
169 .B AF_RDS
170 .\" commit: 639b321b4d8f4e412bfbb2a4a19bfebc1e68ace4
171 Reliable Datagram Sockets (RDS) protocol (since Linux 2.6.30).
172 RDS over RDMA has no relation to
173 .B AF_SMC
175 .BR AF_XDP .
176 For further information, see
177 .\" rds-tools: https://github.com/oracle/rds-tools/blob/master/rds.7
178 .\" rds-tools: https://github.com/oracle/rds-tools/blob/master/rds-rdma.7
179 .BR rds (7),
180 .BR rds\-rdma (7),
182 .I Documentation/networking/rds.txt
183 in the Linux kernel source tree.
185 .B AF_IRDA
186 .\" commits: 1ca163afb6fd569b, d64c2a76123f0300
187 Socket interface over IrDA
188 (moved to staging in Linux 4.14, removed in Linux 4.17).
189 .\" irda-utils: https://sourceforge.net/p/irda/code/HEAD/tree/tags/IRDAUTILS_0_9_18/irda-utils/man/irda.7.gz?format=raw
190 For further information, see
191 .BR irda (7).
193 .B AF_PPPOX
194 Generic PPP transport layer, for setting up L2 tunnels
195 (L2TP and PPPoE).
197 .I Documentation/networking/l2tp.txt
198 in the Linux kernel source tree for details.
200 .B AF_WANPIPE
201 .\" commits: ce0ecd594d78710422599918a608e96dd1ee6024
202 Legacy protocol for wide area network (WAN) connectivity
203 that was used by Sangoma WAN cards (called "WANPIPE");
204 removed in Linux 2.6.21.
206 .B AF_LLC
207 .\" linux-history commit: 34beb106cde7da233d4df35dd3d6cf4fee937caa
208 Logical link control (IEEE 802.2 LLC) protocol, upper part
209 of data link layer of ISO/OSI networking protocol stack
210 (since Linux 2.4);
211 has no relation to
212 .BR AF_PACKET .
213 See chapter
214 .I 13.5.3. Logical Link Control
216 .I Understanding Linux Kernel Internals
217 (O'Reilly Media, 2006)
219 .I IEEE Standards for Local Area Networks: Logical Link Control
220 (The Institute of Electronics and Electronics Engineers, Inc.,
221 New York, New York, 1985)
222 for details.
223 See also
224 .UR https://wiki.linuxfoundation.org/networking/llc
225 some historical notes
227 regarding its development.
229 .B AF_IB
230 .\" commits: 8d36eb01da5d371f..ce117ffac2e93334
231 InfiniBand native addressing (since Linux 3.11).
233 .B AF_MPLS
234 .\" commits: 0189197f441602acdca3f97750d392a895b778fd
235 Multiprotocol Label Switching (since Linux 4.1);
236 mostly used for configuring MPLS routing via
237 .BR netlink (7),
238 as it doesn't expose ability to create sockets to user space.
240 .B AF_CAN
241 .\" commits: 8dbde28d9711475a..5423dd67bd0108a1
242 Controller Area Network automotive bus protocol (since Linux 2.6.25).
244 .I Documentation/networking/can.rst
245 in the Linux kernel source tree for details.
247 .B AF_TIPC
248 .\" commits: b97bf3fd8f6a16966d4f18983b2c40993ff937d4
249 TIPC, "cluster domain sockets" protocol (since Linux 2.6.16).
251 .UR http://tipc.io/programming.html
252 .I TIPC Programmer's Guide
254 and the
255 .UR http://tipc.io/protocol.html
256 protocol description
258 for details.
260 .B AF_BLUETOOTH
261 .\" commits: 8d36eb01da5d371f..ce117ffac2e93334
262 Bluetooth low-level socket protocol (since Linux 3.11).
264 .UR https://git.kernel.org\:/pub/scm\:/bluetooth/bluez.git\:/tree/doc/mgmt-api.txt
265 .I Bluetooth Management API overview
268 .UR https://people.csail.mit.edu/albert/bluez-intro/
269 .I An Introduction to Bluetooth Programming
270 by Albert Huang
272 for details.
274 .B AF_IUCV
275 .\" commit: eac3731bd04c7131478722a3c148b78774553116
276 IUCV (inter-user communication vehicle) z/VM protocol
277 for hypervisor-guest interaction (since Linux 2.6.21);
278 has no relation to
279 .B AF_VSOCK
280 and/or
281 .B AF_SMC
283 .UR https://www.ibm.com\:/support\:/knowledgecenter\:/en\:/SSB27U_6.4.0\:/com.ibm.zvm.v640.hcpb4\:/iucv.htm
284 .I IUCV protocol overview
286 for details.
288 .B AF_RXRPC
289 .\" commit: 17926a79320afa9b95df6b977b40cca6d8713cea
290 .\" http://people.redhat.com/~dhowells/rxrpc/
291 .\" https://www.infradead.org/~dhowells/kafs/af_rxrpc_client.html
292 .\" http://workshop.openafs.org/afsbpw09/talks/thu_2/kafs.pdf
293 .\" http://pages.cs.wisc.edu/~remzi/OSTEP/dist-afs.pdf
294 .\" http://web.mit.edu/kolya/afs/rx/rx-spec
295 Rx, Andrew File System remote procedure call protocol
296 (since Linux 2.6.22).
298 .I Documentation/networking/rxrpc.txt
299 in the Linux kernel source tree for details.
301 .B AF_ISDN
302 .\" commit: 1b2b03f8e514e4f68e293846ba511a948b80243c
303 New "modular ISDN" driver interface protocol (since Linux 2.6.27).
304 See the
305 .UR http://www.misdn.eu/wiki/Main_Page/
306 mISDN wiki
308 for details.
310 .B AF_PHONET
311 .\" commit: 4b07b3f69a8471cdc142c51461a331226fef248a
312 Nokia cellular modem IPC/RPC interface (since Linux 2.6.31).
314 .I Documentation/networking/phonet.txt
315 in the Linux kernel source tree for details.
317 .B AF_IEEE802154
318 .\" commit: 9ec7671603573ede31207eb5b0b3e1aa211b2854
319 IEEE 802.15.4 WPAN (wireless personal area network) raw packet protocol
320 (since Linux 2.6.31).
322 .I Documentation/networking/ieee802154.txt
323 in the Linux kernel source tree for details.
325 .B AF_CAIF
326 .\" commit: 529d6dad5bc69de14cdd24831e2a14264e93daa4
327 .\" https://lwn.net/Articles/371017/
328 .\" http://read.pudn.com/downloads157/doc/comm/698729/Misc/caif/Com%20CPU%20to%20Appl%20CPU%20Interface%20DESCRIPTION_LZN901%202002_revR1C.pdf
329 .\" http://read.pudn.com/downloads157/doc/comm/698729/Misc/caif/Com%20CPU%20to%20Appl%20CPU%20Interface%20PROTOCOL%20SPECIFICATION_LZN901%201708_revR1A.pdf
330 Ericsson's Communication CPU to Application CPU interface (CAIF) protocol
331 (since Linux 2.6.36).
333 .I Documentation/networking/caif/Linux\-CAIF.txt
334 in the Linux kernel source tree for details.
336 .B AF_ALG
337 Interface to kernel crypto API (since Linux 2.6.38).
339 .I Documentation/crypto/userspace\-if.rst
340 in the Linux kernel source tree for details.
342 .B AF_VSOCK
343 .\" commit: d021c344051af91f42c5ba9fdedc176740cbd238
344 VMWare VSockets protocol for hypervisor-guest interaction (since Linux 3.9);
345 has no relation to
346 .B AF_IUCV
348 .BR AF_SMC .
349 For further information, see
350 .BR vsock (7).
352 .B AF_KCM
353 .\" commit: 03c8efc1ffeb6b82a22c1af8dd908af349563314
354 KCM (kernel connection multiplexer) interface (since Linux 4.6).
356 .I Documentation/networking/kcm.txt
357 in the Linux kernel source tree for details.
359 .B AF_QIPCRTR
360 .\" commit: bdabad3e363d825ddf9679dd431cca0b2c30f881
361 Qualcomm IPC router interface protocol (since Linux 4.7).
363 .B AF_SMC
364 .\" commit: f3a3e248f3f7cd9a4bed334022704d7e7fc781bf
365 SMC-R (shared memory communications over RDMA) protocol (since Linux 4.11),
366 and SMC-D (shared memory communications, direct memory access) protocol
367 for intra-node z/VM quest interaction (since Linux 4.19);
368 has no relation to
369 .BR AF_RDS ", " AF_IUCV
371 .BR AF_VSOCK .
373 .UR https://tools.ietf.org/html/rfc7609
374 RFC 7609
375 .I IBM's Shared Memory Communications over RDMA (SMC-R) Protocol
377 for details regarding SMC-R.
379 .UR https://www-01.ibm.com\:/software/network\:/commserver\:/SMC-D/index.html
380 .I SMC-D Reference Information
382 for details regarding SMC-D.
384 .B AF_XDP
385 .\" commit: c0c77d8fb787cfe0c3fca689c2a30d1dad4eaba7
386 XDP (express data path) interface (since Linux 4.18).
388 .I Documentation/networking/af_xdp.rst
389 in the Linux kernel source tree for details.
390 .SH SEE ALSO
391 .BR socket (2),
392 .BR socket (7)