[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20160721173951.225f9379@griffin>
Date: Thu, 21 Jul 2016 17:39:51 +0200
From: Jiri Benc <jbenc@...hat.com>
To: Simon Horman <simon.horman@...ronome.com>
Cc: pravin shelar <pshelar@....org>,
Linux Kernel Network Developers <netdev@...r.kernel.org>,
ovs dev <dev@...nvswitch.org>
Subject: Re: [ovs-dev] [PATCH net-next v11 5/6] openvswitch: add layer 3
flow/port support
On Mon, 18 Jul 2016 13:50:27 +0900, Simon Horman wrote:
> On Fri, Jul 15, 2016 at 02:07:37PM -0700, pravin shelar wrote:
> > I think we should send L2 header with l2 header pushed on skb. This is
> > what OVS expect. The skb-push should be done for all l2 packets rather
> > than for particular type of device.
>
> The following seems to achieve that.
> Jiri, what do you think?
>
> diff --git a/net/ipv4/ip_gre.c b/net/ipv4/ip_gre.c
> index a20248355da0..edbc10690b60 100644
> --- a/net/ipv4/ip_gre.c
> +++ b/net/ipv4/ip_gre.c
> @@ -281,10 +281,9 @@ static int __ipgre_rcv(struct sk_buff *skb, const struct tnl_ptk_info *tpi,
> raw_proto, false) < 0)
> goto drop;
>
> - if (tunnel->dev->type != ARPHRD_NONE)
> + if (tunnel->dev->type != ARPHRD_NONE ||
> + tpi->proto == htons(ETH_P_TEB))
> skb_pop_mac_header(skb);
This is wrong. The MAC header for ARPHRD_NONE interfaces is null,
that's the meaning of ARPHRD_NONE. mac_header cannot point to the outer
IP header. That would be ARPHRD_IPGRE.
Jiri
Powered by blists - more mailing lists