On Tue, May 04, 2021 at 22:33, Andrew Lunn <andrew@xxxxxxx> wrote: >> There is really no need to recompute the static parts of the tags on >> each skb. It would mean moving some knowledge of the tagging format to >> the driver. But that boundary is pretty artificial for >> mv88e6xxx. tag_dsa has no use outside of mv88e6xxx, and mv88e6xxx does >> not work with any other tagger. I suppose you could even move the whole >> tagger to drivers/net/dsa/mv88e6xxx/? >> >> What do you think? >> >> Andrew? > > We have resisted this before. > > What information do you actually need to share between the tagger and > the driver? So far: - Trunk/LAG ID to netdev mappings (this is stored on the dst now, but I think I have seen the light and agree with Vladimir that it really has no business there). - DSA dev/port to bridge netdev mappings for the forwarding offloading in this RFC (or preferably the actual tag templates to use on egress since that would probably give you better performance) In the future: - Completions for in-flight remote management operations. - FlowID to TC rule mappings (from the "Switch Egress header" when we enable that) - In-band signaling between firmware running on the IMP and the driver for things like MRP and CFM offloading. > Both tag_lan9303.c and tag_ocelot_8021q.c do reference > their switch driver data structures, so some sharing is allowed. But > please try to keep the surface areas down. If you have a surface area keep it small, yes, agreed. I guess my question is more why we should have any surface area at all? What do we gain by the tagger/driver separation in the case of mv88e6xxx? > Andrew