[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20140401.161047.854771903443514987.davem@davemloft.net>
Date: Tue, 01 Apr 2014 16:10:47 -0400 (EDT)
From: David Miller <davem@...emloft.net>
To: lucien.xin@...il.com
Cc: netdev@...r.kernel.org
Subject: Re: [PATCH] vxlan: using AF_PACKET socket to send multicast packet
cause WARNING
From: Xin Long <lucien.xin@...il.com>
Date: Tue, 1 Apr 2014 17:08:50 +0800
> dev_queue_xmit()->dev_hard_start_xmit()->vxlan_xmit()->ip_tunnel_xmit()->ip_mc_output(),
> after reaching ip_mc_output(), it will check the mc_loop by sk_mc_loop(), but
> it have no case for AF_PACKET, then cause WARN_ON(1).
...
> --- a/include/net/ip.h
> +++ b/include/net/ip.h
> @@ -428,6 +428,8 @@ static inline int sk_mc_loop(struct sock *sk)
> case AF_INET6:
> return inet6_sk(sk)->mc_loop;
> #endif
> + case AF_PACKET:
> + return 1;
> }
> WARN_ON(1);
> return 1;
This is not the correct fix.
If vxlan is going to reinject dev_hard_start_xmit() bound packets into
the ipv4 stack, it must make sure that they are well formed.
The SKB traversing the ipv4 stack must either be bound to an ipv4/ipv6
socket or be orphaned.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists