> -----Original Message----- > From: Andrew Lunn <and...@lunn.ch> > Sent: Sunday, March 28, 2021 11:17 PM > To: Sunil Kovvuri <sunil.kovv...@gmail.com> > Cc: Hariprasad Kelam <hke...@marvell.com>; net...@vger.kernel.org; > linux-kernel@vger.kernel.org; k...@kernel.org; da...@davemloft.net; > Sunil Kovvuri Goutham <sgout...@marvell.com>; Linu Cherian > <lcher...@marvell.com>; Geethasowjanya Akula <gak...@marvell.com>; > Jerin Jacob Kollanukkaran <jer...@marvell.com>; Subbaraya Sundeep Bhatta > <sbha...@marvell.com> > Subject: [EXT] Re: [net-next PATCH 0/8] configuration support for switch > headers & phy > > > 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