• Lorenzo Bianconi's avatar
    net: ip6_gre: always reports o_key to userspace · c706863b
    Lorenzo Bianconi authored
    As Erspan_v4, Erspan_v6 protocol relies on o_key to configure
    session id header field. However TUNNEL_KEY bit is cleared in
    ip6erspan_tunnel_xmit since ERSPAN protocol does not set the key field
    of the external GRE header and so the configured o_key is not reported
    to userspace. The issue can be triggered with the following reproducer:
    
    $ip link add ip6erspan1 type ip6erspan local 2000::1 remote 2000::2 \
        key 1 seq erspan_ver 1
    $ip link set ip6erspan1 up
    ip -d link sh ip6erspan1
    
    ip6erspan1@NONE: <BROADCAST,MULTICAST> mtu 1422 qdisc noop state DOWN mode DEFAULT
        link/ether ba:ff:09:24:c3:0e brd ff:ff:ff:ff:ff:ff promiscuity 0 minmtu 68 maxmtu 1500
        ip6erspan remote 2000::2 local 2000::1 encaplimit 4 flowlabel 0x00000 ikey 0.0.0.1 iseq oseq
    
    Fix the issue adding TUNNEL_KEY bit to the o_flags parameter in
    ip6gre_fill_info
    
    Fixes: 5a963eb6 ("ip6_gre: Add ERSPAN native tunnel support")
    Signed-off-by: default avatarLorenzo Bianconi <lorenzo.bianconi@redhat.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    c706863b
ip6_gre.c 57.5 KB