netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Simon Horman <horms@verge.net.au>
To: dev@openvswitch.org, netdev@vger.kernel.org,
	Jesse Gross <jesse@nicira.com>,
	Pravin B Shelar <pshelar@nicira.com>
Cc: Ben Pfaff <blp@nicira.com>, Ravi K <rkerur@gmail.com>,
	Joe Stringer <joe@wand.net.nz>
Subject: Re: [PATCH v2.57] datapath: Add basic MPLS support to kernel
Date: Fri, 16 May 2014 17:48:10 +0900	[thread overview]
Message-ID: <20140516084809.GA18920@verge.net.au> (raw)
In-Reply-To: <1400195227-21265-2-git-send-email-horms@verge.net.au>

On Fri, May 16, 2014 at 08:07:07AM +0900, Simon Horman wrote:
> Allow datapath to recognize and extract MPLS labels into flow keys
> and execute actions which push, pop, and set labels on packets.

[snip]

> diff --git a/datapath/linux/compat/gso.h b/datapath/linux/compat/gso.h
> index b83a4c3..98b2aba 100644
> --- a/datapath/linux/compat/gso.h
> +++ b/datapath/linux/compat/gso.h
> @@ -4,6 +4,7 @@
>  #include <linux/version.h>
>  #if LINUX_VERSION_CODE < KERNEL_VERSION(3,12,0)
>  
> +#include <linux/netdevice.h>
>  #include <linux/skbuff.h>
>  #include <net/protocol.h>
>  
> @@ -14,6 +15,9 @@ struct ovs_gso_cb {
>  	sk_buff_data_t	inner_network_header;
>  	sk_buff_data_t	inner_mac_header;
>  	void (*fix_segment)(struct sk_buff *);
> +#if LINUX_VERSION_CODE < KERNEL_VERSION(3,11,0)
> +	__be16			inner_protocol;
> +#endif
>  };
>  #define OVS_GSO_CB(skb) ((struct ovs_gso_cb *)(skb)->cb)

Unfortunately it seems that at least for v3.11 on x86_64 the above now
results in struct ovs_gso_cb being larger than the cb field of struct
skb_buff.

(It also seems that the call to ovs_skb_set_inner_protocol() is
 missing from push_mpls() so it is likely that GSO segmentation
 is broken.)

I apologise for not noticing this earlier.

One idea I had is so make inner_protocol union of some other member of
either struct ovs_gso_cb or struct ovs_skb_cb. But its not clear to me that
would fly.

Another possibility is to simply drop compatibility for segmentation of GSO
packets that become MPLS.  But I gather that is not the preferred way for
datapath features.

Any suggestions would be much appreciated.

  reply	other threads:[~2014-05-16  8:48 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-05-15 23:07 [PATCH v2.57] datapath: Add basic MPLS support to kernel Simon Horman
     [not found] ` <1400195227-21265-1-git-send-email-horms-/R6kz+dDXgpPR4JQBCEnsQ@public.gmane.org>
2014-05-15 23:07   ` Simon Horman
2014-05-16  8:48     ` Simon Horman [this message]
     [not found]       ` <20140516084809.GA18920-/R6kz+dDXgpPR4JQBCEnsQ@public.gmane.org>
2014-05-16 21:29         ` Jesse Gross
2014-05-16 21:48           ` Thomas Graf
     [not found]             ` <20140516214806.GH8346-FZi0V3Vbi30CUdFEqe4BF2D2FQJk+8+b@public.gmane.org>
2014-05-16 22:17               ` Jesse Gross
2014-05-17  1:32                 ` Simon Horman
     [not found]                   ` <20140517013224.GA25978-/R6kz+dDXgpPR4JQBCEnsQ@public.gmane.org>
2014-05-19 22:02                     ` Simon Horman
     [not found]                       ` <20140519220219.GA20590-/R6kz+dDXgpPR4JQBCEnsQ@public.gmane.org>
2014-05-20 12:18                         ` Thomas Graf
2014-05-20  1:34     ` Jesse Gross
2014-05-20 10:48       ` Simon Horman
2014-05-21  2:05         ` Jesse Gross
2014-05-21 15:26           ` Simon Horman
     [not found]     ` <1400195227-21265-2-git-send-email-horms-/R6kz+dDXgpPR4JQBCEnsQ@public.gmane.org>
2014-05-21  2:30       ` Jesse Gross
     [not found]         ` <CAEP_g=8ZEbx0NzCaXOc=ywiBAtejpmO4K-UzVk5uwBmEfUwZ7w-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-05-21 15:31           ` Simon Horman
2014-05-21 20:31             ` Jesse Gross
2014-05-21 23:03               ` Simon Horman
     [not found]                 ` <20140521230351.GC19986-/R6kz+dDXgpPR4JQBCEnsQ@public.gmane.org>
2014-05-21 23:53                   ` Jesse Gross

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20140516084809.GA18920@verge.net.au \
    --to=horms@verge.net.au \
    --cc=blp@nicira.com \
    --cc=dev@openvswitch.org \
    --cc=jesse@nicira.com \
    --cc=joe@wand.net.nz \
    --cc=netdev@vger.kernel.org \
    --cc=pshelar@nicira.com \
    --cc=rkerur@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).