address_families(7) — Linux manual page

NAME | SYNOPSIS | DESCRIPTION | SEE ALSO | COLOPHON

address_families(7)  Miscellaneous Information 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
              further information, see the ATM on Linux HOWTOhttps://www.tldp.org/HOWTO/text/ATM-Linux-HOWTO⟩.

       AF_X25 ITU-T X.25 / ISO/IEC 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 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 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 
              ⟨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/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)
              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.

       AF_MCTP
              MCTP (Management Component Transport Protocol) interface
              (since Linux 5.15), as defined by the DMTF specification
              DSP0236.  For further information, see mctp(7).

SEE ALSO         top

       socket(2), socket(7)

COLOPHON         top

       This page is part of the man-pages (Linux kernel and C library
       user-space interface documentation) project.  Information about
       the project can be found at 
       ⟨https://www.kernel.org/doc/man-pages/⟩.  If you have a bug report
       for this manual page, see
       ⟨https://git.kernel.org/pub/scm/docs/man-pages/man-pages.git/tree/CONTRIBUTING⟩.
       This page was obtained from the tarball man-pages-6.15.tar.gz
       fetched from
       ⟨https://mirrors.edge.kernel.org/pub/linux/docs/man-pages/⟩ on
       2025-08-11.  If you discover any rendering problems in this HTML
       version of the page, or you believe there is a better or more up-
       to-date source for the page, or you have corrections or
       improvements to the information in this COLOPHON (which is not
       part of the original manual page), send a mail to
       man-pages@man7.org

Linux man-pages 6.15            2025-05-17            address_families(7)

Pages that refer to this page: socket(2)systemd.exec(5)socket(7)