[ovs-dev] [PATCH] vxlan: Fix for the packet loop issue in vxlan

Pravin Shelar pshelar at ovn.org
Tue Jun 12 06:25:22 UTC 2018


On Tue, May 22, 2018 at 10:16 PM, 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)) {
>

I am not sure which case the  OVS_CB(skb)->input_vport->dev is not same as
the dev when there is recursion. Can you explain how to reproduce it?


More information about the dev mailing list