Messages in this thread | | | Date | Sun, 4 Jun 2023 11:51:33 +0300 | Subject | Re: [PATCH net-next 27/30] net: dsa: mt7530: introduce BPDU trapping for MT7530 switch | From | Arınç ÜNAL <> |
| |
On 26.05.2023 20:02, Vladimir Oltean wrote: > On Mon, May 22, 2023 at 03:15:29PM +0300, arinc9.unal@gmail.com wrote: >> From: Arınç ÜNAL <arinc.unal@arinc9.com> >> >> The MT753X switches are capable of trapping certain frames. Introduce >> trapping BPDUs to the CPU port for the MT7530 switch. >> >> BPDUs will be trapped to the numerically smallest CPU port which is affine >> to the DSA conduit interface that is set up. The BPDUs won't necessarily be >> trapped to the CPU port the user port, which these BPDUs are received from, >> is affine to. >> >> Tested-by: Arınç ÜNAL <arinc.unal@arinc9.com> >> Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com> >> --- >> drivers/net/dsa/mt7530.c | 4 ++++ >> 1 file changed, 4 insertions(+) >> >> diff --git a/drivers/net/dsa/mt7530.c b/drivers/net/dsa/mt7530.c >> index cd16911fcb01..2fb4b0bc6335 100644 >> --- a/drivers/net/dsa/mt7530.c >> +++ b/drivers/net/dsa/mt7530.c >> @@ -2223,6 +2223,10 @@ mt7530_setup(struct dsa_switch *ds) >> val |= MHWTRAP_MANUAL; >> mt7530_write(priv, MT7530_MHWTRAP, val); >> >> + /* Trap BPDUs to the CPU port */ >> + mt7530_rmw(priv, MT753X_BPC, MT753X_BPDU_PORT_FW_MASK, >> + MT753X_BPDU_CPU_ONLY); >> + > > If the switch doesn't currently trap BPDUs, isn't STP broken?
No, the BPDU_PORT_FW bits are 0 after reset. The MT7620 programming guide states that frames with 01:80:C2:00:00:00 MAC DA (which is how the BPDU distinction is being made) will follow the system default which means the BPDUs will be treated as normal multicast frames.
Only if all 3 bits are set will the BPDUs be dropped.
> > ip link add br0 type bridge stp_state 1 > (with or without a userspace helper installed at /sbin/bridge-stp > for more modern protocols than the original 802.1D STP)
For reference, the mstpd package on Buildroot includes this.
Arınç
| |