---
name: "address_families"
section: "7"
platform: "linux"
package: "man-pages"
version: "6.19-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/address_families"
---

# address\_families(7)

socket address families (domains)

## 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)](/socket/2.md) 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)](/unix/7.md).

- **AF\_INET**

  IPv4 Internet protocols. For further information, see [**ip**(7)](/ip/7.md).

- **AF\_AX25**

  Amateur radio AX.25 protocol. For further information, see [**ax25**(4)](/ax25/4.md).

- **AF\_IPX**

  IPX - Novell protocols.

- **AF\_APPLETALK**

  AppleTalk For further information, see [**ddp**(7)](/ddp/7.md).

- **AF\_NETROM**

  AX.25 packet layer protocol. For further information, see [**netrom**(4)](/netrom/4.md), *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)](/rtnetlink/7.md) 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/IEC 8208 protocol. For further information, see [**x25**(7)](/x25/7.md).

- **AF\_INET6**

  IPv6 Internet protocols. For further information, see [**ipv6**(7)](/ipv6/7.md).

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

  Support was removed in Linux 6.1.

- **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)](/keyctl/2.md) and the in-kernel key storage facility. See RFC 2367 *PF\_KEY Key Management API, Version 2* ⟨https:\\://tools.ietf.org/html/rfc2367⟩ for details.

- **AF\_NETLINK**

  Kernel user interface device. For further information, see [**netlink**(7)](/netlink/7.md).

- **AF\_PACKET**

  Low-level packet interface. For further information, see [**packet**(7)](/packet/7.md).

- **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 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/7.md), [**rds-rdma**(7)](/rds-rdma/7.md), and *Documentation/networking/rds.rst* 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)](/irda/7.md).

- **AF\_PPPOX**

  Generic PPP transport layer, for setting up L2 tunnels (L2TP and PPPoE). See *Documentation/networking/l2tp.rst* 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)](/netlink/7.md), 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* ⟨http:\\://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 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.rst* 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.rst* 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.rst* 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.rst* 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)](/vsock/7.md).

- **AF\_KCM**

  KCM (kernel connection multiplexer) interface (since Linux 4.6). See *Documentation/networking/kcm.rst* 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* ⟨https:\\://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)](/mctp/7.md).

## SEE ALSO

[**socket**(2)](/socket/2.md), [**socket**(7)](/socket/7.md)
