• 배석진's avatar
    flow_dissector: do not dissect l4 ports for fragments · 62230715
    배석진 authored
    Only first fragment has the sport/dport information,
    not the following ones.
    
    If we want consistent hash for all fragments, we need to
    ignore ports even for first fragment.
    
    This bug is visible for IPv6 traffic, if incoming fragments
    do not have a flow label, since skb_get_hash() will give
    different results for first fragment and following ones.
    
    It is also visible if any routing rule wants dissection
    and sport or dport.
    
    See commit 5e5d6fed ("ipv6: route: dissect flow
    in input path if fib rules need it") for details.
    
    [edumazet] rewrote the changelog completely.
    
    Fixes: 06635a35 ("flow_dissect: use programable dissector in skb_flow_dissect and friends")
    Signed-off-by: default avatar배석진 <soukjin.bae@samsung.com>
    Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    62230715
flow_dissector.c 42.9 KB