]> git.ipfire.org Git - thirdparty/linux.git/commit - lib/nlattr.c
netlink: add NLA_REJECT policy type
authorJohannes Berg <johannes.berg@intel.com>
Mon, 17 Sep 2018 09:57:28 +0000 (11:57 +0200)
committerDavid S. Miller <davem@davemloft.net>
Wed, 19 Sep 2018 02:51:29 +0000 (19:51 -0700)
commit568b742a9d9888aca876b6ad9fa45490f18bee0a
treee8d1bcd4126ebbf1216768d38d74ef332382c75a
parent89f4b9a6e4c60d005c015b170508adb9978d0fd4
netlink: add NLA_REJECT policy type

In some situations some netlink attributes may be used for output
only (kernel->userspace) or may be reserved for future use. It's
then helpful to be able to prevent userspace from using them in
messages sent to the kernel, since they'd otherwise be ignored and
any future will become impossible if this happens.

Add NLA_REJECT to the policy which does nothing but reject (with
EINVAL) validation of any messages containing this attribute.
Allow for returning a specific extended ACK error message in the
validation_data pointer.

While at it clear up the documentation a bit - the NLA_BITFIELD32
documentation was added to the list of len field descriptions.

Also, use NL_SET_BAD_ATTR() in one place where it's open-coded.

The specific case I have in mind now is a shared nested attribute
containing request/response data, and it would be pointless and
potentially confusing to have userspace include response data in
the messages that actually contain a request.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Reviewed-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/netlink.h
lib/nlattr.c