base-files: fix wan6 interface config generation for pppoe
authorHans Dedecker <dedeckeh@gmail.com>
Mon, 18 Sep 2017 07:18:36 +0000 (09:18 +0200)
committerHans Dedecker <dedeckeh@gmail.com>
Mon, 18 Sep 2017 07:57:34 +0000 (09:57 +0200)
Setting ipv6 to auto in case of a pppoe interface will trigger the
creation of a dynamic wan_6 interface meaning two IPv6 interfaces
(wan6 and wan_6) will be active on top of the pppoe interface.
This leads to unpredictable behavior in the network; therefore set
ipv6 to 1 which will prevent the dynamic creation of the wan_6
interface.
Further alias the wan6 interface on top of the wan interface for pppoe
as the wan6 interface can only be started when the link local address is
ready. In case of pppoe the link local address is negotiated during the
Internet Protocol Control Protocol when the PPP link is setup meaning
all the IP address info is only available when the wan interface is up.

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
package/base-files/Makefile
package/base-files/files/bin/config_generate

index d8ee46eaffab7cd478fee222ca18bb72bb3b57c3..0c0c1cee305ffbf8c5908c400b545527dc1509d8 100644 (file)
@@ -11,7 +11,7 @@ include $(INCLUDE_DIR)/kernel.mk
 include $(INCLUDE_DIR)/version.mk
 
 PKG_NAME:=base-files
-PKG_RELEASE:=175
+PKG_RELEASE:=176
 PKG_FLAGS:=nonshared
 
 PKG_FILE_DEPENDS:=$(PLATFORM_DIR)/ $(GENERIC_PLATFORM_DIR)/base-files/
index 6230b0892f04c9853706a06a9547c7e5cc249625..a8311fc595babdfeddd6d84ecf21799d0bd4c9f2 100755 (executable)
@@ -119,17 +119,14 @@ generate_network() {
                ;;
 
                pppoe)
-                       # fixup IPv6 slave interface
-                       ifname="pppoe-$1"
-
                        uci -q batch <<-EOF
                                set network.$1.proto='pppoe'
                                set network.$1.username='username'
                                set network.$1.password='password'
-                               set network.$1.ipv6='auto'
+                               set network.$1.ipv6='1'
                                delete network.${1}6
                                set network.${1}6='interface'
-                               set network.${1}6.ifname='$ifname'
+                               set network.${1}6.ifname='@${1}'
                                set network.${1}6.proto='dhcpv6'
                        EOF
                ;;