net: Extend struct flowi6 with multipath hash
authorJakub Sitnicki <jkbs@redhat.com>
Wed, 23 Aug 2017 07:58:28 +0000 (09:58 +0200)
committerDavid S. Miller <davem@davemloft.net>
Fri, 25 Aug 2017 01:21:17 +0000 (18:21 -0700)
Allow for functions that fill out the IPv6 flow info to also pass a hash
computed over the skb contents. The hash value will drive the multipath
routing decisions.

This is intended for special treatment of ICMPv6 errors, where we would
like to make a routing decision based on the flow identifying the
offending IPv6 datagram that triggered the error, rather than the flow
of the ICMP error itself.

Signed-off-by: Jakub Sitnicki <jkbs@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/flow.h

index f3dc61b..eb60cee 100644 (file)
@@ -149,6 +149,7 @@ struct flowi6 {
 #define fl6_ipsec_spi          uli.spi
 #define fl6_mh_type            uli.mht.type
 #define fl6_gre_key            uli.gre_key
+       __u32                   mp_hash;
 } __attribute__((__aligned__(BITS_PER_LONG/8)));
 
 struct flowidn {