All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH net-next v4 0/5] net: introduce and use route hint
@ 2019-11-20 12:47 Paolo Abeni
  2019-11-20 12:47 ` [PATCH net-next v4 1/5] ipv6: add fib6_has_custom_rules() helper Paolo Abeni
                   ` (6 more replies)
  0 siblings, 7 replies; 13+ messages in thread
From: Paolo Abeni @ 2019-11-20 12:47 UTC (permalink / raw)
  To: netdev
  Cc: David S. Miller, Willem de Bruijn, Edward Cree, David Ahern,
	Eric Dumazet

This series leverages the listification infrastructure to avoid
unnecessary route lookup on ingress packets. In absence of custom rules,
packets with equal daddr will usually land on the same dst.

When processing packet bursts (lists) we can easily reference the previous
dst entry. When we hit the 'same destination' condition we can avoid the
route lookup, coping the already available dst.

Detailed performance numbers are available in the individual commit
messages.

v3 -> v4:
 - move helpers to their own patches (Eric D.)
 - enable hints for SUBTREE builds (David A.)
 - re-enable hints for ipv4 forward (David A.)

v2 -> v3:
 - use fib*_has_custom_rules() helpers (David A.)
 - add ip*_extract_route_hint() helper (Edward C.)
 - use prev skb as hint instead of copying data (Willem )

v1 -> v2:
 - fix build issue with !CONFIG_IP*_MULTIPLE_TABLES
 - fix potential race in ip6_list_rcv_finish()

Paolo Abeni (5):
  ipv6: add fib6_has_custom_rules() helper
  ipv6: keep track of routes using src
  ipv6: introduce and uses route look hints for list input.
  ipv4: move fib4_has_custom_rules() helper to public header
  ipv4: use dst hint for ipv4 list receive

 include/net/ip6_fib.h    | 39 +++++++++++++++++++++++++++++++++++++
 include/net/ip_fib.h     | 10 ++++++++++
 include/net/netns/ipv6.h |  3 +++
 include/net/route.h      |  4 ++++
 net/ipv4/fib_frontend.c  | 10 ----------
 net/ipv4/ip_input.c      | 35 +++++++++++++++++++++++++++++----
 net/ipv4/route.c         | 42 ++++++++++++++++++++++++++++++++++++++++
 net/ipv6/ip6_fib.c       |  4 ++++
 net/ipv6/ip6_input.c     | 26 +++++++++++++++++++++++--
 net/ipv6/route.c         |  3 +++
 10 files changed, 160 insertions(+), 16 deletions(-)

-- 
2.21.0


^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2019-11-21 22:46 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-11-20 12:47 [PATCH net-next v4 0/5] net: introduce and use route hint Paolo Abeni
2019-11-20 12:47 ` [PATCH net-next v4 1/5] ipv6: add fib6_has_custom_rules() helper Paolo Abeni
2019-11-21 20:07   ` David Ahern
2019-11-20 12:47 ` [PATCH net-next v4 2/5] ipv6: keep track of routes using src Paolo Abeni
2019-11-21 20:09   ` David Ahern
2019-11-20 12:47 ` [PATCH net-next v4 3/5] ipv6: introduce and uses route look hints for list input Paolo Abeni
2019-11-21 20:11   ` David Ahern
2019-11-20 12:47 ` [PATCH net-next v4 4/5] ipv4: move fib4_has_custom_rules() helper to public header Paolo Abeni
2019-11-21 20:12   ` David Ahern
2019-11-20 12:47 ` [PATCH net-next v4 5/5] ipv4: use dst hint for ipv4 list receive Paolo Abeni
2019-11-21 21:16   ` David Ahern
2019-11-20 16:54 ` [PATCH net-next v4 0/5] net: introduce and use route hint Edward Cree
2019-11-21 22:46 ` David Miller

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.