netlink.7: Describe netlink socket options

Cc: Kir Kolyshkin <kir@openvz.org>
Cc: Michael Kerrisk <mtk.manpages@gmail.com>
Cc: Herbert Xu <herbert@gondor.apana.org.au>
Cc: Patrick McHardy <kaber@trash.net>
Cc: Christophe Ricard <christophe.ricard@gmail.com>
Cc: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Signed-off-by: Andrey Vagin <avagin@openvz.org>
This commit is contained in:
Andrey Vagin 2016-06-10 13:28:37 -07:00 committed by Michael Kerrisk
parent b1bf905af6
commit 67d0dc132c
1 changed files with 75 additions and 0 deletions

View File

@ -368,6 +368,81 @@ and
.BR NETLINK_SELINUX
groups allow other users to receive messages.
No groups allow other users to send messages.
.SS Socket options
To set or get a netlink socket option, call
.BR getsockopt (2)
to read or
.BR setsockopt (2)
to write the option with the option level argument set to
.BR SOL_NETLINK .
Unless otherwise noted,
.I optval
is a pointer to an
.IR int .
.TP
.BR NETLINK_PKTINFO " (since Linux 2.6.14)"
Enable
.B nl_pktinfo
control messages for received packets to get the extended
destination group number.
.TP
.BR NETLINK_ADD_MEMBERSHIP ,\ NETLINK_DROP_MEMBERSHIP " (since Linux 2.6.14)"
Join/leave a group specified by
.IR optval .
.\" commit 9a4595bc7e67962f13232ee55a64e063062c3a99
.\" Author: Patrick McHardy <kaber@trash.net>
.TP
.BR NETLINK_LIST_MEMBERSHIPS " (since Linux 4.2)"
Retrieve all groups a socket is a member of.
.I optval
is a pointer to
.B __u32
and
.I optlen
is the size of the array. The array is filled with the full membership set of the
socket, and the required array size is returned in
.I optlen.
.\" commit b42be38b2778eda2237fc759e55e3b698b05b315
.\" Author: David Herrmann <dh.herrmann@gmail.com>
.TP
.BR NETLINK_BROADCAST_ERROR " (since Linux 2.6.30)"
When not set,
.B netlink_broadcast()
only reports
.B ESRCH
errors and silently ignore
.B NOBUFS
errors.
.\" commit be0c22a46cfb79ab2342bb28fde99afa94ef868e
.\" Author: Pablo Neira Ayuso <pablo@netfilter.org>
.TP
.BR NETLINK_NO_ENOBUFS " (since Linux 2.6.30)"
This flag can be used by unicast and broadcast listeners to avoid receiving
.B ENOBUFS
errors.
.\" commit 38938bfe3489394e2eed5e40c9bb8f66a2ce1405
.\" Author: Pablo Neira Ayuso <pablo@netfilter.org>
.TP
.BR NETLINK_LISTEN_ALL_NSID " (since Linux 4.2)"
When set, this socket will receive netlink notifications from all network namespaces that
have an
.I nsid
assigned into the network namespace where the socket has been opened. The
.I nsid
is sent to user space via an ancillary data.
.\" commit 59324cf35aba5336b611074028777838a963d03b
.\" Author: Nicolas Dichtel <nicolas.dichtel@6wind.com>
.TP
.BR NETLINK_CAP_ACK " (since Linux 4.2)"
The kernel may fail to allocate the necessary room for the acknowledgment
message back to userspace. This option trims off the payload of the original
netlink message.
The netlink message header is still included, so the user can guess from the
sequence number what is the message that has triggered the acknowledgment.
.\" commit 0a6a3a23ea6efde079a5b77688541a98bf202721
.\" Author: Christophe Ricard <christophe.ricard@gmail.com>
.SH VERSIONS
The socket interface to netlink is a new feature of Linux 2.2.