On Sun, Feb 14, 2021 at 9:54 AM Vladimir Oltean [off-list ref] wrote:
[snip]
quoted hunk ↗ jump to hunk
diff --git a/net/dsa/tag_xrs700x.c b/net/dsa/tag_xrs700x.c
index 858cdf9d2913..215ecceea89e 100644
--- a/net/dsa/tag_xrs700x.c
+++ b/net/dsa/tag_xrs700x.c
@@ -45,8 +45,7 @@ static struct sk_buff *xrs700x_rcv(struct sk_buff *skb, struct net_device *dev,
if (pskb_trim_rcsum(skb, skb->len - 1))
return NULL;
- /* Frame is forwarded by hardware, don't forward in software. */
- skb->offload_fwd_mark = 1;
+ dsa_default_offload_fwd_mark(skb);
Does it make sense that the following would have worked prior to this
change? Is this only an issue for bridging between DSA ports when
offloading is supported? lan0 is a port an an xrs700x switch:
ip link set eth0 up
ip link del veth0
ip link add veth0 type veth peer name veth1
for eth in veth0 veth1 lan1; do
ip link set ${eth} up
done
ip link add br0 type bridge
ip link set veth1 master br0
ip link set lan1 master br0
ip link set br0 up
ip addr add 192.168.2.1/24 dev veth0
# ping host connected to physical LAN that lan0 is on
ping 192.168.2.249 (works!)
I was trying to come up with a way to test this change and expected
this would fail (and your patch) would fix it based on what you're
described.
-George
return skb;
}
--
2.25.1