AA: backport 6to4 from trunk
authorSteven Barth <cyrus@openwrt.org>
Fri, 24 May 2013 13:03:41 +0000 (13:03 +0000)
committerSteven Barth <cyrus@openwrt.org>
Fri, 24 May 2013 13:03:41 +0000 (13:03 +0000)
SVN-Revision: 36708

package/6to4/Makefile
package/6to4/files/6to4.sh

index f29571d86c87d4ee6ec3faa3a1bd7db254db70d7..72906fba5bd323f196fbaf9213222120762e287a 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=6to4
-PKG_VERSION:=11
+PKG_VERSION:=12
 PKG_RELEASE:=1
 
 include $(INCLUDE_DIR)/package.mk
index 3a616f675bb609bceb6ffa2a1b5ce74f66d18e25..6f2fbd840cca39469228efe1a3c02712a541e3d7 100755 (executable)
@@ -29,82 +29,13 @@ test_6to4_rfc1918()
        return 1
 }
 
-set_6to4_radvd_interface() {
-       local cfgid="$1"
-       local lanif="${2:-lan}"
-       local ifmtu="${3:-1280}"
-       local ifsection=""
-
-       find_ifsection() {
-               local net
-               local cfg="$1"
-               config_get net "$cfg" interface
-
-               [ "$net" = "$lanif" ] && {
-                       ifsection="$cfg"
-                       return 1
-               }
-       }
-
-       config_foreach find_ifsection interface
-
-       [ -z "$ifsection" ] && {
-               ifsection="iface_$sid"
-               uci_set_state radvd "$ifsection" "" interface
-               uci_set_state radvd "$ifsection" interface "$lanif"
-       }
-
-       uci_set_state radvd "$ifsection" ignore            0
-       uci_set_state radvd "$ifsection" IgnoreIfMissing   1
-       uci_set_state radvd "$ifsection" AdvSendAdvert     1
-       uci_set_state radvd "$ifsection" MaxRtrAdvInterval 30
-       uci_set_state radvd "$ifsection" AdvLinkMTU        "$ifmtu"
-}
-
-set_6to4_radvd_prefix() {
-       local cfgid="$1"
-       local lanif="${2:-lan}"
-       local wanif="${3:-wan}"
-       local prefix="${4:-0:0:0:1::/64}"
-       local vlt="${5:-300}"
-       local plt="${6:-120}"
-       local pfxsection=""
-
-       find_pfxsection() {
-               local net base
-               local cfg="$1"
-               config_get net  "$cfg" interface
-               config_get base "$cfg" Base6to4Interface
-
-               [ "$net" = "$lanif" ] && [ "$base" = "$wanif" ] && {
-                       pfxsection="$cfg"
-                       return 1
-               }
-       }
-
-       config_foreach find_pfxsection prefix
-
-       [ -z "$pfxsection" ] && {
-               pfxsection="prefix_${sid}_${lanif}"
-               uci_set_state radvd "$pfxsection" ""                   prefix
-               uci_set_state radvd "$pfxsection" ignore               0
-               uci_set_state radvd "$pfxsection" interface            "$lanif"
-               uci_set_state radvd "$pfxsection" prefix               "$prefix"
-               uci_set_state radvd "$pfxsection" AdvOnLink            1
-               uci_set_state radvd "$pfxsection" AdvAutonomous        1
-               uci_set_state radvd "$pfxsection" AdvValidLifetime     "$vlt"
-               uci_set_state radvd "$pfxsection" AdvPreferredLifetime "$plt"
-               uci_set_state radvd "$pfxsection" Base6to4Interface    "$wanif"
-       }
-}
-
 proto_6to4_setup() {
        local cfg="$1"
        local iface="$2"
        local link="6to4-$cfg"
 
-       local mtu ttl ipaddr adv_subnet adv_interface adv_valid_lifetime adv_preferred_lifetime
-       json_get_vars mtu ttl ipaddr adv_subnet adv_interface adv_valid_lifetime adv_preferred_lifetime
+       local mtu ttl ipaddr
+       json_get_vars mtu ttl ipaddr
 
        ( proto_add_host_dependency "$cfg" 0.0.0.0 )
 
@@ -132,6 +63,7 @@ proto_6to4_setup() {
 
        proto_init_update "$link" 1
        proto_add_ipv6_address "$local6" 16
+       proto_add_ipv6_prefix "$prefix6::/48"
        proto_add_ipv6_route "::" 0 "::192.88.99.1"
 
        proto_add_tunnel
@@ -142,53 +74,10 @@ proto_6to4_setup() {
        proto_close_tunnel
 
        proto_send_update "$cfg"
-
-       [ -f /etc/config/radvd ] && /etc/init.d/radvd enabled && {
-               local sid="6to4_$cfg"
-
-               uci_revert_state radvd
-               config_load radvd
-
-               adv_subnet=$((0x${adv_subnet:-1}))
-
-               local adv_subnets=""
-
-               for adv_interface in ${adv_interface:-lan}; do
-                       local adv_ifname
-                       network_get_device adv_ifname "${adv_interface:-lan}" || continue
-
-                       local subnet6="$(printf "%s:%x::1/64" "$prefix6" $adv_subnet)"
-
-                       logger -t "$link" " * Advertising IPv6 subnet $subnet6 on ${adv_interface:-lan} ($adv_ifname)"
-                       ip -6 addr add $subnet6 dev $adv_ifname
-
-                       set_6to4_radvd_interface "$sid" "$adv_interface" "$mtu"
-                       set_6to4_radvd_prefix    "$sid" "$adv_interface" \
-                               "$wanif" "$(printf "0:0:0:%x::/64" $adv_subnet)" \
-                               "$adv_valid_lifetime" "$adv_preferred_lifetime"
-
-                       adv_subnets="${adv_subnets:+$adv_subnets }$adv_ifname:$subnet6"
-                       adv_subnet=$(($adv_subnet + 1))
-               done
-
-               uci_set_state network "$cfg" adv_subnets "$adv_subnets"
-
-               /etc/init.d/radvd restart
-       }
 }
 
 proto_6to4_teardown() {
        local cfg="$1"
-       local link="6to4-$cfg"
-
-       local adv_subnets=$(uci_get_state network "$cfg" adv_subnets)
-
-       grep -qs "^ *$link:" /proc/net/dev && {
-               [ -n "$adv_subnets" ] && {
-                       uci_revert_state radvd
-                       /etc/init.d/radvd enabled && /etc/init.d/radvd restart
-               }
-       }
 }
 
 proto_6to4_init_config() {
@@ -198,10 +87,6 @@ proto_6to4_init_config() {
        proto_config_add_string "ipaddr"
        proto_config_add_int "mtu"
        proto_config_add_int "ttl"
-       proto_config_add_string "adv_interface"
-       proto_config_add_string "adv_subnet"
-       proto_config_add_int "adv_valid_lifetime"
-       proto_config_add_int "adv_preferred_lifetime"
 }
 
 [ -n "$INCLUDE_ONLY" ] || {