This is the v2 of a series initially submitted in May: https://www.spinics.net/lists/netdev/msg651866.html
The end goal is to get rid of the unintuitive code for the flow dissector that currently exists in the taggers. It can all be replaced by a single, common function. Some background work needs to be done for that. Especially the ocelot driver poses some problems, since it has a different tag length between RX and TX, and I didn't want to make DSA aware of that, since I could instead make the tag lengths equal. Changes in v3: - Added an optimization (08/15) that makes the generic case not need to call the .flow_dissect function pointer. Basically .flow_dissect now currently only exists for sja1105. - Moved the .promisc_on_master property to the tagger structure. - Added the .tail_tag property to the tagger structure. - Disabled "suppresscc = all" from my .gitconfig. Vladimir Oltean (15): net: mscc: ocelot: move NPI port configuration to DSA net: dsa: allow drivers to request promiscuous mode on master net: dsa: tag_sja1105: request promiscuous mode for master net: dsa: tag_ocelot: use a short prefix on both ingress and egress net: dsa: make the .flow_dissect tagger callback return void net: dsa: add a generic procedure for the flow dissector net: dsa: point out the tail taggers net: flow_dissector: avoid indirect call to DSA .flow_dissect for generic case net: dsa: tag_brcm: use generic flow dissector procedure net: dsa: tag_dsa: use the generic flow dissector procedure net: dsa: tag_edsa: use the generic flow dissector procedure net: dsa: tag_mtk: use the generic flow dissector procedure net: dsa: tag_qca: use the generic flow dissector procedure net: dsa: tag_sja1105: use a custom flow dissector procedure net: dsa: tag_rtl4_a: use the generic flow dissector procedure drivers/net/dsa/ocelot/felix.c | 31 ++++++++++++++--- drivers/net/dsa/ocelot/felix_vsc9959.c | 13 +++++-- drivers/net/dsa/ocelot/seville_vsc9953.c | 13 +++++-- drivers/net/ethernet/mscc/ocelot.c | 40 ++++------------------ drivers/net/ethernet/mscc/ocelot_vsc7514.c | 7 ++-- include/net/dsa.h | 37 ++++++++++++++++++-- include/soc/mscc/ocelot.h | 4 +-- net/core/flow_dissector.c | 10 ++++-- net/dsa/master.c | 20 ++++++++++- net/dsa/tag_brcm.c | 35 +++++++------------ net/dsa/tag_dsa.c | 9 ----- net/dsa/tag_edsa.c | 9 ----- net/dsa/tag_ksz.c | 1 + net/dsa/tag_mtk.c | 10 ------ net/dsa/tag_ocelot.c | 20 +++++++---- net/dsa/tag_qca.c | 10 ------ net/dsa/tag_rtl4_a.c | 11 ------ net/dsa/tag_sja1105.c | 12 +++++++ net/dsa/tag_trailer.c | 1 + 19 files changed, 158 insertions(+), 135 deletions(-) -- 2.25.1