[package] make 6tunnel support a delegated block (#4724)
[openwrt/svn-archive/archive.git] / ipv6 / 6scripts / files / 6tunnel.init
index 84ba325632670a206805a2c7af23e534c97a89aa..de01473c10a8190b6b4ebcab7ef33e442bcba7aa 100644 (file)
@@ -14,14 +14,19 @@ start_service() {
        config_get remoteip4 "$section" remoteip4
        config_get localip4 "$section" localip4
        config_get localip6 "$section" localip6
-       config_get prefix "$section" prefix
+       config_get remoteip6 "$section" remoteip6
+       config_get ttl "$section" ttl
+       config_get mtu "$section" mtu
+       config_get delegatedip6 "$section" delegatedip6
 
        ip tunnel add $tnlifname mode sit remote $remoteip4 local $localip4 ttl 255
        ifconfig $tnlifname up
+       ip link set mtu $mtu dev $tnlifname
+       ip tunnel change $tnlifname ttl $ttl
        ip addr add $localip6 dev $tnlifname
-       ip route add ::/0 dev $tnlifname
-       ip route add 2000::/3 dev $tnlifname
-       ip -6 addr add $prefix dev $LAN
+       ip -6 route ::/0 dev $tnlifname
+       ip -6 route add 2000::/3 via $remoteip6
+       ip -6 route add $delegatedip6 dev $LAN
 }
 
 stop_service() {
@@ -36,10 +41,13 @@ stop_service() {
        config_get remoteip4 "$section" remoteip4
        config_get localip4 "$section" localip4
        config_get localip6 "$section" localip6
-       config_get prefix "$section" prefix
+       config_get remoteip6 "$section" remoteip6
+       config_get ttl "$section" ttl
+       config_get mtu "$section" mtu
+       config_get delegatedip6 "$section" delegatedip6
 
-       ip -6 addr del $prefix dev $LAN
-       ip -6 ro del 2000::/3 dev $tnlifname
+       ip -6 ro del $delegatedip6 dev $LAN
+       ip -6 ro del 2000::/3 via $remoteip6
        ip -6 ro del ::/0 dev $tnlifname
        ip addr del $localip6 dev $tnlifname
        ifconfig $tnlifname down