~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/tools/testing/selftests/net/amt.sh

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /tools/testing/selftests/net/amt.sh (Architecture alpha) and /tools/testing/selftests/net/amt.sh (Architecture mips)


  1 #!/bin/bash                                         1 #!/bin/bash
  2 # SPDX-License-Identifier: GPL-2.0                  2 # SPDX-License-Identifier: GPL-2.0
  3                                                     3 
  4 # Author: Taehee Yoo <ap420073@gmail.com>            4 # Author: Taehee Yoo <ap420073@gmail.com>
  5 #                                                   5 #
  6 # This script evaluates the AMT driver.             6 # This script evaluates the AMT driver.
  7 # There are four network-namespaces, LISTENER,      7 # There are four network-namespaces, LISTENER, SOURCE, GATEWAY, RELAY.
  8 # The role of LISTENER is to listen multicast       8 # The role of LISTENER is to listen multicast traffic.
  9 # In order to do that, it send IGMP group join      9 # In order to do that, it send IGMP group join message.
 10 # The role of SOURCE is to send multicast traf     10 # The role of SOURCE is to send multicast traffic to listener.
 11 # The role of GATEWAY is to work Gateway role      11 # The role of GATEWAY is to work Gateway role of AMT interface.
 12 # The role of RELAY is to work Relay role of A     12 # The role of RELAY is to work Relay role of AMT interface.
 13 #                                                  13 #
 14 #                                                  14 #
 15 #       +------------------------+                 15 #       +------------------------+
 16 #       |    LISTENER netns      |                 16 #       |    LISTENER netns      |
 17 #       |                        |                 17 #       |                        |
 18 #       |  +------------------+  |                 18 #       |  +------------------+  |
 19 #       |  |       l_gw       |  |                 19 #       |  |       l_gw       |  |
 20 #       |  |  192.168.0.2/24  |  |                 20 #       |  |  192.168.0.2/24  |  |
 21 #       |  |  2001:db8::2/64  |  |                 21 #       |  |  2001:db8::2/64  |  |
 22 #       |  +------------------+  |                 22 #       |  +------------------+  |
 23 #       |            .           |                 23 #       |            .           |
 24 #       +------------------------+                 24 #       +------------------------+
 25 #                    .                             25 #                    .
 26 #                    .                             26 #                    .
 27 #       +-------------------------------------     27 #       +-----------------------------------------------------+
 28 #       |            .         GATEWAY netns       28 #       |            .         GATEWAY netns                  |
 29 #       |            .                             29 #       |            .                                        |
 30 #       |+------------------------------------     30 #       |+---------------------------------------------------+|
 31 #       ||           .          br0                31 #       ||           .          br0                          ||
 32 #       || +------------------+       +-------     32 #       || +------------------+       +------------------+   ||
 33 #       || |       gw_l       |       |            33 #       || |       gw_l       |       |       amtg       |   ||
 34 #       || |  192.168.0.1/24  |       +-------     34 #       || |  192.168.0.1/24  |       +--------+---------+   ||
 35 #       || |  2001:db8::1/64  |                    35 #       || |  2001:db8::1/64  |                |             ||
 36 #       || +------------------+                    36 #       || +------------------+                |             ||
 37 #       |+------------------------------------     37 #       |+-------------------------------------|-------------+|
 38 #       |                                          38 #       |                                      |              |
 39 #       |                             +-------     39 #       |                             +--------+---------+    |
 40 #       |                             |     gw     40 #       |                             |     gw_relay     |    |
 41 #       |                             |    10.     41 #       |                             |    10.0.0.1/24   |    |
 42 #       |                             +-------     42 #       |                             +------------------+    |
 43 #       |                                          43 #       |                                      .              |
 44 #       +-------------------------------------     44 #       +-----------------------------------------------------+
 45 #                                                  45 #                                              .
 46 #                                                  46 #                                              .
 47 #       +-------------------------------------     47 #       +-----------------------------------------------------+
 48 #       |                       RELAY netns        48 #       |                       RELAY netns    .              |
 49 #       |                             +-------     49 #       |                             +------------------+    |
 50 #       |                             |     re     50 #       |                             |     relay_gw     |    |
 51 #       |                             |    10.     51 #       |                             |    10.0.0.2/24   |    |
 52 #       |                             +-------     52 #       |                             +--------+---------+    |
 53 #       |                                          53 #       |                                      |              |
 54 #       |                                          54 #       |                                      |              |
 55 #       |  +------------------+       +-------     55 #       |  +------------------+       +--------+---------+    |
 56 #       |  |     relay_src    |       |            56 #       |  |     relay_src    |       |       amtr       |    |
 57 #       |  |   172.17.0.1/24  |       +-------     57 #       |  |   172.17.0.1/24  |       +------------------+    |
 58 #       |  | 2001:db8:3::1/64 |                    58 #       |  | 2001:db8:3::1/64 |                               |
 59 #       |  +------------------+                    59 #       |  +------------------+                               |
 60 #       |            .                             60 #       |            .                                        |
 61 #       |            .                             61 #       |            .                                        |
 62 #       +-------------------------------------     62 #       +-----------------------------------------------------+
 63 #                    .                             63 #                    .
 64 #                    .                             64 #                    .
 65 #       +------------------------+                 65 #       +------------------------+
 66 #       |            .           |                 66 #       |            .           |
 67 #       |  +------------------+  |                 67 #       |  +------------------+  |
 68 #       |  |     src_relay    |  |                 68 #       |  |     src_relay    |  |
 69 #       |  |   172.17.0.2/24  |  |                 69 #       |  |   172.17.0.2/24  |  |
 70 #       |  | 2001:db8:3::2/64 |  |                 70 #       |  | 2001:db8:3::2/64 |  |
 71 #       |  +------------------+  |                 71 #       |  +------------------+  |
 72 #       |      SOURCE netns      |                 72 #       |      SOURCE netns      |
 73 #       +------------------------+                 73 #       +------------------------+
 74 #=============================================     74 #==============================================================================
 75                                                    75 
 76 readonly LISTENER=$(mktemp -u listener-XXXXXXX     76 readonly LISTENER=$(mktemp -u listener-XXXXXXXX)
 77 readonly GATEWAY=$(mktemp -u gateway-XXXXXXXX)     77 readonly GATEWAY=$(mktemp -u gateway-XXXXXXXX)
 78 readonly RELAY=$(mktemp -u relay-XXXXXXXX)         78 readonly RELAY=$(mktemp -u relay-XXXXXXXX)
 79 readonly SOURCE=$(mktemp -u source-XXXXXXXX)       79 readonly SOURCE=$(mktemp -u source-XXXXXXXX)
 80 readonly SMCROUTEDIR="$(mktemp -d)"                80 readonly SMCROUTEDIR="$(mktemp -d)"
 81 ERR=4                                              81 ERR=4
 82 err=0                                              82 err=0
 83                                                    83 
 84 exit_cleanup()                                     84 exit_cleanup()
 85 {                                                  85 {
 86         for ns in "$@"; do                         86         for ns in "$@"; do
 87                 ip netns delete "${ns}" 2>/dev     87                 ip netns delete "${ns}" 2>/dev/null || true
 88         done                                       88         done
 89         if [ -f "$SMCROUTEDIR/amt.pid" ]; then     89         if [ -f "$SMCROUTEDIR/amt.pid" ]; then
 90                 smcpid=$(< $SMCROUTEDIR/amt.pi     90                 smcpid=$(< $SMCROUTEDIR/amt.pid)
 91                 kill $smcpid                       91                 kill $smcpid
 92         fi                                         92         fi
 93         rm -rf $SMCROUTEDIR                        93         rm -rf $SMCROUTEDIR
 94                                                    94 
 95         exit $ERR                                  95         exit $ERR
 96 }                                                  96 }
 97                                                    97 
 98 create_namespaces()                                98 create_namespaces()
 99 {                                                  99 {
100         ip netns add "${LISTENER}" || exit_cle    100         ip netns add "${LISTENER}" || exit_cleanup
101         ip netns add "${GATEWAY}" || exit_clea    101         ip netns add "${GATEWAY}" || exit_cleanup "${LISTENER}"
102         ip netns add "${RELAY}" || exit_cleanu    102         ip netns add "${RELAY}" || exit_cleanup "${LISTENER}" "${GATEWAY}"
103         ip netns add "${SOURCE}" || exit_clean    103         ip netns add "${SOURCE}" || exit_cleanup "${LISTENER}" "${GATEWAY}" \
104                 "${RELAY}"                        104                 "${RELAY}"
105 }                                                 105 }
106                                                   106 
107 # The trap function handler                       107 # The trap function handler
108 #                                                 108 #
109 exit_cleanup_all()                                109 exit_cleanup_all()
110 {                                                 110 {
111         exit_cleanup "${LISTENER}" "${GATEWAY}    111         exit_cleanup "${LISTENER}" "${GATEWAY}" "${RELAY}" "${SOURCE}"
112 }                                                 112 }
113                                                   113 
114 setup_interface()                                 114 setup_interface()
115 {                                                 115 {
116         for ns in "${LISTENER}" "${GATEWAY}" "    116         for ns in "${LISTENER}" "${GATEWAY}" "${RELAY}" "${SOURCE}"; do
117                 ip -netns "${ns}" link set dev    117                 ip -netns "${ns}" link set dev lo up
118         done;                                     118         done;
119                                                   119 
120         ip link add l_gw type veth peer name g    120         ip link add l_gw type veth peer name gw_l
121         ip link add gw_relay type veth peer na    121         ip link add gw_relay type veth peer name relay_gw
122         ip link add relay_src type veth peer n    122         ip link add relay_src type veth peer name src_relay
123                                                   123 
124         ip link set l_gw netns "${LISTENER}" u    124         ip link set l_gw netns "${LISTENER}" up
125         ip link set gw_l netns "${GATEWAY}" up    125         ip link set gw_l netns "${GATEWAY}" up
126         ip link set gw_relay netns "${GATEWAY}    126         ip link set gw_relay netns "${GATEWAY}" up
127         ip link set relay_gw netns "${RELAY}"     127         ip link set relay_gw netns "${RELAY}" up
128         ip link set relay_src netns "${RELAY}"    128         ip link set relay_src netns "${RELAY}" up
129         ip link set src_relay netns "${SOURCE}    129         ip link set src_relay netns "${SOURCE}" up mtu 1400
130                                                   130 
131         ip netns exec "${LISTENER}" ip a a 192    131         ip netns exec "${LISTENER}" ip a a 192.168.0.2/24 dev l_gw
132         ip netns exec "${LISTENER}" ip r a def    132         ip netns exec "${LISTENER}" ip r a default via 192.168.0.1 dev l_gw
133         ip netns exec "${LISTENER}" ip a a 200    133         ip netns exec "${LISTENER}" ip a a 2001:db8::2/64 dev l_gw
134         ip netns exec "${LISTENER}" ip r a def    134         ip netns exec "${LISTENER}" ip r a default via 2001:db8::1 dev l_gw
135         ip netns exec "${LISTENER}" ip a a 239    135         ip netns exec "${LISTENER}" ip a a 239.0.0.1/32 dev l_gw autojoin
136         ip netns exec "${LISTENER}" ip a a ff0    136         ip netns exec "${LISTENER}" ip a a ff0e::5:6/128 dev l_gw autojoin
137                                                   137 
138         ip netns exec "${GATEWAY}" ip a a 192.    138         ip netns exec "${GATEWAY}" ip a a 192.168.0.1/24 dev gw_l
139         ip netns exec "${GATEWAY}" ip a a 2001    139         ip netns exec "${GATEWAY}" ip a a 2001:db8::1/64 dev gw_l
140         ip netns exec "${GATEWAY}" ip a a 10.0    140         ip netns exec "${GATEWAY}" ip a a 10.0.0.1/24 dev gw_relay
141         ip netns exec "${GATEWAY}" ip link add    141         ip netns exec "${GATEWAY}" ip link add br0 type bridge
142         ip netns exec "${GATEWAY}" ip link set    142         ip netns exec "${GATEWAY}" ip link set br0 up
143         ip netns exec "${GATEWAY}" ip link set    143         ip netns exec "${GATEWAY}" ip link set gw_l master br0
144         ip netns exec "${GATEWAY}" ip link set    144         ip netns exec "${GATEWAY}" ip link set gw_l up
145         ip netns exec "${GATEWAY}" ip link add    145         ip netns exec "${GATEWAY}" ip link add amtg master br0 type amt \
146                 mode gateway local 10.0.0.1 di    146                 mode gateway local 10.0.0.1 discovery 10.0.0.2 dev gw_relay \
147                 gateway_port 2268 relay_port 2    147                 gateway_port 2268 relay_port 2268
148         ip netns exec "${RELAY}" ip a a 10.0.0    148         ip netns exec "${RELAY}" ip a a 10.0.0.2/24 dev relay_gw
149         ip netns exec "${RELAY}" ip link add a    149         ip netns exec "${RELAY}" ip link add amtr type amt mode relay \
150                 local 10.0.0.2 dev relay_gw re    150                 local 10.0.0.2 dev relay_gw relay_port 2268 max_tunnels 4
151         ip netns exec "${RELAY}" ip a a 172.17    151         ip netns exec "${RELAY}" ip a a 172.17.0.1/24 dev relay_src
152         ip netns exec "${RELAY}" ip a a 2001:d    152         ip netns exec "${RELAY}" ip a a 2001:db8:3::1/64 dev relay_src
153         ip netns exec "${SOURCE}" ip a a 172.1    153         ip netns exec "${SOURCE}" ip a a 172.17.0.2/24 dev src_relay
154         ip netns exec "${SOURCE}" ip a a 2001:    154         ip netns exec "${SOURCE}" ip a a 2001:db8:3::2/64 dev src_relay
155         ip netns exec "${SOURCE}" ip r a defau    155         ip netns exec "${SOURCE}" ip r a default via 172.17.0.1 dev src_relay
156         ip netns exec "${SOURCE}" ip r a defau    156         ip netns exec "${SOURCE}" ip r a default via 2001:db8:3::1 dev src_relay
157         ip netns exec "${RELAY}" ip link set a    157         ip netns exec "${RELAY}" ip link set amtr up
158         ip netns exec "${GATEWAY}" ip link set    158         ip netns exec "${GATEWAY}" ip link set amtg up
159 }                                                 159 }
160                                                   160 
161 setup_sysctl()                                    161 setup_sysctl()
162 {                                                 162 {
163         ip netns exec "${RELAY}" sysctl net.ip    163         ip netns exec "${RELAY}" sysctl net.ipv4.ip_forward=1 -w -q
164 }                                                 164 }
165                                                   165 
166 setup_iptables()                                  166 setup_iptables()
167 {                                                 167 {
168         ip netns exec "${RELAY}" iptables -t m    168         ip netns exec "${RELAY}" iptables -t mangle -I PREROUTING \
169                 -d 239.0.0.1 -j TTL --ttl-set     169                 -d 239.0.0.1 -j TTL --ttl-set 2
170         ip netns exec "${RELAY}" ip6tables -t     170         ip netns exec "${RELAY}" ip6tables -t mangle -I PREROUTING \
171                 -j HL --hl-set 2                  171                 -j HL --hl-set 2
172 }                                                 172 }
173                                                   173 
174 setup_mcast_routing()                             174 setup_mcast_routing()
175 {                                                 175 {
176         ip netns exec "${RELAY}" smcrouted -P     176         ip netns exec "${RELAY}" smcrouted -P $SMCROUTEDIR/amt.pid
177         ip netns exec "${RELAY}" smcroutectl a    177         ip netns exec "${RELAY}" smcroutectl a relay_src \
178                 172.17.0.2 239.0.0.1 amtr         178                 172.17.0.2 239.0.0.1 amtr
179         ip netns exec "${RELAY}" smcroutectl a    179         ip netns exec "${RELAY}" smcroutectl a relay_src \
180                 2001:db8:3::2 ff0e::5:6 amtr      180                 2001:db8:3::2 ff0e::5:6 amtr
181 }                                                 181 }
182                                                   182 
183 test_remote_ip()                                  183 test_remote_ip()
184 {                                                 184 {
185         REMOTE=$(ip netns exec "${GATEWAY}" \     185         REMOTE=$(ip netns exec "${GATEWAY}" \
186                 ip -d -j link show amtg | jq .    186                 ip -d -j link show amtg | jq .[0].linkinfo.info_data.remote)
187         if [ $REMOTE == "\"10.0.0.2\"" ]; then    187         if [ $REMOTE == "\"10.0.0.2\"" ]; then
188                 printf "TEST: %-60s  [ OK ]\n"    188                 printf "TEST: %-60s  [ OK ]\n" "amt discovery"
189         else                                      189         else
190                 printf "TEST: %-60s  [FAIL]\n"    190                 printf "TEST: %-60s  [FAIL]\n" "amt discovery"
191                 ERR=1                             191                 ERR=1
192         fi                                        192         fi
193 }                                                 193 }
194                                                   194 
195 send_mcast_torture4()                             195 send_mcast_torture4()
196 {                                                 196 {
197         ip netns exec "${SOURCE}" bash -c \       197         ip netns exec "${SOURCE}" bash -c \
198                 'cat /dev/urandom | head -c 1G    198                 'cat /dev/urandom | head -c 1G | nc -w 1 -u 239.0.0.1 4001'
199 }                                                 199 }
200                                                   200 
201                                                   201 
202 send_mcast_torture6()                             202 send_mcast_torture6()
203 {                                                 203 {
204         ip netns exec "${SOURCE}" bash -c \       204         ip netns exec "${SOURCE}" bash -c \
205                 'cat /dev/urandom | head -c 1G    205                 'cat /dev/urandom | head -c 1G | nc -w 1 -u ff0e::5:6 6001'
206 }                                                 206 }
207                                                   207 
208 check_features()                                  208 check_features()
209 {                                                 209 {
210         ip link help 2>&1 | grep -q amt           210         ip link help 2>&1 | grep -q amt
211         if [ $? -ne 0 ]; then                     211         if [ $? -ne 0 ]; then
212                 echo "Missing amt support in i    212                 echo "Missing amt support in iproute2" >&2
213                 exit_cleanup                      213                 exit_cleanup
214         fi                                        214         fi
215 }                                                 215 }
216                                                   216 
217 test_ipv4_forward()                               217 test_ipv4_forward()
218 {                                                 218 {
219         RESULT4=$(ip netns exec "${LISTENER}"     219         RESULT4=$(ip netns exec "${LISTENER}" timeout 15 socat - UDP4-LISTEN:4000,readbytes=128 || true)
220         if echo "$RESULT4" | grep -q "172.17.0    220         if echo "$RESULT4" | grep -q "172.17.0.2"; then
221                 printf "TEST: %-60s  [ OK ]\n"    221                 printf "TEST: %-60s  [ OK ]\n" "IPv4 amt multicast forwarding"
222                 exit 0                            222                 exit 0
223         else                                      223         else
224                 printf "TEST: %-60s  [FAIL]\n"    224                 printf "TEST: %-60s  [FAIL]\n" "IPv4 amt multicast forwarding"
225                 exit 1                            225                 exit 1
226         fi                                        226         fi
227 }                                                 227 }
228                                                   228 
229 test_ipv6_forward()                               229 test_ipv6_forward()
230 {                                                 230 {
231         RESULT6=$(ip netns exec "${LISTENER}"     231         RESULT6=$(ip netns exec "${LISTENER}" timeout 15 socat - UDP6-LISTEN:6000,readbytes=128 || true)
232         if echo "$RESULT6" | grep -q "2001:db8    232         if echo "$RESULT6" | grep -q "2001:db8:3::2"; then
233                 printf "TEST: %-60s  [ OK ]\n"    233                 printf "TEST: %-60s  [ OK ]\n" "IPv6 amt multicast forwarding"
234                 exit 0                            234                 exit 0
235         else                                      235         else
236                 printf "TEST: %-60s  [FAIL]\n"    236                 printf "TEST: %-60s  [FAIL]\n" "IPv6 amt multicast forwarding"
237                 exit 1                            237                 exit 1
238         fi                                        238         fi
239 }                                                 239 }
240                                                   240 
241 send_mcast4()                                     241 send_mcast4()
242 {                                                 242 {
243         sleep 2                                   243         sleep 2
244         ip netns exec "${SOURCE}" bash -c \       244         ip netns exec "${SOURCE}" bash -c \
245                 'printf "%s %128s" 172.17.0.2     245                 'printf "%s %128s" 172.17.0.2 | nc -w 1 -u 239.0.0.1 4000' &
246 }                                                 246 }
247                                                   247 
248 send_mcast6()                                     248 send_mcast6()
249 {                                                 249 {
250         sleep 2                                   250         sleep 2
251         ip netns exec "${SOURCE}" bash -c \       251         ip netns exec "${SOURCE}" bash -c \
252                 'printf "%s %128s" 2001:db8:3:    252                 'printf "%s %128s" 2001:db8:3::2 | nc -w 1 -u ff0e::5:6 6000' &
253 }                                                 253 }
254                                                   254 
255 check_features                                    255 check_features
256                                                   256 
257 create_namespaces                                 257 create_namespaces
258                                                   258 
259 set -e                                            259 set -e
260 trap exit_cleanup_all EXIT                        260 trap exit_cleanup_all EXIT
261                                                   261 
262 setup_interface                                   262 setup_interface
263 setup_sysctl                                      263 setup_sysctl
264 setup_iptables                                    264 setup_iptables
265 setup_mcast_routing                               265 setup_mcast_routing
266 test_remote_ip                                    266 test_remote_ip
267 test_ipv4_forward &                               267 test_ipv4_forward &
268 pid=$!                                            268 pid=$!
269 send_mcast4                                       269 send_mcast4
270 wait $pid || err=$?                               270 wait $pid || err=$?
271 if [ $err -eq 1 ]; then                           271 if [ $err -eq 1 ]; then
272         ERR=1                                     272         ERR=1
273 fi                                                273 fi
274 test_ipv6_forward &                               274 test_ipv6_forward &
275 pid=$!                                            275 pid=$!
276 send_mcast6                                       276 send_mcast6
277 wait $pid || err=$?                               277 wait $pid || err=$?
278 if [ $err -eq 1 ]; then                           278 if [ $err -eq 1 ]; then
279         ERR=1                                     279         ERR=1
280 fi                                                280 fi
281 send_mcast_torture4                               281 send_mcast_torture4
282 printf "TEST: %-60s  [ OK ]\n" "IPv4 amt traff    282 printf "TEST: %-60s  [ OK ]\n" "IPv4 amt traffic forwarding torture"
283 send_mcast_torture6                               283 send_mcast_torture6
284 printf "TEST: %-60s  [ OK ]\n" "IPv6 amt traff    284 printf "TEST: %-60s  [ OK ]\n" "IPv6 amt traffic forwarding torture"
285 sleep 5                                           285 sleep 5
286 if [ "${ERR}" -eq 1 ]; then                       286 if [ "${ERR}" -eq 1 ]; then
287         echo "Some tests failed." >&2             287         echo "Some tests failed." >&2
288 else                                              288 else
289         ERR=0                                     289         ERR=0
290 fi                                                290 fi
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php