[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20211020175852.1127042-1-vladimir.oltean@nxp.com>
Date: Wed, 20 Oct 2021 20:58:47 +0300
From: Vladimir Oltean <vladimir.oltean@....com>
To: netdev@...r.kernel.org, Jakub Kicinski <kuba@...nel.org>,
"David S. Miller" <davem@...emloft.net>, Po Liu <po.liu@....com>
Cc: Florian Fainelli <f.fainelli@...il.com>,
Andrew Lunn <andrew@...n.ch>,
Vivien Didelot <vivien.didelot@...il.com>,
Vladimir Oltean <olteanv@...il.com>,
Yangbo Lu <yangbo.lu@....com>,
Hongbo Wang <hongbo.wang@....com>,
Xiaoliang Yang <xiaoliang.yang_1@....com>,
Alexandre Belloni <alexandre.belloni@...tlin.com>,
Claudiu Manoil <claudiu.manoil@....com>,
UNGLinuxDriver@...rochip.com
Subject: [PATCH v2 net-next 0/5] Ocelot switch: support a config where all VLANs are egress-untagged
Changes in v2:
Fixed build with CONFIG_BRIDGE_MRP=y.
Po Liu is working on a use case where a station attached to the Felix
DSA switch from NXP LS1028A must see traffic which is coming from
multiple sources, in multiple VLANs, as VLAN-untagged. This is currently
impossible with the driver.
The ocelot switch family have restricted functionality in terms of
stripping bridging service VLANs on the egress of a port.
Where the 'bridge vlan add' command can have the 'untagged' flag for
each VLAN entry, the ocelot hardware can have no more than one untagged
VLAN per port, or all of them.
The driver currently only supports the first option (at most one
untagged VLAN). So while one bridge VLAN tag can be stripped at egress
towards this external station, not all of them can. This series adds
support for the second option.
Vladimir Oltean (5):
net: mscc: ocelot: add a type definition for REW_TAG_CFG_TAG_CFG
net: mscc: ocelot: convert the VLAN masks to a list
net: mscc: ocelot: allow a config where all bridge VLANs are
egress-untagged
net: mscc: ocelot: add the local station MAC addresses in VID 0
net: mscc: ocelot: track the port pvid using a pointer
drivers/net/ethernet/mscc/ocelot.c | 272 ++++++++++++++++++-------
drivers/net/ethernet/mscc/ocelot.h | 1 +
drivers/net/ethernet/mscc/ocelot_mrp.c | 8 +-
drivers/net/ethernet/mscc/ocelot_net.c | 12 +-
include/soc/mscc/ocelot.h | 24 ++-
5 files changed, 223 insertions(+), 94 deletions(-)
--
2.25.1
Powered by blists - more mailing lists