xref: /aosp_15_r20/external/ot-br-posix/script/_nat64 (revision 4a64e381480ef79f0532b2421e44e6ee336b8e0d)
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