address_families (7) Linux Manual Page
address_families – socket address families (domains)
Synopsis
#include <sys/types.h> /* See NOTES */
#include <sys/socket.h>
int socket(int domain, int type, int protocol);
Description
The domain argument of the socket(2) specifies a communication domain; this selects the protocol family which will be used for communication. These families are defined in <sys/socket.h>. The formats currently understood by the Linux kernel include:
AF_UNIX,AF_LOCAL- Local communication For further information, see
unix(7). AF_INET- IPv4 Internet protocols. For further information, see
ip(7). AF_AX25- Amateur radio AX.25 protocol. For further information, see
ax25(4). AF_IPX- IPX – Novell protocols.
AF_APPLETALK- AppleTalk For further information, see
ddp(7). AF_NETROM- AX.25 packet layer protocol. For further information, see
netrom(4), The Packet Radio Protocols and Linux and the AX.25, NET/ROM, and ROSE network programming chapters of the Linux Amateur Radio AX.25 HOWTO AF_BRIDGE- Can’t be used for creating sockets; mostly used for bridge links in
rtnetlink(7) protocol commands. AF_ATMPVC- Access to raw ATM Permanent Virtual Circuits (PVCs). For further information, see the ATM on Linux HOWTO
AF_X25- ITU-T X.25 / ISO-8208 protocol. For further information, see
x25(7). AF_INET6- IPv6 Internet protocols. For further information, see
ipv6(7). AF_ROSE- RATS (Radio Amateur Telecommunications Society) Open Systems environment (ROSE) AX.25 packet layer protocol. For further information, see the resources listed for
AF_NETROM. AF_DECnet- DECet protocol sockets. See Documentation/networking/decnet.txt in the Linux kernel source tree for details.
AF_NETBEUI- Reserved for "802.2LLC project"; never used.
AF_SECURITY- This was a short-lived (between Linux 2.1.30 and 2.1.99pre2) protocol family for firewall upcalls.
AF_KEY- Key management protocol, originally developed for usage with IPsec (since Linux 2.1.38). This has no relation to
keyctl(2) and the in-kernel key storage facility. See RFC 2367 PF_KEY Key Management API, Version 2 for details. AF_NETLINK- Kernel user interface device For further information, see
netlink(7). AF_PACKET- Low-level packet interface. For further information, see
packet(7). AF_ECONET- Acorn Econet protocol (removed in Linux 3.5). See the Econet documentation for details.
AF_ATMSVC- Access to ATM Switched Virtual Circuits (SVCs) See the ATM on Linux HOWTO for details.
AF_RDS- Reliable Datagram Sockets (RDS) protocol (since Linux 2.6.30). RDS over RDMA has no relation to
AF_SMCorAF_XDP. For further information seerds(7),rds-rdma(7), and Documentation/networking/rds.txt in the Linux kernel source tree. AF_IRDA- Socket interface over IrDA (moved to staging in Linux 4.14, removed in Linux 4.17). For further information see
irda(7). AF_PPPOX- Generic PPP transport layer, for setting up L2 tunnels (L2TP and PPPoE). See Documentation/networking/l2tp.txt in the Linux kernel source tree for details.
AF_WANPIPE- Legacy protocol for wide area network (WAN) connectivity that was used by Sangoma WAN cards (called "WANPIPE"); removed in Linux 2.6.21.
AF_LLC- 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
AF_PACKET. See chapter 13.5.3. Logical Link Control in Understanding Linux Kernel Internals (O’Reilly Media, 2006) and 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 some historical notes regarding its development. AF_IB- InfiniBand native addressing (since Linux 3.11).
AF_MPLS- Multiprotocol Label Switching (since Linux 4.1); mostly used for configuring MPLS routing via
netlink(7), as it doesn’t expose ability to create sockets to user space. AF_CAN- Controller Area Network automotive bus protocol (since Linux 2.6.25). See Documentation/networking/can.rst in the Linux kernel source tree for details.
AF_TIPC- TIPC, "cluster domain sockets" protocol (since Linux 2.6.16). See TIPC Programmer’s Guide and the protocol description for details.
AF_BLUETOOTH- Bluetooth low-level socket protocol (since Linux 3.11). See Bluetooth Management API overview and An Introduction to Bluetooth Programming by Albert Huang for details.
AF_IUCV- IUCV (inter-user communication vehicle) z/VM protocol for hypervisor-guest interaction (since Linux 2.6.21); has no relation to
AF_VSOCKand/orAF_SMCSee IUCV protocol overview for details. AF_RXRPC- Rx, Andrew File System remote procedure call protocol (since Linux 2.6.22). See Documentation/networking/rxrpc.txt in the Linux kernel source tree for details.
AF_ISDN- New "modular ISDN" driver interface protocol (since Linux 2.6.27). See the mISDN wiki for details.
AF_PHONET- Nokia cellular modem IPC/RPC interface (since Linux 2.6.31). See Documentation/networking/phonet.txt in the Linux kernel source tree for details.
AF_IEEE802154- IEEE 802.15.4 WPAN (wireless personal area network) raw packet protocol (since Linux 2.6.31). See Documentation/networking/ieee802154.txt in the Linux kernel source tree for details.
AF_CAIF- Ericsson’s Communication CPU to Application CPU interface (CAIF) protocol (since Linux 2.6.36). See Documentation/networking/caif/Linux-CAIF.txt in the Linux kernel source tree for details.
AF_ALG- Interface to kernel crypto API (since Linux 2.6.38). See Documentation/crypto/userspace-if.rst in the Linux kernel source tree for details.
AF_VSOCK- VMWare VSockets protocol for hypervisor-guest interaction (since Linux 3.9); has no relation to
AF_IUCVandAF_SMC. For further information, seevsock(7). AF_KCM- KCM (kernel connection multiplexer) interface (since Linux 4.6). See Documentation/networking/kcm.txt in the Linux kernel source tree for details.
AF_QIPCRTR- Qualcomm IPC router interface protocol (since Linux 4.7).
AF_SMC- 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
AF_RDS,AF_IUCVorAF_VSOCK. See RFC 7609 IBM’s Shared Memory Communications over RDMA (SMC-R) Protocol for details regarding SMC-R. See SMC-D Reference Information for details regarding SMC-D. AF_XDP- XDP (express data path) interface (since Linux 4.18). See Documentation/networking/af_xdp.rst in the Linux kernel source tree for details.
See Also
Colophon
This page is part of release 5.10 of the Linux man-pages project. A description of the project, information about reporting bugs, and the latest version of this page, can be found at https://www.kernel.org/doc/man-pages/.
