# phpman > man > address_families(7)

[ADDRESS_FAMILIES(7)](https://www.chedong.com/phpMan.php/man/ADDRESSFAMILIES/7/markdown)                   Linux Programmer's Manual                  [ADDRESS_FAMILIES(7)](https://www.chedong.com/phpMan.php/man/ADDRESSFAMILIES/7/markdown)



## 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)](https://www.chedong.com/phpMan.php/man/socket/2/markdown) specifies a communication domain; this selects the pro‐
       tocol  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)](https://www.chedong.com/phpMan.php/man/unix/7/markdown).

       **AF**___**INET**
              IPv4 Internet protocols.  For further information, see [**ip**(7)](https://www.chedong.com/phpMan.php/man/ip/7/markdown).

       **AF**___**AX25**
              Amateur radio AX.25 protocol.  For further information, see [**ax25**(4)](https://www.chedong.com/phpMan.php/man/ax25/4/markdown).

       **AF**___**IPX** IPX - Novell protocols.

       **AF**___**APPLETALK**
              AppleTalk For further information, see [**ddp**(7)](https://www.chedong.com/phpMan.php/man/ddp/7/markdown).

       **AF**___**NETROM**
              AX.25 packet layer protocol.  For further information, see [**netrom**(4)](https://www.chedong.com/phpMan.php/man/netrom/4/markdown), _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)](https://www.chedong.com/phpMan.php/man/rtnetlink/7/markdown)  pro‐
              tocol 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-8208 protocol.  For further information, see [**x25**(7)](https://www.chedong.com/phpMan.php/man/x25/7/markdown).

       **AF**___**INET6**
              IPv6 Internet protocols.  For further information, see [**ipv6**(7)](https://www.chedong.com/phpMan.php/man/ipv6/7/markdown).

       **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 fire‐
              wall upcalls.

       **AF**___**KEY** Key management protocol, originally  developed  for  usage  with  IPsec  (since  Linux
              2.1.38).   This  has  no relation to [**keyctl**(2)](https://www.chedong.com/phpMan.php/man/keyctl/2/markdown) 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)](https://www.chedong.com/phpMan.php/man/netlink/7/markdown).

       **AF**___**PACKET**
              Low-level packet interface.  For further information, see [**packet**(7)](https://www.chedong.com/phpMan.php/man/packet/7/markdown).

       **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)](https://www.chedong.com/phpMan.php/man/rds/7/markdown),  [**rds-rdma**(7)](https://www.chedong.com/phpMan.php/man/rds-rdma/7/markdown),  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)](https://www.chedong.com/phpMan.php/man/irda/7/markdown).

       **AF**___**PPPOX**
              Generic PPP transport layer, for setting up L2 tunnels (L2TP and PPPoE).  See _Documen__‐
              _tation/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_ _Con__‐
              _trol_ (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)](https://www.chedong.com/phpMan.php/man/netlink/7/markdown), 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 _Documenta__‐
              _tion/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 _Docu__‐
              _mentation/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/net__‐
              _working/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   _Documenta__‐
              _tion/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)](https://www.chedong.com/phpMan.php/man/vsock/7/markdown).

       **AF**___**KCM** KCM  (kernel  connection  multiplexer)  interface  (since  Linux 4.6).  See _Documenta__‐
              _tion/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)_  _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/network__‐
              _ing/af_xdp.rst_ in the Linux kernel source tree for details.

## SEE ALSO
       [**socket**(2)](https://www.chedong.com/phpMan.php/man/socket/2/markdown), [**socket**(7)](https://www.chedong.com/phpMan.php/man/socket/7/markdown)

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



Linux                                        2018-10-16                          [ADDRESS_FAMILIES(7)](https://www.chedong.com/phpMan.php/man/ADDRESSFAMILIES/7/markdown)
