Re: [PATCH] socket.2: update

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Eugene,

On 10/16/2018 05:36 AM, Eugene Syromyatnikov wrote:
> Add some information about some other address families present in
> <linux/socket.h>.

Thanks! What an extraordinary amount of detail! I merged this patch,
but have then moved most of the detail into a separate, new page,
address_families(7). (Take a look...)

Cheers,

Michael

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


-- 
Michael Kerrisk
Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/
Linux/UNIX System Programming Training: http://man7.org/training/



[Index of Archives]     [Kernel Documentation]     [Netdev]     [Linux Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux