summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorfli <fupan.li@windriver.com>2016-04-21 19:20:38 -0700
committerBruce Ashfield <bruce.ashfield@windriver.com>2016-04-22 10:27:40 -0400
commit23459b9b701748b2f0c003df4ed404bfeef5e25f (patch)
tree4114026ab5969d7afe43199f9a4b8f74620008df
parent3e84107e40c1d9ea108dfc438f94bf513e8fd8cb (diff)
downloadmeta-virtualization-23459b9b701748b2f0c003df4ed404bfeef5e25f.tar.gz
meta-virtualization: enable lxc-start support wlan0
Cherry picked patch from lxc upstream commit: f2e206ff47<lxc: let lxc-start support wlan phys> to enable lxc-start command support wlan0 device and make cube-essential support paththrough wlan device from host to lxc containers. Signed-off-by: fli <fupan.li@windriver.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
-rw-r--r--recipes-containers/lxc/files/lxc-let-lxc-start-support-wlan-phys.patch72
-rw-r--r--recipes-containers/lxc/lxc_1.1.5.bb1
2 files changed, 73 insertions, 0 deletions
diff --git a/recipes-containers/lxc/files/lxc-let-lxc-start-support-wlan-phys.patch b/recipes-containers/lxc/files/lxc-let-lxc-start-support-wlan-phys.patch
new file mode 100644
index 00000000..9146fd07
--- /dev/null
+++ b/recipes-containers/lxc/files/lxc-let-lxc-start-support-wlan-phys.patch
@@ -0,0 +1,72 @@
1From 4acc7a24e098445de502a6f59a8b3dff2cd8536d Mon Sep 17 00:00:00 2001
2From: fli <fupan.li@windriver.com>
3Date: Thu, 21 Apr 2016 19:07:10 -0700
4Subject: [PATCH] lxc: let lxc-start support wlan phys
5
6The commit: e5848d395cb <netdev_move_by_index: support wlan> only
7made netdev_move_by_name support wlan, instead of netdev_move_by_index.
8
9Given netdev_move_by_name is a wrapper of netdev_move_by_index, so here
10replacing all of the call to lxc_netdev_move_by_index with lxc_netdev_move_by_name
11to let lxc-start support wlan phys.
12
13Signed-off-by: fli <fupan.li@windriver.com>
14---
15 src/lxc/conf.c | 20 ++++++++++++++++----
16 1 file changed, 16 insertions(+), 4 deletions(-)
17
18diff --git a/src/lxc/conf.c b/src/lxc/conf.c
19index 034bdff..bcba0f1 100644
20--- a/src/lxc/conf.c
21+++ b/src/lxc/conf.c
22@@ -2623,6 +2623,7 @@ void restore_phys_nics_to_netns(int netnsfd, struct lxc_conf *conf)
23 {
24 int i, ret, oldfd;
25 char path[MAXPATHLEN];
26+ char ifname[IFNAMSIZ];
27
28 if (netnsfd < 0)
29 return;
30@@ -2643,9 +2644,13 @@ void restore_phys_nics_to_netns(int netnsfd, struct lxc_conf *conf)
31 }
32 for (i=0; i<conf->num_savednics; i++) {
33 struct saved_nic *s = &conf->saved_nics[i];
34- if (lxc_netdev_move_by_index(s->ifindex, 1, NULL))
35- WARN("Error moving nic index:%d back to host netns",
36- s->ifindex);
37+ /* retrieve the name of the interface */
38+ if (!if_indextoname(s->ifindex, ifname)) {
39+ WARN("no interface corresponding to index '%d'", s->ifindex);
40+ continue;
41+ }
42+ if (lxc_netdev_move_by_name(ifname, 1, NULL))
43+ WARN("Error moving nic name:%s back to host netns", ifname);
44 }
45 if (setns(oldfd, 0) != 0)
46 SYSERROR("Failed to re-enter monitor's netns");
47@@ -3208,6 +3213,7 @@ int lxc_assign_network(struct lxc_list *network, pid_t pid)
48 {
49 struct lxc_list *iterator;
50 struct lxc_netdev *netdev;
51+ char ifname[IFNAMSIZ];
52 int am_root = (getuid() == 0);
53 int err;
54
55@@ -3228,7 +3234,13 @@ int lxc_assign_network(struct lxc_list *network, pid_t pid)
56 if (!netdev->ifindex)
57 continue;
58
59- err = lxc_netdev_move_by_index(netdev->ifindex, pid, NULL);
60+ /* retrieve the name of the interface */
61+ if (!if_indextoname(netdev->ifindex, ifname)) {
62+ ERROR("no interface corresponding to index '%d'", netdev->ifindex);
63+ return -1;
64+ }
65+
66+ err = lxc_netdev_move_by_name(ifname, pid, NULL);
67 if (err) {
68 ERROR("failed to move '%s' to the container : %s",
69 netdev->link, strerror(-err));
70--
712.7.4
72
diff --git a/recipes-containers/lxc/lxc_1.1.5.bb b/recipes-containers/lxc/lxc_1.1.5.bb
index 0f6d0b85..67ad93a9 100644
--- a/recipes-containers/lxc/lxc_1.1.5.bb
+++ b/recipes-containers/lxc/lxc_1.1.5.bb
@@ -40,6 +40,7 @@ SRC_URI = "http://linuxcontainers.org/downloads/${BPN}-${PV}.tar.gz \
40 file://open_without_symlink-Don-t-SYSERROR-on-something-els.patch \ 40 file://open_without_symlink-Don-t-SYSERROR-on-something-els.patch \
41 file://lxc-busybox-Touch-etc-fstab-in-the-container-rootfs.patch \ 41 file://lxc-busybox-Touch-etc-fstab-in-the-container-rootfs.patch \
42 file://lxc-busybox-Remove-warning-for-dynamically-linked-Bu.patch \ 42 file://lxc-busybox-Remove-warning-for-dynamically-linked-Bu.patch \
43 file://lxc-let-lxc-start-support-wlan-phys.patch \
43 " 44 "
44 45
45SRC_URI[md5sum] = "dd9684dde0a58ed13f4f49c855b79a1a" 46SRC_URI[md5sum] = "dd9684dde0a58ed13f4f49c855b79a1a"