diff options
author | Ido Schimmel <idosch@mellanox.com> | 2019-06-18 17:12:44 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2019-06-18 18:45:36 +0200 |
commit | c82481f7ea21be8ec960a28aef07bf258f6820b7 (patch) | |
tree | a08c812940496dafd652312cf88f7e1bb2624db1 /include | |
parent | netlink: Document all fields of 'struct nl_info' (diff) | |
download | linux-c82481f7ea21be8ec960a28aef07bf258f6820b7.tar.xz linux-c82481f7ea21be8ec960a28aef07bf258f6820b7.zip |
netlink: Add field to skip in-kernel notifications
The struct includes a 'skip_notify' flag that indicates if netlink
notifications to user space should be suppressed. As explained in commit
3b1137fe7482 ("net: ipv6: Change notifications for multipath add to
RTA_MULTIPATH"), this is useful to suppress per-nexthop RTM_NEWROUTE
notifications when an IPv6 multipath route is added / deleted. Instead,
one notification is sent for the entire multipath route.
This concept is also useful for in-kernel notifications. Sending one
in-kernel notification for the addition / deletion of an IPv6 multipath
route - instead of one per-nexthop - provides a significant increase in
the insertion / deletion rate to underlying devices.
Add a 'skip_notify_kernel' flag to suppress in-kernel notifications.
Signed-off-by: Ido Schimmel <idosch@mellanox.com>
Acked-by: Jiri Pirko <jiri@mellanox.com>
Reviewed-by: David Ahern <dsahern@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include')
-rw-r--r-- | include/net/netlink.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/include/net/netlink.h b/include/net/netlink.h index ce66e43b9b6a..e4650e5b64a1 100644 --- a/include/net/netlink.h +++ b/include/net/netlink.h @@ -381,12 +381,14 @@ struct nla_policy { * @nl_net: Network namespace * @portid: Netlink PORTID of requesting application * @skip_notify: Skip netlink notifications to user space + * @skip_notify_kernel: Skip selected in-kernel notifications */ struct nl_info { struct nlmsghdr *nlh; struct net *nl_net; u32 portid; - bool skip_notify; + u8 skip_notify:1, + skip_notify_kernel:1; }; /** |