Sure, will do.

On Thu, Sep 13, 2018 at 4:05 PM Justin Pettit <[email protected]> wrote:

> Great. By the way, the indication of how far back it should be backported
> is very helpful. However, can you please add it after the “---“ so that
> it’s not part of the commit message.
>
> Thanks!
>
> --Justin
>
>
> On Sep 13, 2018, at 3:52 PM, Yifeng Sun <[email protected]> wrote:
>
> Thanks Justin for the review, I will look at it and create v2.
>
> Yifeng
>
> On Thu, Sep 13, 2018 at 3:19 PM Justin Pettit <[email protected]> wrote:
>
>>
>>
>> > On Sep 11, 2018, at 6:52 AM, Yifeng Sun <[email protected]> wrote:
>> >
>> > Please backport this patch to upstream OVS down to 2.9.
>> >
>> > On certain kernel versions, when openvswitch kernel module creates
>> > a gre0 interface, the kernel’s gre module will jump out and compete
>> > to control the gre0 interface. This will cause the failure of
>> > openvswitch kernel module loading.
>> >
>> > This fix renames fallback devices by adding a prefix "ovs-".
>> >
>> > Signed-off-by: Yifeng Sun <[email protected]>
>> > Issue: #2162866
>> > ---
>> > datapath/linux/compat/ip6_gre.c    | 5 +++--
>> > datapath/linux/compat/ip6_tunnel.c | 6 +++---
>> > datapath/linux/compat/ip_gre.c     | 2 +-
>> > datapath/linux/compat/ip_tunnel.c  | 3 ++-
>> > 4 files changed, 9 insertions(+), 7 deletions(-)
>> >
>> > diff --git a/datapath/linux/compat/ip6_gre.c
>> b/datapath/linux/compat/ip6_gre.c
>> > index 00dbefc..08b31da 100644
>> > --- a/datapath/linux/compat/ip6_gre.c
>> > +++ b/datapath/linux/compat/ip6_gre.c
>> > @@ -377,7 +377,7 @@ static struct ip6_tnl *ip6gre_tunnel_locate(struct
>> net *net,
>> >       if (parms->name[0])
>> >               strlcpy(name, parms->name, IFNAMSIZ);
>> >       else
>> > -             strcpy(name, "ip6gre%d");
>> > +             strcpy(name, "ovs-ip6gre%d");
>>
>> We're starting to make this device name pretty long.  Should we be doing
>> any sort of sanity-check on the length, since we're generating the name?  I
>> did a quick search through the kernel sources, and couldn't determine where
>> that "%d" is actually replaced and whether there's a check.
>>
>> >
>> > diff --git a/datapath/linux/compat/ip6_tunnel.c
>> b/datapath/linux/compat/ip6_tunnel.c
>> > index 56fd8b4..06cebda 100644
>> > --- a/datapath/linux/compat/ip6_tunnel.c
>> > +++ b/datapath/linux/compat/ip6_tunnel.c
>> > @@ -355,7 +355,7 @@ static struct ip6_tnl *ip6_tnl_create(struct net
>> *net, struct __ip6_tnl_parm *p)
>> >       if (p->name[0])
>> >               strlcpy(name, p->name, IFNAMSIZ);
>> >       else
>> > -             sprintf(name, "ip6tnl%%d");
>> > +             sprintf(name, "ovs-ip6tnl%%d");
>>
>> Same question here.
>>
>> > static void __net_exit ipgre_tap_exit_net(struct net *net)
>> > diff --git a/datapath/linux/compat/ip_tunnel.c
>> b/datapath/linux/compat/ip_tunnel.c
>> > index d16e60f..b85ada3 100644
>> > --- a/datapath/linux/compat/ip_tunnel.c
>> > +++ b/datapath/linux/compat/ip_tunnel.c
>> > @@ -134,7 +134,8 @@ static struct net_device *__ip_tunnel_create(struct
>> net *net,
>> >                       err = -E2BIG;
>> >                       goto failed;
>> >               }
>> > -             strlcpy(name, ops->kind, IFNAMSIZ);
>> > +             strlcpy(name, "ovs-", IFNAMSIZ);
>> > +             strlcat(name, ops->kind, IFNAMSIZ);
>> >               strncat(name, "%d", 2);
>> >       }
>>
>> A little earlier in this function, there's a length check:
>>
>>         if (strlen(ops->kind) > (IFNAMSIZ - 3)) {
>>             err = -E2BIG;
>>             goto failed;
>>         }
>>
>> Should we be bumping that by four to account for the "ovs-" that was
>> added?
>>
>> --Justin
>>
>>
>>
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to