Closed rubensfig closed 3 years ago
updated the comment
ip link add $BRIDGE_NAME type bridge vlan_filtering 1 vlan_default_pvid 0
Please do the test with a bridge with vlan defined.
ip link add $BRIDGE_NAME type bridge vlan_filtering 1 vlan_default_pvid 0
Please do the test with a bridge with vlan defined.
You did, but something is weird.
If you do that you should get two fdb entries, one without vid, and one with the pvid (of 100).
E.g. if I do the following on the ag7648 with the default docker bridge:
agema-ag7648:~$ bridge vlan show
port vlan-id
docker0 1 PVID Egress Untagged
agema-ag7648:~$ sudo bridge fdb add 00:00:00:01:00:01 dev docker0
agema-ag7648:~$ bridge fdb | grep docker0 | grep 00:00:00:01:00:01
00:00:00:01:00:01 dev docker0 vlan 1 master docker0 permanent
00:00:00:01:00:01 dev docker0 master docker0 permanent
I have two fdb entries.
Okay, the difference is master
vs self
. When adding the fdb entry with master
, an entry will be created for all vlans as well.
Reading about it, self
means local to the device without notifying the master device about it (i.e. the bridge), while master means the bridge will be aware of it.
So I'm wondering if we should ignore self
fdb entries in general.
Fixes bisdn/basebox/issues/272.
Description
272 > [] We assume that all fdb entries come assigned to vlan. rtnl_neigh_get_vlan() then returns -1 because vid is unset, which we then pass on as vid, which is obviously not a valid VID.
Motivation and Context
Avoids
How Has This Been Tested?
With the following script.
This entry will be configured in Linux, but will not be translated into the ASIC.