diff options
Diffstat (limited to 'package')
| -rw-r--r-- | package/base-files/Makefile | 2 | ||||
| -rw-r--r-- | package/base-files/files/etc/hotplug.d/iface/10-routes | 27 | ||||
| -rwxr-xr-x | package/base-files/files/lib/network/config.sh | 7 | 
3 files changed, 30 insertions, 6 deletions
| diff --git a/package/base-files/Makefile b/package/base-files/Makefile index 68d9e18ed..90a65d61d 100644 --- a/package/base-files/Makefile +++ b/package/base-files/Makefile @@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk  include $(INCLUDE_DIR)/kernel.mk  PKG_NAME:=base-files -PKG_RELEASE:=65 +PKG_RELEASE:=66  PKG_FILE_DEPENDS:=$(PLATFORM_DIR)/ $(GENERIC_PLATFORM_DIR)/base-files/  PKG_BUILD_DEPENDS:=opkg/host diff --git a/package/base-files/files/etc/hotplug.d/iface/10-routes b/package/base-files/files/etc/hotplug.d/iface/10-routes index 3e0bebbbe..76a406284 100644 --- a/package/base-files/files/etc/hotplug.d/iface/10-routes +++ b/package/base-files/files/etc/hotplug.d/iface/10-routes @@ -90,6 +90,33 @@ case "$ACTION" in  			ifconfig "$DEVICE" del "$ip6addr"  			ifconfig "$DEVICE" add "$ip6addr"  		} +		 +		# Setup sysctls +		local proto accept_ra send_rs +		 +		config_get proto "$INTERFACE" proto +		if [ "$proto" = dhcp ]; then +			accept_ra=1 +			send_rs=0 +		else +			accept_ra=0 +			send_rs=1 +		fi + +		config_get_bool accept_ra "$INTERFACE" accept_ra $accept_ra +		[ $accept_ra -eq 0 ] || { +			logger -t ifup "Allowing Router Advertisements on $INTERFACE ($DEVICE)" +			accept_ra=2 +		} +		do_sysctl "net.ipv6.conf.$INTERFACE.accept_ra" $accept_ra + +		config_get_bool send_rs "$INTERFACE" send_rs $send_rs +		[ $send_rs -eq 0 ] || { +			logger -t ifup "Enabling Router Solicitations on $INTERFACE ($DEVICE)" +			send_rs=2 +		} +		do_sysctl "net.ipv6.conf.$INTERFACE.forwarding" $send_rs +  		# Setup routes  		config_foreach "add_route" route diff --git a/package/base-files/files/lib/network/config.sh b/package/base-files/files/lib/network/config.sh index 4a6cb7cb4..aa90077ad 100755 --- a/package/base-files/files/lib/network/config.sh +++ b/package/base-files/files/lib/network/config.sh @@ -170,11 +170,6 @@ prepare_interface() {  			local macaddr  			config_get macaddr "$config" macaddr  			[ -x /usr/sbin/brctl ] && { -				# Disable IPv6 for bridge ports -				do_sysctl net.ipv6.conf.$iface.disable_ipv6 1 -				[ "${iface##wlan}" != "$iface" ] && \ -					do_sysctl net.ipv6.conf.mon.$iface.disable_ipv6 1 -  				ifconfig "br-$config" 2>/dev/null >/dev/null && {  					local newdevs devices  					config_get devices "$config" device @@ -183,6 +178,7 @@ prepare_interface() {  					done  					uci_set_state network "$config" device "$newdevs"  					$DEBUG ifconfig "$iface" 0.0.0.0 +					$DEBUG do_sysctl "net.ipv6.conf.$iface.disable_ipv6" 1  					$DEBUG brctl addif "br-$config" "$iface"  					# Bridge existed already. No further processing necesary  				} || { @@ -192,6 +188,7 @@ prepare_interface() {  					$DEBUG brctl setfd "br-$config" 0  					$DEBUG ifconfig "br-$config" up  					$DEBUG ifconfig "$iface" 0.0.0.0 +					$DEBUG do_sysctl "net.ipv6.conf.$iface.disable_ipv6" 1  					$DEBUG brctl addif "br-$config" "$iface"  					$DEBUG brctl stp "br-$config" $stp  					# Creating the bridge here will have triggered a hotplug event, which will | 
