aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/dsa
diff options
context:
space:
mode:
authorVladimir Oltean <vladimir.oltean@nxp.com>2022-02-25 11:22:17 +0200
committerDavid S. Miller <davem@davemloft.net>2022-02-27 11:06:13 +0000
commitd7f9787a763f35225287aedb9364c972ae128d18 (patch)
tree6d211d30a67aaff7b6b7c0d622d9147ff1e85e51 /include/linux/dsa
parentnet: dsa: tag_8021q: replace the SVL bridging with VLAN-unaware IVL bridging (diff)
downloadlinux-dev-d7f9787a763f35225287aedb9364c972ae128d18.tar.xz
linux-dev-d7f9787a763f35225287aedb9364c972ae128d18.zip
net: dsa: tag_8021q: add support for imprecise RX based on the VBID
The sja1105 switch can't populate the PORT field of the tag_8021q header when sending a frame to the CPU with a non-zero VBID. Similar to dsa_find_designated_bridge_port_by_vid() which performs imprecise RX for VLAN-aware bridges, let's introduce a helper in tag_8021q for performing imprecise RX based on the VLAN that it has allocated for a VLAN-unaware bridge. Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/linux/dsa')
-rw-r--r--include/linux/dsa/8021q.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/include/linux/dsa/8021q.h b/include/linux/dsa/8021q.h
index f47f227baa27..92f5243b841e 100644
--- a/include/linux/dsa/8021q.h
+++ b/include/linux/dsa/8021q.h
@@ -41,7 +41,11 @@ void dsa_tag_8021q_bridge_leave(struct dsa_switch *ds, int port,
struct sk_buff *dsa_8021q_xmit(struct sk_buff *skb, struct net_device *netdev,
u16 tpid, u16 tci);
-void dsa_8021q_rcv(struct sk_buff *skb, int *source_port, int *switch_id);
+void dsa_8021q_rcv(struct sk_buff *skb, int *source_port, int *switch_id,
+ int *vbid);
+
+struct net_device *dsa_tag_8021q_find_port_by_vbid(struct net_device *master,
+ int vbid);
u16 dsa_8021q_bridge_tx_fwd_offload_vid(unsigned int bridge_num);