• Guillaume Nault's avatar
    bareudp: forbid mixing IP and MPLS in multiproto mode · 302d201b
    Guillaume Nault authored
    In multiproto mode, bareudp_xmit() accepts sending multicast MPLS and
    IPv6 packets regardless of the bareudp ethertype. In practice, this
    let an IP tunnel send multicast MPLS packets, or an MPLS tunnel send
    IPv6 packets.
    
    We need to restrict the test further, so that the multiproto mode only
    enables
      * IPv6 for IPv4 tunnels,
      * or multicast MPLS for unicast MPLS tunnels.
    
    To improve clarity, the protocol validation is moved to its own
    function, where each logical test has its own condition.
    
    v2: s/ntohs/htons/
    
    Fixes: 4b5f6723 ("net: Special handling for IP & MPLS.")
    Signed-off-by: default avatarGuillaume Nault <gnault@redhat.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    302d201b
bareudp.c 20.6 KB