I committed this to master and branch-2.10. (I skipped branch-2.9 based on an off-line conversation with Greg.)
--Justin > On Sep 18, 2018, at 4:01 PM, Justin Pettit <[email protected]> wrote: > > Great. Thanks. I'll go ahead and apply this. > > --Justin > > >> On Sep 18, 2018, at 4:00 PM, Yifeng Sun <[email protected]> wrote: >> >> Yes, after testing and review, it is considered that part is unnecessary so >> it is >> removed. >> >> Thanks, >> Yifeng >> >> On Tue, Sep 18, 2018 at 3:51 PM Justin Pettit <[email protected]> wrote: >> This patch seems to drop the change to __ip_tunnel_create(). Was that >> intentional? >> >> --Justin >> >> >>> On Sep 18, 2018, at 10:35 AM, Yifeng Sun <[email protected]> wrote: >>> >>> 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]> >>> VMware Issue: #2162866 >>> --- >>> Please backport this patch to upstream OVS down to 2.9, thanks. >>> >>> v1->v2: Added sanity check for device names, thanks Justin. >>> v2->v3: Fix an indent error. >>> v3->v4: Fix by code review, also fix a potenial bug. >>> v4->v5: Remove unnecessary code by code review, thanks Greg! >>> >>> datapath/linux/compat/ip6_gre.c | 5 +++-- >>> datapath/linux/compat/ip6_tunnel.c | 6 +++--- >>> datapath/linux/compat/ip_gre.c | 2 +- >>> 3 files changed, 7 insertions(+), 6 deletions(-) >>> >>> diff --git a/datapath/linux/compat/ip6_gre.c >>> b/datapath/linux/compat/ip6_gre.c >>> index 00dbefc9b099..182785273c6f 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"); >>> + strlcpy(name, "ovs-ip6gre%d", IFNAMSIZ); >>> >>> dev = alloc_netdev(sizeof(*t), name, NET_NAME_UNKNOWN, >>> ip6gre_tunnel_setup); >>> @@ -1712,7 +1712,8 @@ static int __net_init ip6gre_init_net(struct net *net) >>> struct ip6gre_net *ign = net_generic(net, ip6gre_net_id); >>> int err; >>> >>> - ign->fb_tunnel_dev = alloc_netdev(sizeof(struct ip6_tnl), "ip6gre0", >>> + ign->fb_tunnel_dev = alloc_netdev(sizeof(struct ip6_tnl), >>> + "ovs-ip6gre0", >>> NET_NAME_UNKNOWN, >>> ip6gre_tunnel_setup); >>> if (!ign->fb_tunnel_dev) { >>> diff --git a/datapath/linux/compat/ip6_tunnel.c >>> b/datapath/linux/compat/ip6_tunnel.c >>> index 56fd8b4dd342..9f4bae7dd3d1 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"); >>> + strlcpy(name, "ovs-ip6tnl%d", IFNAMSIZ); >>> >>> dev = alloc_netdev(sizeof(*t), name, NET_NAME_UNKNOWN, >>> ip6_tnl_dev_setup); >>> @@ -1410,7 +1410,7 @@ ip6_tnl_parm_to_user(struct ip6_tnl_parm *u, const >>> struct __ip6_tnl_parm *p) >>> * %SIOCCHGTUNNEL: change tunnel parameters to those given >>> * %SIOCDELTUNNEL: delete tunnel >>> * >>> - * The fallback device "ip6tnl0", created during module >>> + * The fallback device "ovs-ip6tnl0", created during module >>> * initialization, can be used for creating other tunnel devices. >>> * >>> * Return: >>> @@ -2093,7 +2093,7 @@ static int __net_init ip6_tnl_init_net(struct net >>> *net) >>> ip6n->tnls[1] = ip6n->tnls_r_l; >>> >>> err = -ENOMEM; >>> - ip6n->fb_tnl_dev = alloc_netdev(sizeof(struct ip6_tnl), "ip6tnl0", >>> + ip6n->fb_tnl_dev = alloc_netdev(sizeof(struct ip6_tnl), "ovs-ip6tnl0", >>> NET_NAME_UNKNOWN, ip6_tnl_dev_setup); >>> >>> if (!ip6n->fb_tnl_dev) >>> diff --git a/datapath/linux/compat/ip_gre.c b/datapath/linux/compat/ip_gre.c >>> index 05132ba9494a..b7322c58e420 100644 >>> --- a/datapath/linux/compat/ip_gre.c >>> +++ b/datapath/linux/compat/ip_gre.c >>> @@ -1463,7 +1463,7 @@ static struct pernet_operations erspan_net_ops = { >>> >>> static int __net_init ipgre_tap_init_net(struct net *net) >>> { >>> - return ip_tunnel_init_net(net, gre_tap_net_id, &ipgre_tap_ops, >>> "gretap0"); >>> + return ip_tunnel_init_net(net, gre_tap_net_id, &ipgre_tap_ops, >>> "ovs-gretap0"); >>> } >>> >>> static void __net_exit ipgre_tap_exit_net(struct net *net) >>> -- >>> 2.7.4 >>> >>> _______________________________________________ >>> dev mailing list >>> [email protected] >>> https://mail.openvswitch.org/mailman/listinfo/ovs-dev >> > _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
