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:

              Local communication For further information, see unix(7).

              IPv4 Internet protocols.  For further information, see ip(7).

              Amateur radio AX.25 protocol.  For further information, see

       AF_IPX IPX - Novell protocols.

              AppleTalk For further information, see ddp(7).

              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⟩.

              Can't be used for creating sockets; mostly used for bridge
              links in rtnetlink(7) protocol commands.

              Access to raw ATM Permanent Virtual Circuits (PVCs).  For fur‐
              ther information, see the ATM on Linux HOWTO⟩.

       AF_X25 ITU-T X.25 / ISO-8208 protocol.  For further information, see

              IPv6 Internet protocols.  For further information, see

              RATS (Radio Amateur Telecommunications Society) Open Systems
              environment (ROSE) AX.25 packet layer protocol.  For further
              information, see the resources listed for AF_NETROM.

              DECet protocol sockets.  See Documentation/networking/dec‐
              net.txt in the Linux kernel source tree for details.

              Reserved for "802.2LLC project"; never used.

              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.

              Kernel user interface device For further information, see

              Low-level packet interface.  For further information, see

              Acorn Econet protocol (removed in Linux 3.5).  See the Econet
              ⟨⟩ for details.

              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_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.

              Socket interface over IrDA (moved to staging in Linux 4.14,
              removed in Linux 4.17).  For further information see irda(7).

              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.

              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 
              ⟨⟩ regarding its

       AF_IB  InfiniBand native addressing (since Linux 3.11).

              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.

              TIPC, "cluster domain sockets" protocol (since Linux 2.6.16).
              See TIPC Programmer's Guide⟩
              and the protocol description ⟨⟩
              for details.

              Bluetooth low-level socket protocol (since Linux 3.11).  See
              Bluetooth Management API overview 
              api.txt⟩ and An Introduction to Bluetooth Programming by
              Albert Huang 
              ⟨⟩ for details.

              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⟩
              for details.
              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.

              New "modular ISDN" driver interface protocol (since Linux
              2.6.27).  See the mISDN wiki 
              ⟨⟩ for details.

              Nokia cellular modem IPC/RPC interface (since Linux 2.6.31).
              See Documentation/networking/phonet.txt in the Linux kernel
              source tree for details.

              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

              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.

              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.

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

Linux                            2018-10-16              ADDRESS_FAMILIES(7)

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