2018-10-16 08:09:26 +00:00
|
|
|
.\" Copyright (c) 2018 by Eugene Syromyatnikov <evgsyr@gmail.com>,
|
|
|
|
.\" and Copyright (c) 2018 Michael Kerrisk <mtk.manpages@gmail.com>
|
|
|
|
.\"
|
|
|
|
.\" %%%LICENSE_START(VERBATIM)
|
|
|
|
.\" Permission is granted to make and distribute verbatim copies of this
|
|
|
|
.\" manual provided the copyright notice and this permission notice are
|
|
|
|
.\" preserved on all copies.
|
|
|
|
.\"
|
|
|
|
.\" Permission is granted to copy and distribute modified versions of this
|
|
|
|
.\" manual under the conditions for verbatim copying, provided that the
|
|
|
|
.\" entire resulting derived work is distributed under the terms of a
|
|
|
|
.\" permission notice identical to this one.
|
|
|
|
.\"
|
|
|
|
.\" Since the Linux kernel and libraries are constantly changing, this
|
|
|
|
.\" manual page may be incorrect or out-of-date. The author(s) assume no
|
|
|
|
.\" responsibility for errors or omissions, or for damages resulting from
|
|
|
|
.\" the use of the information contained herein. The author(s) may not
|
|
|
|
.\" have taken the same level of care in the production of this manual,
|
|
|
|
.\" which is licensed free of charge, as they might when working
|
|
|
|
.\" professionally.
|
|
|
|
.\"
|
|
|
|
.\" Formatted or processed versions of this manual, if unaccompanied by
|
|
|
|
.\" the source, must acknowledge the copyright and authors of this work.
|
|
|
|
.\" %%%LICENSE_END
|
|
|
|
.\"
|
|
|
|
.TH ADDRESS_FAMILIES 7 2018-10-16 "Linux" "Linux Programmer's Manual"
|
|
|
|
.SH NAME
|
|
|
|
address_families \- socket address families (domains)
|
|
|
|
.SH SYNOPSIS
|
|
|
|
.BR "#include <sys/types.h>" " /* See NOTES */"
|
|
|
|
.br
|
|
|
|
.B #include <sys/socket.h>
|
|
|
|
.PP
|
|
|
|
.BI "int socket(int " domain ", int " type ", int " protocol );
|
|
|
|
.SH DESCRIPTION
|
|
|
|
The
|
|
|
|
.I domain
|
|
|
|
argument of the
|
|
|
|
.BR socket (2)
|
|
|
|
specifies a communication domain; this selects the protocol
|
|
|
|
family which will be used for communication.
|
|
|
|
These families are defined in
|
|
|
|
.IR <sys/socket.h> .
|
2019-02-22 16:26:11 +00:00
|
|
|
The formats currently understood by the Linux kernel include:
|
2018-10-16 08:09:26 +00:00
|
|
|
.TP
|
|
|
|
.BR AF_UNIX ", " AF_LOCAL
|
|
|
|
Local communication
|
|
|
|
For further information, see
|
|
|
|
.BR unix (7).
|
|
|
|
.TP
|
|
|
|
.B AF_INET
|
|
|
|
IPv4 Internet protocols.
|
|
|
|
For further information, see
|
|
|
|
.BR ip (7).
|
|
|
|
.TP
|
|
|
|
.B AF_AX25
|
|
|
|
Amateur radio AX.25 protocol.
|
|
|
|
For further information, see
|
|
|
|
.BR ax25 (4).
|
|
|
|
.\" Part of ax25-tools
|
|
|
|
.TP
|
|
|
|
.B AF_IPX
|
|
|
|
IPX \- Novell protocols.
|
|
|
|
.TP
|
|
|
|
.B AF_APPLETALK
|
|
|
|
AppleTalk
|
|
|
|
For further information, see
|
|
|
|
.BR ddp (7).
|
|
|
|
.TP
|
|
|
|
.B AF_NETROM
|
|
|
|
AX.25 packet layer protocol.
|
|
|
|
For further information, see
|
|
|
|
.BR netrom (4),
|
|
|
|
.\" Part of ax25-tools package
|
|
|
|
.UR https://www.tldp.org/HOWTO/AX25-HOWTO/x61.html
|
|
|
|
.I The Packet Radio Protocols and Linux
|
|
|
|
.UE
|
|
|
|
and the
|
|
|
|
.IR AX.25 ", " NET/ROM ", and " "ROSE network programming"
|
|
|
|
chapters of the
|
|
|
|
.UR https://www.tldp.org/HOWTO/AX25-HOWTO/x2107.html
|
|
|
|
.I Linux Amateur Radio AX.25 HOWTO
|
|
|
|
.UE .
|
|
|
|
.TP
|
|
|
|
.B AF_BRIDGE
|
|
|
|
Can't be used for creating sockets;
|
|
|
|
mostly used for bridge links in
|
|
|
|
.BR rtnetlink (7)
|
|
|
|
protocol commands.
|
|
|
|
.TP
|
|
|
|
.B AF_ATMPVC
|
|
|
|
Access to raw ATM Permanent Virtual Circuits (PVCs).
|
2018-10-18 17:05:43 +00:00
|
|
|
For further information, see the
|
2018-10-16 08:09:26 +00:00
|
|
|
.UR https://www.tldp.org/HOWTO/text/ATM-Linux-HOWTO
|
|
|
|
.I ATM on Linux HOWTO
|
|
|
|
.UE .
|
|
|
|
.TP
|
|
|
|
.B AF_X25
|
|
|
|
ITU-T X.25 / ISO-8208 protocol.
|
|
|
|
For further information, see
|
|
|
|
.BR x25 (7).
|
|
|
|
.TP
|
|
|
|
.B AF_INET6
|
|
|
|
IPv6 Internet protocols.
|
|
|
|
For further information, see
|
|
|
|
.BR ipv6 (7).
|
|
|
|
.TP
|
|
|
|
.B AF_ROSE
|
|
|
|
RATS (Radio Amateur Telecommunications Society)
|
|
|
|
Open Systems environment (ROSE) AX.25 packet layer protocol.
|
|
|
|
For further information, see the resources listed for
|
|
|
|
.BR AF_NETROM .
|
|
|
|
.TP
|
|
|
|
.B AF_DECnet
|
|
|
|
DECet protocol sockets.
|
|
|
|
See
|
|
|
|
.I Documentation/networking/decnet.txt
|
|
|
|
in the Linux kernel source tree for details.
|
|
|
|
.TP
|
|
|
|
.B AF_NETBEUI
|
|
|
|
Reserved for "802.2LLC project"; never used.
|
|
|
|
.TP
|
|
|
|
.B AF_SECURITY
|
|
|
|
This was a short-lived (between Linux 2.1.30 and 2.1.99pre2) protocol family
|
|
|
|
for firewall upcalls.
|
|
|
|
.TP
|
|
|
|
.B AF_KEY
|
|
|
|
Key management protocol, originally developed for usage with IPsec
|
|
|
|
(since Linux 2.1.38).
|
|
|
|
This has no relation to
|
|
|
|
.BR keyctl (2)
|
|
|
|
and the in-kernel key storage facility.
|
|
|
|
See
|
|
|
|
.UR https://tools.ietf.org/html/rfc2367
|
|
|
|
RFC 2367
|
|
|
|
.I PF_KEY Key Management API, Version 2
|
|
|
|
.UE
|
|
|
|
for details.
|
|
|
|
.TP
|
|
|
|
.B AF_NETLINK
|
|
|
|
Kernel user interface device
|
|
|
|
For further information, see
|
|
|
|
.BR netlink (7).
|
|
|
|
.TP
|
|
|
|
.B AF_PACKET
|
|
|
|
Low-level packet interface.
|
|
|
|
For further information, see
|
|
|
|
.BR packet (7).
|
|
|
|
.\" .TP
|
|
|
|
.\" .B AF_ASH
|
|
|
|
.\" Asynchronous Serial Host protocol (?)
|
|
|
|
.\" Notes from Eugene Syromyatnikov:
|
|
|
|
.\" I haven't found any concrete information about this one;
|
|
|
|
.\" it never was implemented in Linux, at least, judging by historical
|
|
|
|
.\" repos. There is also this file (and its variations):
|
|
|
|
.\" https://github.com/ecki/net-tools/blob/master/lib/ash.c
|
|
|
|
.\" ( https://github.com/ecki/net-tools/commits/master/lib/ash.c )
|
|
|
|
.\" it mentions "NET-2 distribution" (BSD Net/2?), but, again, I failed
|
|
|
|
.\" to find any mentions of "ash" protocol there.
|
|
|
|
.\" (for the reference:
|
|
|
|
.\" ftp://pdp11.org.ru/pub/unix-archive/Distributions/UCB/Net2/net2.tar.gz )
|
|
|
|
.\" Another source that mentions it is
|
|
|
|
.\" https://www.silabs.com/documents/public/user-guides/ug101-uart-gateway-protocol-reference.pdf
|
|
|
|
.\" https://www.silabs.com/documents/public/user-guides/ug115-ashv3-protocol-reference.pdf
|
|
|
|
.\" but I doubt that it's related, as former files use 64-byte addresses and
|
|
|
|
.\" "Hamming-encode of hops", and that's barely combines with a protocol
|
|
|
|
.\" that is mainly used over serial connection.
|
|
|
|
.TP
|
|
|
|
.B AF_ECONET
|
|
|
|
.\" commit: 349f29d841dbae854bd7367be7c250401f974f47
|
|
|
|
Acorn Econet protocol (removed in Linux 3.5).
|
|
|
|
See the
|
|
|
|
.UR http://www.8bs.com/othrdnld/manuals/econet.shtml
|
|
|
|
Econet documentation
|
|
|
|
.UE
|
|
|
|
for details.
|
|
|
|
.TP
|
|
|
|
.B AF_ATMSVC
|
|
|
|
Access to ATM Switched Virtual Circuits (SVCs)
|
|
|
|
See the
|
|
|
|
.UR https://www.tldp.org/HOWTO/text/ATM-Linux-HOWTO
|
|
|
|
.I ATM on Linux HOWTO
|
|
|
|
.UE
|
|
|
|
for details.
|
|
|
|
.TP
|
|
|
|
.B AF_RDS
|
|
|
|
.\" commit: 639b321b4d8f4e412bfbb2a4a19bfebc1e68ace4
|
|
|
|
Reliable Datagram Sockets (RDS) protocol (since Linux 2.6.30).
|
|
|
|
RDS over RDMA has no relation to
|
|
|
|
.B AF_SMC
|
|
|
|
or
|
2019-02-27 09:31:55 +00:00
|
|
|
.BR AF_XDP .
|
2018-10-16 08:09:26 +00:00
|
|
|
For further information see
|
|
|
|
.\" rds-tools: https://github.com/oracle/rds-tools/blob/master/rds.7
|
|
|
|
.\" rds-tools: https://github.com/oracle/rds-tools/blob/master/rds-rdma.7
|
|
|
|
.BR rds (7),
|
|
|
|
.BR rds-rdma (7),
|
|
|
|
and
|
|
|
|
.I Documentation/networking/rds.txt
|
|
|
|
in the Linux kernel source tree.
|
|
|
|
.TP
|
|
|
|
.B AF_IRDA
|
|
|
|
.\" commits: 1ca163afb6fd569b, d64c2a76123f0300
|
|
|
|
Socket interface over IrDA
|
|
|
|
(moved to staging in Linux 4.14, removed in Linux 4.17).
|
|
|
|
.\" irda-utils: https://sourceforge.net/p/irda/code/HEAD/tree/tags/IRDAUTILS_0_9_18/irda-utils/man/irda.7.gz?format=raw
|
|
|
|
For further information see
|
|
|
|
.BR irda (7).
|
|
|
|
.TP
|
|
|
|
.B AF_PPPOX
|
2018-10-18 17:05:43 +00:00
|
|
|
Generic PPP transport layer, for setting up L2 tunnels
|
2018-10-16 08:09:26 +00:00
|
|
|
(L2TP and PPPoE).
|
|
|
|
See
|
|
|
|
.I Documentation/networking/l2tp.txt
|
|
|
|
in the Linux kernel source tree for details.
|
|
|
|
.TP
|
|
|
|
.B AF_WANPIPE
|
|
|
|
.\" commits: ce0ecd594d78710422599918a608e96dd1ee6024
|
|
|
|
Legacy protocol for wide area network (WAN) connectivity
|
|
|
|
that was used by Sangoma WAN cards (called "WANPIPE");
|
|
|
|
removed in Linux 2.6.21.
|
|
|
|
.TP
|
|
|
|
.B AF_LLC
|
|
|
|
.\" linux-history commit: 34beb106cde7da233d4df35dd3d6cf4fee937caa
|
|
|
|
Logical link control (IEEE 802.2 LLC) protocol, upper part
|
|
|
|
of data link layer of ISO/OSI networking protocol stack
|
|
|
|
(since Linux 2.4);
|
|
|
|
has no relation to
|
2019-02-27 09:31:55 +00:00
|
|
|
.BR AF_PACKET .
|
2018-10-16 08:09:26 +00:00
|
|
|
See chapter
|
|
|
|
.I 13.5.3. Logical Link Control
|
|
|
|
in
|
|
|
|
.I Understanding Linux Kernel Internals
|
|
|
|
(O'Reilly Media, 2006)
|
|
|
|
and
|
|
|
|
.I IEEE Standards for Local Area Networks: Logical Link Control
|
|
|
|
(The Institute of Electronics and Electronics Engineers, Inc.,
|
|
|
|
New York, New York, 1985)
|
|
|
|
for details.
|
|
|
|
See also
|
|
|
|
.UR https://wiki.linuxfoundation.org/networking/llc
|
|
|
|
some historical notes
|
|
|
|
.UE
|
|
|
|
regarding its development.
|
|
|
|
.TP
|
|
|
|
.B AF_IB
|
|
|
|
.\" commits: 8d36eb01da5d371f..ce117ffac2e93334
|
|
|
|
InfiniBand native addressing (since Linux 3.11).
|
|
|
|
.TP
|
|
|
|
.B AF_MPLS
|
|
|
|
.\" commits: 0189197f441602acdca3f97750d392a895b778fd
|
|
|
|
Multiprotocol Label Switching (since Linux 4.1);
|
|
|
|
mostly used for configuring MPLS routing via
|
|
|
|
.BR netlink (7),
|
|
|
|
as it doesn't expose ability to create sockets to user space.
|
|
|
|
.TP
|
|
|
|
.B AF_CAN
|
|
|
|
.\" commits: 8dbde28d9711475a..5423dd67bd0108a1
|
|
|
|
Controller Area Network automotive bus protocol (since Linux 2.6.25).
|
|
|
|
See
|
|
|
|
.I Documentation/networking/can.rst
|
|
|
|
in the Linux kernel source tree for details.
|
|
|
|
.TP
|
|
|
|
.B AF_TIPC
|
|
|
|
.\" commits: b97bf3fd8f6a16966d4f18983b2c40993ff937d4
|
|
|
|
TIPC, "cluster domain sockets" protocol (since Linux 2.6.16).
|
|
|
|
See
|
|
|
|
.UR http://tipc.io/programming.html
|
|
|
|
.I TIPC Programmer's Guide
|
|
|
|
.UE
|
|
|
|
and the
|
|
|
|
.UR http://tipc.io/protocol.html
|
|
|
|
protocol description
|
|
|
|
.UE
|
|
|
|
for details.
|
|
|
|
.TP
|
|
|
|
.B AF_BLUETOOTH
|
|
|
|
.\" commits: 8d36eb01da5d371f..ce117ffac2e93334
|
|
|
|
Bluetooth low-level socket protocol (since Linux 3.11).
|
|
|
|
See
|
|
|
|
.UR https://git.kernel.org\:/pub/scm\:/bluetooth/bluez.git\:/tree/doc/mgmt-api.txt
|
|
|
|
.I Bluetooth Management API overview
|
|
|
|
.UE
|
|
|
|
and
|
|
|
|
.UR https://people.csail.mit.edu/albert/bluez-intro/
|
|
|
|
.I An Introduction to Bluetooth Programming
|
|
|
|
by Albert Huang
|
|
|
|
.UE
|
|
|
|
for details.
|
|
|
|
.TP
|
|
|
|
.B AF_IUCV
|
|
|
|
.\" commit: eac3731bd04c7131478722a3c148b78774553116
|
|
|
|
IUCV (inter-user communication vehicle) z/VM protocol
|
|
|
|
for hypervisor-guest interaction (since Linux 2.6.21);
|
|
|
|
has no relation to
|
|
|
|
.B AF_VSOCK
|
|
|
|
and/or
|
|
|
|
.BR AF_SMC
|
|
|
|
See
|
|
|
|
.UR https://www.ibm.com\:/support\:/knowledgecenter\:/en/SSB27U_6.4.0\:/com.ibm.zvm.v640.hcpb4\:/iucv.htm
|
|
|
|
.I IUCV protocol overview
|
|
|
|
.UE
|
|
|
|
for details.
|
|
|
|
.TQ
|
|
|
|
.TP
|
|
|
|
.B AF_RXRPC
|
|
|
|
.\" commit: 17926a79320afa9b95df6b977b40cca6d8713cea
|
|
|
|
.\" http://people.redhat.com/~dhowells/rxrpc/
|
|
|
|
.\" https://www.infradead.org/~dhowells/kafs/af_rxrpc_client.html
|
|
|
|
.\" http://workshop.openafs.org/afsbpw09/talks/thu_2/kafs.pdf
|
|
|
|
.\" http://pages.cs.wisc.edu/~remzi/OSTEP/dist-afs.pdf
|
|
|
|
.\" http://web.mit.edu/kolya/afs/rx/rx-spec
|
|
|
|
Rx, Andrew File System remote procedure call protocol
|
|
|
|
(since Linux 2.6.22).
|
|
|
|
See
|
|
|
|
.I Documentation/networking/rxrpc.txt
|
|
|
|
in the Linux kernel source tree for details.
|
|
|
|
.TP
|
|
|
|
.B AF_ISDN
|
|
|
|
.\" commit: 1b2b03f8e514e4f68e293846ba511a948b80243c
|
|
|
|
New "modular ISDN" driver interface protocol (since Linux 2.6.27).
|
|
|
|
See the
|
|
|
|
.UR http://www.misdn.eu/wiki/Main_Page/
|
|
|
|
mISDN wiki
|
|
|
|
.UE
|
|
|
|
for details.
|
|
|
|
.TP
|
|
|
|
.B AF_PHONET
|
|
|
|
.\" commit: 4b07b3f69a8471cdc142c51461a331226fef248a
|
|
|
|
Nokia cellular modem IPC/RPC interface (since Linux 2.6.31).
|
|
|
|
See
|
|
|
|
.I Documentation/networking/phonet.txt
|
|
|
|
in the Linux kernel source tree for details.
|
|
|
|
.TP
|
|
|
|
.B AF_IEEE802154
|
|
|
|
.\" commit: 9ec7671603573ede31207eb5b0b3e1aa211b2854
|
|
|
|
IEEE 802.15.4 WPAN (wireless personal area network) raw packet protocol
|
|
|
|
(since Linux 2.6.31).
|
|
|
|
See
|
|
|
|
.I Documentation/networking/ieee802154.txt
|
|
|
|
in the Linux kernel source tree for details.
|
|
|
|
.TP
|
|
|
|
.B AF_CAIF
|
|
|
|
.\" commit: 529d6dad5bc69de14cdd24831e2a14264e93daa4
|
|
|
|
.\" https://lwn.net/Articles/371017/
|
|
|
|
.\" http://read.pudn.com/downloads157/doc/comm/698729/Misc/caif/Com%20CPU%20to%20Appl%20CPU%20Interface%20DESCRIPTION_LZN901%202002_revR1C.pdf
|
|
|
|
.\" http://read.pudn.com/downloads157/doc/comm/698729/Misc/caif/Com%20CPU%20to%20Appl%20CPU%20Interface%20PROTOCOL%20SPECIFICATION_LZN901%201708_revR1A.pdf
|
|
|
|
Ericsson's Communication CPU to Application CPU interface (CAIF) protocol
|
|
|
|
(since Linux 2.6.36).
|
|
|
|
See
|
|
|
|
.I Documentation/networking/caif/Linux-CAIF.txt
|
|
|
|
in the Linux kernel source tree for details.
|
|
|
|
.TP
|
|
|
|
.B AF_ALG
|
|
|
|
Interface to kernel crypto API (since Linux 2.6.38).
|
|
|
|
See
|
|
|
|
.I Documentation/crypto/userspace-if.rst
|
|
|
|
in the Linux kernel source tree for details.
|
|
|
|
.TP
|
|
|
|
.B AF_VSOCK
|
|
|
|
.\" commit: d021c344051af91f42c5ba9fdedc176740cbd238
|
|
|
|
VMWare VSockets protocol for hypervisor-guest interaction (since Linux 3.9);
|
|
|
|
has no relation to
|
|
|
|
.B AF_IUCV
|
|
|
|
and
|
|
|
|
.BR AF_SMC .
|
|
|
|
For further information, see
|
|
|
|
.BR vsock (7).
|
|
|
|
.TP
|
|
|
|
.B AF_KCM
|
|
|
|
.\" commit: 03c8efc1ffeb6b82a22c1af8dd908af349563314
|
|
|
|
KCM (kernel connection multiplexor) interface (since Linux 4.6).
|
|
|
|
See
|
|
|
|
.I Documentation/networking/kcm.txt
|
|
|
|
in the Linux kernel source tree for details.
|
|
|
|
.TP
|
|
|
|
.B AF_QIPCRTR
|
|
|
|
.\" commit: bdabad3e363d825ddf9679dd431cca0b2c30f881
|
|
|
|
Qualcomm IPC router interface protocol (since Linux 4.7).
|
|
|
|
.TP
|
|
|
|
.B AF_SMC
|
|
|
|
.\" commit: f3a3e248f3f7cd9a4bed334022704d7e7fc781bf
|
|
|
|
SMC-R (shared memory communications over RDMA) protocol (since Linux 4.11),
|
|
|
|
and SMC-D (shared memory communications, direct memory access) protocol
|
|
|
|
for intra-node z/VM quest interaction (since Linux 4.19);
|
|
|
|
has no relation to
|
|
|
|
.BR AF_RDS ", " AF_IUCV
|
|
|
|
or
|
|
|
|
.BR AF_VSOCK .
|
|
|
|
See
|
|
|
|
.UR https://tools.ietf.org/html/rfc7609
|
|
|
|
RFC 7609
|
|
|
|
.I IBM's Shared Memory Communications over RDMA (SMC-R) Protocol
|
|
|
|
.UE
|
|
|
|
for details regarding SMC-R.
|
|
|
|
See
|
|
|
|
.UR https://www-01.ibm.com\:/software/network\:/commserver\:/SMC-D/index.html
|
|
|
|
.I SMC-D Reference Information
|
|
|
|
.UE
|
|
|
|
for details regarding SMC-D.
|
|
|
|
.TP
|
|
|
|
.B AF_XDP
|
|
|
|
.\" commit: c0c77d8fb787cfe0c3fca689c2a30d1dad4eaba7
|
|
|
|
XDP (express data path) interface (since Linux 4.18).
|
|
|
|
See
|
|
|
|
.I Documentation/networking/af_xdp.rst
|
|
|
|
in the Linux kernel source tree for details.
|
|
|
|
.SH SEE ALSO
|
|
|
|
.BR socket (2),
|
|
|
|
.BR socket (7)
|