t_lagg.sh revision 1.10 1 1.10 yamaguch # $NetBSD: t_lagg.sh,v 1.10 2023/10/18 06:41:00 yamaguchi Exp $
2 1.1 yamaguch #
3 1.1 yamaguch # Copyright (c) 2021 Internet Initiative Japan Inc.
4 1.1 yamaguch # All rights reserved.
5 1.1 yamaguch #
6 1.1 yamaguch # Redistribution and use in source and binary forms, with or without
7 1.1 yamaguch # modification, are permitted provided that the following conditions
8 1.1 yamaguch # are met:
9 1.1 yamaguch # 1. Redistributions of source code must retain the above copyright
10 1.1 yamaguch # notice, this list of conditions and the following disclaimer.
11 1.1 yamaguch # 2. Redistributions in binary form must reproduce the above copyright
12 1.1 yamaguch # notice, this list of conditions and the following disclaimer in the
13 1.1 yamaguch # documentation and/or other materials provided with the distribution.
14 1.1 yamaguch #
15 1.1 yamaguch # THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
16 1.1 yamaguch # ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
17 1.1 yamaguch # TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
18 1.1 yamaguch # PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
19 1.1 yamaguch # BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
20 1.1 yamaguch # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
21 1.1 yamaguch # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
22 1.1 yamaguch # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
23 1.1 yamaguch # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
24 1.1 yamaguch # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
25 1.1 yamaguch # POSSIBILITY OF SUCH DAMAGE.
26 1.1 yamaguch #
27 1.1 yamaguch
28 1.1 yamaguch SOCK_HOST0=unix://commsock0
29 1.1 yamaguch SOCK_HOST1=unix://commsock1
30 1.1 yamaguch SOCK_HOST2=unix://commsock2
31 1.1 yamaguch BUS0=bus0
32 1.1 yamaguch BUS1=bus1
33 1.1 yamaguch BUS2=bus2
34 1.1 yamaguch IP4ADDR0=192.168.0.1
35 1.1 yamaguch IP4ADDR1=192.168.0.2
36 1.1 yamaguch IP4ADDR2=192.168.1.1
37 1.1 yamaguch IP4ADDR3=192.168.1.2
38 1.1 yamaguch IP6ADDR0=fc00::1
39 1.1 yamaguch IP6ADDR1=fc00::2
40 1.1 yamaguch IP6ADDR2=fc00:1::1
41 1.1 yamaguch IP6ADDR3=fc00:1::2
42 1.1 yamaguch WAITTIME=20
43 1.1 yamaguch
44 1.1 yamaguch DEBUG=${DEBUG:-false}
45 1.1 yamaguch
46 1.1 yamaguch wait_state()
47 1.1 yamaguch {
48 1.1 yamaguch local state=$1
49 1.1 yamaguch local if_lagg=$2
50 1.1 yamaguch local if_port=$3
51 1.1 yamaguch
52 1.1 yamaguch local n=$WAITTIME
53 1.1 yamaguch local cmd_grep="grep -q ${state}"
54 1.1 yamaguch
55 1.1 yamaguch if [ x"$if_port" != x"" ]; then
56 1.1 yamaguch cmd_grep="grep $if_port | $cmd_grep"
57 1.1 yamaguch fi
58 1.1 yamaguch
59 1.1 yamaguch for i in $(seq $n); do
60 1.1 yamaguch rump.ifconfig $if_lagg | eval $cmd_grep
61 1.1 yamaguch if [ $? = 0 ] ; then
62 1.1 yamaguch $DEBUG && echo "wait for $i seconds."
63 1.1 yamaguch return 0
64 1.1 yamaguch fi
65 1.1 yamaguch
66 1.1 yamaguch sleep 1
67 1.1 yamaguch done
68 1.1 yamaguch
69 1.1 yamaguch $DEBUG && rump.ifconfig -v $if_lagg
70 1.1 yamaguch atf_fail "Couldn't be ${state} for $n seconds."
71 1.1 yamaguch }
72 1.1 yamaguch wait_for_distributing()
73 1.1 yamaguch {
74 1.1 yamaguch
75 1.1 yamaguch wait_state "DISTRIBUTING" $*
76 1.1 yamaguch }
77 1.1 yamaguch
78 1.1 yamaguch expected_inactive()
79 1.1 yamaguch {
80 1.1 yamaguch local if_lagg=$1
81 1.1 yamaguch local if_port=$2
82 1.1 yamaguch
83 1.1 yamaguch sleep 3 # wait a little
84 1.1 yamaguch atf_check -s exit:0 -o not-match:"${if_port}.*ACTIVE" \
85 1.1 yamaguch rump.ifconfig ${if_lagg}
86 1.1 yamaguch }
87 1.1 yamaguch
88 1.3 yamaguch setup_l2tp_ipv4tunnel()
89 1.3 yamaguch {
90 1.3 yamaguch local atf_ifconfig="atf_check -s exit:0 rump.ifconfig"
91 1.3 yamaguch
92 1.3 yamaguch local a_addr0=10.0.0.1
93 1.3 yamaguch local a_addr1=10.0.0.2
94 1.3 yamaguch local b_addr0=10.0.1.1
95 1.3 yamaguch local b_addr1=10.0.1.2
96 1.3 yamaguch local c_addr0=10.0.2.1
97 1.3 yamaguch local c_addr1=10.0.2.2
98 1.3 yamaguch
99 1.3 yamaguch local a_session0=1001
100 1.3 yamaguch local a_session1=1002
101 1.3 yamaguch local b_session0=1011
102 1.3 yamaguch local b_session1=1012
103 1.3 yamaguch local c_session0=1021
104 1.3 yamaguch local c_session1=1022
105 1.3 yamaguch
106 1.3 yamaguch rump_server_add_iface $SOCK_HOST0 l2tp0
107 1.3 yamaguch rump_server_add_iface $SOCK_HOST0 l2tp1
108 1.3 yamaguch rump_server_add_iface $SOCK_HOST0 l2tp2
109 1.3 yamaguch rump_server_add_iface $SOCK_HOST1 l2tp0
110 1.3 yamaguch rump_server_add_iface $SOCK_HOST1 l2tp1
111 1.3 yamaguch rump_server_add_iface $SOCK_HOST1 l2tp2
112 1.3 yamaguch
113 1.3 yamaguch
114 1.3 yamaguch export RUMP_SERVER=$SOCK_HOST0
115 1.3 yamaguch $atf_ifconfig shmif0 $a_addr0/24
116 1.3 yamaguch $atf_ifconfig l2tp0 tunnel $a_addr0 $a_addr1
117 1.3 yamaguch $atf_ifconfig l2tp0 session $a_session0 $a_session1
118 1.3 yamaguch
119 1.3 yamaguch $atf_ifconfig shmif1 $b_addr0/24
120 1.3 yamaguch $atf_ifconfig l2tp1 tunnel $b_addr0 $b_addr1
121 1.3 yamaguch $atf_ifconfig l2tp1 session $b_session0 $b_session1
122 1.3 yamaguch
123 1.3 yamaguch $atf_ifconfig shmif2 $c_addr0/24
124 1.3 yamaguch $atf_ifconfig l2tp2 tunnel $c_addr0 $c_addr1
125 1.3 yamaguch $atf_ifconfig l2tp2 session $c_session0 $c_session1
126 1.3 yamaguch
127 1.3 yamaguch export RUMP_SERVER=$SOCK_HOST1
128 1.3 yamaguch $atf_ifconfig shmif0 $a_addr1/24
129 1.3 yamaguch $atf_ifconfig l2tp0 tunnel $a_addr1 $a_addr0
130 1.3 yamaguch $atf_ifconfig l2tp0 session $a_session1 $a_session0
131 1.3 yamaguch
132 1.3 yamaguch $atf_ifconfig shmif1 $b_addr1/24
133 1.3 yamaguch $atf_ifconfig l2tp1 tunnel $b_addr1 $b_addr0
134 1.3 yamaguch $atf_ifconfig l2tp1 session $b_session1 $b_session0
135 1.3 yamaguch
136 1.3 yamaguch $atf_ifconfig shmif2 $c_addr1/24
137 1.3 yamaguch $atf_ifconfig l2tp2 tunnel $c_addr1 $c_addr0
138 1.3 yamaguch $atf_ifconfig l2tp2 session $c_session1 $c_session0
139 1.3 yamaguch }
140 1.3 yamaguch
141 1.1 yamaguch atf_test_case lagg_ifconfig cleanup
142 1.1 yamaguch lagg_ifconfig_head()
143 1.1 yamaguch {
144 1.1 yamaguch
145 1.1 yamaguch atf_set "descr" "tests for create, destroy, and ioctl of lagg(4)"
146 1.1 yamaguch atf_set "require.progs" "rump_server"
147 1.1 yamaguch }
148 1.1 yamaguch
149 1.1 yamaguch lagg_ifconfig_body()
150 1.1 yamaguch {
151 1.1 yamaguch local atf_ifconfig="atf_check -s exit:0 rump.ifconfig"
152 1.1 yamaguch
153 1.1 yamaguch rump_server_start $SOCK_HOST0 lagg
154 1.1 yamaguch
155 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST0
156 1.1 yamaguch $atf_ifconfig lagg0 create
157 1.1 yamaguch $atf_ifconfig lagg0 destroy
158 1.1 yamaguch
159 1.1 yamaguch $atf_ifconfig lagg0 create
160 1.1 yamaguch $atf_ifconfig shmif0 create
161 1.1 yamaguch
162 1.1 yamaguch $atf_ifconfig lagg0 laggproto none
163 1.1 yamaguch atf_check -s exit:0 -o match:'laggproto none' \
164 1.1 yamaguch rump.ifconfig lagg0
165 1.1 yamaguch
166 1.1 yamaguch # cannot add a port while protocol is none
167 1.1 yamaguch atf_check -s not-exit:0 -e ignore \
168 1.1 yamaguch rump.ifconfig lagg0 laggport shmif0
169 1.1 yamaguch
170 1.1 yamaguch $atf_ifconfig lagg0 laggproto lacp
171 1.1 yamaguch atf_check -s exit:0 -o match:'laggproto lacp' \
172 1.1 yamaguch rump.ifconfig lagg0
173 1.1 yamaguch
174 1.1 yamaguch # add a port and an added port
175 1.1 yamaguch $atf_ifconfig lagg0 laggport shmif0
176 1.1 yamaguch atf_check -s not-exit:0 -e ignore \
177 1.1 yamaguch rump.ifconfig lagg0 laggport shmif0
178 1.1 yamaguch
179 1.1 yamaguch # remove an added port and a removed port
180 1.1 yamaguch $atf_ifconfig lagg0 -laggport shmif0
181 1.1 yamaguch atf_check -s not-exit:0 -e ignore \
182 1.1 yamaguch rump.ifconfig lagg0 -laggport shmif0
183 1.1 yamaguch
184 1.1 yamaguch # re-add a removed port
185 1.1 yamaguch $atf_ifconfig lagg0 laggport shmif0
186 1.1 yamaguch
187 1.1 yamaguch # detach protocol even if the I/F has ports
188 1.1 yamaguch $atf_ifconfig lagg0 laggproto none
189 1.1 yamaguch
190 1.1 yamaguch # destroy the interface while grouping ports
191 1.1 yamaguch $atf_ifconfig lagg0 destroy
192 1.1 yamaguch
193 1.1 yamaguch $atf_ifconfig lagg0 create
194 1.1 yamaguch $atf_ifconfig shmif1 create
195 1.1 yamaguch
196 1.1 yamaguch $atf_ifconfig lagg0 laggproto lacp
197 1.1 yamaguch $atf_ifconfig lagg0 laggport shmif0
198 1.1 yamaguch $atf_ifconfig lagg0 laggport shmif1
199 1.1 yamaguch
200 1.1 yamaguch $atf_ifconfig lagg0 -laggport shmif0
201 1.1 yamaguch $atf_ifconfig lagg0 laggport shmif0
202 1.1 yamaguch $atf_ifconfig lagg0 -laggport shmif1
203 1.1 yamaguch $atf_ifconfig lagg0 laggport shmif1
204 1.1 yamaguch
205 1.1 yamaguch # destroy a LAGed port
206 1.1 yamaguch atf_check -s exit:0 -o match:shmif0 rump.ifconfig lagg0
207 1.1 yamaguch atf_check -s exit:0 -o match:shmif1 rump.ifconfig lagg0
208 1.1 yamaguch $atf_ifconfig shmif0 destroy
209 1.1 yamaguch $atf_ifconfig shmif1 destroy
210 1.1 yamaguch
211 1.1 yamaguch $atf_ifconfig lagg0 laggproto none
212 1.1 yamaguch atf_check -s exit:0 -o ignore rump.ifconfig lagg0
213 1.1 yamaguch }
214 1.1 yamaguch
215 1.1 yamaguch lagg_ifconfig_cleanup()
216 1.1 yamaguch {
217 1.1 yamaguch $DEBG && dump
218 1.1 yamaguch cleanup
219 1.1 yamaguch }
220 1.1 yamaguch
221 1.1 yamaguch atf_test_case lagg_macaddr cleanup
222 1.1 yamaguch lagg_macaddr_head()
223 1.1 yamaguch {
224 1.1 yamaguch atf_set "descr" "tests for a MAC address to assign to lagg(4)"
225 1.1 yamaguch atf_set "require.progs" "rump_server"
226 1.1 yamaguch }
227 1.1 yamaguch
228 1.1 yamaguch lagg_macaddr_body()
229 1.1 yamaguch {
230 1.1 yamaguch local atf_ifconfig="atf_check -s exit:0 rump.ifconfig"
231 1.6 yamaguch local lnkaddr0="02:00:00:00:00:01" # 02: I/G = 0, G/L = 1
232 1.1 yamaguch
233 1.1 yamaguch rump_server_start $SOCK_HOST0 lagg
234 1.1 yamaguch
235 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST0
236 1.1 yamaguch $atf_ifconfig lagg0 create
237 1.1 yamaguch rump_server_add_iface $SOCK_HOST0 shmif0 $BUS0
238 1.1 yamaguch rump_server_add_iface $SOCK_HOST0 shmif1 $BUS1
239 1.1 yamaguch
240 1.1 yamaguch maddr=$(get_macaddr $SOCK_HOST0 lagg0)
241 1.1 yamaguch maddr0=$(get_macaddr $SOCK_HOST0 shmif0)
242 1.1 yamaguch maddr1=$(get_macaddr $SOCK_HOST0 shmif1)
243 1.1 yamaguch
244 1.1 yamaguch $atf_ifconfig lagg0 laggproto lacp
245 1.1 yamaguch
246 1.6 yamaguch #
247 1.6 yamaguch # Copy MAC address from shmif0 that is
248 1.6 yamaguch # the first port to lagg.
249 1.6 yamaguch # (laggport: (none) => shmif0)
250 1.6 yamaguch #
251 1.1 yamaguch $atf_ifconfig lagg0 laggport shmif0
252 1.1 yamaguch atf_check -s exit:0 -o match:$maddr0 rump.ifconfig lagg0
253 1.6 yamaguch atf_check -s exit:0 -o match:$maddr0 rump.ifconfig shmif0
254 1.1 yamaguch
255 1.6 yamaguch #
256 1.6 yamaguch # Copy MAC address assigned to lagg0 to shmif1
257 1.6 yamaguch # (laggport: shmif0 => shmif0, shmif1)
258 1.6 yamaguch #
259 1.1 yamaguch $atf_ifconfig lagg0 laggport shmif1
260 1.1 yamaguch atf_check -s exit:0 -o match:$maddr0 rump.ifconfig lagg0
261 1.1 yamaguch atf_check -s exit:0 -o match:$maddr0 rump.ifconfig shmif1
262 1.1 yamaguch
263 1.6 yamaguch #
264 1.6 yamaguch # Change MAC address on the detaching
265 1.6 yamaguch # the first port (shmif0) from lagg0
266 1.6 yamaguch # (laggport: shmif0, shmif1 => shmif1)
267 1.6 yamaguch #
268 1.1 yamaguch $atf_ifconfig lagg0 -laggport shmif0
269 1.1 yamaguch atf_check -s exit:0 -o match:$maddr1 rump.ifconfig lagg0
270 1.1 yamaguch atf_check -s exit:0 -o match:$maddr0 rump.ifconfig shmif0
271 1.6 yamaguch atf_check -s exit:0 -o match:$maddr1 rump.ifconfig shmif1
272 1.1 yamaguch
273 1.6 yamaguch #
274 1.6 yamaguch # Copy lagg0's MAC address to shmif0 even if
275 1.6 yamaguch # lagg0 had used shmif0's MAC address
276 1.6 yamaguch # (laggport: shmif1 => shmif1, shmif0)
277 1.6 yamaguch #
278 1.1 yamaguch $atf_ifconfig lagg0 laggport shmif0
279 1.1 yamaguch atf_check -s exit:0 -o match:$maddr1 rump.ifconfig lagg0
280 1.1 yamaguch atf_check -s exit:0 -o match:$maddr1 rump.ifconfig shmif0
281 1.1 yamaguch
282 1.6 yamaguch #
283 1.6 yamaguch # should not change MAC address of lagg0 on detaching
284 1.6 yamaguch # shmif0 that copied mac address from lagg0
285 1.6 yamaguch # (laggport: shmif1, shmif0 => shmif1)
286 1.6 yamaguch #
287 1.1 yamaguch $atf_ifconfig lagg0 -laggport shmif0
288 1.6 yamaguch atf_check -s exit:0 -o match:$maddr1 rump.ifconfig lagg0
289 1.1 yamaguch atf_check -s exit:0 -o match:$maddr0 rump.ifconfig shmif0
290 1.1 yamaguch
291 1.6 yamaguch #
292 1.6 yamaguch # Use the generated MAC address
293 1.6 yamaguch # when all port detached from lagg0
294 1.6 yamaguch # (laggport: shmif1 => (none))
295 1.1 yamaguch $atf_ifconfig lagg0 -laggport shmif1
296 1.1 yamaguch atf_check -s exit:0 -o match:$maddr rump.ifconfig lagg0
297 1.6 yamaguch
298 1.6 yamaguch #
299 1.6 yamaguch # Copy the active MAC address from shmif0 to lagg0
300 1.6 yamaguch # when shmif0 has two MAC addresses
301 1.6 yamaguch #
302 1.6 yamaguch $atf_ifconfig shmif0 link $lnkaddr0
303 1.6 yamaguch $atf_ifconfig lagg0 laggport shmif0
304 1.6 yamaguch atf_check -s exit:0 -o match:$maddr0 rump.ifconfig lagg0
305 1.6 yamaguch atf_check -s exit:0 -o not-match:$lnkaddr0 rump.ifconfig lagg0
306 1.6 yamaguch atf_check -s exit:0 -o match:$maddr0 rump.ifconfig shmif0
307 1.6 yamaguch atf_check -s exit:0 -o match:$lnkaddr0 rump.ifconfig shmif0
308 1.1 yamaguch }
309 1.1 yamaguch
310 1.1 yamaguch lagg_macaddr_cleanup()
311 1.1 yamaguch {
312 1.1 yamaguch $DEBUG && dump
313 1.1 yamaguch cleanup
314 1.1 yamaguch }
315 1.1 yamaguch
316 1.1 yamaguch atf_test_case lagg_ipv6lla cleanup
317 1.1 yamaguch lagg_ipv6lla_head()
318 1.1 yamaguch {
319 1.1 yamaguch atf_set "descr" "tests for a IPV6 LLA to assign to lagg(4)"
320 1.1 yamaguch atf_set "require.progs" "rump_server"
321 1.1 yamaguch }
322 1.1 yamaguch
323 1.1 yamaguch lagg_ipv6lla_body()
324 1.1 yamaguch {
325 1.1 yamaguch local atf_ifconfig="atf_check -s exit:0 rump.ifconfig"
326 1.1 yamaguch
327 1.1 yamaguch rump_server_start $SOCK_HOST0 netinet6 lagg
328 1.1 yamaguch
329 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST0
330 1.1 yamaguch $atf_ifconfig lagg0 create
331 1.1 yamaguch rump_server_add_iface $SOCK_HOST0 shmif0 $BUS0
332 1.1 yamaguch rump_server_add_iface $SOCK_HOST0 shmif1 $BUS1
333 1.1 yamaguch
334 1.1 yamaguch $atf_ifconfig lagg0 laggproto lacp
335 1.1 yamaguch
336 1.1 yamaguch $atf_ifconfig shmif0 up
337 1.1 yamaguch atf_check -s exit:0 -o match:'inet6 fe80:' rump.ifconfig shmif0
338 1.1 yamaguch
339 1.1 yamaguch $atf_ifconfig lagg0 laggproto lacp laggport shmif0
340 1.1 yamaguch atf_check -s exit:0 -o not-match:'inet6 fe80:' rump.ifconfig shmif0
341 1.1 yamaguch
342 1.1 yamaguch $atf_ifconfig lagg0 laggport shmif1
343 1.1 yamaguch $atf_ifconfig shmif1 up
344 1.1 yamaguch atf_check -s exit:0 -o not-match:'inet6 fe80:' rump.ifconfig shmif1
345 1.1 yamaguch
346 1.1 yamaguch $atf_ifconfig lagg0 -laggport shmif0
347 1.1 yamaguch atf_check -s exit:0 -o match:'inet6 fe80:' rump.ifconfig shmif0
348 1.1 yamaguch
349 1.1 yamaguch $atf_ifconfig shmif1 down
350 1.1 yamaguch $atf_ifconfig lagg0 -laggport shmif1
351 1.1 yamaguch atf_check -s exit:0 -o not-match:'inet fe80:' rump.ifconfig shmif1
352 1.1 yamaguch }
353 1.1 yamaguch
354 1.1 yamaguch lagg_ipv6lla_cleanup()
355 1.1 yamaguch {
356 1.1 yamaguch $DEBUG && dump
357 1.1 yamaguch cleanup
358 1.1 yamaguch }
359 1.1 yamaguch
360 1.8 yamaguch atf_test_case lagg_mtu cleanup
361 1.8 yamaguch lagg_mtu_head()
362 1.8 yamaguch {
363 1.8 yamaguch atf_set "descr" "tests for MTU"
364 1.8 yamaguch atf_set "require.progs" "rump_server"
365 1.8 yamaguch }
366 1.8 yamaguch
367 1.8 yamaguch lagg_mtu_body()
368 1.8 yamaguch {
369 1.8 yamaguch local atf_ifconfig="atf_check -s exit:0 rump.ifconfig"
370 1.10 yamaguch local mtu_lagg=1500
371 1.8 yamaguch local mtu_1st=1450
372 1.8 yamaguch local mtu_big=1460
373 1.8 yamaguch local mtu_small=1440
374 1.8 yamaguch
375 1.8 yamaguch rump_server_start $SOCK_HOST0 lagg
376 1.8 yamaguch
377 1.8 yamaguch export RUMP_SERVER=$SOCK_HOST0
378 1.8 yamaguch rump_server_add_iface $SOCK_HOST0 shmif0 $BUS0
379 1.8 yamaguch rump_server_add_iface $SOCK_HOST0 shmif1 $BUS1
380 1.8 yamaguch rump_server_add_iface $SOCK_HOST0 shmif2 $BUS2
381 1.8 yamaguch $atf_ifconfig lagg0 create
382 1.8 yamaguch $atf_ifconfig lagg0 laggproto lacp
383 1.10 yamaguch $atf_ifconfig lagg0 up
384 1.8 yamaguch
385 1.8 yamaguch $atf_ifconfig shmif0 mtu $mtu_1st
386 1.8 yamaguch $atf_ifconfig shmif1 mtu $mtu_big
387 1.8 yamaguch $atf_ifconfig shmif2 mtu $mtu_small
388 1.8 yamaguch
389 1.10 yamaguch # check initial MTU settings
390 1.10 yamaguch atf_check -s exit:0 -o match:"mtu *$mtu_lagg" rump.ifconfig lagg0
391 1.8 yamaguch atf_check -s exit:0 -o match:"mtu *$mtu_1st" rump.ifconfig shmif0
392 1.8 yamaguch atf_check -s exit:0 -o match:"mtu *$mtu_big" rump.ifconfig shmif1
393 1.8 yamaguch atf_check -s exit:0 -o match:"mtu *$mtu_small" rump.ifconfig shmif2
394 1.8 yamaguch
395 1.8 yamaguch # copy MTU from 1st port
396 1.8 yamaguch $atf_ifconfig lagg0 laggport shmif0
397 1.10 yamaguch atf_check -s exit:0 -o match:"mtu *$mtu_lagg" rump.ifconfig lagg0
398 1.10 yamaguch atf_check -s exit:0 -o match:"mtu *$mtu_lagg" rump.ifconfig shmif0
399 1.8 yamaguch
400 1.8 yamaguch # copy MTU to added port
401 1.8 yamaguch $atf_ifconfig lagg0 laggport shmif1
402 1.8 yamaguch $atf_ifconfig lagg0 laggport shmif2
403 1.10 yamaguch atf_check -s exit:0 -o match:"mtu *$mtu_lagg" rump.ifconfig lagg0
404 1.10 yamaguch atf_check -s exit:0 -o match:"mtu *$mtu_lagg" rump.ifconfig shmif0
405 1.10 yamaguch atf_check -s exit:0 -o match:"mtu *$mtu_lagg" rump.ifconfig shmif1
406 1.10 yamaguch atf_check -s exit:0 -o match:"mtu *$mtu_lagg" rump.ifconfig shmif2
407 1.8 yamaguch
408 1.8 yamaguch # reset MTU after detaching from lagg0
409 1.8 yamaguch $atf_ifconfig lagg0 -laggport shmif2
410 1.8 yamaguch atf_check -s exit:0 -o match:"mtu *$mtu_small" rump.ifconfig shmif2
411 1.8 yamaguch
412 1.8 yamaguch # change MTU of lagg0
413 1.10 yamaguch mtu_lagg=1400
414 1.10 yamaguch $atf_ifconfig lagg0 mtu $mtu_lagg
415 1.10 yamaguch atf_check -s exit:0 -o match:"mtu *$mtu_lagg" rump.ifconfig lagg0
416 1.10 yamaguch atf_check -s exit:0 -o match:"mtu *$mtu_lagg" rump.ifconfig shmif0
417 1.10 yamaguch atf_check -s exit:0 -o match:"mtu *$mtu_lagg" rump.ifconfig shmif1
418 1.8 yamaguch
419 1.8 yamaguch # reset MTU after detching from lagg0
420 1.8 yamaguch $atf_ifconfig lagg0 -laggport shmif0
421 1.8 yamaguch $atf_ifconfig lagg0 -laggport shmif1
422 1.8 yamaguch atf_check -s exit:0 -o match:"mtu *$mtu_1st" rump.ifconfig shmif0
423 1.8 yamaguch atf_check -s exit:0 -o match:"mtu *$mtu_big" rump.ifconfig shmif1
424 1.8 yamaguch }
425 1.8 yamaguch
426 1.8 yamaguch lagg_mtu_cleanup()
427 1.8 yamaguch {
428 1.8 yamaguch
429 1.8 yamaguch $DEBUG && dump
430 1.8 yamaguch cleanup
431 1.8 yamaguch }
432 1.8 yamaguch
433 1.1 yamaguch atf_test_case lagg_lacp_basic cleanup
434 1.1 yamaguch lagg_lacp_basic_head()
435 1.1 yamaguch {
436 1.1 yamaguch
437 1.1 yamaguch atf_set "descr" "tests for LACP basic functions"
438 1.1 yamaguch atf_set "require.progs" "rump_server"
439 1.1 yamaguch }
440 1.1 yamaguch
441 1.1 yamaguch lagg_lacp_basic_body()
442 1.1 yamaguch {
443 1.1 yamaguch local atf_ifconfig="atf_check -s exit:0 rump.ifconfig"
444 1.1 yamaguch
445 1.1 yamaguch rump_server_start $SOCK_HOST0 lagg
446 1.1 yamaguch rump_server_start $SOCK_HOST1 lagg
447 1.1 yamaguch rump_server_start $SOCK_HOST2 lagg
448 1.1 yamaguch
449 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST0
450 1.1 yamaguch
451 1.1 yamaguch # added running interface
452 1.1 yamaguch $atf_ifconfig shmif0 create
453 1.1 yamaguch $atf_ifconfig shmif0 linkstr $BUS0
454 1.1 yamaguch
455 1.1 yamaguch $atf_ifconfig shmif1 create
456 1.1 yamaguch $atf_ifconfig shmif1 linkstr $BUS1
457 1.1 yamaguch
458 1.1 yamaguch $atf_ifconfig lagg0 create
459 1.1 yamaguch $atf_ifconfig lagg0 laggproto lacp
460 1.1 yamaguch
461 1.1 yamaguch $atf_ifconfig shmif0 up
462 1.1 yamaguch $atf_ifconfig shmif1 up
463 1.1 yamaguch $atf_ifconfig lagg0 up
464 1.1 yamaguch
465 1.1 yamaguch $atf_ifconfig lagg0 laggport shmif0
466 1.1 yamaguch $atf_ifconfig lagg0 laggport shmif1
467 1.1 yamaguch $atf_ifconfig -w 10
468 1.1 yamaguch
469 1.1 yamaguch $atf_ifconfig lagg0 -laggport shmif0
470 1.1 yamaguch $atf_ifconfig lagg0 -laggport shmif1
471 1.1 yamaguch $atf_ifconfig lagg0 down
472 1.1 yamaguch
473 1.1 yamaguch # add the same interfaces again
474 1.1 yamaguch $atf_ifconfig lagg0 up
475 1.1 yamaguch $atf_ifconfig lagg0 laggport shmif0
476 1.1 yamaguch $atf_ifconfig lagg0 laggport shmif1
477 1.1 yamaguch
478 1.1 yamaguch # detach and re-attach protocol
479 1.1 yamaguch $atf_ifconfig lagg0 laggproto none
480 1.1 yamaguch $atf_ifconfig lagg0 laggproto lacp \
481 1.1 yamaguch laggport shmif0 laggport shmif1
482 1.1 yamaguch
483 1.1 yamaguch $atf_ifconfig lagg0 -laggport shmif0 -laggport shmif1
484 1.1 yamaguch $atf_ifconfig lagg0 destroy
485 1.1 yamaguch $atf_ifconfig shmif0 destroy
486 1.1 yamaguch $atf_ifconfig shmif1 destroy
487 1.1 yamaguch
488 1.1 yamaguch # tests for a loopback condition
489 1.1 yamaguch $atf_ifconfig shmif0 create
490 1.1 yamaguch $atf_ifconfig shmif0 linkstr $BUS0
491 1.1 yamaguch $atf_ifconfig shmif1 create
492 1.1 yamaguch $atf_ifconfig shmif1 linkstr $BUS0
493 1.1 yamaguch $atf_ifconfig lagg0 create
494 1.1 yamaguch $atf_ifconfig lagg0 laggproto lacp \
495 1.1 yamaguch laggport shmif0 laggport shmif1
496 1.1 yamaguch $atf_ifconfig shmif0 up
497 1.1 yamaguch $atf_ifconfig shmif1 up
498 1.1 yamaguch $atf_ifconfig lagg0 up
499 1.1 yamaguch
500 1.1 yamaguch expected_inactive lagg0
501 1.1 yamaguch
502 1.1 yamaguch $atf_ifconfig shmif0 down
503 1.1 yamaguch $atf_ifconfig shmif0 destroy
504 1.1 yamaguch $atf_ifconfig shmif1 down
505 1.1 yamaguch $atf_ifconfig shmif1 destroy
506 1.1 yamaguch $atf_ifconfig lagg0 down
507 1.1 yamaguch $atf_ifconfig lagg0 destroy
508 1.1 yamaguch
509 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST0
510 1.1 yamaguch $atf_ifconfig shmif0 create
511 1.1 yamaguch $atf_ifconfig shmif0 linkstr $BUS0
512 1.1 yamaguch $atf_ifconfig shmif0 up
513 1.1 yamaguch
514 1.1 yamaguch $atf_ifconfig shmif1 create
515 1.1 yamaguch $atf_ifconfig shmif1 linkstr $BUS1
516 1.1 yamaguch $atf_ifconfig shmif1 up
517 1.1 yamaguch
518 1.1 yamaguch $atf_ifconfig shmif2 create
519 1.1 yamaguch $atf_ifconfig shmif2 linkstr $BUS2
520 1.1 yamaguch $atf_ifconfig shmif2 up
521 1.1 yamaguch
522 1.1 yamaguch $atf_ifconfig lagg0 create
523 1.1 yamaguch $atf_ifconfig lagg0 laggproto lacp laggport shmif0 \
524 1.1 yamaguch laggport shmif1 laggport shmif2
525 1.1 yamaguch $atf_ifconfig lagg0 up
526 1.1 yamaguch
527 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST1
528 1.1 yamaguch $atf_ifconfig shmif0 create
529 1.1 yamaguch $atf_ifconfig shmif0 linkstr $BUS0
530 1.1 yamaguch $atf_ifconfig shmif0 up
531 1.1 yamaguch
532 1.1 yamaguch $atf_ifconfig shmif1 create
533 1.1 yamaguch $atf_ifconfig shmif1 linkstr $BUS1
534 1.1 yamaguch $atf_ifconfig shmif1 up
535 1.1 yamaguch
536 1.1 yamaguch $atf_ifconfig lagg0 create
537 1.1 yamaguch $atf_ifconfig lagg0 laggproto lacp
538 1.1 yamaguch $atf_ifconfig lagg1 create
539 1.1 yamaguch $atf_ifconfig lagg1 laggproto lacp
540 1.1 yamaguch
541 1.1 yamaguch $atf_ifconfig lagg0 laggport shmif0
542 1.1 yamaguch $atf_ifconfig lagg0 up
543 1.1 yamaguch wait_for_distributing lagg0 shmif0
544 1.1 yamaguch
545 1.1 yamaguch $atf_ifconfig lagg1 laggport shmif1
546 1.1 yamaguch $atf_ifconfig lagg1 up
547 1.1 yamaguch
548 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST2
549 1.1 yamaguch $atf_ifconfig shmif0 create
550 1.1 yamaguch $atf_ifconfig shmif0 linkstr $BUS2
551 1.1 yamaguch $atf_ifconfig shmif0 up
552 1.1 yamaguch
553 1.1 yamaguch $atf_ifconfig lagg0 create
554 1.1 yamaguch $atf_ifconfig lagg0 laggproto lacp laggport shmif0
555 1.1 yamaguch $atf_ifconfig lagg0 up
556 1.1 yamaguch
557 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST0
558 1.1 yamaguch wait_for_distributing lagg0 shmif0
559 1.1 yamaguch expected_inactive lagg0 shmif1
560 1.1 yamaguch expected_inactive lagg0 shmif2
561 1.1 yamaguch }
562 1.1 yamaguch
563 1.1 yamaguch lagg_lacp_basic_cleanup()
564 1.1 yamaguch {
565 1.1 yamaguch
566 1.1 yamaguch $DEBUG && dump
567 1.1 yamaguch cleanup
568 1.1 yamaguch }
569 1.1 yamaguch
570 1.1 yamaguch lagg_lacp_ping()
571 1.1 yamaguch {
572 1.1 yamaguch local atf_ifconfig="atf_check -s exit:0 rump.ifconfig"
573 1.1 yamaguch
574 1.1 yamaguch local af=$1
575 1.3 yamaguch local l2proto=$2
576 1.1 yamaguch local atf_ping="atf_check -s exit:0 -o ignore rump.ping -c 1"
577 1.1 yamaguch local ping=rump.ping
578 1.1 yamaguch local rumplib=""
579 1.1 yamaguch local pfx=24
580 1.1 yamaguch local addr_host0=$IP4ADDR0
581 1.1 yamaguch local addr_host1=$IP4ADDR1
582 1.1 yamaguch
583 1.1 yamaguch case $af in
584 1.1 yamaguch "inet")
585 1.1 yamaguch # do nothing
586 1.1 yamaguch ;;
587 1.1 yamaguch "inet6")
588 1.1 yamaguch atf_ping="atf_check -s exit:0 -o ignore rump.ping6 -c 1"
589 1.1 yamaguch rumplib="netinet6"
590 1.1 yamaguch pfx=64
591 1.1 yamaguch addr_host0=$IP6ADDR0
592 1.1 yamaguch addr_host1=$IP6ADDR1
593 1.1 yamaguch ;;
594 1.1 yamaguch esac
595 1.1 yamaguch
596 1.3 yamaguch case $l2proto in
597 1.3 yamaguch "ether")
598 1.3 yamaguch iface0=shmif0
599 1.3 yamaguch iface1=shmif1
600 1.3 yamaguch iface2=shmif2
601 1.3 yamaguch ;;
602 1.3 yamaguch "l2tp")
603 1.3 yamaguch rumplib="$rumplib l2tp"
604 1.3 yamaguch iface0=l2tp0
605 1.3 yamaguch iface1=l2tp1
606 1.3 yamaguch iface2=l2tp2
607 1.3 yamaguch ;;
608 1.3 yamaguch esac
609 1.3 yamaguch
610 1.1 yamaguch rump_server_start $SOCK_HOST0 lagg $rumplib
611 1.1 yamaguch rump_server_start $SOCK_HOST1 lagg $rumplib
612 1.1 yamaguch
613 1.1 yamaguch rump_server_add_iface $SOCK_HOST0 shmif0 $BUS0
614 1.1 yamaguch rump_server_add_iface $SOCK_HOST0 shmif1 $BUS1
615 1.1 yamaguch rump_server_add_iface $SOCK_HOST0 shmif2 $BUS2
616 1.1 yamaguch
617 1.1 yamaguch rump_server_add_iface $SOCK_HOST1 shmif0 $BUS0
618 1.1 yamaguch rump_server_add_iface $SOCK_HOST1 shmif1 $BUS1
619 1.1 yamaguch rump_server_add_iface $SOCK_HOST1 shmif2 $BUS2
620 1.1 yamaguch
621 1.3 yamaguch if [ x"$l2proto" = x"l2tp" ];then
622 1.3 yamaguch setup_l2tp_ipv4tunnel
623 1.3 yamaguch fi
624 1.3 yamaguch
625 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST0
626 1.1 yamaguch $atf_ifconfig lagg0 create
627 1.3 yamaguch $atf_ifconfig lagg0 laggproto lacp laggport $iface0
628 1.1 yamaguch $atf_ifconfig lagg0 $af $addr_host0/$pfx
629 1.3 yamaguch $atf_ifconfig $iface0 up
630 1.1 yamaguch $atf_ifconfig lagg0 up
631 1.1 yamaguch
632 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST1
633 1.1 yamaguch $atf_ifconfig lagg0 create
634 1.3 yamaguch $atf_ifconfig lagg0 laggproto lacp laggport $iface0
635 1.1 yamaguch $atf_ifconfig lagg0 $af $addr_host1/$pfx
636 1.3 yamaguch $atf_ifconfig $iface0 up
637 1.1 yamaguch $atf_ifconfig lagg0 up
638 1.1 yamaguch
639 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST0
640 1.1 yamaguch wait_for_distributing lagg0
641 1.1 yamaguch $atf_ifconfig -w 10
642 1.1 yamaguch
643 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST1
644 1.1 yamaguch wait_for_distributing lagg0
645 1.1 yamaguch $atf_ifconfig -w 10
646 1.1 yamaguch
647 1.1 yamaguch $atf_ping $addr_host0
648 1.1 yamaguch
649 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST0
650 1.3 yamaguch $atf_ifconfig $iface1 up
651 1.3 yamaguch $atf_ifconfig lagg0 laggport $iface1 laggport $iface2
652 1.3 yamaguch $atf_ifconfig $iface2 up
653 1.1 yamaguch
654 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST1
655 1.3 yamaguch $atf_ifconfig $iface1 up
656 1.3 yamaguch $atf_ifconfig lagg0 laggport $iface1 laggport $iface2
657 1.3 yamaguch $atf_ifconfig $iface2 up
658 1.1 yamaguch
659 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST0
660 1.3 yamaguch wait_for_distributing lagg0 $iface1
661 1.3 yamaguch wait_for_distributing lagg0 $iface2
662 1.1 yamaguch
663 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST1
664 1.3 yamaguch wait_for_distributing lagg0 $iface1
665 1.3 yamaguch wait_for_distributing lagg0 $iface2
666 1.1 yamaguch
667 1.1 yamaguch $atf_ping $addr_host0
668 1.1 yamaguch }
669 1.1 yamaguch
670 1.1 yamaguch atf_test_case lagg_lacp_ipv4 cleanup
671 1.1 yamaguch lagg_lacp_ipv4_head()
672 1.1 yamaguch {
673 1.1 yamaguch
674 1.1 yamaguch atf_set "descr" "tests for IPv4 with LACP"
675 1.1 yamaguch atf_set "require.progs" "rump_server"
676 1.1 yamaguch }
677 1.1 yamaguch
678 1.1 yamaguch lagg_lacp_ipv4_body()
679 1.1 yamaguch {
680 1.1 yamaguch
681 1.3 yamaguch lagg_lacp_ping "inet" "ether"
682 1.1 yamaguch }
683 1.1 yamaguch
684 1.1 yamaguch lagg_lacp_ipv4_cleanup()
685 1.1 yamaguch {
686 1.1 yamaguch
687 1.1 yamaguch $DEBUG && dump
688 1.1 yamaguch cleanup
689 1.1 yamaguch }
690 1.1 yamaguch
691 1.2 yamaguch atf_test_case lagg_lacp_ipv6 cleanup
692 1.1 yamaguch lagg_lacp_ipv6_head()
693 1.1 yamaguch {
694 1.1 yamaguch
695 1.1 yamaguch atf_set "descr" "tests for IPv6 with LACP"
696 1.1 yamaguch atf_set "require.progs" "rump_server"
697 1.1 yamaguch }
698 1.1 yamaguch
699 1.1 yamaguch lagg_lacp_ipv6_body()
700 1.1 yamaguch {
701 1.1 yamaguch
702 1.3 yamaguch lagg_lacp_ping "inet6" "ether"
703 1.1 yamaguch }
704 1.1 yamaguch
705 1.1 yamaguch lagg_lacp_ipv6_cleanup()
706 1.1 yamaguch {
707 1.1 yamaguch
708 1.1 yamaguch $DEBUG && dump
709 1.1 yamaguch cleanup
710 1.1 yamaguch }
711 1.1 yamaguch
712 1.3 yamaguch atf_test_case lagg_lacp_l2tp_ipv4 cleanup
713 1.3 yamaguch lagg_lacp_l2tp_ipv4_head()
714 1.3 yamaguch {
715 1.3 yamaguch
716 1.3 yamaguch atf_set "descr" "tests for LACP over l2tp by using IPv4"
717 1.3 yamaguch atf_set "require.progs" "rump_server"
718 1.3 yamaguch }
719 1.3 yamaguch
720 1.3 yamaguch lagg_lacp_l2tp_ipv4_body()
721 1.3 yamaguch {
722 1.3 yamaguch
723 1.3 yamaguch lagg_lacp_ping "inet" "l2tp"
724 1.3 yamaguch }
725 1.3 yamaguch
726 1.3 yamaguch lagg_lacp_l2tp_ipv4_cleanup()
727 1.3 yamaguch {
728 1.3 yamaguch
729 1.3 yamaguch $DEBUG && dump
730 1.3 yamaguch cleanup
731 1.3 yamaguch }
732 1.3 yamaguch
733 1.3 yamaguch atf_test_case lagg_lacp_l2tp_ipv6 cleanup
734 1.3 yamaguch lagg_lacp_l2tp_ipv6_head()
735 1.3 yamaguch {
736 1.3 yamaguch
737 1.3 yamaguch atf_set "descr" "tests for LACP over l2tp using IPv6"
738 1.3 yamaguch atf_set "require.progs" "rump_server"
739 1.3 yamaguch }
740 1.3 yamaguch
741 1.3 yamaguch lagg_lacp_l2tp_ipv6_body()
742 1.3 yamaguch {
743 1.3 yamaguch
744 1.3 yamaguch lagg_lacp_ping "inet6" "l2tp"
745 1.3 yamaguch }
746 1.3 yamaguch
747 1.3 yamaguch lagg_lacp_l2tp_ipv6_cleanup()
748 1.3 yamaguch {
749 1.3 yamaguch
750 1.3 yamaguch $DEBUG && dump
751 1.3 yamaguch cleanup
752 1.3 yamaguch }
753 1.3 yamaguch
754 1.1 yamaguch lagg_lacp_vlan()
755 1.1 yamaguch {
756 1.1 yamaguch local atf_ifconfig="atf_check -s exit:0 rump.ifconfig"
757 1.1 yamaguch
758 1.1 yamaguch local af=$1
759 1.5 yamaguch local l2proto=$2
760 1.1 yamaguch local atf_ping="atf_check -s exit:0 -o ignore rump.ping -c 1"
761 1.1 yamaguch local rumplib="vlan"
762 1.1 yamaguch local pfx=24
763 1.1 yamaguch local vlan0_addr_host0=$IP4ADDR0
764 1.1 yamaguch local host0addr0=$IP4ADDR0
765 1.1 yamaguch local host1addr0=$IP4ADDR1
766 1.1 yamaguch local host0addr1=$IP4ADDR2
767 1.1 yamaguch local host1addr1=$IP4ADDR3
768 1.1 yamaguch
769 1.1 yamaguch case $af in
770 1.1 yamaguch "inet")
771 1.1 yamaguch # do nothing
772 1.1 yamaguch ;;
773 1.1 yamaguch "inet6")
774 1.1 yamaguch atf_ping="atf_check -s exit:0 -o ignore rump.ping6 -c 1"
775 1.4 yamaguch rumplib="$rumplib netinet6"
776 1.1 yamaguch pfx=64
777 1.1 yamaguch host0addr0=$IP6ADDR0
778 1.1 yamaguch host1addr0=$IP6ADDR1
779 1.1 yamaguch host0addr1=$IP6ADDR2
780 1.1 yamaguch host1addr1=$IP6ADDR3
781 1.1 yamaguch ;;
782 1.1 yamaguch esac
783 1.1 yamaguch
784 1.5 yamaguch case $l2proto in
785 1.5 yamaguch "ether")
786 1.5 yamaguch iface0=shmif0
787 1.5 yamaguch iface1=shmif1
788 1.5 yamaguch iface2=shmif2
789 1.5 yamaguch ;;
790 1.5 yamaguch "l2tp")
791 1.5 yamaguch rumplib="$rumplib l2tp"
792 1.5 yamaguch iface0=l2tp0
793 1.5 yamaguch iface1=l2tp1
794 1.5 yamaguch iface2=l2tp2
795 1.5 yamaguch esac
796 1.5 yamaguch
797 1.1 yamaguch rump_server_start $SOCK_HOST0 lagg $rumplib
798 1.1 yamaguch rump_server_start $SOCK_HOST1 lagg $rumplib
799 1.1 yamaguch
800 1.1 yamaguch rump_server_add_iface $SOCK_HOST0 shmif0 $BUS0
801 1.1 yamaguch rump_server_add_iface $SOCK_HOST0 shmif1 $BUS1
802 1.1 yamaguch rump_server_add_iface $SOCK_HOST0 shmif2 $BUS2
803 1.1 yamaguch
804 1.1 yamaguch rump_server_add_iface $SOCK_HOST1 shmif0 $BUS0
805 1.1 yamaguch rump_server_add_iface $SOCK_HOST1 shmif1 $BUS1
806 1.1 yamaguch rump_server_add_iface $SOCK_HOST1 shmif2 $BUS2
807 1.1 yamaguch
808 1.5 yamaguch if [ x"$l2proto" = x"l2tp" ]; then
809 1.5 yamaguch setup_l2tp_ipv4tunnel
810 1.5 yamaguch fi
811 1.5 yamaguch
812 1.7 yamaguch for sock in $SOCK_HOST0 $SOCK_HOST1; do
813 1.7 yamaguch export RUMP_SERVER=$sock
814 1.7 yamaguch $atf_ifconfig lagg0 create
815 1.7 yamaguch $atf_ifconfig lagg0 laggproto lacp laggport $iface0
816 1.7 yamaguch
817 1.7 yamaguch $atf_ifconfig vlan0 create
818 1.7 yamaguch $atf_ifconfig vlan0 vlan 10 vlanif lagg0
819 1.7 yamaguch $atf_ifconfig vlan1 create
820 1.7 yamaguch $atf_ifconfig vlan1 vlan 11 vlanif lagg0
821 1.1 yamaguch
822 1.7 yamaguch $atf_ifconfig $iface0 up
823 1.7 yamaguch $atf_ifconfig lagg0 up
824 1.7 yamaguch done
825 1.1 yamaguch
826 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST0
827 1.1 yamaguch wait_for_distributing lagg0
828 1.1 yamaguch $atf_ifconfig vlan0 $af $host0addr0/$pfx
829 1.1 yamaguch $atf_ifconfig vlan0 up
830 1.1 yamaguch $atf_ifconfig vlan1 $af $host0addr1/$pfx
831 1.1 yamaguch $atf_ifconfig vlan1 up
832 1.1 yamaguch
833 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST1
834 1.7 yamaguch wait_for_distributing lagg0
835 1.1 yamaguch $atf_ifconfig vlan0 $af $host1addr0/$pfx
836 1.1 yamaguch $atf_ifconfig vlan0 up
837 1.1 yamaguch $atf_ifconfig vlan1 $af $host1addr1/$pfx
838 1.1 yamaguch $atf_ifconfig vlan1 up
839 1.1 yamaguch
840 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST0
841 1.1 yamaguch $atf_ifconfig -w 10
842 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST1
843 1.1 yamaguch $atf_ifconfig -w 10
844 1.1 yamaguch
845 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST0
846 1.1 yamaguch $atf_ping $host1addr0
847 1.1 yamaguch $atf_ping $host1addr1
848 1.1 yamaguch
849 1.5 yamaguch $atf_ifconfig lagg0 laggport $iface1
850 1.5 yamaguch $atf_ifconfig $iface1 up
851 1.1 yamaguch
852 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST1
853 1.5 yamaguch $atf_ifconfig lagg0 laggport $iface1
854 1.5 yamaguch $atf_ifconfig $iface1 up
855 1.1 yamaguch
856 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST0
857 1.5 yamaguch wait_for_distributing lagg0 $iface1
858 1.1 yamaguch
859 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST1
860 1.5 yamaguch wait_for_distributing lagg0 $iface1
861 1.1 yamaguch
862 1.1 yamaguch $atf_ping $host0addr0
863 1.1 yamaguch $atf_ping $host0addr1
864 1.1 yamaguch }
865 1.1 yamaguch
866 1.1 yamaguch atf_test_case lagg_lacp_vlan_ipv4 cleanup
867 1.1 yamaguch lagg_lacp_vlan_ipv4_head()
868 1.1 yamaguch {
869 1.1 yamaguch
870 1.1 yamaguch atf_set "descr" "tests for IPv4 VLAN frames over LACP LAG"
871 1.1 yamaguch atf_set "require.progs" "rump_server"
872 1.1 yamaguch }
873 1.1 yamaguch
874 1.1 yamaguch lagg_lacp_vlan_ipv4_body()
875 1.1 yamaguch {
876 1.1 yamaguch
877 1.5 yamaguch lagg_lacp_vlan "inet" "ether"
878 1.1 yamaguch }
879 1.1 yamaguch
880 1.1 yamaguch lagg_lacp_vlan_ipv4_cleanup()
881 1.1 yamaguch {
882 1.1 yamaguch $DEBUG && dump
883 1.1 yamaguch cleanup
884 1.1 yamaguch }
885 1.1 yamaguch
886 1.1 yamaguch atf_test_case lagg_lacp_vlan_ipv6 cleanup
887 1.1 yamaguch lagg_lacp_vlan_ipv6_head()
888 1.1 yamaguch {
889 1.1 yamaguch
890 1.1 yamaguch atf_set "descr" "tests for IPv6 VLAN frames over LACP LAG"
891 1.1 yamaguch atf_set "require.progs" "rump_server"
892 1.1 yamaguch }
893 1.1 yamaguch
894 1.1 yamaguch lagg_lacp_vlan_ipv6_body()
895 1.1 yamaguch {
896 1.1 yamaguch
897 1.5 yamaguch lagg_lacp_vlan "inet6" "ether"
898 1.1 yamaguch }
899 1.1 yamaguch
900 1.1 yamaguch lagg_lacp_vlan_ipv6_cleanup()
901 1.1 yamaguch {
902 1.1 yamaguch $DEBUG && dump
903 1.1 yamaguch cleanup
904 1.1 yamaguch }
905 1.1 yamaguch
906 1.5 yamaguch atf_test_case lagg_lacp_vlanl2tp_ipv4 cleanup
907 1.5 yamaguch lagg_lacp_vlanl2tp_ipv4_head()
908 1.5 yamaguch {
909 1.5 yamaguch
910 1.5 yamaguch atf_set "descr" "tests for IPv4 VLAN frames over LACP L2TP LAG"
911 1.5 yamaguch atf_set "require.progs" "rump_server"
912 1.5 yamaguch }
913 1.5 yamaguch
914 1.5 yamaguch lagg_lacp_vlanl2tp_ipv4_body()
915 1.5 yamaguch {
916 1.5 yamaguch
917 1.5 yamaguch lagg_lacp_vlan "inet" "l2tp"
918 1.5 yamaguch }
919 1.5 yamaguch
920 1.5 yamaguch lagg_lacp_vlanl2tp_ipv4_cleanup()
921 1.5 yamaguch {
922 1.5 yamaguch
923 1.5 yamaguch $DEBUG && dump
924 1.5 yamaguch cleanup
925 1.5 yamaguch }
926 1.5 yamaguch
927 1.5 yamaguch atf_test_case lagg_lacp_vlanl2tp_ipv6 cleanup
928 1.5 yamaguch lagg_lacp_vlanl2tp_ipv6_head()
929 1.5 yamaguch {
930 1.5 yamaguch
931 1.5 yamaguch atf_set "descr" "tests for IPv6 VLAN frames over LACP L2TP LAG"
932 1.5 yamaguch atf_set "require.progs" "rump_server"
933 1.5 yamaguch }
934 1.5 yamaguch
935 1.5 yamaguch lagg_lacp_vlanl2tp_ipv6_body()
936 1.5 yamaguch {
937 1.5 yamaguch
938 1.5 yamaguch lagg_lacp_vlan "inet6" "l2tp"
939 1.5 yamaguch }
940 1.5 yamaguch
941 1.5 yamaguch lagg_lacp_vlanl2tp_ipv6_cleanup()
942 1.5 yamaguch {
943 1.5 yamaguch
944 1.5 yamaguch $DEBUG && dump
945 1.5 yamaguch cleanup
946 1.5 yamaguch }
947 1.5 yamaguch
948 1.1 yamaguch atf_test_case lagg_lacp_portpri cleanup
949 1.1 yamaguch lagg_lacp_portpri_head()
950 1.1 yamaguch {
951 1.1 yamaguch
952 1.1 yamaguch atf_set "descr" "tests for LACP port priority"
953 1.1 yamaguch atf_set "require.progs" "rump_server"
954 1.1 yamaguch }
955 1.1 yamaguch
956 1.1 yamaguch lagg_lacp_portpri_body()
957 1.1 yamaguch {
958 1.1 yamaguch local atf_ifconfig="atf_check -s exit:0 rump.ifconfig"
959 1.1 yamaguch
960 1.1 yamaguch rump_server_start $SOCK_HOST0 lagg
961 1.1 yamaguch rump_server_start $SOCK_HOST1 lagg
962 1.1 yamaguch
963 1.1 yamaguch rump_server_add_iface $SOCK_HOST0 shmif0 $BUS0
964 1.1 yamaguch rump_server_add_iface $SOCK_HOST0 shmif1 $BUS1
965 1.1 yamaguch rump_server_add_iface $SOCK_HOST0 shmif2 $BUS2
966 1.1 yamaguch
967 1.1 yamaguch rump_server_add_iface $SOCK_HOST1 shmif0 $BUS0
968 1.1 yamaguch rump_server_add_iface $SOCK_HOST1 shmif1 $BUS1
969 1.1 yamaguch rump_server_add_iface $SOCK_HOST1 shmif2 $BUS2
970 1.1 yamaguch
971 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST0
972 1.1 yamaguch $atf_ifconfig lagg0 create
973 1.1 yamaguch $atf_ifconfig lagg0 laggproto lacp
974 1.1 yamaguch $atf_ifconfig lagg0 lagglacp maxports 2
975 1.1 yamaguch
976 1.1 yamaguch $atf_ifconfig shmif0 up
977 1.1 yamaguch $atf_ifconfig shmif1 up
978 1.1 yamaguch $atf_ifconfig shmif2 up
979 1.1 yamaguch
980 1.1 yamaguch $atf_ifconfig lagg0 laggport shmif0 pri 1000
981 1.1 yamaguch $atf_ifconfig lagg0 laggport shmif1 pri 2000
982 1.1 yamaguch $atf_ifconfig lagg0 laggport shmif2 pri 3000
983 1.1 yamaguch $atf_ifconfig lagg0 up
984 1.1 yamaguch
985 1.1 yamaguch atf_check -s exit:0 -o match:'shmif0 pri=1000' rump.ifconfig lagg0
986 1.1 yamaguch atf_check -s exit:0 -o match:'shmif1 pri=2000' rump.ifconfig lagg0
987 1.1 yamaguch atf_check -s exit:0 -o match:'shmif2 pri=3000' rump.ifconfig lagg0
988 1.1 yamaguch
989 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST1
990 1.1 yamaguch $atf_ifconfig lagg0 create
991 1.1 yamaguch $atf_ifconfig lagg0 laggproto lacp
992 1.1 yamaguch
993 1.1 yamaguch $atf_ifconfig shmif0 up
994 1.1 yamaguch $atf_ifconfig shmif1 up
995 1.1 yamaguch $atf_ifconfig shmif2 up
996 1.1 yamaguch
997 1.1 yamaguch $atf_ifconfig lagg0 laggport shmif0 pri 300
998 1.1 yamaguch $atf_ifconfig lagg0 laggport shmif1 pri 200
999 1.1 yamaguch $atf_ifconfig lagg0 laggport shmif2 pri 100
1000 1.1 yamaguch $atf_ifconfig lagg0 up
1001 1.1 yamaguch
1002 1.1 yamaguch atf_check -s exit:0 -o match:'shmif0 pri=300' rump.ifconfig lagg0
1003 1.1 yamaguch atf_check -s exit:0 -o match:'shmif1 pri=200' rump.ifconfig lagg0
1004 1.1 yamaguch atf_check -s exit:0 -o match:'shmif2 pri=100' rump.ifconfig lagg0
1005 1.1 yamaguch
1006 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST0
1007 1.1 yamaguch wait_for_distributing lagg0 shmif0
1008 1.1 yamaguch wait_for_distributing lagg0 shmif1
1009 1.1 yamaguch wait_state "STANDBY" lagg0 shmif2
1010 1.1 yamaguch
1011 1.1 yamaguch $atf_ifconfig shmif0 down
1012 1.1 yamaguch wait_for_distributing lagg0 shmif2
1013 1.1 yamaguch
1014 1.1 yamaguch $atf_ifconfig shmif0 up
1015 1.1 yamaguch wait_for_distributing lagg0 shmif0
1016 1.1 yamaguch
1017 1.1 yamaguch $atf_ifconfig lagg0 laggportpri shmif0 5000
1018 1.1 yamaguch $atf_ifconfig lagg0 laggportpri shmif1 5000
1019 1.1 yamaguch $atf_ifconfig lagg0 laggportpri shmif2 5000
1020 1.1 yamaguch
1021 1.1 yamaguch atf_check -s exit:0 -o match:'shmif0 pri=5000' rump.ifconfig lagg0
1022 1.1 yamaguch atf_check -s exit:0 -o match:'shmif1 pri=5000' rump.ifconfig lagg0
1023 1.1 yamaguch atf_check -s exit:0 -o match:'shmif2 pri=5000' rump.ifconfig lagg0
1024 1.1 yamaguch
1025 1.1 yamaguch wait_state "STANDBY" lagg0 shmif0
1026 1.1 yamaguch wait_for_distributing lagg0 shmif1
1027 1.1 yamaguch wait_for_distributing lagg0 shmif2
1028 1.1 yamaguch }
1029 1.1 yamaguch
1030 1.1 yamaguch lagg_lacp_portpri_cleanup()
1031 1.1 yamaguch {
1032 1.1 yamaguch
1033 1.1 yamaguch $DEBUG && dump
1034 1.1 yamaguch cleanup
1035 1.1 yamaguch }
1036 1.1 yamaguch
1037 1.1 yamaguch lagg_failover()
1038 1.1 yamaguch {
1039 1.1 yamaguch local atf_ifconfig="atf_check -s exit:0 rump.ifconfig"
1040 1.1 yamaguch
1041 1.1 yamaguch local af=$1
1042 1.3 yamaguch local l2proto=$2
1043 1.1 yamaguch local ping="rump.ping -c 1"
1044 1.1 yamaguch local rumplib=""
1045 1.1 yamaguch local pfx=24
1046 1.1 yamaguch local addr_host0=$IP4ADDR0
1047 1.1 yamaguch local addr_host1=$IP4ADDR1
1048 1.1 yamaguch
1049 1.1 yamaguch case $af in
1050 1.1 yamaguch "inet")
1051 1.1 yamaguch # do nothing
1052 1.1 yamaguch ;;
1053 1.1 yamaguch "inet6")
1054 1.1 yamaguch ping="rump.ping6 -c 1"
1055 1.1 yamaguch rumplib="netinet6"
1056 1.1 yamaguch pfx=64
1057 1.1 yamaguch addr_host0=$IP6ADDR0
1058 1.1 yamaguch addr_host1=$IP6ADDR1
1059 1.1 yamaguch ;;
1060 1.1 yamaguch esac
1061 1.1 yamaguch
1062 1.3 yamaguch case $l2proto in
1063 1.3 yamaguch "ether")
1064 1.3 yamaguch iface0="shmif0"
1065 1.3 yamaguch iface1="shmif1"
1066 1.3 yamaguch iface2="shmif2"
1067 1.3 yamaguch ;;
1068 1.3 yamaguch "l2tp")
1069 1.3 yamaguch rumplib="$rumplib l2tp"
1070 1.3 yamaguch iface0="l2tp0"
1071 1.3 yamaguch iface1="l2tp1"
1072 1.3 yamaguch iface2="l2tp2"
1073 1.3 yamaguch ;;
1074 1.3 yamaguch esac
1075 1.3 yamaguch
1076 1.1 yamaguch local atf_ping="atf_check -s exit:0 -o ignore ${ping}"
1077 1.1 yamaguch
1078 1.1 yamaguch rump_server_start $SOCK_HOST0 lagg $rumplib
1079 1.1 yamaguch rump_server_start $SOCK_HOST1 lagg $rumplib
1080 1.1 yamaguch
1081 1.1 yamaguch rump_server_add_iface $SOCK_HOST0 shmif0 $BUS0
1082 1.1 yamaguch rump_server_add_iface $SOCK_HOST0 shmif1 $BUS1
1083 1.1 yamaguch rump_server_add_iface $SOCK_HOST0 shmif2 $BUS2
1084 1.1 yamaguch
1085 1.1 yamaguch rump_server_add_iface $SOCK_HOST1 shmif0 $BUS0
1086 1.1 yamaguch rump_server_add_iface $SOCK_HOST1 shmif1 $BUS1
1087 1.1 yamaguch rump_server_add_iface $SOCK_HOST1 shmif2 $BUS2
1088 1.1 yamaguch
1089 1.3 yamaguch if [ x"$l2proto" = x"l2tp" ]; then
1090 1.3 yamaguch setup_l2tp_ipv4tunnel
1091 1.3 yamaguch fi
1092 1.3 yamaguch
1093 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST0
1094 1.1 yamaguch $atf_ifconfig lagg0 create
1095 1.1 yamaguch $atf_ifconfig lagg0 laggproto failover
1096 1.1 yamaguch
1097 1.3 yamaguch $atf_ifconfig lagg0 laggport $iface0 pri 1000
1098 1.3 yamaguch $atf_ifconfig lagg0 laggport $iface1 pri 2000
1099 1.3 yamaguch $atf_ifconfig lagg0 laggport $iface2 pri 3000
1100 1.1 yamaguch $atf_ifconfig lagg0 $af $addr_host0/$pfx
1101 1.1 yamaguch
1102 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST1
1103 1.1 yamaguch $atf_ifconfig lagg0 create
1104 1.1 yamaguch $atf_ifconfig lagg0 laggproto failover
1105 1.1 yamaguch
1106 1.3 yamaguch $atf_ifconfig lagg0 laggport $iface0 pri 1000
1107 1.3 yamaguch $atf_ifconfig lagg0 laggport $iface1 pri 3000
1108 1.3 yamaguch $atf_ifconfig lagg0 laggport $iface2 pri 2000
1109 1.1 yamaguch $atf_ifconfig lagg0 $af $addr_host1/$pfx
1110 1.1 yamaguch
1111 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST0
1112 1.3 yamaguch $atf_ifconfig $iface0 up
1113 1.3 yamaguch $atf_ifconfig $iface1 up
1114 1.3 yamaguch $atf_ifconfig $iface2 up
1115 1.1 yamaguch $atf_ifconfig lagg0 up
1116 1.1 yamaguch
1117 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST1
1118 1.3 yamaguch $atf_ifconfig $iface0 up
1119 1.3 yamaguch $atf_ifconfig $iface1 up
1120 1.3 yamaguch $atf_ifconfig $iface2 up
1121 1.1 yamaguch $atf_ifconfig lagg0 up
1122 1.1 yamaguch
1123 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST0
1124 1.1 yamaguch $atf_ifconfig -w 10
1125 1.3 yamaguch wait_for_distributing lagg0 $iface0
1126 1.3 yamaguch wait_state "COLLECTING" lagg0 $iface0
1127 1.3 yamaguch wait_state "COLLECTING" lagg0 $iface1
1128 1.3 yamaguch wait_state "COLLECTING" lagg0 $iface2
1129 1.1 yamaguch
1130 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST1
1131 1.1 yamaguch $atf_ifconfig -w 10
1132 1.3 yamaguch wait_for_distributing lagg0 $iface0
1133 1.3 yamaguch wait_state "COLLECTING" lagg0 $iface0
1134 1.3 yamaguch wait_state "COLLECTING" lagg0 $iface1
1135 1.3 yamaguch wait_state "COLLECTING" lagg0 $iface2
1136 1.1 yamaguch
1137 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST0
1138 1.1 yamaguch $atf_ping $addr_host1
1139 1.1 yamaguch
1140 1.3 yamaguch $atf_ifconfig $iface0 down
1141 1.3 yamaguch wait_for_distributing lagg0 $iface1
1142 1.3 yamaguch wait_state "COLLECTING" lagg0 $iface1
1143 1.3 yamaguch wait_state "COLLECTING" lagg0 $iface2
1144 1.1 yamaguch
1145 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST1
1146 1.3 yamaguch $atf_ifconfig $iface0 down
1147 1.3 yamaguch wait_for_distributing lagg0 $iface2
1148 1.3 yamaguch wait_state "COLLECTING" lagg0 $iface2
1149 1.3 yamaguch wait_state "COLLECTING" lagg0 $iface1
1150 1.1 yamaguch
1151 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST0
1152 1.1 yamaguch $atf_ping $addr_host1
1153 1.1 yamaguch
1154 1.1 yamaguch $atf_ifconfig lagg0 laggfailover -rx-all
1155 1.3 yamaguch atf_check -s exit:0 -o not-match:'$iface2.+COLLECTING' rump.ifconfig lagg0
1156 1.1 yamaguch
1157 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST1
1158 1.1 yamaguch $atf_ifconfig lagg0 laggfailover -rx-all
1159 1.3 yamaguch atf_check -s exit:0 -o not-match:'$iface1.+COLLECTING' rump.ifconfig lagg0
1160 1.1 yamaguch
1161 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST0
1162 1.1 yamaguch atf_check -s not-exit:0 -o ignore -e ignore $ping -c 1 $addr_host1
1163 1.1 yamaguch }
1164 1.1 yamaguch
1165 1.1 yamaguch atf_test_case lagg_failover_ipv4 cleanup
1166 1.1 yamaguch lagg_failover_ipv4_head()
1167 1.1 yamaguch {
1168 1.1 yamaguch
1169 1.1 yamaguch atf_set "descr" "tests for failover using IPv4"
1170 1.1 yamaguch atf_set "require.progs" "rump_server"
1171 1.1 yamaguch }
1172 1.1 yamaguch
1173 1.1 yamaguch lagg_failover_ipv4_body()
1174 1.1 yamaguch {
1175 1.1 yamaguch
1176 1.3 yamaguch lagg_failover "inet" "ether"
1177 1.1 yamaguch }
1178 1.1 yamaguch
1179 1.1 yamaguch lagg_failover_ipv4_cleanup()
1180 1.1 yamaguch {
1181 1.1 yamaguch
1182 1.1 yamaguch $DEBUG && dump
1183 1.1 yamaguch cleanup
1184 1.1 yamaguch }
1185 1.1 yamaguch
1186 1.1 yamaguch atf_test_case lagg_failover_ipv6 cleanup
1187 1.1 yamaguch lagg_failover_ipv6_head()
1188 1.1 yamaguch {
1189 1.1 yamaguch
1190 1.1 yamaguch atf_set "descr" "tests for failover using IPv6"
1191 1.1 yamaguch atf_set "require.progs" "rump_server"
1192 1.1 yamaguch }
1193 1.1 yamaguch
1194 1.1 yamaguch lagg_failover_ipv6_body()
1195 1.1 yamaguch {
1196 1.1 yamaguch
1197 1.3 yamaguch lagg_failover "inet6" "ether"
1198 1.1 yamaguch }
1199 1.1 yamaguch
1200 1.1 yamaguch lagg_failover_ipv6_cleanup()
1201 1.1 yamaguch {
1202 1.1 yamaguch
1203 1.1 yamaguch $DEBUG && dump
1204 1.1 yamaguch cleanup
1205 1.1 yamaguch }
1206 1.1 yamaguch
1207 1.3 yamaguch atf_test_case lagg_failover_l2tp_ipv4 cleanup
1208 1.3 yamaguch lagg_failover_l2tp_ipv4_head()
1209 1.3 yamaguch {
1210 1.3 yamaguch
1211 1.3 yamaguch atf_set "descr" "tests for failover over l2tp using IPv4"
1212 1.3 yamaguch atf_set "require.progs" "rump_server"
1213 1.3 yamaguch }
1214 1.3 yamaguch
1215 1.3 yamaguch lagg_failover_l2tp_ipv4_body()
1216 1.3 yamaguch {
1217 1.3 yamaguch
1218 1.3 yamaguch lagg_failover "inet" "l2tp"
1219 1.3 yamaguch }
1220 1.3 yamaguch
1221 1.3 yamaguch lagg_failover_l2tp_ipv4_cleanup()
1222 1.3 yamaguch {
1223 1.3 yamaguch $DEBUG && dump
1224 1.3 yamaguch cleanup
1225 1.3 yamaguch }
1226 1.3 yamaguch
1227 1.3 yamaguch atf_test_case lagg_failover_l2tp_ipv6 cleanup
1228 1.3 yamaguch lagg_failover_l2tp_ipv6_head()
1229 1.3 yamaguch {
1230 1.3 yamaguch
1231 1.3 yamaguch atf_set "descr" "tests for failover over l2tp using IPv6"
1232 1.3 yamaguch atf_set "require.progs" "rump_server"
1233 1.3 yamaguch }
1234 1.3 yamaguch
1235 1.3 yamaguch lagg_failover_l2tp_ipv6_body()
1236 1.3 yamaguch {
1237 1.3 yamaguch
1238 1.3 yamaguch lagg_failover "inet6" "l2tp"
1239 1.3 yamaguch }
1240 1.3 yamaguch
1241 1.3 yamaguch lagg_failover_l2tp_ipv6_cleanup()
1242 1.3 yamaguch {
1243 1.3 yamaguch $DEBUG && dump
1244 1.3 yamaguch cleanup
1245 1.3 yamaguch }
1246 1.3 yamaguch
1247 1.1 yamaguch lagg_loadbalance()
1248 1.1 yamaguch {
1249 1.1 yamaguch local atf_ifconfig="atf_check -s exit:0 rump.ifconfig"
1250 1.1 yamaguch
1251 1.1 yamaguch local af=$1
1252 1.3 yamaguch local l2proto=$2
1253 1.1 yamaguch local ping="rump.ping -c 1"
1254 1.1 yamaguch local rumplib=""
1255 1.1 yamaguch local pfx=24
1256 1.1 yamaguch local addr_host0=$IP4ADDR0
1257 1.1 yamaguch local addr_host1=$IP4ADDR1
1258 1.1 yamaguch
1259 1.1 yamaguch case $af in
1260 1.1 yamaguch "inet")
1261 1.1 yamaguch # do nothing
1262 1.1 yamaguch ;;
1263 1.1 yamaguch "inet6")
1264 1.1 yamaguch ping="rump.ping6 -c 1"
1265 1.1 yamaguch rumplib="netinet6"
1266 1.1 yamaguch pfx=64
1267 1.1 yamaguch addr_host0=$IP6ADDR0
1268 1.1 yamaguch addr_host1=$IP6ADDR1
1269 1.1 yamaguch ;;
1270 1.1 yamaguch esac
1271 1.1 yamaguch
1272 1.3 yamaguch case $l2proto in
1273 1.3 yamaguch "ether")
1274 1.3 yamaguch iface0=shmif0
1275 1.3 yamaguch iface1=shmif1
1276 1.3 yamaguch iface2=shmif2
1277 1.3 yamaguch ;;
1278 1.3 yamaguch "l2tp")
1279 1.3 yamaguch rumplib="$rumplib l2tp"
1280 1.3 yamaguch iface0=l2tp0
1281 1.3 yamaguch iface1=l2tp1
1282 1.3 yamaguch iface2=l2tp2
1283 1.3 yamaguch ;;
1284 1.3 yamaguch esac
1285 1.3 yamaguch
1286 1.1 yamaguch local atf_ping="atf_check -s exit:0 -o ignore ${ping}"
1287 1.1 yamaguch
1288 1.1 yamaguch rump_server_start $SOCK_HOST0 lagg $rumplib
1289 1.1 yamaguch rump_server_start $SOCK_HOST1 lagg $rumplib
1290 1.1 yamaguch
1291 1.1 yamaguch rump_server_add_iface $SOCK_HOST0 shmif0 $BUS0
1292 1.1 yamaguch rump_server_add_iface $SOCK_HOST0 shmif1 $BUS1
1293 1.1 yamaguch rump_server_add_iface $SOCK_HOST0 shmif2 $BUS2
1294 1.1 yamaguch
1295 1.1 yamaguch rump_server_add_iface $SOCK_HOST1 shmif0 $BUS0
1296 1.1 yamaguch rump_server_add_iface $SOCK_HOST1 shmif1 $BUS1
1297 1.1 yamaguch rump_server_add_iface $SOCK_HOST1 shmif2 $BUS2
1298 1.1 yamaguch
1299 1.3 yamaguch if [ x"$l2proto" = x"l2tp" ]; then
1300 1.3 yamaguch setup_l2tp_ipv4tunnel
1301 1.3 yamaguch fi
1302 1.3 yamaguch
1303 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST0
1304 1.1 yamaguch $atf_ifconfig lagg0 create
1305 1.1 yamaguch $atf_ifconfig lagg0 laggproto loadbalance
1306 1.1 yamaguch
1307 1.3 yamaguch $atf_ifconfig lagg0 laggport $iface0 pri 1000
1308 1.3 yamaguch $atf_ifconfig lagg0 laggport $iface1 pri 2000
1309 1.3 yamaguch $atf_ifconfig lagg0 laggport $iface2 pri 3000
1310 1.1 yamaguch $atf_ifconfig lagg0 $af $addr_host0/$pfx
1311 1.1 yamaguch
1312 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST1
1313 1.1 yamaguch $atf_ifconfig lagg0 create
1314 1.1 yamaguch $atf_ifconfig lagg0 laggproto loadbalance
1315 1.1 yamaguch
1316 1.3 yamaguch $atf_ifconfig lagg0 laggport $iface0 pri 1000
1317 1.3 yamaguch $atf_ifconfig lagg0 laggport $iface1 pri 3000
1318 1.3 yamaguch $atf_ifconfig lagg0 laggport $iface2 pri 2000
1319 1.1 yamaguch $atf_ifconfig lagg0 $af $addr_host1/$pfx
1320 1.1 yamaguch
1321 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST0
1322 1.3 yamaguch $atf_ifconfig $iface0 up
1323 1.3 yamaguch $atf_ifconfig $iface1 up
1324 1.3 yamaguch $atf_ifconfig $iface2 up
1325 1.1 yamaguch $atf_ifconfig lagg0 up
1326 1.1 yamaguch
1327 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST1
1328 1.3 yamaguch $atf_ifconfig $iface0 up
1329 1.3 yamaguch $atf_ifconfig $iface1 up
1330 1.3 yamaguch $atf_ifconfig $iface2 up
1331 1.1 yamaguch $atf_ifconfig lagg0 up
1332 1.1 yamaguch
1333 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST0
1334 1.1 yamaguch $atf_ifconfig -w 10
1335 1.3 yamaguch wait_for_distributing lagg0 $iface0
1336 1.3 yamaguch wait_state "COLLECTING" lagg0 $iface0
1337 1.3 yamaguch wait_state "COLLECTING" lagg0 $iface1
1338 1.3 yamaguch wait_state "COLLECTING" lagg0 $iface2
1339 1.1 yamaguch
1340 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST1
1341 1.1 yamaguch $atf_ifconfig -w 10
1342 1.3 yamaguch wait_state "COLLECTING,DISTRIBUTING" lagg0 $iface0
1343 1.3 yamaguch wait_state "COLLECTING,DISTRIBUTING" lagg0 $iface1
1344 1.3 yamaguch wait_state "COLLECTING,DISTRIBUTING" lagg0 $iface2
1345 1.1 yamaguch
1346 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST0
1347 1.1 yamaguch $atf_ping $addr_host1
1348 1.1 yamaguch
1349 1.3 yamaguch $atf_ifconfig $iface0 down
1350 1.3 yamaguch wait_state "COLLECTING,DISTRIBUTING" lagg0 $iface1
1351 1.3 yamaguch wait_state "COLLECTING,DISTRIBUTING" lagg0 $iface2
1352 1.1 yamaguch
1353 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST1
1354 1.3 yamaguch $atf_ifconfig $iface0 down
1355 1.3 yamaguch wait_state "COLLECTING,DISTRIBUTING" lagg0 $iface1
1356 1.3 yamaguch wait_state "COLLECTING,DISTRIBUTING" lagg0 $iface2
1357 1.1 yamaguch
1358 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST0
1359 1.1 yamaguch $atf_ping $addr_host1
1360 1.1 yamaguch }
1361 1.1 yamaguch
1362 1.1 yamaguch atf_test_case lagg_loadbalance_ipv4 cleanup
1363 1.1 yamaguch lagg_loadbalance_ipv4_head()
1364 1.1 yamaguch {
1365 1.1 yamaguch
1366 1.1 yamaguch atf_set "descr" "tests for loadbalance using IPv4"
1367 1.1 yamaguch atf_set "require.progs" "rump_server"
1368 1.1 yamaguch }
1369 1.1 yamaguch
1370 1.1 yamaguch lagg_loadbalance_ipv4_body()
1371 1.1 yamaguch {
1372 1.1 yamaguch
1373 1.3 yamaguch lagg_loadbalance "inet" "ether"
1374 1.1 yamaguch }
1375 1.1 yamaguch
1376 1.1 yamaguch lagg_loadbalance_ipv4_cleanup()
1377 1.1 yamaguch {
1378 1.1 yamaguch
1379 1.1 yamaguch $DEBUG && dump
1380 1.1 yamaguch cleanup
1381 1.1 yamaguch }
1382 1.1 yamaguch
1383 1.1 yamaguch atf_test_case lagg_loadbalance_ipv6 cleanup
1384 1.1 yamaguch lagg_loadbalance_ipv6_head()
1385 1.1 yamaguch {
1386 1.1 yamaguch
1387 1.1 yamaguch atf_set "descr" "tests for loadbalance using IPv6"
1388 1.1 yamaguch atf_set "require.progs" "rump_server"
1389 1.1 yamaguch }
1390 1.1 yamaguch
1391 1.1 yamaguch lagg_loadbalance_ipv6_body()
1392 1.1 yamaguch {
1393 1.1 yamaguch
1394 1.3 yamaguch lagg_loadbalance "inet6" "ether"
1395 1.1 yamaguch }
1396 1.1 yamaguch
1397 1.1 yamaguch lagg_loadbalance_ipv6_cleanup()
1398 1.1 yamaguch {
1399 1.1 yamaguch
1400 1.1 yamaguch $DEBUG && dump
1401 1.1 yamaguch cleanup
1402 1.1 yamaguch }
1403 1.1 yamaguch
1404 1.3 yamaguch atf_test_case lagg_loadbalance_l2tp_ipv4 cleanup
1405 1.3 yamaguch lagg_loadbalance_l2tp_ipv4_head()
1406 1.3 yamaguch {
1407 1.3 yamaguch
1408 1.3 yamaguch atf_set "descr" "tests for loadbalance over l2tp using IPv4"
1409 1.3 yamaguch atf_set "require.progs" "rump_server"
1410 1.3 yamaguch }
1411 1.3 yamaguch
1412 1.3 yamaguch lagg_loadbalance_l2tp_ipv4_body()
1413 1.3 yamaguch {
1414 1.3 yamaguch
1415 1.3 yamaguch lagg_loadbalance "inet" "l2tp"
1416 1.3 yamaguch }
1417 1.3 yamaguch
1418 1.3 yamaguch lagg_loadbalance_l2tp_ipv4_cleanup()
1419 1.3 yamaguch {
1420 1.3 yamaguch
1421 1.3 yamaguch $DEBUG && dump
1422 1.3 yamaguch cleanup
1423 1.3 yamaguch }
1424 1.3 yamaguch
1425 1.3 yamaguch atf_test_case lagg_loadbalance_l2tp_ipv6 cleanup
1426 1.3 yamaguch lagg_loadbalance_l2tp_ipv4_head()
1427 1.3 yamaguch {
1428 1.3 yamaguch
1429 1.3 yamaguch atf_set "descr" "tests for loadbalance over l2tp using IPv6"
1430 1.3 yamaguch atf_set "require.progs" "rump_server"
1431 1.3 yamaguch }
1432 1.3 yamaguch
1433 1.3 yamaguch lagg_loadbalance_l2tp_ipv6_body()
1434 1.3 yamaguch {
1435 1.3 yamaguch
1436 1.3 yamaguch lagg_loadbalance "inet6" "l2tp"
1437 1.3 yamaguch }
1438 1.3 yamaguch
1439 1.3 yamaguch lagg_loadbalance_l2tp_ipv6_cleanup()
1440 1.3 yamaguch {
1441 1.3 yamaguch
1442 1.3 yamaguch $DEBUG && dump
1443 1.3 yamaguch cleanup
1444 1.3 yamaguch }
1445 1.3 yamaguch
1446 1.1 yamaguch atf_init_test_cases()
1447 1.1 yamaguch {
1448 1.1 yamaguch
1449 1.1 yamaguch atf_add_test_case lagg_ifconfig
1450 1.1 yamaguch atf_add_test_case lagg_macaddr
1451 1.1 yamaguch atf_add_test_case lagg_ipv6lla
1452 1.8 yamaguch atf_add_test_case lagg_mtu
1453 1.1 yamaguch atf_add_test_case lagg_lacp_basic
1454 1.1 yamaguch atf_add_test_case lagg_lacp_ipv4
1455 1.1 yamaguch atf_add_test_case lagg_lacp_ipv6
1456 1.3 yamaguch atf_add_test_case lagg_lacp_l2tp_ipv4
1457 1.3 yamaguch atf_add_test_case lagg_lacp_l2tp_ipv6
1458 1.1 yamaguch atf_add_test_case lagg_lacp_vlan_ipv4
1459 1.1 yamaguch atf_add_test_case lagg_lacp_vlan_ipv6
1460 1.5 yamaguch atf_add_test_case lagg_lacp_vlanl2tp_ipv4
1461 1.5 yamaguch atf_add_test_case lagg_lacp_vlanl2tp_ipv6
1462 1.1 yamaguch atf_add_test_case lagg_lacp_portpri
1463 1.1 yamaguch atf_add_test_case lagg_failover_ipv4
1464 1.1 yamaguch atf_add_test_case lagg_failover_ipv6
1465 1.3 yamaguch atf_add_test_case lagg_failover_l2tp_ipv4
1466 1.3 yamaguch atf_add_test_case lagg_failover_l2tp_ipv6
1467 1.1 yamaguch atf_add_test_case lagg_loadbalance_ipv4
1468 1.1 yamaguch atf_add_test_case lagg_loadbalance_ipv6
1469 1.3 yamaguch atf_add_test_case lagg_loadbalance_l2tp_ipv4
1470 1.3 yamaguch atf_add_test_case lagg_loadbalance_l2tp_ipv6
1471 1.1 yamaguch }
1472