diff options
author | Florian Fainelli <f.fainelli@gmail.com> | 2020-10-01 19:42:12 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2020-10-02 13:36:07 -0700 |
commit | 1dc0408cdf3caf3a8b8ad97c831ae52d2ab5b953 (patch) | |
tree | e643ac1120c682b4b27a44741146735b78a1fe4b /include/net/dsa.h | |
parent | c16bcd70a11b52d20877aa4e0b59285690a1b268 (diff) | |
download | linux-1dc0408cdf3caf3a8b8ad97c831ae52d2ab5b953.tar.gz linux-1dc0408cdf3caf3a8b8ad97c831ae52d2ab5b953.tar.bz2 linux-1dc0408cdf3caf3a8b8ad97c831ae52d2ab5b953.zip |
net: dsa: Call dsa_untag_bridge_pvid() from dsa_switch_rcv()
When a DSA switch driver needs to call dsa_untag_bridge_pvid(), it can
set dsa_switch::untag_brige_pvid to indicate this is necessary.
This is a pre-requisite to making sure that we are always calling
dsa_untag_bridge_pvid() after eth_type_trans() has been called.
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net/dsa.h')
-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. */ |