netlink: add support for ext_ack missing attributes
authorJakub Kicinski <kuba@kernel.org>
Fri, 26 Aug 2022 03:09:31 +0000 (20:09 -0700)
committerPaolo Abeni <pabeni@redhat.com>
Tue, 30 Aug 2022 10:20:43 +0000 (12:20 +0200)
commit690252f19f0e486abb8590b3a7a03d4e065d93d4
treea656cf7a2cec54ed3ff0ff28df4c9176c0228763
parent0c95cea24f30eb28d464c593d8fbd64cd305791b
netlink: add support for ext_ack missing attributes

There is currently no way to report via extack in a structured way
that an attribute is missing. This leads to families resorting to
string messages.

Add a pair of attributes - @offset and @type for machine-readable
way of reporting missing attributes. The @offset points to the
nest which should have contained the attribute, @type is the
expected nla_type. The offset will be skipped if the attribute
is missing at the message level rather than inside a nest.

User space should be able to figure out which attribute enum
(AKA attribute space AKA attribute set) the nest pointed to by
@offset is using.

Reviewed-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Documentation/userspace-api/netlink/intro.rst
include/linux/netlink.h
include/uapi/linux/netlink.h
net/netlink/af_netlink.c