On 2022-08-27 20:21, Ido Schimmel wrote:
On Fri, Aug 26, 2022 at 01:45:38PM +0200, Hans Schultz wrote:
+locked_port_mab()
+{
+ RET=0
+ check_locked_port_support || return 0
+
+ ping_do $h1 192.0.2.2
+ check_err $? "MAB: Ping did not work before locking port"
+
+ bridge link set dev $swp1 locked on
+ bridge link set dev $swp1 learning on
"locked on learning on" is counter intuitive and IMO very much a
misconfiguration that we should have disallowed when the "locked"
option
was introduced. It is my understanding that the only reason we are even
talking about it is because mv88e6xxx needs it for MAB for some reason.
As the way mv88e6xxx implements "learning off" is to remove port
association for ingress packets on a port, but that breaks many other
things such as refreshing ATU entries and violation interrupts, so it is
needed and the question is then what is the worst to have 'learning on'
on a locked port or to have the locked port enabling learning in the
driver silently?
Opinions seem to differ. Note that even on locked ports without MAB,
port association on ingress is still needed in future as I have a
dynamic ATU patch set coming, that uses age out violation and hardware
refreshing to let the hardware keep the dynamic entries as long as the
authorized station is sending, but will age the entry out if the station
keeps silent for the ageing time. But that patch set is dependent on
this patch set, and I don't think I can send it before this is
accepted...
Please avoid leaking this implementation detail to user space and
instead use the "MAB" flag to enable learning if you need it in
mv88e6xxx.