• Shmulik Ladkani's avatar
    net/sched: em_meta: Fix 'meta vlan' to correctly recognize zero VID frames · d65f2fa6
    Shmulik Ladkani authored
    META_COLLECTOR int_vlan_tag() assumes that if the accel tag (vlan_tci)
    is zero, then no vlan accel tag is present.
    
    This is incorrect for zero VID vlan accel packets, making the following
    match fail:
      tc filter add ... basic match 'meta(vlan mask 0xfff eq 0)' ...
    
    Apparently 'int_vlan_tag' was implemented prior VLAN_TAG_PRESENT was
    introduced in 05423b24 "vlan: allow null VLAN ID to be used"
    (and at time introduced, the 'vlan_tx_tag_get' call in em_meta was not
     adapted).
    
    Fix, testing skb_vlan_tag_present instead of testing skb_vlan_tag_get's
    value.
    
    Fixes: 05423b24 ("vlan: allow null VLAN ID to be used")
    Fixes: 1a31f204 ("netsched: Allow meta match on vlan tag on receive")
    Signed-off-by: default avatarShmulik Ladkani <shmulik.ladkani@gmail.com>
    Cc: Eric Dumazet <eric.dumazet@gmail.com>
    Cc: Stephen Hemminger <stephen@networkplumber.org>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    d65f2fa6
em_meta.c 22.9 KB