NAME | SYNOPSIS | DESCRIPTION | SEE ALSO | COLOPHON

ADDRESS_FAMILIES(7)       Linux Programmer's Manual      ADDRESS_FAMILIES(7)

NAME         top

       address_families - socket address families (domains)

SYNOPSIS         top

       #include <sys/types.h>          /* See NOTES */
       #include <sys/socket.h>

       int socket(int domain, int type, int protocol);

DESCRIPTION         top

       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 Linuxhttps://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 HOWTOhttps://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 HOWTOhttps://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/dec‐
              net.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 2https://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 HOWTOhttps://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 fur‐
              ther information see rds(7), rds-rdma(7), and Documenta‐
              tion/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 Net‐
              works: Logical Link Control (The Institute of Electronics and
              Electronics Engineers, Inc., New York, New York, 1985) for
              details.  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
              kernel source tree for details.

       AF_TIPC
              TIPC, "cluster domain sockets" protocol (since Linux 2.6.16).
              See TIPC Programmer's Guidehttp://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
              hypervisor-guest interaction (since Linux 2.6.21); has no
              relation to AF_VSOCK and/or AF_SMC See IUCV protocol overviewhttps://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/net‐
              working/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 Doc‐
              umentation/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 ker‐
              nel 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) Protocolhttps://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
              Documentation/networking/af_xdp.rst in the Linux kernel source
              tree for details.

SEE ALSO         top

       socket(2), socket(7)

COLOPHON         top

       This page is part of release 5.00 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)

Pages that refer to this page: socket(2)socket(7)