summaryrefslogtreecommitdiff
path: root/package/base-files/files/etc/hotplug.d/iface/10-routes
diff options
context:
space:
mode:
Diffstat (limited to 'package/base-files/files/etc/hotplug.d/iface/10-routes')
-rw-r--r--package/base-files/files/etc/hotplug.d/iface/10-routes137
1 files changed, 0 insertions, 137 deletions
diff --git a/package/base-files/files/etc/hotplug.d/iface/10-routes b/package/base-files/files/etc/hotplug.d/iface/10-routes
deleted file mode 100644
index d57a5b3..0000000
--- a/package/base-files/files/etc/hotplug.d/iface/10-routes
+++ /dev/null
@@ -1,137 +0,0 @@
-add_route() {
- local config="$1"
-
- # is this route intended for the
- # $INTERFACE of this hotplug event
- config_get interface "$config" interface
- [ "$interface" != "$INTERFACE" ] && return 0
-
- # get the real interface name from network config
- config_get dev "$interface" ifname
-
- config_get target "$config" target
- config_get netmask "$config" netmask
- config_get gateway "$config" gateway
- config_get metric "$config" metric
- config_get mtu "$config" mtu
-
- # make sure there is a gateway and a target
- [ -n "$target" ] || {
- echo "Missing target in route section $config"
- return 1
- }
- [ -n "$gateway" ] || {
- config_get gateway "$interface" gateway
- }
-
- # handle "0.0.0.0" as "no gateway given" to allow
- # defining gateway-less routes while still keeping
- # the possibility to have static routes with a
- # proper gateway on interfaces with dynamic ips
- [ "$gateway" = "0.0.0.0" ] && gateway=""
-
- dest="${netmask:+-net "$target" netmask "$netmask"}"
- dest="${dest:--host "$target"}"
-
- /sbin/route add $dest ${gateway:+gw "$gateway"} \
- ${dev:+dev "$dev"} ${metric:+ metric "$metric"} \
- ${mtu:+mss "$mtu"}
-}
-
-add_route6() {
- local config="$1"
-
- # is this route intended for the
- # $INTERFACE of this hotplug event
- config_get interface "$config" interface
- [ "$interface" != "$INTERFACE" ] && return 0
-
- # get the real interface name from network config
- config_get dev "$interface" ifname
-
- config_get target "$config" target
- config_get gateway "$config" gateway
- config_get metric "$config" metric
- config_get mtu "$config" mtu
-
- # make sure there is a gateway and a target
- [ -n "$target" ] || {
- echo "Missing target in route section $config"
- return 1
- }
- [ -n "$gateway" ] || {
- config_get gateway "$interface" gateway
- }
-
- /sbin/route -A inet6 add $target ${gateway:+gw "$gateway"} \
- ${dev:+dev "$dev"} ${metric:+ metric "$metric"} \
- ${mtu:+mss "$mtu"}
-}
-
-# Skip fake devices (e.g. relayd)
-grep -qs "^ *$DEVICE:" /proc/net/dev || exit 0
-
-case "$ACTION" in
- ifup)
- include /lib/network
- scan_interfaces
-
- # Setup aliases
- config_set "$INTERFACE" aliases ""
- config_set "$INTERFACE" alias_count 0
- config_foreach setup_interface_alias alias "$INTERFACE" "$DEVICE"
-
- # Save alias references in state vars
- local aliases
- config_get aliases "$INTERFACE" aliases
- [ -z "$aliases" ] || uci_toggle_state network "$INTERFACE" aliases "$aliases"
-
- # Make ip6addr of parent iface the main address again
- local ip6addr
- config_get ip6addr "$INTERFACE" ip6addr
- [ -z "$ip6addr" ] || {
- 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.$DEVICE.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.$DEVICE.forwarding" $send_rs
-
-
- # Setup routes
- config_foreach "add_route" route
- config_foreach "add_route6" route6
- ;;
- ifdown)
- # Bring down named aliases
- local device=$(uci_get_state network "$INTERFACE" device)
- local ifn
- for ifn in $(ifconfig | sed -ne "s/^\(\($DEVICE${device:+\|$device}\|br-$INTERFACE\):[^[:space:]]\+\).*/\1/p"); do
- ifconfig "$ifn" down
- done
- ;;
-esac
-