• Lorenzo Bianconi's avatar
    net: ip_gre: always reports o_key to userspace · 897ea28b
    Lorenzo Bianconi authored
    [ Upstream commit feaf5c79 ]
    
    Erspan protocol (version 1 and 2) relies on o_key to configure
    session id header field. However TUNNEL_KEY bit is cleared in
    erspan_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 erspan1 type erspan local 192.168.0.1 remote 192.168.0.2 \
        key 1 seq erspan_ver 1
    $ip link set erspan1 up
    $ip -d link sh erspan1
    
    erspan1@NONE: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc pfifo_fast state UNKNOWN mode DEFAULT
      link/ether 52:aa:99:95:9a:b5 brd ff:ff:ff:ff:ff:ff promiscuity 0 minmtu 68 maxmtu 1500
      erspan remote 192.168.0.2 local 192.168.0.1 ttl inherit ikey 0.0.0.1 iseq oseq erspan_index 0
    
    Fix the issue adding TUNNEL_KEY bit to the o_flags parameter in
    ipgre_fill_info
    
    Fixes: 84e54fe0 ("gre: introduce native tunnel support for ERSPAN")
    Signed-off-by: default avatarLorenzo Bianconi <lorenzo.bianconi@redhat.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    897ea28b
ip_gre.c 45.4 KB