Add some information about some other address families present in <linux/socket.h>. Signed-off-by: Eugene Syromyatnikov <evgsyr@xxxxxxxxx> --- man2/socket.2 | 489 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 473 insertions(+), 16 deletions(-) diff --git a/man2/socket.2 b/man2/socket.2 index 133f4a2..bc9e67a 100644 --- a/man2/socket.2 +++ b/man2/socket.2 @@ -80,19 +80,44 @@ T}:IPv4 Internet protocols:T{ .BR ip (7) T} T{ -.B AF_INET6 -T}:IPv6 Internet protocols:T{ -.BR ipv6 (7) +.B AF_AX25 +T}:T{ +Amateur radio AX.25 protocol +T}:T{ +.\" Part of ax25-tools +.BR ax25 (4) T} T{ .B AF_IPX T}:IPX \- Novell protocols: T{ -.B AF_NETLINK +.B AF_APPLETALK +T}:AppleTalk:T{ +.BR ddp (7) +T} +T{ +.B AF_NETROM T}:T{ -Kernel user interface device +AX.25 packet layer protocol T}:T{ -.BR netlink (7) +.\" Part of ax25-tools package +.BR netrom (4), +[1] +T} +T{ +.B AF_BRIDGE +T}:T{ +Can't be used for creating sockets; +mostly used for bridge links in +.BR rtnetlink (7) +protocol commands. +T} +T{ +.B AF_ATMPVC +T}:T{ +Access to raw ATM Permanent Virtual Circuits (PVCs) +T}:T{ +[2] T} T{ .B AF_X25 @@ -100,17 +125,55 @@ T}:ITU-T X.25 / ISO-8208 protocol:T{ .BR x25 (7) T} T{ -.B AF_AX25 +.B AF_INET6 +T}:IPv6 Internet protocols:T{ +.BR ipv6 (7) +T} +T{ +.B AF_ROSE T}:T{ -Amateur radio AX.25 protocol -T}: +RATS (Radio Amateur Telecommunications Society) +Open Systems environment (ROSE) AX.25 packet layer protocol. +T}:T{ +.\" Part of ax25-tools package +.BR netrom (4), +[1] +T} T{ -.B AF_ATMPVC -T}:Access to raw ATM PVCs: +.B AF_DECnet +T}:T{ +DECet protocol sockets. +T}:T{ +[3] +T} T{ -.B AF_APPLETALK -T}:AppleTalk:T{ -.BR ddp (7) +.B AF_NETBEUI +T}:T{ +Reserved for "802.2LLC project", never used. +T} +T{ +.B AF_SECURITY +T}:T{ +Was a short-lived (between Linux 2.1.30 and 2.1.99pre2) protocol family +for firewall upcalls. +T} +T{ +.B AF_KEY +T}:T{ +Key management protocol, originally developed for usage with IPsec. +Has no relation to +.BR keyctl (2) +and related in-kernel key storage facility. +(since Linux 2.1.38.) +T}:T{ +[4] +T} +T{ +.B AF_NETLINK +T}:T{ +Kernel user interface device +T}:T{ +.BR netlink (7) T} T{ .B AF_PACKET @@ -119,17 +182,411 @@ Low level packet interface T}:T{ .BR packet (7) T} +.\" I haven't found any concrete information about this one; +.\" it never was implemented in Linux, at least, judging by historical +.\" repos. There is also this file (and its variations): +.\" https://github.com/ecki/net-tools/blob/master/lib/ash.c +.\" ( https://github.com/ecki/net-tools/commits/master/lib/ash.c ) +.\" it mentions "NET-2 distribution" (BSD Net/2?), but, again, I failed +.\" to find any mentions of "ash" protocol there. +.\" (for the reference: +.\" ftp://pdp11.org.ru/pub/unix-archive/Distributions/UCB/Net2/net2.tar.gz ) +.\" Another source that mentions it is +.\" https://www.silabs.com/documents/public/user-guides/ug101-uart-gateway-protocol-reference.pdf +.\" https://www.silabs.com/documents/public/user-guides/ug115-ashv3-protocol-reference.pdf +.\" but I doubt that it's related, as former files use 64-byte addresses and +.\" "Hamming-encode of hops", and that's barely combines with a protocol +.\" that is mainly used over serial connection. +.\" T{ +.\" .B AF_ASH +.\" T}:T{ +.\" Asynchronous Serial Host protocol (?) +.\" T} +T{ +.B AF_ECONET +T}:T{ +.\" commit: 349f29d841dbae854bd7367be7c250401f974f47 +Acorn Econet protocol (removed in Linux 3.5) +T}:T{ +[5] +T} +T{ +.B AF_ATMSVC +T}:T{ +Access to ATM Switched Virtual Circuits (SVCs) +T}:T{ +[2] +T} +T{ +.B AF_RDS +T}:T{ +.\" commit: 639b321b4d8f4e412bfbb2a4a19bfebc1e68ace4 +Reliable Datagram Sockets (RDS) protocol (since Linux 2.6.30). +RDS over RDMA has no relation to +.B AF_SMC +and/or +.BR AF_XDP . +T}:T{ +.\" rds-tools: https://github.com/oracle/rds-tools/blob/master/rds.7 +.\" rds-tools: https://github.com/oracle/rds-tools/blob/master/rds-rdma.7 +.BR rds "(7), " rds-rdma (7), +[6] +T} +T{ +.B AF_IRDA +T}:T{ +.\" commits: 1ca163afb6fd569b, d64c2a76123f0300 +Socket interface over IrDA +(moved to staging in Linux 4.14, removed in Linux 4.17) +T}:T{ +.\" irda-utils: https://sourceforge.net/p/irda/code/HEAD/tree/tags/IRDAUTILS_0_9_18/irda-utils/man/irda.7.gz?format=raw +.BR irda (7) +T} +T{ +.B AF_PPPOX +T}:T{ +Generic PPP transport layer, for setting up up L2 tunnels +(L2TP and PPPoE). +T}:T{ +[7] +T} +T{ +.B AF_WANPIPE +T}:T{ +.\" commits: ce0ecd594d78710422599918a608e96dd1ee6024 +Legacy protocol for wide area network (WAN) connectivity +that was used by Sangoma WAN cards (called "WANPIPE"). +Removed in Linux 2.6.21. +T} +T{ +.B AF_LLC +T}:T{ +.\" linux-history commit: 34beb106cde7da233d4df35dd3d6cf4fee937caa +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 +.BR AF_PACKET . +T}:T{ +[8] +T} +T{ +.B AF_IB +T}:T{ +.\" commits: 8d36eb01da5d371f..ce117ffac2e93334 +InfiniBand native addressing (since Linux 3.11) +T} +T{ +.B AF_MPLS +T}:T{ +.\" commits: 0189197f441602acdca3f97750d392a895b778fd +Multiprotocol Label Switching configu (since Linux 4.1); +mostly used for configuring MPLS routing via +.BR netlink (7), +as it doesn't expose ability to create sockets to user space. +T} +T{ +.B AF_CAN +T}:T{ +.\" commits: 8dbde28d9711475a..5423dd67bd0108a1 +Controller Area Network automotive bus protocol (since Linux 2.6.25) +T}:T{ +[9] +T} +T{ +.B AF_TIPC +T}:T{ +.\" commits: b97bf3fd8f6a16966d4f18983b2c40993ff937d4 +TIPC, "cluster domain sockets" protocol (since Linux 2.6.16) +T}:T{ +[10] +T} +T{ +.B AF_BLUETOOTH +T}:T{ +.\" commits: 8d36eb01da5d371f..ce117ffac2e93334 +Bluetooth low-level socket protocol (since Linux 3.11) +T}:T{ +[11] +T} +T{ +.B AF_IUCV +T}:T{ +.\" commit: eac3731bd04c7131478722a3c148b78774553116 +IUCV (inter-user communication vehicle) z/VM protocol +for hypervisor-guest interaction (since Linux 2.6.21). +Has no relation to +.B AF_VSOCK +and/or +.BR AF_SMC . +T}:T{ +[12] +T} +T{ +.B AF_RXRPC +T}:T{ +.\" commit: 17926a79320afa9b95df6b977b40cca6d8713cea +.\" http://people.redhat.com/~dhowells/rxrpc/ +.\" https://www.infradead.org/~dhowells/kafs/af_rxrpc_client.html +.\" http://workshop.openafs.org/afsbpw09/talks/thu_2/kafs.pdf +.\" http://pages.cs.wisc.edu/~remzi/OSTEP/dist-afs.pdf +.\" http://web.mit.edu/kolya/afs/rx/rx-spec +Rx, Andrew File System remote procedure call protocol +(since Linux 2.6.22) +T}:T{ +[13] +T} +T{ +.B AF_ISDN +T}:T{ +.\" commit: 1b2b03f8e514e4f68e293846ba511a948b80243c +New "modular ISDN" driver interface protocol (since Linux 2.6.27) +T}:T{ +[14] +T} +T{ +.B AF_PHONET +T}:T{ +.\" commit: 4b07b3f69a8471cdc142c51461a331226fef248a +Nokia cellular modem IPC/RPC interface (since Linux 2.6.31) +T}:T{ +[15] +T} +T{ +.B AF_IEEE802154 +T}:T{ +.\" commit: 9ec7671603573ede31207eb5b0b3e1aa211b2854 +IEEE 802.15.4 WPAN (wireless personal area network) raw packet protocol +(since Linux 2.6.31) +T}:T{ +[16] +T} +T{ +.B AF_CAIF +T}:T{ +.\" commit: 529d6dad5bc69de14cdd24831e2a14264e93daa4 +.\" https://lwn.net/Articles/371017/ +.\" http://read.pudn.com/downloads157/doc/comm/698729/Misc/caif/Com%20CPU%20to%20Appl%20CPU%20Interface%20DESCRIPTION_LZN901%202002_revR1C.pdf +.\" http://read.pudn.com/downloads157/doc/comm/698729/Misc/caif/Com%20CPU%20to%20Appl%20CPU%20Interface%20PROTOCOL%20SPECIFICATION_LZN901%201708_revR1A.pdf +Ericsson's Communication CPU to Application CPU interface (CAIF) protocol +(since Linux 2.6.36) +T}:T{ +[17] +T} T{ .B AF_ALG T}:T{ -Interface to kernel crypto API +.\" commit: 03c8efc1ffeb6b82a22c1af8dd908af349563314 +Interface to kernel crypto API (since Linux 2.6.38) +T}:T{ +[18] +T} +T{ +.B AF_VSOCK +T}:T{ +.\" commit: d021c344051af91f42c5ba9fdedc176740cbd238 +VMWare VSockets protocol for hypervisor-guest interaction (since Linux 3.9). +Has no relation to +.B AF_IUCV +and/or +.BR AF_SMC . +T}:T{ +.BR vsock (7) +T} +T{ +.B AF_KCM +T}:T{ +.\" commit: 03c8efc1ffeb6b82a22c1af8dd908af349563314 +KCM (kernel connection multiplexor) interface (since Linux 4.6) +T}:T{ +[19] +T} +T{ +.B AF_QIPCRTR +T}:T{ +.\" commit: bdabad3e363d825ddf9679dd431cca0b2c30f881 +Qualcomm IPC router interface protocol (since Linux 4.7) +T} +T{ +.B AF_SMC +T}:T{ +.\" commit: f3a3e248f3f7cd9a4bed334022704d7e7fc781bf +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 +.BR AF_RDS ", " AF_IUCV +and/org +.BR AF_VSOCK . +T}:T{ +[20] T} T{ .B AF_XDP T}:T{ -XDP (express data path) interface +.\" commit: c0c77d8fb787cfe0c3fca689c2a30d1dad4eaba7 +XDP (express data path) interface (since Linux 4.18) +T}:T{ +[21] T} .TE +.TP 5 +[1] +See +.UR https://www.tldp.org/HOWTO/AX25-HOWTO/x61.html +.I The Packet Radio Protocols and Linux +.UE +and +.UR https://www.tldp.org/HOWTO/AX25-HOWTO/x2107.html +.I AX.25, NET/ROM, ROSE network programming +.UE +chapters of +.I Linux Amateur Radio AX.25 HOWTO +for details. +.TQ +[2] +See +.UR https://www.tldp.org/HOWTO/text/ATM-Linux-HOWTO +.I ATM on Linux HOWTO +.UE +for details. +.TQ +[3] +See +.I Documentation/networking/decnet.txt +in the Linux kernel source tree for details. +.TQ +[4] +See +.UR https://tools.ietf.org/html/rfc2367 +RFC 2367 +.I PF_KEY Key Management API, Version 2 +.UE +for details. +.TQ +[5] +See +.UR http://www.8bs.com/othrdnld/manuals/econet.shtml +Econet documentation +.UE +for details. +.TQ +[6] +See +.I Documentation/networking/rds.txt +in the Linux kernel source tree for details. +.TQ +[7] +See +.I Documentation/networking/l2tp.txt +in the Linux kernel source tree for details. +.TQ +[8] +See chapter +.I 13.5.3. Logical Link Control +in +.I Understanding Linux Kernel Internals +(O'Reilly Media, 2006) +and +.I 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 +.UR https://wiki.linuxfoundation.org/networking/llc +some historic notes +.UE +regarding its development. +.TQ +[9] +See +.I Documentation/networking/can.rst +in the Linux kernel source tree for details. +.TQ +[10] +See +.UR http://tipc.io/programming.html +.I TIPC Programmer's Guide +.UE +and +.UR http://tipc.io/protocol.html +protocol description +.UE +for details. +.TQ +[11] +See +.UR https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/doc/mgmt-api.txt +.I Bluetooth Management API overview +.UE +and +.UR https://people.csail.mit.edu/albert/bluez-intro/ +.I An Introduction to Bluetooth Programming +by Albert Huang +.UE +for details. +.TQ +[12] +See +.UR https://www.ibm.com/support/knowledgecenter/en/SSB27U_6.4.0/com.ibm.zvm.v640.hcpb4/iucv.htm +.I IUCV protocol overview +.UE +for details. +.TQ +[13] +See +.I Documentation/networking/rxrpc.txt +in the Linux kernel source tree for details. +.TQ +[14] +See +.UR http://www.misdn.eu/wiki/Main_Page/ +mISDN wiki +.UE +for details. +.TQ +[15] +See +.I Documentation/networking/phonet.txt +in the Linux kernel source tree for details. +.TQ +[16] +See +.I Documentation/networking/ieee802154.txt +in the Linux kernel source tree for details. +.TQ +[17] +See +.I Documentation/networking/caif/Linux-CAIF.txt +in the Linux kernel source tree for details. +.TQ +[18] +See +.I Documentation/crypto/userspace-if.rst +in the Linux kernel source tree for details. +.TQ +[19] +See +.I Documentation/networking/kcm.txt +in the Linux kernel source tree for details. +.TQ +[20] +See +.UR https://tools.ietf.org/html/rfc7609 +RFC 7609 +.I IBM's Shared Memory Communications over RDMA (SMC-R) Protocol +.UE +for details regarding SMC-R. +See +.UR https://www-01.ibm.com/software/network/commserver/SMC-D/index.html +.I SMC-D Reference Information +.UE +for details regarding SMC-D. +.TQ +[21] +See +.I Documentation/networking/af_xdp.rst +in the Linux kernel source tree for details. .PP The socket has the indicated .IR type , -- 2.1.4