lkml.org 
[lkml]   [2020]   [May]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [PATCH v2 net-next 08/15] net: dsa: sja1105: prepare tagger for handling DSA tags and VLAN simultaneously
From
Date


On 5/11/2020 6:53 AM, Vladimir Oltean wrote:
> From: Vladimir Oltean <vladimir.oltean@nxp.com>
>
> In VLAN-unaware mode, sja1105 uses VLAN tags with a custom TPID of
> 0xdadb. While in the yet-to-be introduced best_effort_vlan_filtering
> mode, it needs to work with normal VLAN TPID values.
>
> A complication arises when we must transmit a VLAN-tagged packet to the
> switch when it's in VLAN-aware mode. We need to construct a packet with
> 2 VLAN tags, and the switch will use the outer header for routing and
> pop it on egress. But sadly, here the 2 hardware generations don't
> behave the same:
>
> - E/T switches won't pop an ETH_P_8021AD tag on egress, it seems
> (packets will remain double-tagged).
> - P/Q/R/S switches will drop a packet with 2 ETH_P_8021Q tags (it looks
> like it tries to prevent VLAN hopping).
>
> But looks like the reverse is also true:
>
> - E/T switches have no problem popping the outer tag from packets with
> 2 ETH_P_8021Q tags.
> - P/Q/R/S will have no problem popping a single tag even if that is
> ETH_P_8021AD.
>
> So it is clear that if we want the hardware to work with dsa_8021q
> tagging in VLAN-aware mode, we need to send different TPIDs depending on
> revision. Keep that information in priv->info->qinq_tpid.
>
> The per-port tagger structure will hold an xmit_tpid value that depends
> not only upon the qinq_tpid, but also upon the VLAN awareness state
> itself (in case we must transmit using 0xdadb).
>
> Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>

Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
--
Florian

\
 
 \ /
  Last update: 2020-05-12 05:35    [W:0.135 / U:0.168 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site