[ovs-dev] [PATCH] compat: Fix for soft lockup issue with vxlan misconfiguration
Neelakantam Gaddam
neelugaddam at gmail.com
Fri May 11 11:56:12 UTC 2018
This patch fixes the kernel soft lockup issue with vxlan configuration where
the tunneled packet is sent on the same bridge where vxlan port is attached
to.
It detects the loop in vxlan xmit function and drops if loop is detected.
--- a/datapath/linux/compat/vxlan.c
+++ b/datapath/linux/compat/vxlan.c
@@ -1115,7 +1115,8 @@ static void vxlan_xmit_one(struct sk_buff *skb,
struct net_device *dev,
goto tx_error;
}
- if (rt->dst.dev == dev) {
+ if ((rt->dst.dev == dev) ||
+ (OVS_CB(skb)->input_vport->dev == rt->dst.dev)) {
netdev_dbg(dev, "circular route to %pI4\n",
&dst->sin.sin_addr.s_addr);
dev->stats.collisions++;
@@ -1174,7 +1175,8 @@ static void vxlan_xmit_one(struct sk_buff *skb,
struct net_device *dev,
goto tx_error;
}
- if (ndst->dev == dev) {
+ if ((ndst->dev == dev) ||
+ (OVS_CB(skb)->input_vport->dev == ndst->dev)) {
netdev_dbg(dev, "circular route to %pI6\n",
&dst->sin6.sin6_addr);
dst_release(ndst);
--
Thanks & Regards
Neelakantam Gaddam
More information about the dev
mailing list