ADDRESS_FAMILIES(7)       (2018-10-16)        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 communica-
          tion 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 chap-
               ters 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

     Page 1                        Linux             (printed 5/24/22)

     ADDRESS_FAMILIES(7)       (2018-10-16)        ADDRESS_FAMILIES(7)

               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_SMC or
               AF_XDP.  For further information see rds(7),
               rds-rdma(7), and Documentation/networking/rds.txt in

     Page 2                        Linux             (printed 5/24/22)

     ADDRESS_FAMILIES(7)       (2018-10-16)        ADDRESS_FAMILIES(7)

               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) connectiv-
               ity that was used by Sangoma WAN cards (called "WAN-
               PIPE"); 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: (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.

     Page 3                        Linux             (printed 5/24/22)

     ADDRESS_FAMILIES(7)       (2018-10-16)        ADDRESS_FAMILIES(7)

          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 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 inter-
               face (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 interac-
               tion (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).

     Page 4                        Linux             (printed 5/24/22)

     ADDRESS_FAMILIES(7)       (2018-10-16)        ADDRESS_FAMILIES(7)

          AF_SMC
               SMC-R (shared memory communications over RDMA) protocol
               (since Linux 4.11), and SMC-D (shared memory communica-
               tions, direct memory access) protocol for intra-node
               z/VM quest interaction (since Linux 4.19); has no rela-
               tion to AF_RDS, AF_IUCV or AF_VSOCK.  See RFC 7609
               IBM's Shared Memory Communications over RDMA 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
          socket(2), socket(7)

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

     Page 5                        Linux             (printed 5/24/22)