On Wed, Dec 17, 2014 at 01:20:48PM -0500, Vladislav Yasevich wrote:
> Since UFO6 packets can now be identified by SKB_GSO_UDP6, add proper checks
> to handel UFO6 flows.

s/handel/handle/

> Legacy applications may still have UFO6 packets identified by SKB_GSO_UDP,
> so we need to continue to handle them correclty.
> 
> Signed-off-by: Vladislav Yasevich <vyase...@redhat.com>
> ---
>  net/openvswitch/datapath.c | 3 ++-
>  net/openvswitch/flow.c     | 2 +-
>  2 files changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/net/openvswitch/datapath.c b/net/openvswitch/datapath.c
> index f9e556b..b43fc60 100644
> --- a/net/openvswitch/datapath.c
> +++ b/net/openvswitch/datapath.c
> @@ -334,7 +334,8 @@ static int queue_gso_packets(struct datapath *dp, struct 
> sk_buff *skb,
>               if (err)
>                       break;
>  
> -             if (skb == segs && gso_type & SKB_GSO_UDP) {
> +             if (skb == segs &&
> +                 ((gso_type & SKB_GSO_UDP) || (gso_type & SKB_GSO_UDP6))) {
>                       /* The initial flow key extracted by ovs_flow_extract()
>                        * in this case is for a first fragment, so we need to
>                        * properly mark later fragments.
> diff --git a/net/openvswitch/flow.c b/net/openvswitch/flow.c
> index 2b78789..d03adf4 100644
> --- a/net/openvswitch/flow.c
> +++ b/net/openvswitch/flow.c
> @@ -602,7 +602,7 @@ static int key_extract(struct sk_buff *skb, struct 
> sw_flow_key *key)
>  
>               if (key->ip.frag == OVS_FRAG_TYPE_LATER)
>                       return 0;
> -             if (skb_shinfo(skb)->gso_type & SKB_GSO_UDP)
> +             if (skb_shinfo(skb)->gso_type & (SKB_GSO_UDP | SKB_GSO_UDP6))
>                       key->ip.frag = OVS_FRAG_TYPE_FIRST;
>  
>               /* Transport layer. */
> -- 
> 1.9.3
_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

Reply via email to