summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorSowmini Varadhan <sowmini.varadhan@oracle.com>2015-09-11 16:48:48 -0400
committerDavid S. Miller <davem@davemloft.net>2015-09-15 15:25:02 -0700
commitd5566fd72ec1924958fcfd48b65c022c8f7eae64 (patch)
treefb7c5e29238657e89d33320091d8b8ae3d5f78e9 /include
parentad1e7b97b3adb91d46f3adb70a7867a50fc274cf (diff)
downloadlinux-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.h3
-rw-r--r--include/uapi/linux/rtnetlink.h1
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 */