> -----Original Message----- > From: Andrew Lunn <[email protected]> > Sent: Sunday, March 28, 2021 11:17 PM > To: Sunil Kovvuri <[email protected]> > Cc: Hariprasad Kelam <[email protected]>; [email protected]; > [email protected]; [email protected]; [email protected]; > Sunil Kovvuri Goutham <[email protected]>; Linu Cherian > <[email protected]>; Geethasowjanya Akula <[email protected]>; > Jerin Jacob Kollanukkaran <[email protected]>; Subbaraya Sundeep Bhatta > <[email protected]> > 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

