diff options
| author | David S. Miller <davem@davemloft.net> | 2020-10-02 23:36:07 +0300 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2020-10-02 23:36:07 +0300 |
| commit | cb307c2d845d823da206dcaca80edb71ff9e6bc4 (patch) | |
| tree | a75b5229db47acc061133db3c00e7825d32e40f9 /include | |
| parent | c16bcd70a11b52d20877aa4e0b59285690a1b268 (diff) | |
| parent | 3a68844dd2d8b3fd23f92894b6628e02a530b445 (diff) | |
| download | linux-cb307c2d845d823da206dcaca80edb71ff9e6bc4.tar.xz | |
Merge branch 'net-dsa-Improve-dsa_untag_bridge_pvid'
Florian Fainelli says:
====================
net: dsa: Improve dsa_untag_bridge_pvid()
This patch series is based on the recent discussions with Vladimir:
https://lore.kernel.org/netdev/20201001030623.343535-1-f.fainelli@gmail.com/
the simplest way forward was to call dsa_untag_bridge_pvid() after
eth_type_trans() has been set which guarantees that skb->protocol is set
to a correct value and this allows us to utilize
__vlan_find_dev_deep_rcu() properly without playing or using the bridge
master as a net_device reference.
====================
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include')
| -rw-r--r-- | include/net/dsa.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/include/net/dsa.h b/include/net/dsa.h index b502a63d196e..8b0696e08cac 100644 --- a/include/net/dsa.h +++ b/include/net/dsa.h @@ -308,6 +308,14 @@ struct dsa_switch { */ bool configure_vlan_while_not_filtering; + /* If the switch driver always programs the CPU port as egress tagged + * despite the VLAN configuration indicating otherwise, then setting + * @untag_bridge_pvid will force the DSA receive path to pop the bridge's + * default_pvid VLAN tagged frames to offer a consistent behavior + * between a vlan_filtering=0 and vlan_filtering=1 bridge device. + */ + bool untag_bridge_pvid; + /* In case vlan_filtering_is_global is set, the VLAN awareness state * should be retrieved from here and not from the per-port settings. */ |
