Hi Vivien, Florian, Tue, May 24, 2016 at 05:32:33PM IDT, vivien.dide...@savoirfairelinux.com wrote: >Hi Florian, > >Florian Fainelli <f.faine...@gmail.com> writes: > >> Described what the port_vlan_filtering function is supposed to >> accomplish. >> >> Fixes: fb2dabad69f0 ("net: dsa: support VLAN filtering switchdev attr") >> Signed-off-by: Florian Fainelli <f.faine...@gmail.com> >> --- >> Documentation/networking/dsa/dsa.txt | 6 ++++++ >> 1 file changed, 6 insertions(+) >> >> diff --git a/Documentation/networking/dsa/dsa.txt >> b/Documentation/networking/dsa/dsa.txt >> index 411b57fd73aa..a42fd2ec32a5 100644 >> --- a/Documentation/networking/dsa/dsa.txt >> +++ b/Documentation/networking/dsa/dsa.txt >> @@ -535,6 +535,12 @@ Bridge layer >> Bridge VLAN filtering >> --------------------- >> >> +- port_vlan_filtering: bridge layer function invoked when the bridge gets >> + configured for turning on or off VLAN filtering. If nothing specific >> needs to >> + be done at the hardware level, 0 must be returned. When VLAN filtering is >> + turned on, the hardware must be programmed with rejecting non-802.1Q >> frames, >> + when turned off the switch must accept any 802.1Q frames. > >Note that port_vlan_filtering is optional so a driver don't need to >implement it if nothing specific needs to be done at the hardware level. > >Also I'd think that with VLAN filtering on, the hardware must not reject >untagged frames, only 802.1Q frames which don't respect the programmed >VLAN rules.
With VLAN filtering on I believe you only need to reject untagged frames when there's no PVID on the port. See __allowed_ingress() in net/bridge/br_vlan.c