Re: [PATCH net v2] ipv6: omit traffic class when calculating flow hash
From: David Ahern
Date: Sat Jun 02 2018 - 16:33:53 EST
On 6/2/18 1:40 AM, 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>
> ---
> v2: introduce and use an inline helper as suggested by David Ahern
>
> include/net/ipv6.h | 5 +++++
> net/core/flow_dissector.c | 2 +-
> net/ipv6/route.c | 4 ++--
> 3 files changed, 8 insertions(+), 3 deletions(-)
>
Acked-by: David Ahern <dsahern@xxxxxxxxx>