1*4a64e381SAndroid Build Coastguard Worker#!/bin/bash 2*4a64e381SAndroid Build Coastguard Worker# 3*4a64e381SAndroid Build Coastguard Worker# Copyright (c) 2017, The OpenThread Authors. 4*4a64e381SAndroid Build Coastguard Worker# All rights reserved. 5*4a64e381SAndroid Build Coastguard Worker# 6*4a64e381SAndroid Build Coastguard Worker# Redistribution and use in source and binary forms, with or without 7*4a64e381SAndroid Build Coastguard Worker# modification, are permitted provided that the following conditions are met: 8*4a64e381SAndroid Build Coastguard Worker# 1. Redistributions of source code must retain the above copyright 9*4a64e381SAndroid Build Coastguard Worker# notice, this list of conditions and the following disclaimer. 10*4a64e381SAndroid Build Coastguard Worker# 2. Redistributions in binary form must reproduce the above copyright 11*4a64e381SAndroid Build Coastguard Worker# notice, this list of conditions and the following disclaimer in the 12*4a64e381SAndroid Build Coastguard Worker# documentation and/or other materials provided with the distribution. 13*4a64e381SAndroid Build Coastguard Worker# 3. Neither the name of the copyright holder nor the 14*4a64e381SAndroid Build Coastguard Worker# names of its contributors may be used to endorse or promote products 15*4a64e381SAndroid Build Coastguard Worker# derived from this software without specific prior written permission. 16*4a64e381SAndroid Build Coastguard Worker# 17*4a64e381SAndroid Build Coastguard Worker# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 18*4a64e381SAndroid Build Coastguard Worker# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19*4a64e381SAndroid Build Coastguard Worker# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 20*4a64e381SAndroid Build Coastguard Worker# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 21*4a64e381SAndroid Build Coastguard Worker# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 22*4a64e381SAndroid Build Coastguard Worker# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 23*4a64e381SAndroid Build Coastguard Worker# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 24*4a64e381SAndroid Build Coastguard Worker# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 25*4a64e381SAndroid Build Coastguard Worker# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 26*4a64e381SAndroid Build Coastguard Worker# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 27*4a64e381SAndroid Build Coastguard Worker# POSSIBILITY OF SUCH DAMAGE. 28*4a64e381SAndroid Build Coastguard Worker# 29*4a64e381SAndroid Build Coastguard Worker# Description: 30*4a64e381SAndroid Build Coastguard Worker# This script manipulates nat64 configuration. 31*4a64e381SAndroid Build Coastguard Worker# 32*4a64e381SAndroid Build Coastguard Worker 33*4a64e381SAndroid Build Coastguard WorkerNAT64_SERVICE="${NAT64_SERVICE:-openthread}" 34*4a64e381SAndroid Build Coastguard WorkerTAYGA_DEFAULT=/etc/default/tayga 35*4a64e381SAndroid Build Coastguard WorkerTAYGA_CONF=/etc/tayga.conf 36*4a64e381SAndroid Build Coastguard WorkerTAYGA_IPV4_ADDR=192.168.255.1 37*4a64e381SAndroid Build Coastguard WorkerTAYGA_IPV6_ADDR=fdaa:bb:1::1 38*4a64e381SAndroid Build Coastguard WorkerTAYGA_TUN_V6_ADDR=fdaa:bb:1::2 39*4a64e381SAndroid Build Coastguard WorkerNAT64_PREFIX=64:ff9b::/96 40*4a64e381SAndroid Build Coastguard WorkerDYNAMIC_POOL="${NAT64_DYNAMIC_POOL:-192.168.255.0/24}" 41*4a64e381SAndroid Build Coastguard WorkerNAT44_SERVICE=/etc/init.d/otbr-nat44 42*4a64e381SAndroid Build Coastguard WorkerWLAN_IFNAMES="${INFRA_IF_NAME:-eth0}" 43*4a64e381SAndroid Build Coastguard WorkerTHREAD_IF="${THREAD_IF:-wpan0}" 44*4a64e381SAndroid Build Coastguard Worker 45*4a64e381SAndroid Build Coastguard Worker# Currently solution was verified only on raspbian and ubuntu. 46*4a64e381SAndroid Build Coastguard Worker# 47*4a64e381SAndroid Build Coastguard Worker#without NAT64 || test $PLATFORM = ubuntu || test $PLATFORM = raspbian || die "nat64 is not tested under $PLATFORM." 48*4a64e381SAndroid Build Coastguard Worker 49*4a64e381SAndroid Build Coastguard Workertayga_install() 50*4a64e381SAndroid Build Coastguard Worker{ 51*4a64e381SAndroid Build Coastguard Worker test -f $TAYGA_DEFAULT -a -f $TAYGA_CONF || die 'Cannot find tayga configuration file!' 52*4a64e381SAndroid Build Coastguard Worker sudo sed -i 's/^RUN="no"/RUN="yes"/' $TAYGA_DEFAULT 53*4a64e381SAndroid Build Coastguard Worker sudo sed -i 's/^IPV4_TUN_ADDR=""/IPV4_TUN_ADDR="'$TAYGA_IPV4_ADDR'"/' $TAYGA_DEFAULT 54*4a64e381SAndroid Build Coastguard Worker sudo sed -i 's/^IPV6_TUN_ADDR=""/IPV6_TUN_ADDR="'$TAYGA_TUN_V6_ADDR'"/' $TAYGA_DEFAULT 55*4a64e381SAndroid Build Coastguard Worker sudo sed -i 's/^prefix /##prefix /' $TAYGA_CONF 56*4a64e381SAndroid Build Coastguard Worker sudo sed -i '/^##prefix /a prefix '$NAT64_PREFIX $TAYGA_CONF 57*4a64e381SAndroid Build Coastguard Worker sudo sed -i '/^#ipv6-addr/a ipv6-addr '$TAYGA_IPV6_ADDR $TAYGA_CONF 58*4a64e381SAndroid Build Coastguard Worker sudo sed -i 's/^dynamic-pool /##dynamic-pool /' $TAYGA_CONF 59*4a64e381SAndroid Build Coastguard Worker sudo sed -i '/^##dynamic-pool /a dynamic-pool '"$DYNAMIC_POOL" $TAYGA_CONF 60*4a64e381SAndroid Build Coastguard Worker 61*4a64e381SAndroid Build Coastguard Worker if have systemctl; then 62*4a64e381SAndroid Build Coastguard Worker sudo systemctl restart tayga || die 'Unable to restart taga service!' 63*4a64e381SAndroid Build Coastguard Worker sudo systemctl enable tayga || die 'Unable to enable taga service!' 64*4a64e381SAndroid Build Coastguard Worker fi 65*4a64e381SAndroid Build Coastguard Worker} 66*4a64e381SAndroid Build Coastguard Worker 67*4a64e381SAndroid Build Coastguard Workertayga_uninstall() 68*4a64e381SAndroid Build Coastguard Worker{ 69*4a64e381SAndroid Build Coastguard Worker sudo sed -i 's/^RUN="yes"/RUN="no"/' $TAYGA_DEFAULT 70*4a64e381SAndroid Build Coastguard Worker sudo sed -i 's/^IPV4_TUN_ADDR="'$TAYGA_IPV4_ADDR'"/IPV4_TUN_ADDR=""/' $TAYGA_DEFAULT 71*4a64e381SAndroid Build Coastguard Worker sudo sed -i '/^prefix /d' $TAYGA_CONF 72*4a64e381SAndroid Build Coastguard Worker if grep "##prefix " $TAYGA_CONF; then 73*4a64e381SAndroid Build Coastguard Worker sudo sed -i 's/^##prefix /prefix /' $TAYGA_CONF 74*4a64e381SAndroid Build Coastguard Worker else 75*4a64e381SAndroid Build Coastguard Worker sudo sed -i 's/^# prefix /prefix /' $TAYGA_CONF 76*4a64e381SAndroid Build Coastguard Worker fi 77*4a64e381SAndroid Build Coastguard Worker sudo sed -i '/^ipv6-addr '$TAYGA_IPV6_ADDR'/d' $TAYGA_CONF 78*4a64e381SAndroid Build Coastguard Worker if grep "##dynamic-pool " $TAYGA_CONF; then 79*4a64e381SAndroid Build Coastguard Worker sudo sed -i '/^dynamic-pool /d' $TAYGA_CONF 80*4a64e381SAndroid Build Coastguard Worker sudo sed -i 's/^##dynamic-pool /dynamic-pool /' $TAYGA_CONF 81*4a64e381SAndroid Build Coastguard Worker fi 82*4a64e381SAndroid Build Coastguard Worker} 83*4a64e381SAndroid Build Coastguard Worker 84*4a64e381SAndroid Build Coastguard Workertayga_start() 85*4a64e381SAndroid Build Coastguard Worker{ 86*4a64e381SAndroid Build Coastguard Worker if with DOCKER; then 87*4a64e381SAndroid Build Coastguard Worker service tayga start || die 'Failed to start tayga' 88*4a64e381SAndroid Build Coastguard Worker elif have systemctl; then 89*4a64e381SAndroid Build Coastguard Worker sudo systemctl start tayga || die 'Failed to start tayga!' 90*4a64e381SAndroid Build Coastguard Worker sudo systemctl enable tayga || die 'Failed to enable tayga!' 91*4a64e381SAndroid Build Coastguard Worker fi 92*4a64e381SAndroid Build Coastguard Worker} 93*4a64e381SAndroid Build Coastguard Worker 94*4a64e381SAndroid Build Coastguard Workertayga_stop() 95*4a64e381SAndroid Build Coastguard Worker{ 96*4a64e381SAndroid Build Coastguard Worker if with DOCKER; then 97*4a64e381SAndroid Build Coastguard Worker service tayga stop || true 98*4a64e381SAndroid Build Coastguard Worker elif have systemctl; then 99*4a64e381SAndroid Build Coastguard Worker sudo systemctl stop tayga || true 100*4a64e381SAndroid Build Coastguard Worker fi 101*4a64e381SAndroid Build Coastguard Worker} 102*4a64e381SAndroid Build Coastguard Worker 103*4a64e381SAndroid Build Coastguard Workernat44_install() 104*4a64e381SAndroid Build Coastguard Worker{ 105*4a64e381SAndroid Build Coastguard Worker sudo tee $NAT44_SERVICE <<EOF 106*4a64e381SAndroid Build Coastguard Worker#! /bin/sh 107*4a64e381SAndroid Build Coastguard Worker# 108*4a64e381SAndroid Build Coastguard Worker# Copyright (c) 2017, The OpenThread Authors. 109*4a64e381SAndroid Build Coastguard Worker# All rights reserved. 110*4a64e381SAndroid Build Coastguard Worker# 111*4a64e381SAndroid Build Coastguard Worker# Redistribution and use in source and binary forms, with or without 112*4a64e381SAndroid Build Coastguard Worker# modification, are permitted provided that the following conditions are met: 113*4a64e381SAndroid Build Coastguard Worker# 1. Redistributions of source code must retain the above copyright 114*4a64e381SAndroid Build Coastguard Worker# notice, this list of conditions and the following disclaimer. 115*4a64e381SAndroid Build Coastguard Worker# 2. Redistributions in binary form must reproduce the above copyright 116*4a64e381SAndroid Build Coastguard Worker# notice, this list of conditions and the following disclaimer in the 117*4a64e381SAndroid Build Coastguard Worker# documentation and/or other materials provided with the distribution. 118*4a64e381SAndroid Build Coastguard Worker# 3. Neither the name of the copyright holder nor the 119*4a64e381SAndroid Build Coastguard Worker# names of its contributors may be used to endorse or promote products 120*4a64e381SAndroid Build Coastguard Worker# derived from this software without specific prior written permission. 121*4a64e381SAndroid Build Coastguard Worker# 122*4a64e381SAndroid Build Coastguard Worker# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 123*4a64e381SAndroid Build Coastguard Worker# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 124*4a64e381SAndroid Build Coastguard Worker# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 125*4a64e381SAndroid Build Coastguard Worker# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 126*4a64e381SAndroid Build Coastguard Worker# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 127*4a64e381SAndroid Build Coastguard Worker# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 128*4a64e381SAndroid Build Coastguard Worker# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 129*4a64e381SAndroid Build Coastguard Worker# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 130*4a64e381SAndroid Build Coastguard Worker# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 131*4a64e381SAndroid Build Coastguard Worker# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 132*4a64e381SAndroid Build Coastguard Worker# POSSIBILITY OF SUCH DAMAGE. 133*4a64e381SAndroid Build Coastguard Worker# 134*4a64e381SAndroid Build Coastguard Worker### BEGIN INIT INFO 135*4a64e381SAndroid Build Coastguard Worker# Provides: otbr-nat44 136*4a64e381SAndroid Build Coastguard Worker# Required-Start: 137*4a64e381SAndroid Build Coastguard Worker# Required-Stop: 138*4a64e381SAndroid Build Coastguard Worker# Should-Start: 139*4a64e381SAndroid Build Coastguard Worker# Should-Stop: 140*4a64e381SAndroid Build Coastguard Worker# Default-Start: 2 3 4 5 141*4a64e381SAndroid Build Coastguard Worker# Default-Stop: 142*4a64e381SAndroid Build Coastguard Worker# Short-Description: iptables NAT44 143*4a64e381SAndroid Build Coastguard Worker# Description: NAT44 is require for OpenThread border router 144*4a64e381SAndroid Build Coastguard Worker# to connect to arbitrary IPv4 endpoints. 145*4a64e381SAndroid Build Coastguard Worker### END INIT INFO 146*4a64e381SAndroid Build Coastguard Worker 147*4a64e381SAndroid Build Coastguard Worker. /lib/lsb/init-functions 148*4a64e381SAndroid Build Coastguard Worker. /lib/init/vars.sh 149*4a64e381SAndroid Build Coastguard Worker 150*4a64e381SAndroid Build Coastguard Workercase "\$1" in 151*4a64e381SAndroid Build Coastguard Worker start) 152*4a64e381SAndroid Build Coastguard WorkerEOF 153*4a64e381SAndroid Build Coastguard Worker if [ "$NAT64_SERVICE" = tayga ]; then 154*4a64e381SAndroid Build Coastguard Worker # Although Tayga itself also configures a NAT44 iptables route, this iptables route is used with Tayga 155*4a64e381SAndroid Build Coastguard Worker # due to some history reason. It might be removed when native NAT64 service is ready. 156*4a64e381SAndroid Build Coastguard Worker for IFNAME in $WLAN_IFNAMES; do 157*4a64e381SAndroid Build Coastguard Worker echo " iptables -t nat -A POSTROUTING -o $IFNAME -j MASQUERADE" | sudo tee -a $NAT44_SERVICE 158*4a64e381SAndroid Build Coastguard Worker done 159*4a64e381SAndroid Build Coastguard Worker else 160*4a64e381SAndroid Build Coastguard Worker # Just a random fwmark bits. 161*4a64e381SAndroid Build Coastguard Worker echo " iptables -t mangle -A PREROUTING -i $THREAD_IF -j MARK --set-mark 0x1001" | sudo tee -a $NAT44_SERVICE 162*4a64e381SAndroid Build Coastguard Worker echo " iptables -t nat -A POSTROUTING -m mark --mark 0x1001 -j MASQUERADE" | sudo tee -a $NAT44_SERVICE 163*4a64e381SAndroid Build Coastguard Worker for IFNAME in $WLAN_IFNAMES; do 164*4a64e381SAndroid Build Coastguard Worker echo " iptables -t filter -A FORWARD -o $IFNAME -j ACCEPT" | sudo tee -a $NAT44_SERVICE 165*4a64e381SAndroid Build Coastguard Worker echo " iptables -t filter -A FORWARD -i $IFNAME -j ACCEPT" | sudo tee -a $NAT44_SERVICE 166*4a64e381SAndroid Build Coastguard Worker done 167*4a64e381SAndroid Build Coastguard Worker fi 168*4a64e381SAndroid Build Coastguard Worker sudo tee -a $NAT44_SERVICE <<EOF 169*4a64e381SAndroid Build Coastguard Worker ;; 170*4a64e381SAndroid Build Coastguard Worker restart|reload|force-reload) 171*4a64e381SAndroid Build Coastguard Worker echo "Error: argument '\$1' not supported" >&2 172*4a64e381SAndroid Build Coastguard Worker exit 3 173*4a64e381SAndroid Build Coastguard Worker ;; 174*4a64e381SAndroid Build Coastguard Worker stop|status) 175*4a64e381SAndroid Build Coastguard Worker # No-op 176*4a64e381SAndroid Build Coastguard Worker ;; 177*4a64e381SAndroid Build Coastguard Worker *) 178*4a64e381SAndroid Build Coastguard Worker echo "Usage: \$0 start|stop" >&2 179*4a64e381SAndroid Build Coastguard Worker exit 3 180*4a64e381SAndroid Build Coastguard Worker ;; 181*4a64e381SAndroid Build Coastguard Workeresac 182*4a64e381SAndroid Build Coastguard WorkerEOF 183*4a64e381SAndroid Build Coastguard Worker sudo chmod a+x $NAT44_SERVICE 184*4a64e381SAndroid Build Coastguard Worker if have systemctl; then 185*4a64e381SAndroid Build Coastguard Worker sudo systemctl enable otbr-nat44 || die 'Unable to enable nat44 service!' 186*4a64e381SAndroid Build Coastguard Worker sudo systemctl start otbr-nat44 || die 'Failed to start nat44 service!' 187*4a64e381SAndroid Build Coastguard Worker fi 188*4a64e381SAndroid Build Coastguard Worker} 189*4a64e381SAndroid Build Coastguard Worker 190*4a64e381SAndroid Build Coastguard Workernat44_uninstall() 191*4a64e381SAndroid Build Coastguard Worker{ 192*4a64e381SAndroid Build Coastguard Worker if have systemctl; then 193*4a64e381SAndroid Build Coastguard Worker sudo systemctl disable otbr-nat44 || true 194*4a64e381SAndroid Build Coastguard Worker fi 195*4a64e381SAndroid Build Coastguard Worker 196*4a64e381SAndroid Build Coastguard Worker # systemctl disable doesn't remove sym-links 197*4a64e381SAndroid Build Coastguard Worker if have update-rc.d; then 198*4a64e381SAndroid Build Coastguard Worker sudo update-rc.d otbr-nat44 remove || true 199*4a64e381SAndroid Build Coastguard Worker fi 200*4a64e381SAndroid Build Coastguard Worker test ! -f $NAT44_SERVICE || sudo rm $NAT44_SERVICE 201*4a64e381SAndroid Build Coastguard Worker} 202*4a64e381SAndroid Build Coastguard Worker 203*4a64e381SAndroid Build Coastguard Workernat44_start() 204*4a64e381SAndroid Build Coastguard Worker{ 205*4a64e381SAndroid Build Coastguard Worker if with DOCKER; then 206*4a64e381SAndroid Build Coastguard Worker service otbr-nat44 start || die 'Failed to start NAT44!' 207*4a64e381SAndroid Build Coastguard Worker elif have systemctl; then 208*4a64e381SAndroid Build Coastguard Worker sudo systemctl start otbr-nat44 || die 'Failed to start NAT44!' 209*4a64e381SAndroid Build Coastguard Worker fi 210*4a64e381SAndroid Build Coastguard Worker} 211*4a64e381SAndroid Build Coastguard Worker 212*4a64e381SAndroid Build Coastguard Workernat44_stop() 213*4a64e381SAndroid Build Coastguard Worker{ 214*4a64e381SAndroid Build Coastguard Worker if with DOCKER; then 215*4a64e381SAndroid Build Coastguard Worker service otbr-nat44 stop || true 216*4a64e381SAndroid Build Coastguard Worker elif have systemctl; then 217*4a64e381SAndroid Build Coastguard Worker sudo systemctl stop otbr-nat44 || true 218*4a64e381SAndroid Build Coastguard Worker fi 219*4a64e381SAndroid Build Coastguard Worker} 220*4a64e381SAndroid Build Coastguard Worker 221*4a64e381SAndroid Build Coastguard Workernat64_install() 222*4a64e381SAndroid Build Coastguard Worker{ 223*4a64e381SAndroid Build Coastguard Worker with NAT64 || return 0 224*4a64e381SAndroid Build Coastguard Worker 225*4a64e381SAndroid Build Coastguard Worker if [ "$NAT64_SERVICE" = tayga ]; then 226*4a64e381SAndroid Build Coastguard Worker tayga_install 227*4a64e381SAndroid Build Coastguard Worker fi 228*4a64e381SAndroid Build Coastguard Worker 229*4a64e381SAndroid Build Coastguard Worker nat44_install 230*4a64e381SAndroid Build Coastguard Worker} 231*4a64e381SAndroid Build Coastguard Worker 232*4a64e381SAndroid Build Coastguard Workernat64_uninstall() 233*4a64e381SAndroid Build Coastguard Worker{ 234*4a64e381SAndroid Build Coastguard Worker with NAT64 || return 0 235*4a64e381SAndroid Build Coastguard Worker 236*4a64e381SAndroid Build Coastguard Worker nat64_stop 237*4a64e381SAndroid Build Coastguard Worker 238*4a64e381SAndroid Build Coastguard Worker if [ "$NAT64_SERVICE" = tayga ]; then 239*4a64e381SAndroid Build Coastguard Worker tayga_uninstall 240*4a64e381SAndroid Build Coastguard Worker fi 241*4a64e381SAndroid Build Coastguard Worker 242*4a64e381SAndroid Build Coastguard Worker nat44_uninstall 243*4a64e381SAndroid Build Coastguard Worker} 244*4a64e381SAndroid Build Coastguard Worker 245*4a64e381SAndroid Build Coastguard Workernat64_start() 246*4a64e381SAndroid Build Coastguard Worker{ 247*4a64e381SAndroid Build Coastguard Worker with NAT64 || return 0 248*4a64e381SAndroid Build Coastguard Worker 249*4a64e381SAndroid Build Coastguard Worker if [ "$NAT64_SERVICE" = tayga ]; then 250*4a64e381SAndroid Build Coastguard Worker tayga_start 251*4a64e381SAndroid Build Coastguard Worker fi 252*4a64e381SAndroid Build Coastguard Worker 253*4a64e381SAndroid Build Coastguard Worker nat44_start 254*4a64e381SAndroid Build Coastguard Worker} 255*4a64e381SAndroid Build Coastguard Worker 256*4a64e381SAndroid Build Coastguard Workernat64_stop() 257*4a64e381SAndroid Build Coastguard Worker{ 258*4a64e381SAndroid Build Coastguard Worker with NAT64 || return 0 259*4a64e381SAndroid Build Coastguard Worker 260*4a64e381SAndroid Build Coastguard Worker if [ "$NAT64_SERVICE" = tayga ]; then 261*4a64e381SAndroid Build Coastguard Worker tayga_stop 262*4a64e381SAndroid Build Coastguard Worker fi 263*4a64e381SAndroid Build Coastguard Worker 264*4a64e381SAndroid Build Coastguard Worker nat44_stop 265*4a64e381SAndroid Build Coastguard Worker} 266