net: rtnetlink: add ndm flags and state mask attributes
authorNikolay Aleksandrov <razor@blackwall.org>
Wed, 13 Apr 2022 10:52:00 +0000 (13:52 +0300)
committerDavid S. Miller <davem@davemloft.net>
Wed, 13 Apr 2022 11:46:26 +0000 (12:46 +0100)
Add ndm flags/state masks which will be used for bulk delete filtering.
All of these are used by the bridge and vxlan drivers. Also minimal attr
policy validation is added, it is up to ndo_fdb_del_bulk implementers to
further validate them.

Signed-off-by: Nikolay Aleksandrov <razor@blackwall.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/uapi/linux/neighbour.h
net/core/rtnetlink.c

index db05fb55055e94c2e3853e75bff33df105247360..39c565e460c7faa2c06640f0a30337d393a80a7e 100644 (file)
@@ -32,6 +32,8 @@ enum {
        NDA_NH_ID,
        NDA_FDB_EXT_ATTRS,
        NDA_FLAGS_EXT,
+       NDA_NDM_STATE_MASK,
+       NDA_NDM_FLAGS_MASK,
        __NDA_MAX
 };
 
index 520d50fcaaea566183d694cdbc0196bbc05748f0..ab7fb9a16da92d64c4215aeb5bfa494961e0f951 100644 (file)
@@ -4172,6 +4172,8 @@ EXPORT_SYMBOL(ndo_dflt_fdb_del);
 static const struct nla_policy fdb_del_bulk_policy[NDA_MAX + 1] = {
        [NDA_VLAN]      = { .type = NLA_U16 },
        [NDA_IFINDEX]   = NLA_POLICY_MIN(NLA_S32, 1),
+       [NDA_NDM_STATE_MASK]    = { .type = NLA_U16  },
+       [NDA_NDM_FLAGS_MASK]    = { .type = NLA_U8 },
 };
 
 static int rtnl_fdb_del(struct sk_buff *skb, struct nlmsghdr *nlh,