tayga: moved to github
[packages.git] / ipv6 / tayga / files / tayga.sh
diff --git a/ipv6/tayga/files/tayga.sh b/ipv6/tayga/files/tayga.sh
deleted file mode 100644 (file)
index a9edb6d..0000000
+++ /dev/null
@@ -1,152 +0,0 @@
-# tayga.sh - NAT64 backend
-
-find_tayga_wanif4() {
-       local if=$(ip -4 r l e 0.0.0.0/0); if="${if#default* dev }"; if="${if%% *}"
-       [ -n "$if" ] && grep -qs "^ *$if:" /proc/net/dev && echo "$if"
-}
-
-find_tayga_wanip4() {
-       local ip=$(ip -4 a s dev "$1"); ip="${ip#*inet }"
-       echo "${ip%%[^0-9.]*}"
-}
-
-find_tayga_wanif6() {
-       local if=$(ip -6 r l e ::/0); if="${if#default* dev }"; if="${if%% *}"
-       [ -n "$if" ] && grep -qs "^ *$if:" /proc/net/dev && echo "$if"
-}
-
-find_tayga_wanip6() {
-       local ip=$(ip -6 a s dev "$1"); ip="${ip#*inet6 }"
-       echo "${ip%%[^0-9A-Fa-f:]*}"
-}
-
-# Hook into scan_interfaces() to synthesize a .device option
-# This is needed for /sbin/ifup to properly dispatch control
-# to setup_interface_tayga() even if no .ifname is set in
-# the configuration.
-scan_tayga() {
-       config_set "$1" device "tayga-$1"
-}
-
-coldplug_interface_tayga() {
-       setup_interface_tayga "tayga-$1" "$1"
-}
-
-tayga_add_static_mappings() {
-       local tmpconf="$1"
-
-       (
-               . /lib/functions.sh
-               config_load firewall
-
-               tayga_map_rule_add() {
-                       local cfg="$1"
-                       local tmpconf="$2"
-                       local ipv4_addr ipv6_addr
-                       config_get ipv4_addr "$cfg" ipv4_addr ""
-                       config_get ipv6_addr "$cfg" ipv6_addr ""
-                       [ -n "$ipv4_addr" ] && [ -n "$ipv6_addr" ] &&
-                               echo "map $ipv4_addr $ipv6_addr" >>$tmpconf
-               }
-
-               config_foreach tayga_map_rule_add nat64 "$tmpconf"
-       )
-}
-
-setup_interface_tayga() {
-       local iface="$1"
-       local cfg="$2"
-       local link="tayga-$cfg"
-
-       local ipv4_addr ipv6_addr prefix dynamic_pool
-
-       config_get ipv4_addr "$cfg" ipv4_addr
-       config_get ipv6_addr "$cfg" ipv6_addr
-       config_get prefix "$cfg" prefix
-       config_get dynamic_pool "$cfg" dynamic_pool
-
-       local args
-
-       include /lib/network
-       scan_interfaces
-
-       local wanip4=$(uci_get network "$cfg" ipv4addr)
-       local wanip6=$(uci_get network "$cfg" ipv6addr)
-
-       local wanif4=$(find_tayga_wanif4)
-       local wanif6=$(find_tayga_wanif6)
-
-       [ -z "$wanip4" ] && {
-               [ -n "$wanif4" ] && {
-                       wanip4=$(find_tayga_wanip4 "$wanif4")
-                       uci_set_state network "$cfg" wan4_device "$wanif4"
-               }
-       }
-
-       [ -z "$wanip6" ] && {
-               [ -n "$wanif6" ] && {
-                       wanip6=$(find_tayga_wanip6 "$wanif6")
-                       uci_set_state network "$cfg" wan6_device "$wanif6"
-               }
-       }
-
-       [ -n "$wanip4" ] && [ -n "$wanip6" ] || {
-               echo "Cannot determine local IPv4 and IPv6 addressed for tayga NAT64 $cfg - skipping"
-               return 1
-       }
-
-       local tmpconf="/var/etc/tayga-$cfg.conf"
-       args="-c $tmpconf"
-       mkdir -p /var/etc
-       mkdir -p /var/run/tayga/$cfg
-
-       echo "tun-device $link" >$tmpconf
-       echo "ipv4-addr $ipv4_addr" >>$tmpconf
-       [ -n "$ipv6_addr" ] &&
-               echo "ipv6-addr $ipv6_addr" >>$tmpconf
-       [ -n "$prefix" ] &&
-               echo "prefix $prefix" >>$tmpconf
-
-       tayga_add_static_mappings "$tmpconf"
-
-       [ -n "$dynamic_pool" ] &&
-               echo "dynamic-pool $dynamic_pool" >>$tmpconf
-       echo "data-dir /var/run/tayga/$cfg" >>$tmpconf
-
-       # creating the tunnel below will trigger a net subsystem event
-       # prevent it from touching or iface by disabling .auto here
-       uci_set_state network "$cfg" ifname $link
-       uci_set_state network "$cfg" auto 0
-
-       # here we create TUN device and check configuration
-       tayga $args --mktun || return 1
-
-       ip link set "$link" up
-
-       ip addr add "$wanip4" dev "$link"
-       ip addr add "$wanip6" dev "$link"
-
-       [ -n "$dynamic_pool" ] &&
-               ip -4 route add "$dynamic_pool" dev "$link"
-       [ -n "$prefix" ] &&
-               ip -6 route add "$prefix" dev "$link"
-
-       start-stop-daemon -S -x tayga -- $args -p /var/run/$link.pid
-
-       env -i ACTION="ifup" DEVICE="$link" INTERFACE="$cfg" PROTO="tayga" \
-               /sbin/hotplug-call iface
-}
-
-stop_interface_tayga() {
-       local cfg="$1"
-       local link="tayga-$cfg"
-
-       env -i ACTION="ifdown" DEVICE="$link" INTERFACE="$cfg" PROTO="tayga" \
-               /sbin/hotplug-call iface
-
-       service_kill tayga "/var/run/$link.pid"
-
-       ip link set "$link" down
-       ip addr flush dev "$link"
-       ip route flush dev "$link"
-}