address_families — socket address families (domains)
#include <sys/types.h> /* See NOTES */ #include <sys/socket.h>
int
socket( |
int domain, |
| int type, | |
int protocol); |
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_LOCALLocal communication For further information, see unix(7).
AF_INETIPv4 Internet protocols. For further information, see ip(7).
AF_AX25Amateur radio AX.25 protocol. For further information, see ax25(4).
AF_IPXIPX − Novell protocols.
AF_APPLETALKAppleTalk For further information, see ddp(7).
AF_NETROMAX.25 packet layer protocol. For further
information, see netrom(4),
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_BRIDGECan't be used for creating sockets; mostly used for bridge links in rtnetlink(7) protocol commands.
AF_ATMPVCAccess 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_X25ITU-T X.25 / ISO-8208 protocol. For further information, see x25(7).
AF_INET6IPv6 Internet protocols. For further information, see ipv6(7).
AF_ROSERATS (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/decnet.txt
in the Linux kernel source tree for details.
AF_NETBEUIReserved for "802.2LLC project"; never used.
AF_SECURITYThis was a short-lived (between Linux 2.1.30 and 2.1.99pre2) protocol family for firewall upcalls.
AF_KEYKey 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_NETLINKKernel user interface device For further information, see netlink(7).
AF_PACKETLow-level packet interface. For further information, see packet(7).
AF_ECONETAcorn Econet protocol (removed in Linux 3.5). See the Econet documentation for details.
AF_ATMSVCAccess to ATM Switched Virtual Circuits (SVCs) See the ATM on Linux HOWTO https://www.tldp.org/HOWTO/text/ATM-Linux-HOWTO for details.
AF_RDSReliable 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_IRDASocket interface over IrDA (moved to staging in Linux 4.14, removed in Linux 4.17). For further information see irda(7).
AF_PPPOXGeneric 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_WANPIPELegacy protocol for wide area network (WAN) connectivity that was used by Sangoma WAN cards (called "WANPIPE"); removed in Linux 2.6.21.
AF_LLCLogical 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 regarding its
development.
AF_IBInfiniBand native addressing (since Linux 3.11).
AF_MPLSMultiprotocol 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_CANController Area Network automotive bus protocol
(since Linux 2.6.25). See Documentation/networking/can.rst in
the Linux kernel source tree for details.
AF_TIPCSee TIPC Programmer's Guide http://tipc.io/programming.html and the protocol description for details.
AF_BLUETOOTHBluetooth 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 for details.
AF_IUCVIUCV (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_RXRPCRx, 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_ISDNNew "modular ISDN" driver interface protocol (since Linux 2.6.27). See the mISDN wiki for details.
AF_PHONETNokia cellular modem IPC/RPC interface (since Linux
2.6.31). See Documentation/networking/phonet.txt
in the Linux kernel source tree for details.
AF_IEEE802154IEEE 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_CAIFEricsson'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_ALGInterface to kernel crypto API (since Linux 2.6.38).
See Documentation/crypto/userspace−if.rst
in the Linux kernel source tree for details.
AF_VSOCKVMWare 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_KCMKCM (kernel connection multiplexer) interface (since
Linux 4.6). See Documentation/networking/kcm.txt in
the Linux kernel source tree for details.
AF_QIPCRTRQualcomm IPC router interface protocol (since Linux 4.7).
AF_SMCSMC-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
https://www-01.ibm.com/software/network/commserver/SMC-D/index.html
for details regarding SMC-D.
AF_XDPXDP (express data path) interface (since Linux
4.18). See Documentation/networking/af_xdp.rst
in the Linux kernel source tree for details.
This page is part of release 5.11 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/.
|
Copyright (c) 2018 by Eugene Syromyatnikov <evgsyrgmail.com>, and Copyright (c) 2018 Michael Kerrisk <mtk.manpagesgmail.com> %%%LICENSE_START(VERBATIM) Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Since the Linux kernel and libraries are constantly changing, this manual page may be incorrect or out-of-date. The author(s) assume no responsibility for errors or omissions, or for damages resulting from the use of the information contained herein. The author(s) may not have taken the same level of care in the production of this manual, which is licensed free of charge, as they might when working professionally. Formatted or processed versions of this manual, if unaccompanied by the source, must acknowledge the copyright and authors of this work. %%%LICENSE_END |