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 11:22:58 +0000 (13:22 +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 305d0bf..18ebe60 100644 (file)
@@ -11,7 +11,7 @@ include $(INCLUDE_DIR)/kernel.mk
 include $(INCLUDE_DIR)/version.mk
 
 PKG_NAME:=base-files
-PKG_RELEASE:=173
+PKG_RELEASE:=173.1
 PKG_FLAGS:=nonshared
 
 PKG_FILE_DEPENDS:=$(PLATFORM_DIR)/ $(GENERIC_PLATFORM_DIR)/base-files/
index 6230b08..a8311fc 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
                ;;