• Jakub Sitnicki's avatar
    ipv6: Compute multipath hash for ICMP errors from offending packet · 23aebdac
    Jakub Sitnicki authored
    When forwarding or sending out an ICMPv6 error, look at the embedded
    packet that triggered the error and compute a flow hash over its
    headers.
    
    This let's us route the ICMP error together with the flow it belongs to
    when multipath (ECMP) routing is in use, which in turn makes Path MTU
    Discovery work in ECMP load-balanced or anycast setups (RFC 7690).
    
    Granted, end-hosts behind the ECMP router (aka servers) need to reflect
    the IPv6 Flow Label for PMTUD to work.
    
    The code is organized to be in parallel with ipv4 stack:
    
      ip_multipath_l3_keys -> ip6_multipath_l3_keys
      fib_multipath_hash   -> rt6_multipath_hash
    Signed-off-by: default avatarJakub Sitnicki <jkbs@redhat.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    23aebdac
icmp.c 25.9 KB