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 further 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 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 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/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

See TIPC Programmer's Guide http://tipc.io/programming.html and the protocol description 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 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_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 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_IUCV and AF_SMC. For further information, see vsock(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_IUCV or AF_VSOCK. See RFC 7609 IBM's Shared Memory Communications over RDMA (SMC-R) Protocol 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 Documentation/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.11 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/.


  Copyright (c) 2018 by Eugene Syromyatnikov <evgsyrgmail.com>,
and Copyright (c) 2018 Michael Kerrisk <mtk.manpagesgmail.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