summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHaiqing Bai <Haiqing.Bai@windriver.com>2017-03-08 17:27:30 +0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-03-10 14:50:11 +0000
commit66395bad7e9f463f06e2003cb85b4726794ef387 (patch)
tree97e31b1bbfb8d1b750b6226dc175839bde703f21
parent3570501025cea849936e472e993d08cd69095613 (diff)
downloadpoky-66395bad7e9f463f06e2003cb85b4726794ef387.tar.gz
busybox: ifupdown:pass interface device name for ipv6 route command
IPv6 routes need the device argument for link-local routes, or they cannot be used at all. E.g. "gateway fe80::def" seems to be used in some places, but kernel refuses to insert the route unless device name is explicitly specified in the route addition. (From OE-Core rev: 96ed437d57316153453bb5e170a4fd4f3a95883d) Signed-off-by: Haiqing Bai <Haiqing.Bai@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/recipes-core/busybox/busybox-1.24.1/ifupdown-pass-interface-device-name-for-ipv6-route-c.patch52
-rw-r--r--meta/recipes-core/busybox/busybox_1.24.1.bb1
2 files changed, 53 insertions, 0 deletions
diff --git a/meta/recipes-core/busybox/busybox-1.24.1/ifupdown-pass-interface-device-name-for-ipv6-route-c.patch b/meta/recipes-core/busybox/busybox-1.24.1/ifupdown-pass-interface-device-name-for-ipv6-route-c.patch
new file mode 100644
index 0000000000..5715378afc
--- /dev/null
+++ b/meta/recipes-core/busybox/busybox-1.24.1/ifupdown-pass-interface-device-name-for-ipv6-route-c.patch
@@ -0,0 +1,52 @@
1From 06fcf98f6ca40dc6b823d7d6231a240a1794ef2d Mon Sep 17 00:00:00 2001
2From: Haiqing Bai <Haiqing.Bai@windriver.com>
3Date: Tue, 28 Feb 2017 10:40:37 +0800
4Subject: [PATCH] ifupdown: pass interface device name for ipv6 route commands
5MIME-Version: 1.0
6Content-Type: text/plain; charset=UTF-8
7Content-Transfer-Encoding: 8bit
8
9commit 028524317d8d0011ed38e86e507a06738a5b5a97 from upstream
10
11IPv6 routes need the device argument for link-local routes, or they
12cannot be used at all. E.g. "gateway fe80::def" seems to be used in
13some places, but kernel refuses to insert the route unless device
14name is explicitly specified in the route addition.
15
16Signed-off-by: Timo Teräs <timo.teras@iki.fi>
17Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
18
19Upstream-Status: Backport
20Signed-off-by: Haiqing Bai <Haiqing.Bai@windriver.com>
21---
22 networking/ifupdown.c | 7 ++++---
23 1 file changed, 4 insertions(+), 3 deletions(-)
24
25diff --git a/networking/ifupdown.c b/networking/ifupdown.c
26index 17bc4e9..a00f68d 100644
27--- a/networking/ifupdown.c
28+++ b/networking/ifupdown.c
29@@ -394,8 +394,8 @@ static int FAST_FUNC static_up6(struct interface_defn_t *ifd, execfn *exec)
30 # if ENABLE_FEATURE_IFUPDOWN_IP
31 result = execute("ip addr add %address%/%netmask% dev %iface%[[ label %label%]]", ifd, exec);
32 result += execute("ip link set[[ mtu %mtu%]][[ addr %hwaddress%]] %iface% up", ifd, exec);
33- /* Was: "[[ ip ....%gateway% ]]". Removed extra spaces w/o checking */
34- result += execute("[[ip route add ::/0 via %gateway%]][[ metric %metric%]]", ifd, exec);
35+ /* Reportedly, IPv6 needs "dev %iface%", but IPv4 does not: */
36+ result += execute("[[ip route add ::/0 via %gateway% dev %iface%]][[ metric %metric%]]", ifd, exec);
37 # else
38 result = execute("ifconfig %iface%[[ media %media%]][[ hw %hwaddress%]][[ mtu %mtu%]] up", ifd, exec);
39 result += execute("ifconfig %iface% add %address%/%netmask%", ifd, exec);
40@@ -421,7 +421,8 @@ static int FAST_FUNC v4tunnel_up(struct interface_defn_t *ifd, execfn *exec)
41 "%endpoint%[[ local %local%]][[ ttl %ttl%]]", ifd, exec);
42 result += execute("ip link set %iface% up", ifd, exec);
43 result += execute("ip addr add %address%/%netmask% dev %iface%", ifd, exec);
44- result += execute("[[ip route add ::/0 via %gateway%]]", ifd, exec);
45+ /* Reportedly, IPv6 needs "dev %iface%", but IPv4 does not: */
46+ result += execute("[[ip route add ::/0 via %gateway% dev %iface%]]", ifd, exec);
47 return ((result == 4) ? 4 : 0);
48 }
49
50--
511.9.1
52
diff --git a/meta/recipes-core/busybox/busybox_1.24.1.bb b/meta/recipes-core/busybox/busybox_1.24.1.bb
index afb69d13e6..41fc64175e 100644
--- a/meta/recipes-core/busybox/busybox_1.24.1.bb
+++ b/meta/recipes-core/busybox/busybox_1.24.1.bb
@@ -54,6 +54,7 @@ SRC_URI = "http://www.busybox.net/downloads/busybox-${PV}.tar.bz2;name=tarball \
54 file://commit-applet_tables-fix-commit-0dddbc1.patch \ 54 file://commit-applet_tables-fix-commit-0dddbc1.patch \
55 file://makefile-libbb-race.patch \ 55 file://makefile-libbb-race.patch \
56 file://0001-libiproute-handle-table-ids-larger-than-255.patch \ 56 file://0001-libiproute-handle-table-ids-larger-than-255.patch \
57 file://ifupdown-pass-interface-device-name-for-ipv6-route-c.patch \
57" 58"
58SRC_URI_append_libc-musl = " file://musl.cfg " 59SRC_URI_append_libc-musl = " file://musl.cfg "
59 60