ipv6: route: dissect flow in input path if fib rules need it
authorRoopa Prabhu <roopa@cumulusnetworks.com>
Thu, 1 Mar 2018 03:43:22 +0000 (22:43 -0500)
committerDavid S. Miller <davem@davemloft.net>
Thu, 1 Mar 2018 03:44:44 +0000 (22:44 -0500)
commit5e5d6fed374155ba1a7a5ca5f12fbec2285d06a2
tree92e19ce9d5e58ee33bbface8a6b5f4001c28a06c
parente37b1e978bec5334dc379d8c2423d063af207430
ipv6: route: dissect flow in input path if fib rules need it

Dissect flow in fwd path if fib rules require it. Controlled by
a flag to avoid penatly for the common case. Flag is set when fib
rules with sport, dport and proto match that require flow dissect
are installed. Also passes the dissected hash keys to the multipath
hash function when applicable to avoid dissecting the flow again.
icmp packets will continue to use inner header for hash
calculations.

Signed-off-by: Roopa Prabhu <roopa@cumulusnetworks.com>
Acked-by: Paolo Abeni <pabeni@redhat.com>
Acked-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/ip6_fib.h
include/net/ip6_route.h
include/net/netns/ipv6.h
net/ipv6/fib6_rules.c
net/ipv6/icmp.c
net/ipv6/route.c