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
local macaddr
config_get macaddr "$config" macaddr
[ -x /usr/sbin/brctl ] && {
- # Remove IPv6 link local addr before adding the iface to the bridge
- local llv6="$(ifconfig "$iface")"
- case "$llv6" in
- *fe80:*/64*)
- llv6="${llv6#* fe80:}"
- ifconfig "$iface" del "fe80:${llv6%% *}"
- ;;
- esac
-
ifconfig "br-$config" 2>/dev/null >/dev/null && {
local newdevs devices
config_get devices "$config" device
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
} || {
$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