On Sat, Oct 22, 2022 at 12:55:14PM +0000, Oleksandr Mazur wrote:
I hope the following script will exemplify what I mean.
.. Oh, i get it now.
Frankly speaking we haven't stumbled across such scenario / issue before. But i can tell it does indeed seems a bit broken;
I think there are 2 options here:
- The setup itself seems insecure, and user should be aware of such behavior / issue;
Be aware, and do what? Port locking is unfit for use if learning is left enabled (in the way learning is currently done).
- Bridge indeed should not learn MACs if BR_PORT_LOCKED is set.
E.g. learning condition should be something like: not BR_PORT_locked and learning is on;
Rather than violate the BR_LEARNING flag (have it set but do nothing, which would require even more checks in the fast path), I was proposing to not allow the BR_PORT_LOCKED | BR_LEARNING configuration at all. My question to you was if you're aware of any regression in prestera with such a change.
I don't understand the last step. Why is the BR_PORT_LOCKED flag disabled? If disabled, the port will receive frames with any unknown MAC SA, not just the authorized ones.
Sorry for the confusion. Basically, what i described what i would expect from a daemon (e.g. daemon would disable LOCKED); So just ignore that part.
But still, why would the daemon disable BR_PORT_LOCKED once a station is authorized? You're describing a sample/test application, not a port security solution...