Message ID | 1410190152-7396-1-git-send-email-therbert@google.com |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
On Mon, 2014-09-08 at 08:29 -0700, Tom Herbert wrote: > GRE assumes that the GRE header is at skb_network_header + > ip_hrdlen(skb). It is more general to use skb_transport_header > and this allows the possbility of inserting additional header > between IP and GRE (which is what we will done in Generic UDP > Encapsulation for GRE). > > Signed-off-by: Tom Herbert <therbert@google.com> > --- > net/ipv4/gre_demux.c | 5 ++--- > 1 file changed, 2 insertions(+), 3 deletions(-) I am always confused why you do not include prior Acked-by when you repost same patch. This forces me to add it again. Note this should be a net-next patch, right ? Acked-by: Eric Dumazet <edumazet@google.com> -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Mon, Sep 8, 2014 at 8:50 AM, Eric Dumazet <eric.dumazet@gmail.com> wrote: > On Mon, 2014-09-08 at 08:29 -0700, Tom Herbert wrote: >> GRE assumes that the GRE header is at skb_network_header + >> ip_hrdlen(skb). It is more general to use skb_transport_header >> and this allows the possbility of inserting additional header >> between IP and GRE (which is what we will done in Generic UDP >> Encapsulation for GRE). >> >> Signed-off-by: Tom Herbert <therbert@google.com> >> --- >> net/ipv4/gre_demux.c | 5 ++--- >> 1 file changed, 2 insertions(+), 3 deletions(-) > > I am always confused why you do not include prior Acked-by when you > repost same patch. > Sorry, I'll do that next time. > This forces me to add it again. > > Note this should be a net-next patch, right ? > Yes. > Acked-by: Eric Dumazet <edumazet@google.com> > > -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
From: Tom Herbert <therbert@google.com> Date: Mon, 8 Sep 2014 08:29:12 -0700 > GRE assumes that the GRE header is at skb_network_header + > ip_hrdlen(skb). It is more general to use skb_transport_header > and this allows the possbility of inserting additional header > between IP and GRE (which is what we will done in Generic UDP > Encapsulation for GRE). > > Signed-off-by: Tom Herbert <therbert@google.com> Applied, thanks Tom. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/net/ipv4/gre_demux.c b/net/ipv4/gre_demux.c index 7e0756d..4a7b5b2 100644 --- a/net/ipv4/gre_demux.c +++ b/net/ipv4/gre_demux.c @@ -98,7 +98,6 @@ EXPORT_SYMBOL_GPL(gre_build_header); static int parse_gre_header(struct sk_buff *skb, struct tnl_ptk_info *tpi, bool *csum_err) { - unsigned int ip_hlen = ip_hdrlen(skb); const struct gre_base_hdr *greh; __be32 *options; int hdr_len; @@ -106,7 +105,7 @@ static int parse_gre_header(struct sk_buff *skb, struct tnl_ptk_info *tpi, if (unlikely(!pskb_may_pull(skb, sizeof(struct gre_base_hdr)))) return -EINVAL; - greh = (struct gre_base_hdr *)(skb_network_header(skb) + ip_hlen); + greh = (struct gre_base_hdr *)skb_transport_header(skb); if (unlikely(greh->flags & (GRE_VERSION | GRE_ROUTING))) return -EINVAL; @@ -116,7 +115,7 @@ static int parse_gre_header(struct sk_buff *skb, struct tnl_ptk_info *tpi, if (!pskb_may_pull(skb, hdr_len)) return -EINVAL; - greh = (struct gre_base_hdr *)(skb_network_header(skb) + ip_hlen); + greh = (struct gre_base_hdr *)skb_transport_header(skb); tpi->proto = greh->protocol; options = (__be32 *)(greh + 1);
GRE assumes that the GRE header is at skb_network_header + ip_hrdlen(skb). It is more general to use skb_transport_header and this allows the possbility of inserting additional header between IP and GRE (which is what we will done in Generic UDP Encapsulation for GRE). Signed-off-by: Tom Herbert <therbert@google.com> --- net/ipv4/gre_demux.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-)