Hi Linus, On Thu, 4 Jun 2020 at 12:17, Linus Walleij <linus.wall...@linaro.org> wrote: > > On Thu, Jun 4, 2020 at 2:54 AM Andrew Lunn <and...@lunn.ch> wrote: > > > If spanning tree is performed in the ASIC, i don't see why there would > > be registers to control the port status. It would do it all itself, > > and not export these controls. > > > > So i would not give up on spanning tree as a way to reverse engineer > > this. > > Hm I guess I have to take out the textbooks and refresh my lacking > knowledge about spanning tree :) > > What I have for "documentation" is the code drop inside DD Wrt: > https://svn.dd-wrt.com//browser/src/linux/universal/linux-3.2/drivers/net/ethernet/raeth/rb > > The code is a bit messy and seems hacked up by Realtek, also > at one point apparently the ASIC was closely related to RTL8368s > and then renamed to RTL8366RB... > > The code accessing the ASIC is here (under the name RTL8368s): > https://svn.dd-wrt.com/browser/src/linux/universal/linux-3.2/drivers/net/ethernet/raeth/rb/rtl8368s_asicdrv.c > > I'm hacking on it but a bit stuck :/ > > Yours, > Linus Walleij
In the code you pointed to, there is a potentially relevant comment: 1532//CPU tag: Realtek Ethertype==0x8899(2 bytes)+protocol==0x9(4 MSB)+priority(2 bits)+reserved(4 bits)+portmask(6 LSB) https://svn.dd-wrt.com/browser/src/linux/universal/linux-3.2/drivers/net/ethernet/raeth/rb/rtl_multicast_snooping.c#L1527 https://svn.dd-wrt.com/browser/src/linux/universal/linux-3.2/drivers/net/ethernet/raeth/rb/rtl_multicast_snooping.c#L5224 This strongly indicates to me that the insertion tag is the same as the extraction tag. It is completely opaque to me why in patch "[net-next PATCH 2/5] net: dsa: rtl8366rb: Support the CPU DSA tag" you are _disabling_ the injection of these tags via RTL8368RB_CPU_INSTAG. I think it's natural that the switch drops these packets when CPU tag insertion is disabled. Thanks, -Vladimir