On Tue, Oct 03, 2017 at 12:25:08PM -0400, Vivien Didelot wrote: > Andrew Lunn <and...@lunn.ch> writes: > > >> The vlan will be effective only when vlan_filtering is enabled. > >> When vlan_filtering is disabled, vlan information is still kept in the > >> bridge and gets effective later when vlan_filtering becomes enable. > > > > O.K, so things are starting to get clearer. > > > > So when vlan filtering is disabled, the hardware should just ignore > > the requests to add the vlan to the hardware? > > > > When vlan_filtering is enabled, are all the vlans in the software > > bridge again offloaded? Or do we need to remember all the vlans which > > we ignored while vlan filtering was disabled? The average switch has > > nowhere to store these disabled vlans. It can only store active vlans. > > When vlan_filtering is enabled on the bridge, the bridge code does > propagates the default_pvid again if I recall correctly. > > In my opinion the hardware mustn't ignore the VLAN requests, because we > seem to agree that vlan_filtering disabled means that the target ports > should not care yet about 802.1Q. So having some unused hardware VLAN > entries and some ports with disabled 802.1Q mode must work together. > > That being said we still have the wrong hardware FDB populated when > CONFIG_BRIDGE_VLAN_FILTERING is enabled but not vlan_filtering...
The driver can make sure it's able to handle the configured `vlan_filtering` state during port enslavement to the bridge and also forbid it from being toggled once it's enslaved.