[lxc-devel] [lxc/master] network: fixes after unifying network creation
brauner on Github
lxc-bot at linuxcontainers.org
Wed Jul 3 19:50:26 UTC 2019
A non-text attachment was scrubbed...
Name: not available
Type: text/x-mailbox
Size: 364 bytes
Desc: not available
URL: <http://lists.linuxcontainers.org/pipermail/lxc-devel/attachments/20190703/7fba1eeb/attachment-0001.bin>
-------------- next part --------------
From 3ebffb98965c6f1051253377ea09f5faa6eecb38 Mon Sep 17 00:00:00 2001
From: Christian Brauner <christian.brauner at ubuntu.com>
Date: Wed, 3 Jul 2019 21:37:37 +0200
Subject: [PATCH 1/9] network: s/loDev/loop_device/g
Signed-off-by: Christian Brauner <christian.brauner at ubuntu.com>
---
src/lxc/network.c | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/src/lxc/network.c b/src/lxc/network.c
index dedcb00c6f..ab4907a4c9 100644
--- a/src/lxc/network.c
+++ b/src/lxc/network.c
@@ -68,7 +68,7 @@
lxc_log_define(network, lxc);
typedef int (*instantiate_cb)(struct lxc_handler *, struct lxc_netdev *);
-static const char loDev[] = "lo";
+static const char loop_device[] = "lo";
static int lxc_ip_route_dest(__u16 nlmsg_type, int family, int ifindex, void *dest, unsigned int netmask)
{
@@ -2946,9 +2946,9 @@ static int lxc_setup_l2proxy(struct lxc_netdev *netdev) {
}
/* Retrieve local-loopback interface index for use with IPVLAN static routes. */
- lo_ifindex = if_nametoindex(loDev);
+ lo_ifindex = if_nametoindex(loop_device);
if (lo_ifindex == 0) {
- ERROR("Failed to retrieve ifindex for \"%s\" routing cleanup", loDev);
+ ERROR("Failed to retrieve ifindex for \"%s\" routing cleanup", loop_device);
return minus_one_set_errno(EINVAL);
}
}
@@ -2965,7 +2965,7 @@ static int lxc_setup_l2proxy(struct lxc_netdev *netdev) {
if (netdev->type == LXC_NET_IPVLAN) {
err = lxc_ipv4_dest_add(lo_ifindex, &inet4dev->addr, 32);
if (err < 0) {
- ERROR("Failed to add ipv4 dest \"%s\" for network device \"%s\"", bufinet4, loDev);
+ ERROR("Failed to add ipv4 dest \"%s\" for network device \"%s\"", bufinet4, loop_device);
return minus_one_set_errno(-err);
}
}
@@ -2983,7 +2983,7 @@ static int lxc_setup_l2proxy(struct lxc_netdev *netdev) {
if (netdev->type == LXC_NET_IPVLAN) {
err = lxc_ipv6_dest_add(lo_ifindex, &inet6dev->addr, 128);
if (err < 0) {
- ERROR("Failed to add ipv6 dest \"%s\" for network device \"%s\"", bufinet6, loDev);
+ ERROR("Failed to add ipv6 dest \"%s\" for network device \"%s\"", bufinet6, loop_device);
return minus_one_set_errno(-err);
}
}
@@ -3060,10 +3060,10 @@ static int lxc_delete_l2proxy(struct lxc_netdev *netdev) {
/* Perform IPVLAN specific checks. */
if (netdev->type == LXC_NET_IPVLAN) {
/* Retrieve local-loopback interface index for use with IPVLAN static routes. */
- lo_ifindex = if_nametoindex(loDev);
+ lo_ifindex = if_nametoindex(loop_device);
if (lo_ifindex == 0) {
errCount++;
- ERROR("Failed to retrieve ifindex for \"%s\" routing cleanup", loDev);
+ ERROR("Failed to retrieve ifindex for \"%s\" routing cleanup", loop_device);
}
}
From 8021de256413a104eb5bc540ff7864bde1f4619e Mon Sep 17 00:00:00 2001
From: Christian Brauner <christian.brauner at ubuntu.com>
Date: Wed, 3 Jul 2019 21:39:24 +0200
Subject: [PATCH 2/9] network: simplify instantiate_macvlan()
Signed-off-by: Christian Brauner <christian.brauner at ubuntu.com>
---
src/lxc/network.c | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/src/lxc/network.c b/src/lxc/network.c
index ab4907a4c9..18036ea40e 100644
--- a/src/lxc/network.c
+++ b/src/lxc/network.c
@@ -332,7 +332,7 @@ static int instantiate_veth(struct lxc_handler *handler, struct lxc_netdev *netd
static int instantiate_macvlan(struct lxc_handler *handler, struct lxc_netdev *netdev)
{
- char peerbuf[IFNAMSIZ], *peer;
+ char peer[IFNAMSIZ];
int err;
unsigned int mtu = 0;
@@ -341,12 +341,11 @@ static int instantiate_macvlan(struct lxc_handler *handler, struct lxc_netdev *n
return -1;
}
- err = snprintf(peerbuf, sizeof(peerbuf), "mcXXXXXX");
- if (err < 0 || (size_t)err >= sizeof(peerbuf))
+ err = snprintf(peer, sizeof(peer), "mcXXXXXX");
+ if (err < 0 || (size_t)err >= sizeof(peer))
return -1;
- peer = lxc_mkifname(peerbuf);
- if (!peer)
+ if (!lxc_mkifname(peer))
return -1;
err = lxc_macvlan_create(netdev->link, peer,
From a9704f05210681a8693e9e426d8f6728e369c205 Mon Sep 17 00:00:00 2001
From: Christian Brauner <christian.brauner at ubuntu.com>
Date: Wed, 3 Jul 2019 21:39:54 +0200
Subject: [PATCH 3/9] network: stash created_name in instantiate_macvlan()
Signed-off-by: Christian Brauner <christian.brauner at ubuntu.com>
---
src/lxc/network.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/lxc/network.c b/src/lxc/network.c
index 18036ea40e..de8438ad7a 100644
--- a/src/lxc/network.c
+++ b/src/lxc/network.c
@@ -357,6 +357,8 @@ static int instantiate_macvlan(struct lxc_handler *handler, struct lxc_netdev *n
goto on_error;
}
+ strlcpy(netdev->created_name, peer, IFNAMSIZ);
+
netdev->ifindex = if_nametoindex(peer);
if (!netdev->ifindex) {
ERROR("Failed to retrieve ifindex for \"%s\"", peer);
From dd1192068de3dd605e973588abce87286c02eaeb Mon Sep 17 00:00:00 2001
From: Christian Brauner <christian.brauner at ubuntu.com>
Date: Wed, 3 Jul 2019 21:42:18 +0200
Subject: [PATCH 4/9] network: simplify instantiate_ipvlan()
Signed-off-by: Christian Brauner <christian.brauner at ubuntu.com>
---
src/lxc/network.c | 30 ++++++++++++++++--------------
1 file changed, 16 insertions(+), 14 deletions(-)
diff --git a/src/lxc/network.c b/src/lxc/network.c
index de8438ad7a..df8422d373 100644
--- a/src/lxc/network.c
+++ b/src/lxc/network.c
@@ -494,7 +494,7 @@ static int lxc_ipvlan_create(const char *master, const char *name, int mode, int
static int instantiate_ipvlan(struct lxc_handler *handler, struct lxc_netdev *netdev)
{
- char peerbuf[IFNAMSIZ], *peer;
+ char peer[IFNAMSIZ];
int err;
unsigned int mtu = 0;
@@ -503,17 +503,18 @@ static int instantiate_ipvlan(struct lxc_handler *handler, struct lxc_netdev *ne
return -1;
}
- err = snprintf(peerbuf, sizeof(peerbuf), "ipXXXXXX");
- if (err < 0 || (size_t)err >= sizeof(peerbuf))
+ err = snprintf(peer, sizeof(peer), "ipXXXXXX");
+ if (err < 0 || (size_t)err >= sizeof(peer))
return -1;
- peer = lxc_mkifname(peerbuf);
- if (!peer)
+ if (!lxc_mkifname(peer))
return -1;
- err = lxc_ipvlan_create(netdev->link, peer, netdev->priv.ipvlan_attr.mode, netdev->priv.ipvlan_attr.isolation);
+ err = lxc_ipvlan_create(netdev->link, peer, netdev->priv.ipvlan_attr.mode,
+ netdev->priv.ipvlan_attr.isolation);
if (err) {
- SYSERROR("Failed to create ipvlan interface \"%s\" on \"%s\"", peer, netdev->link);
+ SYSERROR("Failed to create ipvlan interface \"%s\" on \"%s\"",
+ peer, netdev->link);
goto on_error;
}
@@ -527,14 +528,16 @@ static int instantiate_ipvlan(struct lxc_handler *handler, struct lxc_netdev *ne
err = lxc_safe_uint(netdev->mtu, &mtu);
if (err < 0) {
errno = -err;
- SYSERROR("Failed to parse mtu \"%s\" for interface \"%s\"", netdev->mtu, peer);
+ SYSERROR("Failed to parse mtu \"%s\" for interface \"%s\"",
+ netdev->mtu, peer);
goto on_error;
}
err = lxc_netdev_set_mtu(peer, mtu);
if (err < 0) {
errno = -err;
- SYSERROR("Failed to set mtu \"%s\" for interface \"%s\"", netdev->mtu, peer);
+ SYSERROR("Failed to set mtu \"%s\" for interface \"%s\"",
+ netdev->mtu, peer);
goto on_error;
}
}
@@ -546,15 +549,14 @@ static int instantiate_ipvlan(struct lxc_handler *handler, struct lxc_netdev *ne
NULL,
};
- err = run_script_argv(handler->name,
- handler->conf->hooks_version, "net",
- netdev->upscript, "up", argv);
+ err = run_script_argv(handler->name, handler->conf->hooks_version,
+ "net", netdev->upscript, "up", argv);
if (err < 0)
goto on_error;
}
- DEBUG("Instantiated ipvlan \"%s\" with ifindex is %d and mode %d",
- peer, netdev->ifindex, netdev->priv.macvlan_attr.mode);
+ DEBUG("Instantiated ipvlan \"%s\" with ifindex is %d and mode %d", peer,
+ netdev->ifindex, netdev->priv.macvlan_attr.mode);
return 0;
From e7fdd504e91862d83e363aa93d4f1637bdcd6331 Mon Sep 17 00:00:00 2001
From: Christian Brauner <christian.brauner at ubuntu.com>
Date: Wed, 3 Jul 2019 21:43:19 +0200
Subject: [PATCH 5/9] network: record created_name for instantiate_ipvlan()
Signed-off-by: Christian Brauner <christian.brauner at ubuntu.com>
---
src/lxc/network.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/lxc/network.c b/src/lxc/network.c
index df8422d373..904d23f588 100644
--- a/src/lxc/network.c
+++ b/src/lxc/network.c
@@ -518,6 +518,8 @@ static int instantiate_ipvlan(struct lxc_handler *handler, struct lxc_netdev *ne
goto on_error;
}
+ strlcpy(netdev->created_name, peer, IFNAMSIZ);
+
netdev->ifindex = if_nametoindex(peer);
if (!netdev->ifindex) {
ERROR("Failed to retrieve ifindex for \"%s\"", peer);
From d4d684109c4ce9f6ba917ae60c9fb160ef84a8db Mon Sep 17 00:00:00 2001
From: Christian Brauner <christian.brauner at ubuntu.com>
Date: Wed, 3 Jul 2019 21:44:19 +0200
Subject: [PATCH 6/9] network: simplify instantiate_vlan()
Signed-off-by: Christian Brauner <christian.brauner at ubuntu.com>
---
src/lxc/network.c | 18 ++++++++++--------
1 file changed, 10 insertions(+), 8 deletions(-)
diff --git a/src/lxc/network.c b/src/lxc/network.c
index 904d23f588..fa9b7b3ba8 100644
--- a/src/lxc/network.c
+++ b/src/lxc/network.c
@@ -579,7 +579,8 @@ static int instantiate_vlan(struct lxc_handler *handler, struct lxc_netdev *netd
return -1;
}
- err = snprintf(peer, sizeof(peer), "vlan%d-%d", netdev->priv.vlan_attr.vid, vlan_cntr++);
+ err = snprintf(peer, sizeof(peer), "vlan%d-%d",
+ netdev->priv.vlan_attr.vid, vlan_cntr++);
if (err < 0 || (size_t)err >= sizeof(peer))
return -1;
@@ -601,14 +602,16 @@ static int instantiate_vlan(struct lxc_handler *handler, struct lxc_netdev *netd
err = lxc_safe_uint(netdev->mtu, &mtu);
if (err < 0) {
errno = -err;
- SYSERROR("Failed to parse mtu \"%s\" for interface \"%s\"", netdev->mtu, peer);
+ SYSERROR("Failed to parse mtu \"%s\" for interface \"%s\"",
+ netdev->mtu, peer);
goto on_error;
}
err = lxc_netdev_set_mtu(peer, mtu);
if (err) {
errno = -err;
- SYSERROR("Failed to set mtu \"%s\" for interface \"%s\"", netdev->mtu, peer);
+ SYSERROR("Failed to set mtu \"%s\" for interface \"%s\"",
+ netdev->mtu, peer);
goto on_error;
}
}
@@ -620,16 +623,15 @@ static int instantiate_vlan(struct lxc_handler *handler, struct lxc_netdev *netd
NULL,
};
- err = run_script_argv(handler->name,
- handler->conf->hooks_version, "net",
- netdev->upscript, "up", argv);
+ err = run_script_argv(handler->name, handler->conf->hooks_version,
+ "net", netdev->upscript, "up", argv);
if (err < 0) {
goto on_error;
}
}
- DEBUG("Instantiated vlan \"%s\" with ifindex is \"%d\"",
- peer, netdev->ifindex);
+ DEBUG("Instantiated vlan \"%s\" with ifindex is \"%d\"", peer,
+ netdev->ifindex);
return 0;
From 83530dba8960ce9f5457172c30166b8a8bb2822f Mon Sep 17 00:00:00 2001
From: Christian Brauner <christian.brauner at ubuntu.com>
Date: Wed, 3 Jul 2019 21:44:52 +0200
Subject: [PATCH 7/9] network: record created_name for instantiate_vlan()
Signed-off-by: Christian Brauner <christian.brauner at ubuntu.com>
---
src/lxc/network.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/lxc/network.c b/src/lxc/network.c
index fa9b7b3ba8..75cc5ec400 100644
--- a/src/lxc/network.c
+++ b/src/lxc/network.c
@@ -592,6 +592,8 @@ static int instantiate_vlan(struct lxc_handler *handler, struct lxc_netdev *netd
return -1;
}
+ strlcpy(netdev->created_name, peer, IFNAMSIZ);
+
netdev->ifindex = if_nametoindex(peer);
if (!netdev->ifindex) {
ERROR("Failed to retrieve ifindex for \"%s\"", peer);
From 75b074eea0945e4ef263c6e47dee7665cd4c7451 Mon Sep 17 00:00:00 2001
From: Christian Brauner <christian.brauner at ubuntu.com>
Date: Wed, 3 Jul 2019 21:46:37 +0200
Subject: [PATCH 8/9] network: simplify instantiate_phys()
Signed-off-by: Christian Brauner <christian.brauner at ubuntu.com>
---
src/lxc/network.c | 25 ++++++++++++++++---------
1 file changed, 16 insertions(+), 9 deletions(-)
diff --git a/src/lxc/network.c b/src/lxc/network.c
index 75cc5ec400..6e7004dfb5 100644
--- a/src/lxc/network.c
+++ b/src/lxc/network.c
@@ -652,7 +652,8 @@ static int instantiate_phys(struct lxc_handler *handler, struct lxc_netdev *netd
return -1;
}
- /* Note that we're retrieving the container's ifindex in the host's
+ /*
+ * Note that we're retrieving the container's ifindex in the host's
* network namespace because we need it to move the device from the
* host's network namespace to the container's network namespace later
* on.
@@ -665,12 +666,16 @@ static int instantiate_phys(struct lxc_handler *handler, struct lxc_netdev *netd
return -1;
}
- /* Store the ifindex of the host's network device in the host's
+ /*
+ * Store the ifindex of the host's network device in the host's
* namespace.
*/
netdev->priv.phys_attr.ifindex = netdev->ifindex;
- /* Get original device MTU setting and store for restoration after container shutdown. */
+ /*
+ * Get original device MTU setting and store for restoration after
+ * container shutdown.
+ */
mtu_orig = netdev_get_mtu(netdev->ifindex);
if (mtu_orig < 0) {
SYSERROR("Failed to get original mtu for interface \"%s\"", netdev->link);
@@ -683,14 +688,16 @@ static int instantiate_phys(struct lxc_handler *handler, struct lxc_netdev *netd
err = lxc_safe_uint(netdev->mtu, &mtu);
if (err < 0) {
errno = -err;
- SYSERROR("Failed to parse mtu \"%s\" for interface \"%s\"", netdev->mtu, netdev->link);
+ SYSERROR("Failed to parse mtu \"%s\" for interface \"%s\"",
+ netdev->mtu, netdev->link);
return -1;
}
err = lxc_netdev_set_mtu(netdev->link, mtu);
if (err < 0) {
errno = -err;
- SYSERROR("Failed to set mtu \"%s\" for interface \"%s\"", netdev->mtu, netdev->link);
+ SYSERROR("Failed to set mtu \"%s\" for interface \"%s\"",
+ netdev->mtu, netdev->link);
return -1;
}
}
@@ -702,15 +709,15 @@ static int instantiate_phys(struct lxc_handler *handler, struct lxc_netdev *netd
NULL,
};
- err = run_script_argv(handler->name,
- handler->conf->hooks_version, "net",
- netdev->upscript, "up", argv);
+ err = run_script_argv(handler->name, handler->conf->hooks_version,
+ "net", netdev->upscript, "up", argv);
if (err < 0) {
return -1;
}
}
- DEBUG("Instantiated phys \"%s\" with ifindex is \"%d\"", netdev->link, netdev->ifindex);
+ DEBUG("Instantiated phys \"%s\" with ifindex is \"%d\"", netdev->link,
+ netdev->ifindex);
return 0;
}
From 61302ef7dcf959561f21da95a8d0b71ff555a21a Mon Sep 17 00:00:00 2001
From: Christian Brauner <christian.brauner at ubuntu.com>
Date: Wed, 3 Jul 2019 21:48:20 +0200
Subject: [PATCH 9/9] network: record created_name for instantiate_phys()
Signed-off-by: Christian Brauner <christian.brauner at ubuntu.com>
---
src/lxc/network.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/lxc/network.c b/src/lxc/network.c
index 6e7004dfb5..38c7a75ba3 100644
--- a/src/lxc/network.c
+++ b/src/lxc/network.c
@@ -666,6 +666,8 @@ static int instantiate_phys(struct lxc_handler *handler, struct lxc_netdev *netd
return -1;
}
+ strlcpy(netdev->created_name, netdev->link, IFNAMSIZ);
+
/*
* Store the ifindex of the host's network device in the host's
* namespace.
More information about the lxc-devel
mailing list