• Maxime Chevallier's avatar
    net: mvpp2: Add hardware offloading for VLAN filtering · 56beda3d
    Maxime Chevallier authored
    Marvell PPv2 controller allows for generic packet filtering. This commit
    adds entries to implement VLAN filtering. The approach taken is :
    
     - Filter entries that would match on the presence of the VLAN tag
       (existing VLAN detection, DSA / EDSA detection) will set the next
       lookup ID to be for the VID.
    
     - For each VLAN existing on a given port, we add an entry that matches
       this specific VID. If the incoming packet matches the VID entry, it is
       set for the next lookup in the chain (LU_L2).
    
     - A Guard entry is added for each port, that will match if the incoming
       packet didn't match any of the above VID entries. This entry tags the
       packet to be dropped.
    
    Due to this design, and the fact that the total 256 filter entries are
    also used for other purposes, we have a limit of 10 VLANs per port. To
    accommodate the case where we would need more VLANS on one port, this
    patch implements the ndo_set_features to allow for disabling of VLAN
    filtering using ethtool.
    
    The default config has VLAN filtering disabled.
    Signed-off-by: default avatarMaxime Chevallier <maxime.chevallier@bootlin.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    56beda3d
mvpp2.c 246 KB