• Vladimir Oltean's avatar
    net: dsa: sja1105: delete vlan delta save/restore logic · 6dfd23d3
    Vladimir Oltean authored
    With the best_effort_vlan_filtering mode now gone, the driver does not
    have 3 operating modes anymore (VLAN-unaware, VLAN-aware and best effort),
    but only 2.
    
    The idea is that we will gain support for network stack I/O through a
    VLAN-aware bridge, using the data plane offload framework (imprecise RX,
    imprecise TX). So the VLAN-aware use case will be more functional.
    
    But standalone ports that are part of the same switch when some other
    ports are under a VLAN-aware bridge should work too. Termination on
    those should work through the tag_8021q RX VLAN and TX VLAN.
    
    This was not possible using the old logic, because:
    - in VLAN-unaware mode, only the tag_8021q VLANs were committed to hw
    - in VLAN-aware mode, only the bridge VLANs were committed to hw
    - in best-effort VLAN mode, both the tag_8021q and bridge VLANs were
      committed to hw
    
    The strategy for the new VLAN-aware mode is to allow the bridge and the
    tag_8021q VLANs to coexist in the VLAN table at the same time.
    
    [ yes, we need to make sure that the bridge cannot install a tag_8021q
      VLAN, but ]
    
    This means that the save/restore logic introduced by commit ec5ae610
    ("net: dsa: sja1105: save/restore VLANs using a delta commit method")
    does not serve a purpose any longer. We can delete it and restore the
    old code that simply adds a VLAN to the VLAN table and calls it a day.
    
    Note that we keep the sja1105_commit_pvid() function from those days,
    but adapt it slightly. Ports that are under a VLAN-aware bridge use the
    bridge's pvid, ports that are standalone or under a VLAN-unaware bridge
    use the tag_8021q pvid, for local termination or VLAN-unaware forwarding.
    
    Now, when the vlan_filtering property is toggled for the bridge, the
    pvid of the ports beneath it is the only thing that's changing, we no
    longer delete some VLANs and restore others.
    Signed-off-by: default avatarVladimir Oltean <vladimir.oltean@nxp.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    6dfd23d3
sja1105_main.c 87.2 KB