Re: [net-next PATCH 0/8] configuration support for switch headers & phy

From: Hariprasad Kelam <hidden>
Date: 2021-03-31 14:37:20
Also in: lkml

-----Original Message-----
From: Andrew Lunn <andrew@lunn.ch>
Sent: Sunday, March 28, 2021 11:17 PM
To: Sunil Kovvuri <redacted>
Cc: Hariprasad Kelam <redacted>; netdev@vger.kernel.org;
linux-kernel@vger.kernel.org; kuba@kernel.org; davem@davemloft.net;
Sunil Kovvuri Goutham [off-list ref]; Linu Cherian
[off-list ref]; Geethasowjanya Akula [off-list ref];
Jerin Jacob Kollanukkaran [off-list ref]; Subbaraya Sundeep Bhatta
[off-list ref]
Subject: [EXT] Re: [net-next PATCH 0/8] configuration support for switch
headers & phy
quoted
The usecase is simple, unlike DSA tag, this 4byte FDSA tag doesn't
have a ethertype, so HW cannot recognize this header. If such packers
arise, then HW parsing will fail and RSS will not work.

Hypothetically if we introduce some communication between MAC driver
and DSA driver, wouldn't that also become specific to the device, what
generic usecase that communication will have ?
Hi Sunil

We need to be careful with wording. Due to history, the Linux kernel uses
dsa to mean any driver to control an Ethernet switch. It does not imply the
{E}DSA protocol used by Marvell switches, or even that the switch is a
Marvell switch.

netdev_uses_dsa(ndev) will tell you if the MAC is being used to connect to a
switch. It is set by the Linux DSA core when the switch cluster is setup. That
could be before or after the MAC is configured up, which makes it a bit hard
to use, since you don't have a clear indicator when to evaluate to determine
if you need to change your packet parsing.

netdev_uses_dsa() looks at ndev->dsa_ptr. This is a pointer to the structure
which represents the port on the switch the MAC is connected to. In Linux
DSA terms, this is the CPU port. You can follow dsa_ptr->tag_ops which gives
you the tagger operations, i.e. those used to add and remove the
header/trailer. One member of that is proto. This contains the tagging
protocol, so EDSA, DSA, or potentially FDSA, if that is ever supported. And
this is all within the core DSA code, so is generic. It should work for any
tagging protocol used by any switch which Linux DSA supports.

So actually, everything you need is already present, you don't need a private
flag. But adding a notifier that the MAC has been connected to a switch and
ndev->dsa_ptr is set would be useful. We could maybe use NETDEV_CHANGE
for that, or NETDEV_CHANGELOWERSTATE, since the MAC is below the
switch slave interfaces.

Hi Andrew,
	We are looking into  DSA to MAC driver communication options, will get back once we have clear picture.

Thanks,
Hariprasad k 
      Andrew
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help