Skip to content

net: Kernel side filtering for route dumps

David Ahern netdev 2 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v2 Latest11 patches 4 repliesIn review
  2. v19 patches 20 repliesSuperseded

Patches in v2 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/11netlink: Add answer_flags to netlink_callbackinclude/linux/netlink.h net/netlink/af_netlink.c+3 -10 replies
2/11net: Add struct for fib dump filterinclude/net/ip6_route.h include/net/ip_fib.h net/ipv4/fib_frontend.c +4 more+37 -110 replies
3/11net/ipv4: Plumb support for filtering route dumpsinclude/net/ip_fib.h net/ipv4/fib_frontend.c net/ipv4/fib_trie.c+39 -133 replies
4/11net/ipv6: Plumb support for filtering route dumpsnet/ipv6/ip6_fib.c net/ipv6/route.c+54 -140 replies
5/11net/mpls: Plumb support for filtering route dumpsnet/mpls/af_mpls.c+41 -10 replies
6/11ipmr: Refactor mr_rtm_dumprouteinclude/linux/mroute_base.h net/ipv4/ipmr_base.c+61 -330 replies
7/11net: Plumb support for filtering ipv4 and ipv6 multicast route dumpsinclude/linux/mroute_base.h net/ipv4/ipmr.c net/ipv4/ipmr_base.c +1 more+73 -120 replies
8/11net: Enable kernel side filtering of route dumpsinclude/net/ip_fib.h net/ipv4/fib_frontend.c net/ipv4/ipmr.c +3 more+53 -150 replies
9/11net/mpls: Handle kernel side filtering of route dumpsnet/mpls/af_mpls.c+28 -50 replies
10/11net/ipv6: Bail early if user only wants cloned entriesnet/ipv6/ip6_fib.c+5 -20 replies
11/11net/ipv4: Bail early if user only wants prefix entriesnet/ipv4/fib_frontend.c+6 -20 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v2 yet.

Read the v2 thread

Cover letter [PATCH v2 net-next 00/11] net: Kernel side filtering for route dumps

From: David Ahern <[email protected]>

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.

v2
- better handling of requests for a specific table. Rather than walking the hash of all tables, lookup the specific table and dump it
- refactor mr_rtm_dumproute moving the loop over the table into a helper that can be invoked directly
- add hook to return NLM_F_DUMP_FILTERED in DONE message to ensure it is returned even when the dump returns nothing

David Ahern (11):
netlink: Add answer_flags to netlink_callback
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
ipmr: Refactor mr_rtm_dumproute
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 |  11 +++-
 include/linux/netlink.h     |   1 +
 include/net/ip6_route.h     |   1 +
 include/net/ip_fib.h        |  17 ++++--
 net/ipv4/fib_frontend.c     |  76 ++++++++++++++++++++++----
 net/ipv4/fib_trie.c         |  37 +++++++++----
 net/ipv4/ipmr.c             |  22 ++++++--
 net/ipv4/ipmr_base.c        | 126 ++++++++++++++++++++++++++++++++------------
 net/ipv6/ip6_fib.c          |  34 +++++++++---
 net/ipv6/ip6mr.c            |  21 ++++++--
 net/ipv6/route.c            |  40 +++++++++++---
 net/mpls/af_mpls.c          |  92 +++++++++++++++++++++++++++-----
 net/netlink/af_netlink.c    |   3 +-
 13 files changed, 386 insertions(+), 95 deletions(-)
Signature · 1 line
2.11.0