| 1 | # Skip fake devices (e.g. relayd) |
| 2 | grep -qs "^ *$DEVICE:" /proc/net/dev || exit 0 |
| 3 | |
| 4 | case "$ACTION" in |
| 5 | ifup) |
| 6 | include /lib/network |
| 7 | scan_interfaces |
| 8 | |
| 9 | # Setup sysctls |
| 10 | local proto accept_ra send_rs |
| 11 | |
| 12 | config_get proto "$INTERFACE" proto |
| 13 | if [ "$proto" = dhcp ]; then |
| 14 | accept_ra=1 |
| 15 | send_rs=0 |
| 16 | else |
| 17 | accept_ra=0 |
| 18 | send_rs=1 |
| 19 | fi |
| 20 | |
| 21 | config_get_bool accept_ra "$INTERFACE" accept_ra $accept_ra |
| 22 | [ $accept_ra -eq 0 ] || { |
| 23 | logger -t ifup "Allowing Router Advertisements on $INTERFACE ($DEVICE)" |
| 24 | accept_ra=2 |
| 25 | } |
| 26 | do_sysctl "net.ipv6.conf.$DEVICE.accept_ra" $accept_ra |
| 27 | |
| 28 | config_get_bool send_rs "$INTERFACE" send_rs $send_rs |
| 29 | [ $send_rs -eq 0 ] || { |
| 30 | logger -t ifup "Enabling Router Solicitations on $INTERFACE ($DEVICE)" |
| 31 | send_rs=2 |
| 32 | } |
| 33 | do_sysctl "net.ipv6.conf.$DEVICE.forwarding" $send_rs |
| 34 | ;; |
| 35 | esac |
| 36 | |
| 37 | |