[ovs-dev] [PATCH] vxlan: Fix for the packet loop issue in vxlan
Neelakantam Gaddam
neelugaddam at gmail.com
Tue Jun 12 05:02:49 UTC 2018
Any update on this patch ?
On Wed, 23 May 2018 at 10:46 AM, Neelakantam Gaddam <neelugaddam at gmail.com>
wrote:
> 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
> attched to. It detects the loop in vxlan xmit functionb and drops if loop
> is
> detected.
>
> Signed-off-by: Neelakantam Gaddam <neelugaddam at gmail.com>
> ---
> datapath/linux/compat/vxlan.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/datapath/linux/compat/vxlan.c b/datapath/linux/compat/vxlan.c
> index 287dad2..00562fa 100644
> --- 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);
> --
> 1.8.3.1
>
>
More information about the dev
mailing list