diff options
author | Sowmini Varadhan <sowmini.varadhan@oracle.com> | 2015-09-11 16:48:48 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2015-09-15 15:25:02 -0700 |
commit | d5566fd72ec1924958fcfd48b65c022c8f7eae64 (patch) | |
tree | fb7c5e29238657e89d33320091d8b8ae3d5f78e9 /include | |
parent | ad1e7b97b3adb91d46f3adb70a7867a50fc274cf (diff) | |
download | linux-stable-d5566fd72ec1924958fcfd48b65c022c8f7eae64.tar.gz linux-stable-d5566fd72ec1924958fcfd48b65c022c8f7eae64.tar.bz2 linux-stable-d5566fd72ec1924958fcfd48b65c022c8f7eae64.zip |
rtnetlink: RTEXT_FILTER_SKIP_STATS support to avoid dumping inet/inet6 stats
Many commonly used functions like getifaddrs() invoke RTM_GETLINK
to dump the interface information, and do not need the
the AF_INET6 statististics that are always returned by default
from rtnl_fill_ifinfo().
Computing the statistics can be an expensive operation that impacts
scaling, so it is desirable to avoid this if the information is
not needed.
This patch adds a the RTEXT_FILTER_SKIP_STATS extended info flag that
can be passed with netlink_request() to avoid statistics computation
for the ifinfo path.
Signed-off-by: Sowmini Varadhan <sowmini.varadhan@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include')
-rw-r--r-- | include/net/rtnetlink.h | 3 | ||||
-rw-r--r-- | include/uapi/linux/rtnetlink.h | 1 |
2 files changed, 3 insertions, 1 deletions
diff --git a/include/net/rtnetlink.h b/include/net/rtnetlink.h index 18fdb98185ab..aff6ceb891a9 100644 --- a/include/net/rtnetlink.h +++ b/include/net/rtnetlink.h @@ -122,7 +122,8 @@ struct rtnl_af_ops { int family; int (*fill_link_af)(struct sk_buff *skb, - const struct net_device *dev); + const struct net_device *dev, + u32 ext_filter_mask); size_t (*get_link_af_size)(const struct net_device *dev); int (*validate_link_af)(const struct net_device *dev, diff --git a/include/uapi/linux/rtnetlink.h b/include/uapi/linux/rtnetlink.h index 06625b401422..4db0b3ccb497 100644 --- a/include/uapi/linux/rtnetlink.h +++ b/include/uapi/linux/rtnetlink.h @@ -667,6 +667,7 @@ struct tcamsg { #define RTEXT_FILTER_VF (1 << 0) #define RTEXT_FILTER_BRVLAN (1 << 1) #define RTEXT_FILTER_BRVLAN_COMPRESSED (1 << 2) +#define RTEXT_FILTER_SKIP_STATS (1 << 3) /* End of information exported to user level */ |