* [PATCH net 1/2] ovs/vxlan: fix rtnl notifications on iface deletion
@ 2016-06-10 9:32 Nicolas Dichtel
2016-06-10 9:32 ` [PATCH net 2/2] ovs/gre: " Nicolas Dichtel
` (2 more replies)
0 siblings, 3 replies; 14+ messages in thread
From: Nicolas Dichtel @ 2016-06-10 9:32 UTC (permalink / raw)
To: davem; +Cc: netdev, Nicolas Dichtel, Thomas Graf, Pravin B Shelar
The function vxlan_dev_create() (only used by ovs) never calls
rtnl_configure_link(). The consequence is that dev->rtnl_link_state is
never set to RTNL_LINK_INITIALIZED.
During the deletion phase, the function rollback_registered_many() sends
a RTM_DELLINK only if dev->rtnl_link_state is set to RTNL_LINK_INITIALIZED.
Fixes: dcc38c033b32 ("openvswitch: Re-add CONFIG_OPENVSWITCH_VXLAN")
CC: Thomas Graf <tgraf@suug.ch>
CC: Pravin B Shelar <pshelar@nicira.com>
Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
---
drivers/net/vxlan.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/drivers/net/vxlan.c b/drivers/net/vxlan.c
index f999db2f97b4..f7669d60b3f7 100644
--- a/drivers/net/vxlan.c
+++ b/drivers/net/vxlan.c
@@ -2972,6 +2972,12 @@ struct net_device *vxlan_dev_create(struct net *net, const char *name,
return ERR_PTR(err);
}
+ err = rtnl_configure_link(dev, NULL);
+ if (err < 0) {
+ free_netdev(dev);
+ return ERR_PTR(err);
+ }
+
return dev;
}
EXPORT_SYMBOL_GPL(vxlan_dev_create);
--
2.4.2
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH net 2/2] ovs/gre: fix rtnl notifications on iface deletion
2016-06-10 9:32 [PATCH net 1/2] ovs/vxlan: fix rtnl notifications on iface deletion Nicolas Dichtel
@ 2016-06-10 9:32 ` Nicolas Dichtel
2016-06-10 17:50 ` pravin shelar
2016-06-10 17:50 ` [PATCH net 1/2] ovs/vxlan: " pravin shelar
2016-06-10 17:52 ` [PATCH net 1/2] ovs/vxlan: fix rtnl notifications on iface deletion Jesse Gross
2 siblings, 1 reply; 14+ messages in thread
From: Nicolas Dichtel @ 2016-06-10 9:32 UTC (permalink / raw)
To: davem; +Cc: netdev, Nicolas Dichtel, Thomas Graf, Pravin B Shelar
The function gretap_fb_dev_create() (only used by ovs) never calls
rtnl_configure_link(). The consequence is that dev->rtnl_link_state is
never set to RTNL_LINK_INITIALIZED.
During the deletion phase, the function rollback_registered_many() sends
a RTM_DELLINK only if dev->rtnl_link_state is set to RTNL_LINK_INITIALIZED.
Fixes: b2acd1dc3949 ("openvswitch: Use regular GRE net_device instead of vport")
CC: Thomas Graf <tgraf@suug.ch>
CC: Pravin B Shelar <pshelar@nicira.com>
Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
---
net/ipv4/ip_gre.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/net/ipv4/ip_gre.c b/net/ipv4/ip_gre.c
index 4d2025f7ec57..c6a46ee87a3a 100644
--- a/net/ipv4/ip_gre.c
+++ b/net/ipv4/ip_gre.c
@@ -1146,6 +1146,10 @@ struct net_device *gretap_fb_dev_create(struct net *net, const char *name,
if (err)
goto out;
+ err = rtnl_configure_link(dev, NULL);
+ if (err < 0)
+ goto out;
+
return dev;
out:
free_netdev(dev);
--
2.4.2
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH net 1/2] ovs/vxlan: fix rtnl notifications on iface deletion
2016-06-10 9:32 [PATCH net 1/2] ovs/vxlan: fix rtnl notifications on iface deletion Nicolas Dichtel
2016-06-10 9:32 ` [PATCH net 2/2] ovs/gre: " Nicolas Dichtel
@ 2016-06-10 17:50 ` pravin shelar
2016-06-13 7:44 ` Nicolas Dichtel
2016-06-13 8:31 ` [PATCH net v2 0/4] ovs: fix rtnl notifications on interface deletion Nicolas Dichtel
2016-06-10 17:52 ` [PATCH net 1/2] ovs/vxlan: fix rtnl notifications on iface deletion Jesse Gross
2 siblings, 2 replies; 14+ messages in thread
From: pravin shelar @ 2016-06-10 17:50 UTC (permalink / raw)
To: Nicolas Dichtel
Cc: David S. Miller, Linux Kernel Network Developers, Thomas Graf,
Pravin B Shelar
On Fri, Jun 10, 2016 at 2:32 AM, Nicolas Dichtel
<nicolas.dichtel@6wind.com> wrote:
> The function vxlan_dev_create() (only used by ovs) never calls
> rtnl_configure_link(). The consequence is that dev->rtnl_link_state is
> never set to RTNL_LINK_INITIALIZED.
> During the deletion phase, the function rollback_registered_many() sends
> a RTM_DELLINK only if dev->rtnl_link_state is set to RTNL_LINK_INITIALIZED.
>
> Fixes: dcc38c033b32 ("openvswitch: Re-add CONFIG_OPENVSWITCH_VXLAN")
> CC: Thomas Graf <tgraf@suug.ch>
> CC: Pravin B Shelar <pshelar@nicira.com>
> Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
> ---
> drivers/net/vxlan.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/drivers/net/vxlan.c b/drivers/net/vxlan.c
> index f999db2f97b4..f7669d60b3f7 100644
> --- a/drivers/net/vxlan.c
> +++ b/drivers/net/vxlan.c
> @@ -2972,6 +2972,12 @@ struct net_device *vxlan_dev_create(struct net *net, const char *name,
> return ERR_PTR(err);
> }
>
> + err = rtnl_configure_link(dev, NULL);
> + if (err < 0) {
> + free_netdev(dev);
> + return ERR_PTR(err);
> + }
> +
Patch looks good except the error handling code. earlier call to
vxlan_dev_configure() registers the net-device and add the device to
vxlan device list. it needs to be undone before freeing the device.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH net 2/2] ovs/gre: fix rtnl notifications on iface deletion
2016-06-10 9:32 ` [PATCH net 2/2] ovs/gre: " Nicolas Dichtel
@ 2016-06-10 17:50 ` pravin shelar
0 siblings, 0 replies; 14+ messages in thread
From: pravin shelar @ 2016-06-10 17:50 UTC (permalink / raw)
To: Nicolas Dichtel
Cc: David S. Miller, Linux Kernel Network Developers, Thomas Graf,
Pravin B Shelar
On Fri, Jun 10, 2016 at 2:32 AM, Nicolas Dichtel
<nicolas.dichtel@6wind.com> wrote:
> The function gretap_fb_dev_create() (only used by ovs) never calls
> rtnl_configure_link(). The consequence is that dev->rtnl_link_state is
> never set to RTNL_LINK_INITIALIZED.
> During the deletion phase, the function rollback_registered_many() sends
> a RTM_DELLINK only if dev->rtnl_link_state is set to RTNL_LINK_INITIALIZED.
>
> Fixes: b2acd1dc3949 ("openvswitch: Use regular GRE net_device instead of vport")
> CC: Thomas Graf <tgraf@suug.ch>
> CC: Pravin B Shelar <pshelar@nicira.com>
> Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
> ---
> net/ipv4/ip_gre.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/net/ipv4/ip_gre.c b/net/ipv4/ip_gre.c
> index 4d2025f7ec57..c6a46ee87a3a 100644
> --- a/net/ipv4/ip_gre.c
> +++ b/net/ipv4/ip_gre.c
> @@ -1146,6 +1146,10 @@ struct net_device *gretap_fb_dev_create(struct net *net, const char *name,
> if (err)
> goto out;
>
> + err = rtnl_configure_link(dev, NULL);
> + if (err < 0)
> + goto out;
> +
As the first patch, similar issue exist here. But existing error
handling code already is buggy.
> return dev;
> out:
> free_netdev(dev);
> --
> 2.4.2
>
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH net 1/2] ovs/vxlan: fix rtnl notifications on iface deletion
2016-06-10 9:32 [PATCH net 1/2] ovs/vxlan: fix rtnl notifications on iface deletion Nicolas Dichtel
2016-06-10 9:32 ` [PATCH net 2/2] ovs/gre: " Nicolas Dichtel
2016-06-10 17:50 ` [PATCH net 1/2] ovs/vxlan: " pravin shelar
@ 2016-06-10 17:52 ` Jesse Gross
2016-06-13 8:12 ` Nicolas Dichtel
2 siblings, 1 reply; 14+ messages in thread
From: Jesse Gross @ 2016-06-10 17:52 UTC (permalink / raw)
To: Nicolas Dichtel
Cc: David Miller, Linux Kernel Network Developers, Thomas Graf,
Pravin B Shelar
On Fri, Jun 10, 2016 at 2:32 AM, Nicolas Dichtel
<nicolas.dichtel@6wind.com> wrote:
> The function vxlan_dev_create() (only used by ovs) never calls
> rtnl_configure_link(). The consequence is that dev->rtnl_link_state is
> never set to RTNL_LINK_INITIALIZED.
> During the deletion phase, the function rollback_registered_many() sends
> a RTM_DELLINK only if dev->rtnl_link_state is set to RTNL_LINK_INITIALIZED.
>
> Fixes: dcc38c033b32 ("openvswitch: Re-add CONFIG_OPENVSWITCH_VXLAN")
> CC: Thomas Graf <tgraf@suug.ch>
> CC: Pravin B Shelar <pshelar@nicira.com>
> Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Does Geneve need this as well?
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH net 1/2] ovs/vxlan: fix rtnl notifications on iface deletion
2016-06-10 17:50 ` [PATCH net 1/2] ovs/vxlan: " pravin shelar
@ 2016-06-13 7:44 ` Nicolas Dichtel
2016-06-13 8:31 ` [PATCH net v2 0/4] ovs: fix rtnl notifications on interface deletion Nicolas Dichtel
1 sibling, 0 replies; 14+ messages in thread
From: Nicolas Dichtel @ 2016-06-13 7:44 UTC (permalink / raw)
To: pravin shelar
Cc: David S. Miller, Linux Kernel Network Developers, Thomas Graf,
Pravin B Shelar
Le 10/06/2016 19:50, pravin shelar a écrit :
[snip]
> Patch looks good except the error handling code. earlier call to
> vxlan_dev_configure() registers the net-device and add the device to
> vxlan device list. it needs to be undone before freeing the device.
>
Ok, will fix it (and also for GRE).
Thank you,
Nicolas
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH net 1/2] ovs/vxlan: fix rtnl notifications on iface deletion
2016-06-10 17:52 ` [PATCH net 1/2] ovs/vxlan: fix rtnl notifications on iface deletion Jesse Gross
@ 2016-06-13 8:12 ` Nicolas Dichtel
0 siblings, 0 replies; 14+ messages in thread
From: Nicolas Dichtel @ 2016-06-13 8:12 UTC (permalink / raw)
To: Jesse Gross
Cc: David Miller, Linux Kernel Network Developers, Thomas Graf,
Pravin B Shelar
Le 10/06/2016 19:52, Jesse Gross a écrit :
[snip]
> Does Geneve need this as well?
>
Yes, will fix it.
Thank you,
Nicolas
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH net v2 0/4] ovs: fix rtnl notifications on interface deletion
2016-06-10 17:50 ` [PATCH net 1/2] ovs/vxlan: " pravin shelar
2016-06-13 7:44 ` Nicolas Dichtel
@ 2016-06-13 8:31 ` Nicolas Dichtel
2016-06-13 8:31 ` [PATCH net v2 1/4] ovs/gre,geneve: fix error path when creating an iface Nicolas Dichtel
` (4 more replies)
1 sibling, 5 replies; 14+ messages in thread
From: Nicolas Dichtel @ 2016-06-13 8:31 UTC (permalink / raw)
To: davem; +Cc: netdev, pshelar, jesse, linville
There was no rtnl notifications for interfaces (gre, vxlan, geneve) created
by ovs. This problem is fixed by adjusting the creation path.
v1 -> v2:
- add patch #1 and #4
- rework error handling in patch #2
drivers/net/geneve.c | 14 ++++++++++---
drivers/net/vxlan.c | 58 ++++++++++++++++++++++++++++++----------------------
net/ipv4/ip_gre.c | 14 ++++++++++---
3 files changed, 56 insertions(+), 30 deletions(-)
Regards,
Nicolas
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH net v2 1/4] ovs/gre,geneve: fix error path when creating an iface
2016-06-13 8:31 ` [PATCH net v2 0/4] ovs: fix rtnl notifications on interface deletion Nicolas Dichtel
@ 2016-06-13 8:31 ` Nicolas Dichtel
2016-06-13 8:31 ` [PATCH net v2 2/4] ovs/vxlan: fix rtnl notifications on iface deletion Nicolas Dichtel
` (3 subsequent siblings)
4 siblings, 0 replies; 14+ messages in thread
From: Nicolas Dichtel @ 2016-06-13 8:31 UTC (permalink / raw)
To: davem; +Cc: netdev, pshelar, jesse, linville, Nicolas Dichtel, David Wragg
After ipgre_newlink()/geneve_configure() call, the netdev is registered.
Fixes: 7e059158d57b ("vxlan, gre, geneve: Set a large MTU on ovs-created tunnel devices")
CC: David Wragg <david@weave.works>
Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
---
drivers/net/geneve.c | 10 +++++++---
net/ipv4/ip_gre.c | 10 +++++++---
2 files changed, 14 insertions(+), 6 deletions(-)
diff --git a/drivers/net/geneve.c b/drivers/net/geneve.c
index cadefe4fdaa2..086c2dae4c3d 100644
--- a/drivers/net/geneve.c
+++ b/drivers/net/geneve.c
@@ -1508,6 +1508,7 @@ struct net_device *geneve_dev_create_fb(struct net *net, const char *name,
{
struct nlattr *tb[IFLA_MAX + 1];
struct net_device *dev;
+ LIST_HEAD(list_kill);
int err;
memset(tb, 0, sizeof(tb));
@@ -1519,8 +1520,10 @@ struct net_device *geneve_dev_create_fb(struct net *net, const char *name,
err = geneve_configure(net, dev, &geneve_remote_unspec,
0, 0, 0, 0, htons(dst_port), true,
GENEVE_F_UDP_ZERO_CSUM6_RX);
- if (err)
- goto err;
+ if (err) {
+ free_netdev(dev);
+ return ERR_PTR(err);
+ }
/* openvswitch users expect packet sizes to be unrestricted,
* so set the largest MTU we can.
@@ -1532,7 +1535,8 @@ struct net_device *geneve_dev_create_fb(struct net *net, const char *name,
return dev;
err:
- free_netdev(dev);
+ geneve_dellink(dev, &list_kill);
+ unregister_netdevice_many(&list_kill);
return ERR_PTR(err);
}
EXPORT_SYMBOL_GPL(geneve_dev_create_fb);
diff --git a/net/ipv4/ip_gre.c b/net/ipv4/ip_gre.c
index 4d2025f7ec57..08deba679c8c 100644
--- a/net/ipv4/ip_gre.c
+++ b/net/ipv4/ip_gre.c
@@ -1121,6 +1121,7 @@ struct net_device *gretap_fb_dev_create(struct net *net, const char *name,
{
struct nlattr *tb[IFLA_MAX + 1];
struct net_device *dev;
+ LIST_HEAD(list_kill);
struct ip_tunnel *t;
int err;
@@ -1136,8 +1137,10 @@ struct net_device *gretap_fb_dev_create(struct net *net, const char *name,
t->collect_md = true;
err = ipgre_newlink(net, dev, tb, NULL);
- if (err < 0)
- goto out;
+ if (err < 0) {
+ free_netdev(dev);
+ return ERR_PTR(err);
+ }
/* openvswitch users expect packet sizes to be unrestricted,
* so set the largest MTU we can.
@@ -1148,7 +1151,8 @@ struct net_device *gretap_fb_dev_create(struct net *net, const char *name,
return dev;
out:
- free_netdev(dev);
+ ip_tunnel_dellink(dev, &list_kill);
+ unregister_netdevice_many(&list_kill);
return ERR_PTR(err);
}
EXPORT_SYMBOL_GPL(gretap_fb_dev_create);
--
2.4.2
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH net v2 2/4] ovs/vxlan: fix rtnl notifications on iface deletion
2016-06-13 8:31 ` [PATCH net v2 0/4] ovs: fix rtnl notifications on interface deletion Nicolas Dichtel
2016-06-13 8:31 ` [PATCH net v2 1/4] ovs/gre,geneve: fix error path when creating an iface Nicolas Dichtel
@ 2016-06-13 8:31 ` Nicolas Dichtel
2016-06-13 8:31 ` [PATCH net v2 3/4] ovs/gre: " Nicolas Dichtel
` (2 subsequent siblings)
4 siblings, 0 replies; 14+ messages in thread
From: Nicolas Dichtel @ 2016-06-13 8:31 UTC (permalink / raw)
To: davem
Cc: netdev, pshelar, jesse, linville, Nicolas Dichtel, Thomas Graf,
Pravin B Shelar
The function vxlan_dev_create() (only used by ovs) never calls
rtnl_configure_link(). The consequence is that dev->rtnl_link_state is
never set to RTNL_LINK_INITIALIZED.
During the deletion phase, the function rollback_registered_many() sends
a RTM_DELLINK only if dev->rtnl_link_state is set to RTNL_LINK_INITIALIZED.
Note that the function vxlan_dev_create() is moved after the rtnl stuff so
that vxlan_dellink() can be called in this function.
Fixes: dcc38c033b32 ("openvswitch: Re-add CONFIG_OPENVSWITCH_VXLAN")
CC: Thomas Graf <tgraf@suug.ch>
CC: Pravin B Shelar <pshelar@nicira.com>
Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
---
drivers/net/vxlan.c | 58 +++++++++++++++++++++++++++++++----------------------
1 file changed, 34 insertions(+), 24 deletions(-)
diff --git a/drivers/net/vxlan.c b/drivers/net/vxlan.c
index f999db2f97b4..b3b9db68f758 100644
--- a/drivers/net/vxlan.c
+++ b/drivers/net/vxlan.c
@@ -2952,30 +2952,6 @@ static int vxlan_dev_configure(struct net *src_net, struct net_device *dev,
return 0;
}
-struct net_device *vxlan_dev_create(struct net *net, const char *name,
- u8 name_assign_type, struct vxlan_config *conf)
-{
- struct nlattr *tb[IFLA_MAX+1];
- struct net_device *dev;
- int err;
-
- memset(&tb, 0, sizeof(tb));
-
- dev = rtnl_create_link(net, name, name_assign_type,
- &vxlan_link_ops, tb);
- if (IS_ERR(dev))
- return dev;
-
- err = vxlan_dev_configure(net, dev, conf);
- if (err < 0) {
- free_netdev(dev);
- return ERR_PTR(err);
- }
-
- return dev;
-}
-EXPORT_SYMBOL_GPL(vxlan_dev_create);
-
static int vxlan_newlink(struct net *src_net, struct net_device *dev,
struct nlattr *tb[], struct nlattr *data[])
{
@@ -3268,6 +3244,40 @@ static struct rtnl_link_ops vxlan_link_ops __read_mostly = {
.get_link_net = vxlan_get_link_net,
};
+struct net_device *vxlan_dev_create(struct net *net, const char *name,
+ u8 name_assign_type,
+ struct vxlan_config *conf)
+{
+ struct nlattr *tb[IFLA_MAX + 1];
+ struct net_device *dev;
+ int err;
+
+ memset(&tb, 0, sizeof(tb));
+
+ dev = rtnl_create_link(net, name, name_assign_type,
+ &vxlan_link_ops, tb);
+ if (IS_ERR(dev))
+ return dev;
+
+ err = vxlan_dev_configure(net, dev, conf);
+ if (err < 0) {
+ free_netdev(dev);
+ return ERR_PTR(err);
+ }
+
+ err = rtnl_configure_link(dev, NULL);
+ if (err < 0) {
+ LIST_HEAD(list_kill);
+
+ vxlan_dellink(dev, &list_kill);
+ unregister_netdevice_many(&list_kill);
+ return ERR_PTR(err);
+ }
+
+ return dev;
+}
+EXPORT_SYMBOL_GPL(vxlan_dev_create);
+
static void vxlan_handle_lowerdev_unregister(struct vxlan_net *vn,
struct net_device *dev)
{
--
2.4.2
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH net v2 3/4] ovs/gre: fix rtnl notifications on iface deletion
2016-06-13 8:31 ` [PATCH net v2 0/4] ovs: fix rtnl notifications on interface deletion Nicolas Dichtel
2016-06-13 8:31 ` [PATCH net v2 1/4] ovs/gre,geneve: fix error path when creating an iface Nicolas Dichtel
2016-06-13 8:31 ` [PATCH net v2 2/4] ovs/vxlan: fix rtnl notifications on iface deletion Nicolas Dichtel
@ 2016-06-13 8:31 ` Nicolas Dichtel
2016-06-13 8:31 ` [PATCH net v2 4/4] ovs/geneve: " Nicolas Dichtel
2016-06-13 19:39 ` [PATCH net v2 0/4] ovs: fix rtnl notifications on interface deletion pravin shelar
4 siblings, 0 replies; 14+ messages in thread
From: Nicolas Dichtel @ 2016-06-13 8:31 UTC (permalink / raw)
To: davem
Cc: netdev, pshelar, jesse, linville, Nicolas Dichtel, Thomas Graf,
Pravin B Shelar
The function gretap_fb_dev_create() (only used by ovs) never calls
rtnl_configure_link(). The consequence is that dev->rtnl_link_state is
never set to RTNL_LINK_INITIALIZED.
During the deletion phase, the function rollback_registered_many() sends
a RTM_DELLINK only if dev->rtnl_link_state is set to RTNL_LINK_INITIALIZED.
Fixes: b2acd1dc3949 ("openvswitch: Use regular GRE net_device instead of vport")
CC: Thomas Graf <tgraf@suug.ch>
CC: Pravin B Shelar <pshelar@nicira.com>
Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
---
net/ipv4/ip_gre.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/net/ipv4/ip_gre.c b/net/ipv4/ip_gre.c
index 08deba679c8c..07c5cf1838d8 100644
--- a/net/ipv4/ip_gre.c
+++ b/net/ipv4/ip_gre.c
@@ -1149,6 +1149,10 @@ struct net_device *gretap_fb_dev_create(struct net *net, const char *name,
if (err)
goto out;
+ err = rtnl_configure_link(dev, NULL);
+ if (err < 0)
+ goto out;
+
return dev;
out:
ip_tunnel_dellink(dev, &list_kill);
--
2.4.2
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH net v2 4/4] ovs/geneve: fix rtnl notifications on iface deletion
2016-06-13 8:31 ` [PATCH net v2 0/4] ovs: fix rtnl notifications on interface deletion Nicolas Dichtel
` (2 preceding siblings ...)
2016-06-13 8:31 ` [PATCH net v2 3/4] ovs/gre: " Nicolas Dichtel
@ 2016-06-13 8:31 ` Nicolas Dichtel
2016-06-13 19:39 ` [PATCH net v2 0/4] ovs: fix rtnl notifications on interface deletion pravin shelar
4 siblings, 0 replies; 14+ messages in thread
From: Nicolas Dichtel @ 2016-06-13 8:31 UTC (permalink / raw)
To: davem
Cc: netdev, pshelar, jesse, linville, Nicolas Dichtel,
Pravin B Shelar, Jesse Gross, Thomas Graf
The function geneve_dev_create_fb() (only used by ovs) never calls
rtnl_configure_link(). The consequence is that dev->rtnl_link_state is
never set to RTNL_LINK_INITIALIZED.
During the deletion phase, the function rollback_registered_many() sends
a RTM_DELLINK only if dev->rtnl_link_state is set to RTNL_LINK_INITIALIZED.
Fixes: e305ac6cf5a1 ("geneve: Add support to collect tunnel metadata.")
CC: Pravin B Shelar <pshelar@nicira.com>
CC: Jesse Gross <jesse@nicira.com>
CC: Thomas Graf <tgraf@suug.ch>
Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
---
drivers/net/geneve.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/net/geneve.c b/drivers/net/geneve.c
index 086c2dae4c3d..305a04e45a13 100644
--- a/drivers/net/geneve.c
+++ b/drivers/net/geneve.c
@@ -1532,6 +1532,10 @@ struct net_device *geneve_dev_create_fb(struct net *net, const char *name,
if (err)
goto err;
+ err = rtnl_configure_link(dev, NULL);
+ if (err < 0)
+ goto err;
+
return dev;
err:
--
2.4.2
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH net v2 0/4] ovs: fix rtnl notifications on interface deletion
2016-06-13 8:31 ` [PATCH net v2 0/4] ovs: fix rtnl notifications on interface deletion Nicolas Dichtel
` (3 preceding siblings ...)
2016-06-13 8:31 ` [PATCH net v2 4/4] ovs/geneve: " Nicolas Dichtel
@ 2016-06-13 19:39 ` pravin shelar
2016-06-15 5:22 ` David Miller
4 siblings, 1 reply; 14+ messages in thread
From: pravin shelar @ 2016-06-13 19:39 UTC (permalink / raw)
To: Nicolas Dichtel
Cc: David S. Miller, Linux Kernel Network Developers, Jesse Gross, linville
On Mon, Jun 13, 2016 at 1:31 AM, Nicolas Dichtel
<nicolas.dichtel@6wind.com> wrote:
>
> There was no rtnl notifications for interfaces (gre, vxlan, geneve) created
> by ovs. This problem is fixed by adjusting the creation path.
>
> v1 -> v2:
> - add patch #1 and #4
> - rework error handling in patch #2
>
> drivers/net/geneve.c | 14 ++++++++++---
> drivers/net/vxlan.c | 58 ++++++++++++++++++++++++++++++----------------------
> net/ipv4/ip_gre.c | 14 ++++++++++---
> 3 files changed, 56 insertions(+), 30 deletions(-)
>
All patches looks good to me.
Acked-by: Pravin B Shelar <pshelar@ovn.org>
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH net v2 0/4] ovs: fix rtnl notifications on interface deletion
2016-06-13 19:39 ` [PATCH net v2 0/4] ovs: fix rtnl notifications on interface deletion pravin shelar
@ 2016-06-15 5:22 ` David Miller
0 siblings, 0 replies; 14+ messages in thread
From: David Miller @ 2016-06-15 5:22 UTC (permalink / raw)
To: pshelar; +Cc: nicolas.dichtel, netdev, jesse, linville
From: pravin shelar <pshelar@ovn.org>
Date: Mon, 13 Jun 2016 12:39:16 -0700
> On Mon, Jun 13, 2016 at 1:31 AM, Nicolas Dichtel
> <nicolas.dichtel@6wind.com> wrote:
>>
>> There was no rtnl notifications for interfaces (gre, vxlan, geneve) created
>> by ovs. This problem is fixed by adjusting the creation path.
>>
>> v1 -> v2:
>> - add patch #1 and #4
>> - rework error handling in patch #2
>>
>> drivers/net/geneve.c | 14 ++++++++++---
>> drivers/net/vxlan.c | 58 ++++++++++++++++++++++++++++++----------------------
>> net/ipv4/ip_gre.c | 14 ++++++++++---
>> 3 files changed, 56 insertions(+), 30 deletions(-)
>>
>
> All patches looks good to me.
>
> Acked-by: Pravin B Shelar <pshelar@ovn.org>
Series applied, thanks.
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2016-06-15 5:22 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-06-10 9:32 [PATCH net 1/2] ovs/vxlan: fix rtnl notifications on iface deletion Nicolas Dichtel
2016-06-10 9:32 ` [PATCH net 2/2] ovs/gre: " Nicolas Dichtel
2016-06-10 17:50 ` pravin shelar
2016-06-10 17:50 ` [PATCH net 1/2] ovs/vxlan: " pravin shelar
2016-06-13 7:44 ` Nicolas Dichtel
2016-06-13 8:31 ` [PATCH net v2 0/4] ovs: fix rtnl notifications on interface deletion Nicolas Dichtel
2016-06-13 8:31 ` [PATCH net v2 1/4] ovs/gre,geneve: fix error path when creating an iface Nicolas Dichtel
2016-06-13 8:31 ` [PATCH net v2 2/4] ovs/vxlan: fix rtnl notifications on iface deletion Nicolas Dichtel
2016-06-13 8:31 ` [PATCH net v2 3/4] ovs/gre: " Nicolas Dichtel
2016-06-13 8:31 ` [PATCH net v2 4/4] ovs/geneve: " Nicolas Dichtel
2016-06-13 19:39 ` [PATCH net v2 0/4] ovs: fix rtnl notifications on interface deletion pravin shelar
2016-06-15 5:22 ` David Miller
2016-06-10 17:52 ` [PATCH net 1/2] ovs/vxlan: fix rtnl notifications on iface deletion Jesse Gross
2016-06-13 8:12 ` Nicolas Dichtel
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.