All of lore.kernel.org
 help / color / mirror / Atom feed
From: Pravin Shelar <pshelar@ovn.org>
To: "Yang, Yi" <yi.y.yang@intel.com>
Cc: Linux Kernel Network Developers <netdev@vger.kernel.org>,
	ovs dev <dev@openvswitch.org>, Jiri Benc <jbenc@redhat.com>,
	Eric Garver <e@erig.me>, "David S. Miller" <davem@davemloft.net>
Subject: Re: [PATCH net-next v15] openvswitch: enable NSH support
Date: Sat, 4 Nov 2017 05:30:04 -0700	[thread overview]
Message-ID: <CAOrHB_AZMFtysihFzH1wPEq9Mnph39vMZ4yaL5NBrdcoR1wyqA@mail.gmail.com> (raw)
In-Reply-To: <20171103014027.GA45072@localhost.localdomain>

On Thu, Nov 2, 2017 at 6:40 PM, Yang, Yi <yi.y.yang@intel.com> wrote:
> On Thu, Nov 02, 2017 at 05:06:47AM -0700, Pravin Shelar wrote:
>> On Wed, Nov 1, 2017 at 7:50 PM, Yang, Yi <yi.y.yang@intel.com> wrote:
>> > On Thu, Nov 02, 2017 at 08:52:40AM +0800, Pravin Shelar wrote:
>> >> On Tue, Oct 31, 2017 at 9:03 PM, Yi Yang <yi.y.yang@intel.com> wrote:
>> >> >
>> >> > OVS master and 2.8 branch has merged NSH userspace
>> >> > patch series, this patch is to enable NSH support
>> >> > in kernel data path in order that OVS can support
>> >> > NSH in compat mode by porting this.
>> >> >
>> >> > Signed-off-by: Yi Yang <yi.y.yang@intel.com>
>> >> > ---
>> >> I have comment related to checksum, otherwise patch looks good to me.
>> >
>> > Pravin, thank you for your comments, the below part is incremental patch
>> > for checksum, please help check it, I'll send out v16 with this after
>> > you confirm.
>> >
>> This change looks good to me.
>> I noticed couple of more issues.
>> 1. Can you move the ovs_key_nsh to the union of ipv4 an ipv6?
>> ipv4/ipv6/nsh key data is mutually exclusive so there is no need for
>> separate space for nsh key in the ovs key.
>> 2. We need to fix match_validate() with nsh check. Datapath can not
>> allow any l3 or l4 match if the flow key contains nsh match and
>> vice-versa. such flow key should be rejected.
>
> Pravin, the below incremental patch should fix the issues you pionted
> out, please help confirm/ack, then I'll send out v16 with all acks
> from you all for merge. BTW, it has been verified in my sfc test
> environment.
>
Following patch looks good to me. But I think we needs similar
eth_type check for nsh set action in validate_set() and in
__ovs_nla_copy_actions() for NSH_POP action.

Can you send patch with all changes?

Thanks.

> diff --git a/net/openvswitch/flow.h b/net/openvswitch/flow.h
> index 8eeae749..c670dd2 100644
> --- a/net/openvswitch/flow.h
> +++ b/net/openvswitch/flow.h
> @@ -149,8 +149,8 @@ struct sw_flow_key {
>                                 } nd;
>                         };
>                 } ipv6;
> +               struct ovs_key_nsh nsh;         /* network service header */
>         };
> -       struct ovs_key_nsh nsh;         /* network service header */
>         struct {
>                 /* Connection tracking fields not packed above. */
>                 struct {
> diff --git a/net/openvswitch/flow_netlink.c b/net/openvswitch/flow_netlink.c
> index 0d7d4ae..090103c 100644
> --- a/net/openvswitch/flow_netlink.c
> +++ b/net/openvswitch/flow_netlink.c
> @@ -178,7 +178,8 @@ static bool match_validate(const struct sw_flow_match *match,
>                         | (1 << OVS_KEY_ATTR_ICMPV6)
>                         | (1 << OVS_KEY_ATTR_ARP)
>                         | (1 << OVS_KEY_ATTR_ND)
> -                       | (1 << OVS_KEY_ATTR_MPLS));
> +                       | (1 << OVS_KEY_ATTR_MPLS)
> +                       | (1 << OVS_KEY_ATTR_NSH));
>
>         /* Always allowed mask fields. */
>         mask_allowed |= ((1 << OVS_KEY_ATTR_TUNNEL)
> @@ -287,6 +288,14 @@ static bool match_validate(const struct sw_flow_match *match,
>                 }
>         }
>
> +       if (match->key->eth.type == htons(ETH_P_NSH)) {
> +               key_expected |= 1 << OVS_KEY_ATTR_NSH;
> +               if (match->mask &&
> +                   match->mask->key.eth.type == htons(0xffff)) {
> +                       mask_allowed |= 1 << OVS_KEY_ATTR_NSH;
> +               }
> +       }
> +
>         if ((key_attrs & key_expected) != key_expected) {
>                 /* Key attributes check failed. */
>                 OVS_NLERR(log, "Missing key (keys=%llx, expected=%llx)",

  reply	other threads:[~2017-11-04 12:30 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-01  4:03 [PATCH net-next v15] openvswitch: enable NSH support Yi Yang
2017-11-01  8:46 ` Jiri Benc
2017-11-01 15:21 ` Eric Garver
2017-11-02  0:52 ` Pravin Shelar
2017-11-02  2:50   ` Yang, Yi
2017-11-02 12:06     ` Pravin Shelar
     [not found]       ` <CAOrHB_BaUS7WfisvX6G+450tEQ2skmsE0v-b27s-_21s25bigw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-11-02 12:09         ` Yang, Yi
2017-11-03  1:40         ` Yang, Yi
2017-11-04 12:30           ` Pravin Shelar [this message]
     [not found] ` <1509508981-66202-1-git-send-email-yi.y.yang-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2017-11-04 14:29   ` Pravin Shelar
2017-11-06  4:19     ` Yang, Yi
2017-11-06 12:09       ` Pravin Shelar
     [not found]     ` <CAOrHB_COGWb78kN70QFKgA3w5v3zasAW=TJbzoE5zZYKao_GvA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-11-06 12:22       ` Jiri Benc
     [not found]         ` <20171106132248.6fa4c5a0-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2017-11-07 10:57           ` Pravin Shelar
2017-11-07 11:28             ` Yang, Yi
     [not found]               ` <20171107112833.GA56179-re2EX8HDrk21gSHoDXDV2kEOCMrvLtNR@public.gmane.org>
2017-11-07 11:58                 ` Pravin Shelar
     [not found]                   ` <CAOrHB_D2khYGGJxNA8hpE4Qnhm7ONKrH=kcNteV=iYWLRnaGHQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-11-07 11:55                     ` Yang, Yi
2017-11-07 13:01                       ` Pravin Shelar
2017-11-07 13:09                         ` Yang, Yi

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=CAOrHB_AZMFtysihFzH1wPEq9Mnph39vMZ4yaL5NBrdcoR1wyqA@mail.gmail.com \
    --to=pshelar@ovn.org \
    --cc=davem@davemloft.net \
    --cc=dev@openvswitch.org \
    --cc=e@erig.me \
    --cc=jbenc@redhat.com \
    --cc=netdev@vger.kernel.org \
    --cc=yi.y.yang@intel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.