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_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
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) 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-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
.
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 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-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 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
See TIPC Programmer's Guide http://tipc.io/programming.html and the protocol description 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 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.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
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)
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_XDP
XDP (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 |