From: David Ahern <dsah...@gmail.com> Implement kernel side filtering of route dumps by protocol (e.g., which routing daemon installed the route), route type (e.g., unicast), table id and nexthop device.
iproute2 has been doing this filtering in userspace for years; pushing the filters to the kernel side reduces the amount of data the kernel sends and reduces wasted cycles on both sides processing unwanted data. These initial options provide a huge improvement for efficiently examining routes on large scale systems. David Ahern (9): net: Add struct for fib dump filter net/ipv4: Plumb support for filtering route dumps net/ipv6: Plumb support for filtering route dumps net/mpls: Plumb support for filtering route dumps net: Plumb support for filtering ipv4 and ipv6 multicast route dumps net: Enable kernel side filtering of route dumps net/mpls: Handle kernel side filtering of route dumps net/ipv6: Bail early if user only wants cloned entries net/ipv4: Bail early if user only wants prefix entries include/linux/mroute_base.h | 5 +-- include/net/ip6_route.h | 1 + include/net/ip_fib.h | 14 ++++++-- net/ipv4/fib_frontend.c | 64 +++++++++++++++++++++++++++------ net/ipv4/fib_trie.c | 37 +++++++++++++------ net/ipv4/ipmr.c | 8 +++-- net/ipv4/ipmr_base.c | 33 ++++++++++++++++- net/ipv6/ip6_fib.c | 17 +++++++-- net/ipv6/ip6mr.c | 7 ++-- net/ipv6/route.c | 40 ++++++++++++++++----- net/mpls/af_mpls.c | 86 +++++++++++++++++++++++++++++++++++++++------ 11 files changed, 262 insertions(+), 50 deletions(-) -- 2.11.0