Thread (30 messages) 30 messages, 5 authors, 2021-02-03

Re: [RFC net-next 7/7] net: dsa: mv88e6xxx: Request assisted learning on CPU port

From: Tobias Waldekranz <tobias@waldekranz.com>
Date: 2021-02-03 09:29:11

On Mon, Feb 01, 2021 at 14:24, DENG Qingfang [off-list ref] wrote:
Hi Tobias,

I've tested your patch series on kernel 5.4 and found that it only works
when VLAN filtering is enabled.
After some debugging, I noticed DSA will add static entries to ATU 0 if
VLAN filtering is disabled, regardless of default_pvid of the bridge,
which is also the ATU# used by the bridge.
Good catch, thanks! This seems to stem from a different policy regarding
VLAN assignment in the bridge vs. how a Marvell switch works.

By default, a bridge will use a default PVID of 1, even when VLAN
filtering is disabled (nbp_vlan_init). Yet it will assign all packets to
VLAN 0 on ingress (br_handle_frame_finish->br_allowed_ingress).

The switch OTOH, will use the PVID of the port for all packets when
802.1Q is disabled, thus assigning all packets to VLAN 1 when VLAN
filtering is disabled.

Andrew, Vladimir: Should mv88e6xxx always set the PVID to 0 when VLAN
filtering is disabled?
Currently I use the hack below to rewrite ATU# to 1, but it obviously
does not solve the root cause.
Alternatively, as a userspace workaround, you can change the default
PVID to 0:

ip link set dev $BR type bridge vlan_default_pvid 0
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help