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

From: Michal Kubecek
Date: Sat Jun 02 2018 - 03:54:27 EST


On Fri, Jun 01, 2018 at 09:19:29PM +0300, Ido Schimmel wrote:
> 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>
>
> 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 for the tip, I'll look into it next week.

Michal Kubecek