• Vladimir Oltean's avatar
    net: dsa: sja1105: delete the best_effort_vlan_filtering mode · 0fac6aa0
    Vladimir Oltean authored
    Simply put, the best-effort VLAN filtering mode relied on VLAN retagging
    from a bridge VLAN towards a tag_8021q sub-VLAN in order to be able to
    decode the source port in the tagger, but the VLAN retagging
    implementation inside the sja1105 chips is not the best and we were
    relying on marginal operating conditions.
    
    The most notable limitation of the best-effort VLAN filtering mode is
    its incapacity to treat this case properly:
    
    ip link add br0 type bridge vlan_filtering 1
    ip link set swp2 master br0
    ip link set swp4 master br0
    bridge vlan del dev swp4 vid 1
    bridge vlan add dev swp4 vid 1 pvid
    
    When sending an untagged packet through swp2, the expectation is for it
    to be forwarded to swp4 as egress-tagged (so it will contain VLAN ID 1
    on egress). But the switch will send it as egress-untagged.
    
    There was an attempt to fix this here:
    https://patchwork.kernel.org/project/netdevbpf/patch/20210407201452.1703261-2-olteanv@gmail.com/
    
    but it failed miserably because it broke PTP RX timestamping, in a way
    that cannot be corrected due to hardware issues related to VLAN
    retagging.
    
    So with either PTP broken or pushing VLAN headers on egress for untagged
    packets being broken, the sad reality is that the best-effort VLAN
    filtering code is broken. Delete it.
    
    Note that this means there will be a temporary loss of functionality in
    this driver until it is replaced with something better (network stack
    RX/TX capability for "mode 2" as described in
    Documentation/networking/dsa/sja1105.rst, the "port under VLAN-aware
    bridge" case). We simply cannot keep this code until that driver rework
    is done, it is super bloated and tangled with tag_8021q.
    Signed-off-by: default avatarVladimir Oltean <vladimir.oltean@nxp.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    0fac6aa0
sja1105_vl.c 22.8 KB