• Vladimir Oltean's avatar
    net: dsa: tag_sja1105: stop asking the sja1105 driver in sja1105_xmit_tpid · 8ded9160
    Vladimir Oltean authored
    Introduced in commit 38b5beea ("net: dsa: sja1105: prepare tagger
    for handling DSA tags and VLAN simultaneously"), the sja1105_xmit_tpid
    function solved quite a different problem than our needs are now.
    
    Then, we used best-effort VLAN filtering and we were using the xmit_tpid
    to tunnel packets coming from an 8021q upper through the TX VLAN allocated
    by tag_8021q to that egress port. The need for a different VLAN protocol
    depending on switch revision came from the fact that this in itself was
    more of a hack to trick the hardware into accepting tunneled VLANs in
    the first place.
    
    Right now, we deny 8021q uppers (see sja1105_prechangeupper). Even if we
    supported them again, we would not do that using the same method of
    {tunneling the VLAN on egress, retagging the VLAN on ingress} that we
    had in the best-effort VLAN filtering mode. It seems rather simpler that
    we just allocate a VLAN in the VLAN table that is simply not used by the
    bridge at all, or by any other port.
    
    Anyway, I have 2 gripes with the current sja1105_xmit_tpid:
    
    1. When sending packets on behalf of a VLAN-aware bridge (with the new
       TX forwarding offload framework) plus untagged (with the tag_8021q
       VLAN added by the tagger) packets, we can see that on SJA1105P/Q/R/S
       and later (which have a qinq_tpid of ETH_P_8021AD), some packets sent
       through the DSA master have a VLAN protocol of 0x8100 and others of
       0x88a8. This is strange and there is no reason for it now. If we have
       a bridge and are therefore forced to send using that bridge's TPID,
       we can as well blend with that bridge's VLAN protocol for all packets.
    
    2. The sja1105_xmit_tpid introduces a dependency on the sja1105 driver,
       because it looks inside dp->priv. It is desirable to keep as much
       separation between taggers and switch drivers as possible. Now it
       doesn't do that anymore.
    Signed-off-by: default avatarVladimir Oltean <vladimir.oltean@nxp.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    8ded9160
sja1105_main.c 95.4 KB