On 2022-10-22 14:02, Vladimir Oltean wrote:
On Sat, Oct 22, 2022 at 09:24:56AM +0200, netdev@xxxxxxxxxxxxxxxxxxxx
wrote:
I will not say that you are not making sense as for the mv88e6xxx, as
it
needs port association in all cases with BR_PORT_LOCKED, MAB or not,
and
port association is turned on in the driver with learning turned on.
That said, there must be some resolution and agreement overall with
this
issue to move on. Right now port association is turned on in the
mv88e6xxx
driver when locking the port, thus setting learning off after locking
will
break things.
This already needs to be treated as a bug and fixed on its own. Forget
about MAB.
You're saying that when BR_LEARNING=on and BR_PORT_LOCKED=on, the
mv88e6xxx driver works properly, but the software bridge is broken
(learns from link-local multicast).
When BR_LEARNING=off and BR_PORT_LOCKED=on, the software bridge is not
broken, but the mv88e6xxx driver is, because it requires the PAV
configured properly.
And you're saying that I'm the one who suggests things should work
differently in software mode vs offloaded mode?!
Well :-) To be specific, I am talking about how things work from a user
perspective, where I have kept to BR_LEARNING off before turning
BR_PORT_LOCKED on.
I admit to a weakness in that BR_LEARNING off after BR_PORT_LOCKED on is
a problem that from my perspective at this point would be a user error.
Why don't you
(a) deny BR_LEARNING + BR_PORT_LOCKED in the bridge layer
(b) fix the mv88e6xxx driver to always keep the assoc_vector set
properly for the port, if BR_LEARNING *or* BR_PORT_LOCKED is set?
(a) yes, I have thought that documentation could handle this, but maybe
you are right, maybe it should be enforced...
(b) BR_PORT_LOCKED ensures now that the PAV is correctly set, so I have
basically distinguished between learning and port association (which
I know mechanically is the same in mv88e6xxx), but still I have
adhered to learning off while port association is on for the port.