Re: [PATCH net] ipv6: omit traffic class when calculating flow hash

From: Ido Schimmel
Date: Fri Jun 01 2018 - 14:19:41 EST


On Fri, Jun 01, 2018 at 12:34:41PM +0200, Michal Kubecek wrote:
> Some of the code paths calculating flow hash for IPv6 use flowlabel member
> of struct flowi6 which, despite its name, encodes both flow label and
> traffic class. If traffic class changes within a TCP connection (as e.g.
> ssh does), ECMP route can switch between path. It's also incosistent with
> other code paths where ip6_flowlabel() (returning only flow label) is used
> to feed the key.
>
> Use only flow label everywhere, including one place where hash key is set
> using ip6_flowinfo().
>
> Fixes: 51ebd3181572 ("ipv6: add support of equal cost multipath (ECMP)")
> Fixes: f70ea018da06 ("net: Add functions to get skb->hash based on flow structures")
> Signed-off-by: Michal Kubecek <mkubecek@xxxxxxx>

Hi Michal,

Please consider adding a test case to
tools/testing/selftests/net/fib_tests.sh

Personally, I tested the patch by looping over different values of 'tos'
for 'ip route get' and confirmed that the same nexthop is selected.

Thanks!