1 .\" Copyright (c) 2018 by Eugene Syromyatnikov <evgsyr@gmail.com>,
2 .\" and Copyright (c) 2018 Michael Kerrisk <mtk.manpages@gmail.com>
4 .\" SPDX-License-Identifier: Linux-man-pages-copyleft
6 .TH address_families 7 (date) "Linux man-pages (unreleased)"
8 address_families \- socket address families (domains)
11 .BR "#include <sys/types.h>" " /* See NOTES */"
12 .B #include <sys/socket.h>
14 .BI "int socket(int " domain ", int " type ", int " protocol );
21 specifies a communication domain; this selects the protocol
22 family which will be used for communication.
23 These families are defined in
25 The formats currently understood by the Linux kernel include:
31 For further information, see
35 IPv4 Internet protocols.
36 For further information, see
40 Amateur radio AX.25 protocol.
41 For further information, see
43 .\" Part of ax25-tools
46 IPX \- Novell protocols.
50 For further information, see
54 AX.25 packet layer protocol.
55 For further information, see
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
62 .IR AX.25 ", " NET/ROM ", and " "ROSE network programming"
64 .UR https://www.tldp.org/HOWTO/AX25-HOWTO/x2107.html
65 .I Linux Amateur Radio AX.25 HOWTO
69 Can't be used for creating sockets;
70 mostly used for bridge links in
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
82 ITU-T X.25 / ISO-8208 protocol.
83 For further information, see
87 IPv6 Internet protocols.
88 For further information, see
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
98 DECet protocol sockets.
100 .I Documentation/networking/decnet.txt
101 in the Linux kernel source tree for details.
104 Reserved for "802.2LLC project"; never used.
107 This was a short-lived (between Linux 2.1.30 and 2.1.99pre2) protocol family
108 for firewall upcalls.
111 Key management protocol, originally developed for usage with IPsec
112 (since Linux 2.1.38).
113 This has no relation to
115 and the in-kernel key storage facility.
117 .UR https://tools.ietf.org/html/rfc2367
119 .I PF_KEY Key Management API, Version 2
124 Kernel user interface device.
125 For further information, see
129 Low-level packet interface.
130 For further information, see
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.
153 .\" commit: 349f29d841dbae854bd7367be7c250401f974f47
154 Acorn Econet protocol (removed in Linux 3.5).
156 .UR http://www.8bs.com/othrdnld/manuals/econet.shtml
162 Access to ATM Switched Virtual Circuits (SVCs)
164 .UR https://www.tldp.org/HOWTO/text/ATM-Linux-HOWTO
165 .I ATM on Linux HOWTO
170 .\" commit: 639b321b4d8f4e412bfbb2a4a19bfebc1e68ace4
171 Reliable Datagram Sockets (RDS) protocol (since Linux 2.6.30).
172 RDS over RDMA has no relation to
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
182 .I Documentation/networking/rds.txt
183 in the Linux kernel source tree.
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
194 Generic PPP transport layer, for setting up L2 tunnels
197 .I Documentation/networking/l2tp.txt
198 in the Linux kernel source tree for details.
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.
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
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)
224 .UR https://wiki.linuxfoundation.org/networking/llc
225 some historical notes
227 regarding its development.
230 .\" commits: 8d36eb01da5d371f..ce117ffac2e93334
231 InfiniBand native addressing (since Linux 3.11).
234 .\" commits: 0189197f441602acdca3f97750d392a895b778fd
235 Multiprotocol Label Switching (since Linux 4.1);
236 mostly used for configuring MPLS routing via
238 as it doesn't expose ability to create sockets to user space.
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.
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
255 .UR http://tipc.io/protocol.html
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
275 .\" commit: eac3731bd04c7131478722a3c148b78774553116
276 IUCV (inter-user communication vehicle) z/VM protocol
277 for hypervisor-guest interaction (since Linux 2.6.21);
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
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.
302 .\" commit: 1b2b03f8e514e4f68e293846ba511a948b80243c
303 New "modular ISDN" driver interface protocol (since Linux 2.6.27).
305 .UR http://www.misdn.eu/wiki/Main_Page/
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.
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.
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.
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.
343 .\" commit: d021c344051af91f42c5ba9fdedc176740cbd238
344 VMWare VSockets protocol for hypervisor-guest interaction (since Linux 3.9);
349 For further information, see
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.
360 .\" commit: bdabad3e363d825ddf9679dd431cca0b2c30f881
361 Qualcomm IPC router interface protocol (since Linux 4.7).
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);
369 .BR AF_RDS ", " AF_IUCV
373 .UR https://tools.ietf.org/html/rfc7609
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.
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.