ADDRESS_FAMILIES(7) Linux Programmer's Manual ADDRESS_FAMILIES(7)
NAME
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
<https://www.tldp.org/HOWTO/AX25-HOWTO/x61.html> and the AX.25,
NET/ROM, and ROSE network programming chapters of the Linux
Amateur Radio AX.25 HOWTO
<https://www.tldp.org/HOWTO/AX25-HOWTO/x2107.html>.
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 fur-
ther information, see the ATM on Linux HOWTO
<https://www.tldp.org/HOWTO/text/ATM-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 en-
vironment (ROSE) AX.25 packet layer protocol. For further in-
formation, 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 <https://tools.ietf.org/html/rfc2367>
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 <http://www.8bs.com/othrdnld/manuals/econet.shtml>
for details.
AF_ATMSVC
Access to ATM Switched Virtual Circuits (SVCs) See the ATM on
Linux HOWTO <https://www.tldp.org/HOWTO/text/ATM-Linux-HOWTO>
for details.
AF_RDS Reliable Datagram Sockets (RDS) protocol (since Linux 2.6.30).
RDS over RDMA has no relation to AF_SMC or AF_XDP. For further
information see rds(7), rds-rdma(7), and Documentation/network-
ing/rds.txt in the Linux kernel source tree.
AF_IRDA
Socket interface over IrDA (moved to staging in Linux 4.14, re-
moved 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 ker-
nel 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 Net-
works: Logical Link Control (The Institute of Electronics and
Electronics Engineers, Inc., New York, New York, 1985) for de-
tails. See also some historical notes
<https://wiki.linuxfoundation.org/networking/llc> 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 ker-
nel source tree for details.
AF_TIPC
TIPC, "cluster domain sockets" protocol (since Linux 2.6.16).
See TIPC Programmer's Guide <http://tipc.io/programming.html>
and the protocol description <http://tipc.io/protocol.html> for
details.
AF_BLUETOOTH
Bluetooth low-level socket protocol (since Linux 3.11). See
Bluetooth Management API overview <https://git.kernel.org
/pub/scm/bluetooth/bluez.git/tree/doc/mgmt-api.txt> and An
Introduction to Bluetooth Programming by Albert Huang
<https://people.csail.mit.edu/albert/bluez-intro/> for details.
AF_IUCV
IUCV (inter-user communication vehicle) z/VM protocol for hyper-
visor-guest interaction (since Linux 2.6.21); has no relation to
AF_VSOCK and/or AF_SMC See IUCV protocol overview
<https://www.ibm.com/support/knowledgecenter/en/SSB27U_6.4.0
/com.ibm.zvm.v640.hcpb4/iucv.htm> 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
<http://www.misdn.eu/wiki/Main_Page/> 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/network-
ing/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/network-
ing/caif/Linux-CAIF.txt in the Linux kernel source tree for de-
tails.
AF_ALG Interface to kernel crypto API (since Linux 2.6.38). See Docu-
mentation/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_IUCV and AF_SMC. For further
information, see vsock(7).
AF_KCM KCM (kernel connection multiplexor) 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_IUCV or
AF_VSOCK. See RFC 7609 IBM's Shared Memory Communications over
RDMA (SMC-R) Protocol <https://tools.ietf.org/html/rfc7609> for
details regarding SMC-R. See SMC-D Reference Information
<https://www-01.ibm.com/software/network/commserver/SMC-
D/index.html> for details regarding SMC-D.
AF_XDP XDP (express data path) interface (since Linux 4.18). See Docu-
mentation/networking/af_xdp.rst in the Linux kernel source tree
for details.
SEE ALSO
socket(2), socket(7)
COLOPHON
This page is part of release 5.07 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/.
Linux 2018-10-16 ADDRESS_FAMILIES(7)