t_lagg.sh revision 1.6 1 1.6 yamaguch # $NetBSD: t_lagg.sh,v 1.6 2021/11/08 06:24:11 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.1 yamaguch atf_test_case lagg_lacp_basic cleanup
361 1.1 yamaguch lagg_lacp_basic_head()
362 1.1 yamaguch {
363 1.1 yamaguch
364 1.1 yamaguch atf_set "descr" "tests for LACP basic functions"
365 1.1 yamaguch atf_set "require.progs" "rump_server"
366 1.1 yamaguch }
367 1.1 yamaguch
368 1.1 yamaguch lagg_lacp_basic_body()
369 1.1 yamaguch {
370 1.1 yamaguch local atf_ifconfig="atf_check -s exit:0 rump.ifconfig"
371 1.1 yamaguch
372 1.1 yamaguch rump_server_start $SOCK_HOST0 lagg
373 1.1 yamaguch rump_server_start $SOCK_HOST1 lagg
374 1.1 yamaguch rump_server_start $SOCK_HOST2 lagg
375 1.1 yamaguch
376 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST0
377 1.1 yamaguch
378 1.1 yamaguch # added running interface
379 1.1 yamaguch $atf_ifconfig shmif0 create
380 1.1 yamaguch $atf_ifconfig shmif0 linkstr $BUS0
381 1.1 yamaguch
382 1.1 yamaguch $atf_ifconfig shmif1 create
383 1.1 yamaguch $atf_ifconfig shmif1 linkstr $BUS1
384 1.1 yamaguch
385 1.1 yamaguch $atf_ifconfig lagg0 create
386 1.1 yamaguch $atf_ifconfig lagg0 laggproto lacp
387 1.1 yamaguch
388 1.1 yamaguch $atf_ifconfig shmif0 up
389 1.1 yamaguch $atf_ifconfig shmif1 up
390 1.1 yamaguch $atf_ifconfig lagg0 up
391 1.1 yamaguch
392 1.1 yamaguch $atf_ifconfig lagg0 laggport shmif0
393 1.1 yamaguch $atf_ifconfig lagg0 laggport shmif1
394 1.1 yamaguch $atf_ifconfig -w 10
395 1.1 yamaguch
396 1.1 yamaguch $atf_ifconfig lagg0 -laggport shmif0
397 1.1 yamaguch $atf_ifconfig lagg0 -laggport shmif1
398 1.1 yamaguch $atf_ifconfig lagg0 down
399 1.1 yamaguch
400 1.1 yamaguch # add the same interfaces again
401 1.1 yamaguch $atf_ifconfig lagg0 up
402 1.1 yamaguch $atf_ifconfig lagg0 laggport shmif0
403 1.1 yamaguch $atf_ifconfig lagg0 laggport shmif1
404 1.1 yamaguch
405 1.1 yamaguch # detach and re-attach protocol
406 1.1 yamaguch $atf_ifconfig lagg0 laggproto none
407 1.1 yamaguch $atf_ifconfig lagg0 laggproto lacp \
408 1.1 yamaguch laggport shmif0 laggport shmif1
409 1.1 yamaguch
410 1.1 yamaguch $atf_ifconfig lagg0 -laggport shmif0 -laggport shmif1
411 1.1 yamaguch $atf_ifconfig lagg0 destroy
412 1.1 yamaguch $atf_ifconfig shmif0 destroy
413 1.1 yamaguch $atf_ifconfig shmif1 destroy
414 1.1 yamaguch
415 1.1 yamaguch # tests for a loopback condition
416 1.1 yamaguch $atf_ifconfig shmif0 create
417 1.1 yamaguch $atf_ifconfig shmif0 linkstr $BUS0
418 1.1 yamaguch $atf_ifconfig shmif1 create
419 1.1 yamaguch $atf_ifconfig shmif1 linkstr $BUS0
420 1.1 yamaguch $atf_ifconfig lagg0 create
421 1.1 yamaguch $atf_ifconfig lagg0 laggproto lacp \
422 1.1 yamaguch laggport shmif0 laggport shmif1
423 1.1 yamaguch $atf_ifconfig shmif0 up
424 1.1 yamaguch $atf_ifconfig shmif1 up
425 1.1 yamaguch $atf_ifconfig lagg0 up
426 1.1 yamaguch
427 1.1 yamaguch expected_inactive lagg0
428 1.1 yamaguch
429 1.1 yamaguch $atf_ifconfig shmif0 down
430 1.1 yamaguch $atf_ifconfig shmif0 destroy
431 1.1 yamaguch $atf_ifconfig shmif1 down
432 1.1 yamaguch $atf_ifconfig shmif1 destroy
433 1.1 yamaguch $atf_ifconfig lagg0 down
434 1.1 yamaguch $atf_ifconfig lagg0 destroy
435 1.1 yamaguch
436 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST0
437 1.1 yamaguch $atf_ifconfig shmif0 create
438 1.1 yamaguch $atf_ifconfig shmif0 linkstr $BUS0
439 1.1 yamaguch $atf_ifconfig shmif0 up
440 1.1 yamaguch
441 1.1 yamaguch $atf_ifconfig shmif1 create
442 1.1 yamaguch $atf_ifconfig shmif1 linkstr $BUS1
443 1.1 yamaguch $atf_ifconfig shmif1 up
444 1.1 yamaguch
445 1.1 yamaguch $atf_ifconfig shmif2 create
446 1.1 yamaguch $atf_ifconfig shmif2 linkstr $BUS2
447 1.1 yamaguch $atf_ifconfig shmif2 up
448 1.1 yamaguch
449 1.1 yamaguch $atf_ifconfig lagg0 create
450 1.1 yamaguch $atf_ifconfig lagg0 laggproto lacp laggport shmif0 \
451 1.1 yamaguch laggport shmif1 laggport shmif2
452 1.1 yamaguch $atf_ifconfig lagg0 up
453 1.1 yamaguch
454 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST1
455 1.1 yamaguch $atf_ifconfig shmif0 create
456 1.1 yamaguch $atf_ifconfig shmif0 linkstr $BUS0
457 1.1 yamaguch $atf_ifconfig shmif0 up
458 1.1 yamaguch
459 1.1 yamaguch $atf_ifconfig shmif1 create
460 1.1 yamaguch $atf_ifconfig shmif1 linkstr $BUS1
461 1.1 yamaguch $atf_ifconfig shmif1 up
462 1.1 yamaguch
463 1.1 yamaguch $atf_ifconfig lagg0 create
464 1.1 yamaguch $atf_ifconfig lagg0 laggproto lacp
465 1.1 yamaguch $atf_ifconfig lagg1 create
466 1.1 yamaguch $atf_ifconfig lagg1 laggproto lacp
467 1.1 yamaguch
468 1.1 yamaguch $atf_ifconfig lagg0 laggport shmif0
469 1.1 yamaguch $atf_ifconfig lagg0 up
470 1.1 yamaguch wait_for_distributing lagg0 shmif0
471 1.1 yamaguch
472 1.1 yamaguch $atf_ifconfig lagg1 laggport shmif1
473 1.1 yamaguch $atf_ifconfig lagg1 up
474 1.1 yamaguch
475 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST2
476 1.1 yamaguch $atf_ifconfig shmif0 create
477 1.1 yamaguch $atf_ifconfig shmif0 linkstr $BUS2
478 1.1 yamaguch $atf_ifconfig shmif0 up
479 1.1 yamaguch
480 1.1 yamaguch $atf_ifconfig lagg0 create
481 1.1 yamaguch $atf_ifconfig lagg0 laggproto lacp laggport shmif0
482 1.1 yamaguch $atf_ifconfig lagg0 up
483 1.1 yamaguch
484 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST0
485 1.1 yamaguch wait_for_distributing lagg0 shmif0
486 1.1 yamaguch expected_inactive lagg0 shmif1
487 1.1 yamaguch expected_inactive lagg0 shmif2
488 1.1 yamaguch }
489 1.1 yamaguch
490 1.1 yamaguch lagg_lacp_basic_cleanup()
491 1.1 yamaguch {
492 1.1 yamaguch
493 1.1 yamaguch $DEBUG && dump
494 1.1 yamaguch cleanup
495 1.1 yamaguch }
496 1.1 yamaguch
497 1.1 yamaguch lagg_lacp_ping()
498 1.1 yamaguch {
499 1.1 yamaguch local atf_ifconfig="atf_check -s exit:0 rump.ifconfig"
500 1.1 yamaguch
501 1.1 yamaguch local af=$1
502 1.3 yamaguch local l2proto=$2
503 1.1 yamaguch local atf_ping="atf_check -s exit:0 -o ignore rump.ping -c 1"
504 1.1 yamaguch local ping=rump.ping
505 1.1 yamaguch local rumplib=""
506 1.1 yamaguch local pfx=24
507 1.1 yamaguch local addr_host0=$IP4ADDR0
508 1.1 yamaguch local addr_host1=$IP4ADDR1
509 1.1 yamaguch
510 1.1 yamaguch case $af in
511 1.1 yamaguch "inet")
512 1.1 yamaguch # do nothing
513 1.1 yamaguch ;;
514 1.1 yamaguch "inet6")
515 1.1 yamaguch atf_ping="atf_check -s exit:0 -o ignore rump.ping6 -c 1"
516 1.1 yamaguch rumplib="netinet6"
517 1.1 yamaguch pfx=64
518 1.1 yamaguch addr_host0=$IP6ADDR0
519 1.1 yamaguch addr_host1=$IP6ADDR1
520 1.1 yamaguch ;;
521 1.1 yamaguch esac
522 1.1 yamaguch
523 1.3 yamaguch case $l2proto in
524 1.3 yamaguch "ether")
525 1.3 yamaguch iface0=shmif0
526 1.3 yamaguch iface1=shmif1
527 1.3 yamaguch iface2=shmif2
528 1.3 yamaguch ;;
529 1.3 yamaguch "l2tp")
530 1.3 yamaguch rumplib="$rumplib l2tp"
531 1.3 yamaguch iface0=l2tp0
532 1.3 yamaguch iface1=l2tp1
533 1.3 yamaguch iface2=l2tp2
534 1.3 yamaguch ;;
535 1.3 yamaguch esac
536 1.3 yamaguch
537 1.1 yamaguch rump_server_start $SOCK_HOST0 lagg $rumplib
538 1.1 yamaguch rump_server_start $SOCK_HOST1 lagg $rumplib
539 1.1 yamaguch
540 1.1 yamaguch rump_server_add_iface $SOCK_HOST0 shmif0 $BUS0
541 1.1 yamaguch rump_server_add_iface $SOCK_HOST0 shmif1 $BUS1
542 1.1 yamaguch rump_server_add_iface $SOCK_HOST0 shmif2 $BUS2
543 1.1 yamaguch
544 1.1 yamaguch rump_server_add_iface $SOCK_HOST1 shmif0 $BUS0
545 1.1 yamaguch rump_server_add_iface $SOCK_HOST1 shmif1 $BUS1
546 1.1 yamaguch rump_server_add_iface $SOCK_HOST1 shmif2 $BUS2
547 1.1 yamaguch
548 1.3 yamaguch if [ x"$l2proto" = x"l2tp" ];then
549 1.3 yamaguch setup_l2tp_ipv4tunnel
550 1.3 yamaguch fi
551 1.3 yamaguch
552 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST0
553 1.1 yamaguch $atf_ifconfig lagg0 create
554 1.3 yamaguch $atf_ifconfig lagg0 laggproto lacp laggport $iface0
555 1.1 yamaguch $atf_ifconfig lagg0 $af $addr_host0/$pfx
556 1.3 yamaguch $atf_ifconfig $iface0 up
557 1.1 yamaguch $atf_ifconfig lagg0 up
558 1.1 yamaguch
559 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST1
560 1.1 yamaguch $atf_ifconfig lagg0 create
561 1.3 yamaguch $atf_ifconfig lagg0 laggproto lacp laggport $iface0
562 1.1 yamaguch $atf_ifconfig lagg0 $af $addr_host1/$pfx
563 1.3 yamaguch $atf_ifconfig $iface0 up
564 1.1 yamaguch $atf_ifconfig lagg0 up
565 1.1 yamaguch
566 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST0
567 1.1 yamaguch wait_for_distributing lagg0
568 1.1 yamaguch $atf_ifconfig -w 10
569 1.1 yamaguch
570 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST1
571 1.1 yamaguch wait_for_distributing lagg0
572 1.1 yamaguch $atf_ifconfig -w 10
573 1.1 yamaguch
574 1.1 yamaguch $atf_ping $addr_host0
575 1.1 yamaguch
576 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST0
577 1.3 yamaguch $atf_ifconfig $iface1 up
578 1.3 yamaguch $atf_ifconfig lagg0 laggport $iface1 laggport $iface2
579 1.3 yamaguch $atf_ifconfig $iface2 up
580 1.1 yamaguch
581 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST1
582 1.3 yamaguch $atf_ifconfig $iface1 up
583 1.3 yamaguch $atf_ifconfig lagg0 laggport $iface1 laggport $iface2
584 1.3 yamaguch $atf_ifconfig $iface2 up
585 1.1 yamaguch
586 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST0
587 1.3 yamaguch wait_for_distributing lagg0 $iface1
588 1.3 yamaguch wait_for_distributing lagg0 $iface2
589 1.1 yamaguch
590 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST1
591 1.3 yamaguch wait_for_distributing lagg0 $iface1
592 1.3 yamaguch wait_for_distributing lagg0 $iface2
593 1.1 yamaguch
594 1.1 yamaguch $atf_ping $addr_host0
595 1.1 yamaguch }
596 1.1 yamaguch
597 1.1 yamaguch atf_test_case lagg_lacp_ipv4 cleanup
598 1.1 yamaguch lagg_lacp_ipv4_head()
599 1.1 yamaguch {
600 1.1 yamaguch
601 1.1 yamaguch atf_set "descr" "tests for IPv4 with LACP"
602 1.1 yamaguch atf_set "require.progs" "rump_server"
603 1.1 yamaguch }
604 1.1 yamaguch
605 1.1 yamaguch lagg_lacp_ipv4_body()
606 1.1 yamaguch {
607 1.1 yamaguch
608 1.3 yamaguch lagg_lacp_ping "inet" "ether"
609 1.1 yamaguch }
610 1.1 yamaguch
611 1.1 yamaguch lagg_lacp_ipv4_cleanup()
612 1.1 yamaguch {
613 1.1 yamaguch
614 1.1 yamaguch $DEBUG && dump
615 1.1 yamaguch cleanup
616 1.1 yamaguch }
617 1.1 yamaguch
618 1.2 yamaguch atf_test_case lagg_lacp_ipv6 cleanup
619 1.1 yamaguch lagg_lacp_ipv6_head()
620 1.1 yamaguch {
621 1.1 yamaguch
622 1.1 yamaguch atf_set "descr" "tests for IPv6 with LACP"
623 1.1 yamaguch atf_set "require.progs" "rump_server"
624 1.1 yamaguch }
625 1.1 yamaguch
626 1.1 yamaguch lagg_lacp_ipv6_body()
627 1.1 yamaguch {
628 1.1 yamaguch
629 1.3 yamaguch lagg_lacp_ping "inet6" "ether"
630 1.1 yamaguch }
631 1.1 yamaguch
632 1.1 yamaguch lagg_lacp_ipv6_cleanup()
633 1.1 yamaguch {
634 1.1 yamaguch
635 1.1 yamaguch $DEBUG && dump
636 1.1 yamaguch cleanup
637 1.1 yamaguch }
638 1.1 yamaguch
639 1.3 yamaguch atf_test_case lagg_lacp_l2tp_ipv4 cleanup
640 1.3 yamaguch lagg_lacp_l2tp_ipv4_head()
641 1.3 yamaguch {
642 1.3 yamaguch
643 1.3 yamaguch atf_set "descr" "tests for LACP over l2tp by using IPv4"
644 1.3 yamaguch atf_set "require.progs" "rump_server"
645 1.3 yamaguch }
646 1.3 yamaguch
647 1.3 yamaguch lagg_lacp_l2tp_ipv4_body()
648 1.3 yamaguch {
649 1.3 yamaguch
650 1.3 yamaguch lagg_lacp_ping "inet" "l2tp"
651 1.3 yamaguch }
652 1.3 yamaguch
653 1.3 yamaguch lagg_lacp_l2tp_ipv4_cleanup()
654 1.3 yamaguch {
655 1.3 yamaguch
656 1.3 yamaguch $DEBUG && dump
657 1.3 yamaguch cleanup
658 1.3 yamaguch }
659 1.3 yamaguch
660 1.3 yamaguch atf_test_case lagg_lacp_l2tp_ipv6 cleanup
661 1.3 yamaguch lagg_lacp_l2tp_ipv6_head()
662 1.3 yamaguch {
663 1.3 yamaguch
664 1.3 yamaguch atf_set "descr" "tests for LACP over l2tp using IPv6"
665 1.3 yamaguch atf_set "require.progs" "rump_server"
666 1.3 yamaguch }
667 1.3 yamaguch
668 1.3 yamaguch lagg_lacp_l2tp_ipv6_body()
669 1.3 yamaguch {
670 1.3 yamaguch
671 1.3 yamaguch lagg_lacp_ping "inet6" "l2tp"
672 1.3 yamaguch }
673 1.3 yamaguch
674 1.3 yamaguch lagg_lacp_l2tp_ipv6_cleanup()
675 1.3 yamaguch {
676 1.3 yamaguch
677 1.3 yamaguch $DEBUG && dump
678 1.3 yamaguch cleanup
679 1.3 yamaguch }
680 1.3 yamaguch
681 1.1 yamaguch lagg_lacp_vlan()
682 1.1 yamaguch {
683 1.1 yamaguch local atf_ifconfig="atf_check -s exit:0 rump.ifconfig"
684 1.1 yamaguch
685 1.1 yamaguch local af=$1
686 1.5 yamaguch local l2proto=$2
687 1.1 yamaguch local atf_ping="atf_check -s exit:0 -o ignore rump.ping -c 1"
688 1.1 yamaguch local rumplib="vlan"
689 1.1 yamaguch local pfx=24
690 1.1 yamaguch local vlan0_addr_host0=$IP4ADDR0
691 1.1 yamaguch local host0addr0=$IP4ADDR0
692 1.1 yamaguch local host1addr0=$IP4ADDR1
693 1.1 yamaguch local host0addr1=$IP4ADDR2
694 1.1 yamaguch local host1addr1=$IP4ADDR3
695 1.1 yamaguch
696 1.1 yamaguch case $af in
697 1.1 yamaguch "inet")
698 1.1 yamaguch # do nothing
699 1.1 yamaguch ;;
700 1.1 yamaguch "inet6")
701 1.1 yamaguch atf_ping="atf_check -s exit:0 -o ignore rump.ping6 -c 1"
702 1.4 yamaguch rumplib="$rumplib netinet6"
703 1.1 yamaguch pfx=64
704 1.1 yamaguch host0addr0=$IP6ADDR0
705 1.1 yamaguch host1addr0=$IP6ADDR1
706 1.1 yamaguch host0addr1=$IP6ADDR2
707 1.1 yamaguch host1addr1=$IP6ADDR3
708 1.1 yamaguch ;;
709 1.1 yamaguch esac
710 1.1 yamaguch
711 1.5 yamaguch case $l2proto in
712 1.5 yamaguch "ether")
713 1.5 yamaguch iface0=shmif0
714 1.5 yamaguch iface1=shmif1
715 1.5 yamaguch iface2=shmif2
716 1.5 yamaguch ;;
717 1.5 yamaguch "l2tp")
718 1.5 yamaguch rumplib="$rumplib l2tp"
719 1.5 yamaguch iface0=l2tp0
720 1.5 yamaguch iface1=l2tp1
721 1.5 yamaguch iface2=l2tp2
722 1.5 yamaguch esac
723 1.5 yamaguch
724 1.1 yamaguch rump_server_start $SOCK_HOST0 lagg $rumplib
725 1.1 yamaguch rump_server_start $SOCK_HOST1 lagg $rumplib
726 1.1 yamaguch
727 1.1 yamaguch rump_server_add_iface $SOCK_HOST0 shmif0 $BUS0
728 1.1 yamaguch rump_server_add_iface $SOCK_HOST0 shmif1 $BUS1
729 1.1 yamaguch rump_server_add_iface $SOCK_HOST0 shmif2 $BUS2
730 1.1 yamaguch
731 1.1 yamaguch rump_server_add_iface $SOCK_HOST1 shmif0 $BUS0
732 1.1 yamaguch rump_server_add_iface $SOCK_HOST1 shmif1 $BUS1
733 1.1 yamaguch rump_server_add_iface $SOCK_HOST1 shmif2 $BUS2
734 1.1 yamaguch
735 1.5 yamaguch if [ x"$l2proto" = x"l2tp" ]; then
736 1.5 yamaguch setup_l2tp_ipv4tunnel
737 1.5 yamaguch fi
738 1.5 yamaguch
739 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST0
740 1.1 yamaguch $atf_ifconfig lagg0 create
741 1.5 yamaguch $atf_ifconfig lagg0 laggproto lacp laggport $iface0
742 1.5 yamaguch $atf_ifconfig $iface0 up
743 1.1 yamaguch $atf_ifconfig lagg0 up
744 1.1 yamaguch
745 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST1
746 1.1 yamaguch $atf_ifconfig lagg0 create
747 1.5 yamaguch $atf_ifconfig lagg0 laggproto lacp laggport $iface0
748 1.5 yamaguch $atf_ifconfig $iface0 up
749 1.1 yamaguch $atf_ifconfig lagg0 up
750 1.1 yamaguch
751 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST0
752 1.1 yamaguch wait_for_distributing lagg0
753 1.1 yamaguch
754 1.1 yamaguch $atf_ifconfig vlan0 create
755 1.1 yamaguch $atf_ifconfig vlan0 vlan 10 vlanif lagg0
756 1.1 yamaguch $atf_ifconfig vlan0 $af $host0addr0/$pfx
757 1.1 yamaguch $atf_ifconfig vlan0 up
758 1.1 yamaguch
759 1.1 yamaguch $atf_ifconfig vlan1 create
760 1.1 yamaguch $atf_ifconfig vlan1 vlan 11 vlanif lagg0
761 1.1 yamaguch $atf_ifconfig vlan1 $af $host0addr1/$pfx
762 1.1 yamaguch $atf_ifconfig vlan1 up
763 1.1 yamaguch
764 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST1
765 1.1 yamaguch $atf_ifconfig vlan0 create
766 1.1 yamaguch $atf_ifconfig vlan0 vlan 10 vlanif lagg0
767 1.1 yamaguch $atf_ifconfig vlan0 $af $host1addr0/$pfx
768 1.1 yamaguch $atf_ifconfig vlan0 up
769 1.1 yamaguch
770 1.1 yamaguch $atf_ifconfig vlan1 create
771 1.1 yamaguch $atf_ifconfig vlan1 vlan 11 vlanif lagg0
772 1.1 yamaguch $atf_ifconfig vlan1 $af $host1addr1/$pfx
773 1.1 yamaguch $atf_ifconfig vlan1 up
774 1.1 yamaguch
775 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST0
776 1.1 yamaguch $atf_ifconfig -w 10
777 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST1
778 1.1 yamaguch $atf_ifconfig -w 10
779 1.1 yamaguch
780 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST0
781 1.1 yamaguch $atf_ping $host1addr0
782 1.1 yamaguch $atf_ping $host1addr1
783 1.1 yamaguch
784 1.5 yamaguch $atf_ifconfig lagg0 laggport $iface1
785 1.5 yamaguch $atf_ifconfig $iface1 up
786 1.1 yamaguch
787 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST1
788 1.5 yamaguch $atf_ifconfig lagg0 laggport $iface1
789 1.5 yamaguch $atf_ifconfig $iface1 up
790 1.1 yamaguch
791 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST0
792 1.5 yamaguch wait_for_distributing lagg0 $iface1
793 1.1 yamaguch
794 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST1
795 1.5 yamaguch wait_for_distributing lagg0 $iface1
796 1.1 yamaguch
797 1.1 yamaguch $atf_ping $host0addr0
798 1.1 yamaguch $atf_ping $host0addr1
799 1.1 yamaguch }
800 1.1 yamaguch
801 1.1 yamaguch atf_test_case lagg_lacp_vlan_ipv4 cleanup
802 1.1 yamaguch lagg_lacp_vlan_ipv4_head()
803 1.1 yamaguch {
804 1.1 yamaguch
805 1.1 yamaguch atf_set "descr" "tests for IPv4 VLAN frames over LACP LAG"
806 1.1 yamaguch atf_set "require.progs" "rump_server"
807 1.1 yamaguch }
808 1.1 yamaguch
809 1.1 yamaguch lagg_lacp_vlan_ipv4_body()
810 1.1 yamaguch {
811 1.1 yamaguch
812 1.5 yamaguch lagg_lacp_vlan "inet" "ether"
813 1.1 yamaguch }
814 1.1 yamaguch
815 1.1 yamaguch lagg_lacp_vlan_ipv4_cleanup()
816 1.1 yamaguch {
817 1.1 yamaguch $DEBUG && dump
818 1.1 yamaguch cleanup
819 1.1 yamaguch }
820 1.1 yamaguch
821 1.1 yamaguch atf_test_case lagg_lacp_vlan_ipv6 cleanup
822 1.1 yamaguch lagg_lacp_vlan_ipv6_head()
823 1.1 yamaguch {
824 1.1 yamaguch
825 1.1 yamaguch atf_set "descr" "tests for IPv6 VLAN frames over LACP LAG"
826 1.1 yamaguch atf_set "require.progs" "rump_server"
827 1.1 yamaguch }
828 1.1 yamaguch
829 1.1 yamaguch lagg_lacp_vlan_ipv6_body()
830 1.1 yamaguch {
831 1.1 yamaguch
832 1.5 yamaguch lagg_lacp_vlan "inet6" "ether"
833 1.1 yamaguch }
834 1.1 yamaguch
835 1.1 yamaguch lagg_lacp_vlan_ipv6_cleanup()
836 1.1 yamaguch {
837 1.1 yamaguch $DEBUG && dump
838 1.1 yamaguch cleanup
839 1.1 yamaguch }
840 1.1 yamaguch
841 1.5 yamaguch atf_test_case lagg_lacp_vlanl2tp_ipv4 cleanup
842 1.5 yamaguch lagg_lacp_vlanl2tp_ipv4_head()
843 1.5 yamaguch {
844 1.5 yamaguch
845 1.5 yamaguch atf_set "descr" "tests for IPv4 VLAN frames over LACP L2TP LAG"
846 1.5 yamaguch atf_set "require.progs" "rump_server"
847 1.5 yamaguch }
848 1.5 yamaguch
849 1.5 yamaguch lagg_lacp_vlanl2tp_ipv4_body()
850 1.5 yamaguch {
851 1.5 yamaguch
852 1.5 yamaguch lagg_lacp_vlan "inet" "l2tp"
853 1.5 yamaguch }
854 1.5 yamaguch
855 1.5 yamaguch lagg_lacp_vlanl2tp_ipv4_cleanup()
856 1.5 yamaguch {
857 1.5 yamaguch
858 1.5 yamaguch $DEBUG && dump
859 1.5 yamaguch cleanup
860 1.5 yamaguch }
861 1.5 yamaguch
862 1.5 yamaguch atf_test_case lagg_lacp_vlanl2tp_ipv6 cleanup
863 1.5 yamaguch lagg_lacp_vlanl2tp_ipv6_head()
864 1.5 yamaguch {
865 1.5 yamaguch
866 1.5 yamaguch atf_set "descr" "tests for IPv6 VLAN frames over LACP L2TP LAG"
867 1.5 yamaguch atf_set "require.progs" "rump_server"
868 1.5 yamaguch }
869 1.5 yamaguch
870 1.5 yamaguch lagg_lacp_vlanl2tp_ipv6_body()
871 1.5 yamaguch {
872 1.5 yamaguch
873 1.5 yamaguch lagg_lacp_vlan "inet6" "l2tp"
874 1.5 yamaguch }
875 1.5 yamaguch
876 1.5 yamaguch lagg_lacp_vlanl2tp_ipv6_cleanup()
877 1.5 yamaguch {
878 1.5 yamaguch
879 1.5 yamaguch $DEBUG && dump
880 1.5 yamaguch cleanup
881 1.5 yamaguch }
882 1.5 yamaguch
883 1.1 yamaguch atf_test_case lagg_lacp_portpri cleanup
884 1.1 yamaguch lagg_lacp_portpri_head()
885 1.1 yamaguch {
886 1.1 yamaguch
887 1.1 yamaguch atf_set "descr" "tests for LACP port priority"
888 1.1 yamaguch atf_set "require.progs" "rump_server"
889 1.1 yamaguch }
890 1.1 yamaguch
891 1.1 yamaguch lagg_lacp_portpri_body()
892 1.1 yamaguch {
893 1.1 yamaguch local atf_ifconfig="atf_check -s exit:0 rump.ifconfig"
894 1.1 yamaguch
895 1.1 yamaguch rump_server_start $SOCK_HOST0 lagg
896 1.1 yamaguch rump_server_start $SOCK_HOST1 lagg
897 1.1 yamaguch
898 1.1 yamaguch rump_server_add_iface $SOCK_HOST0 shmif0 $BUS0
899 1.1 yamaguch rump_server_add_iface $SOCK_HOST0 shmif1 $BUS1
900 1.1 yamaguch rump_server_add_iface $SOCK_HOST0 shmif2 $BUS2
901 1.1 yamaguch
902 1.1 yamaguch rump_server_add_iface $SOCK_HOST1 shmif0 $BUS0
903 1.1 yamaguch rump_server_add_iface $SOCK_HOST1 shmif1 $BUS1
904 1.1 yamaguch rump_server_add_iface $SOCK_HOST1 shmif2 $BUS2
905 1.1 yamaguch
906 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST0
907 1.1 yamaguch $atf_ifconfig lagg0 create
908 1.1 yamaguch $atf_ifconfig lagg0 laggproto lacp
909 1.1 yamaguch $atf_ifconfig lagg0 lagglacp maxports 2
910 1.1 yamaguch
911 1.1 yamaguch $atf_ifconfig shmif0 up
912 1.1 yamaguch $atf_ifconfig shmif1 up
913 1.1 yamaguch $atf_ifconfig shmif2 up
914 1.1 yamaguch
915 1.1 yamaguch $atf_ifconfig lagg0 laggport shmif0 pri 1000
916 1.1 yamaguch $atf_ifconfig lagg0 laggport shmif1 pri 2000
917 1.1 yamaguch $atf_ifconfig lagg0 laggport shmif2 pri 3000
918 1.1 yamaguch $atf_ifconfig lagg0 up
919 1.1 yamaguch
920 1.1 yamaguch atf_check -s exit:0 -o match:'shmif0 pri=1000' rump.ifconfig lagg0
921 1.1 yamaguch atf_check -s exit:0 -o match:'shmif1 pri=2000' rump.ifconfig lagg0
922 1.1 yamaguch atf_check -s exit:0 -o match:'shmif2 pri=3000' rump.ifconfig lagg0
923 1.1 yamaguch
924 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST1
925 1.1 yamaguch $atf_ifconfig lagg0 create
926 1.1 yamaguch $atf_ifconfig lagg0 laggproto lacp
927 1.1 yamaguch
928 1.1 yamaguch $atf_ifconfig shmif0 up
929 1.1 yamaguch $atf_ifconfig shmif1 up
930 1.1 yamaguch $atf_ifconfig shmif2 up
931 1.1 yamaguch
932 1.1 yamaguch $atf_ifconfig lagg0 laggport shmif0 pri 300
933 1.1 yamaguch $atf_ifconfig lagg0 laggport shmif1 pri 200
934 1.1 yamaguch $atf_ifconfig lagg0 laggport shmif2 pri 100
935 1.1 yamaguch $atf_ifconfig lagg0 up
936 1.1 yamaguch
937 1.1 yamaguch atf_check -s exit:0 -o match:'shmif0 pri=300' rump.ifconfig lagg0
938 1.1 yamaguch atf_check -s exit:0 -o match:'shmif1 pri=200' rump.ifconfig lagg0
939 1.1 yamaguch atf_check -s exit:0 -o match:'shmif2 pri=100' rump.ifconfig lagg0
940 1.1 yamaguch
941 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST0
942 1.1 yamaguch wait_for_distributing lagg0 shmif0
943 1.1 yamaguch wait_for_distributing lagg0 shmif1
944 1.1 yamaguch wait_state "STANDBY" lagg0 shmif2
945 1.1 yamaguch
946 1.1 yamaguch $atf_ifconfig shmif0 down
947 1.1 yamaguch wait_for_distributing lagg0 shmif2
948 1.1 yamaguch
949 1.1 yamaguch $atf_ifconfig shmif0 up
950 1.1 yamaguch wait_for_distributing lagg0 shmif0
951 1.1 yamaguch
952 1.1 yamaguch $atf_ifconfig lagg0 laggportpri shmif0 5000
953 1.1 yamaguch $atf_ifconfig lagg0 laggportpri shmif1 5000
954 1.1 yamaguch $atf_ifconfig lagg0 laggportpri shmif2 5000
955 1.1 yamaguch
956 1.1 yamaguch atf_check -s exit:0 -o match:'shmif0 pri=5000' rump.ifconfig lagg0
957 1.1 yamaguch atf_check -s exit:0 -o match:'shmif1 pri=5000' rump.ifconfig lagg0
958 1.1 yamaguch atf_check -s exit:0 -o match:'shmif2 pri=5000' rump.ifconfig lagg0
959 1.1 yamaguch
960 1.1 yamaguch wait_state "STANDBY" lagg0 shmif0
961 1.1 yamaguch wait_for_distributing lagg0 shmif1
962 1.1 yamaguch wait_for_distributing lagg0 shmif2
963 1.1 yamaguch }
964 1.1 yamaguch
965 1.1 yamaguch lagg_lacp_portpri_cleanup()
966 1.1 yamaguch {
967 1.1 yamaguch
968 1.1 yamaguch $DEBUG && dump
969 1.1 yamaguch cleanup
970 1.1 yamaguch }
971 1.1 yamaguch
972 1.1 yamaguch lagg_failover()
973 1.1 yamaguch {
974 1.1 yamaguch local atf_ifconfig="atf_check -s exit:0 rump.ifconfig"
975 1.1 yamaguch
976 1.1 yamaguch local af=$1
977 1.3 yamaguch local l2proto=$2
978 1.1 yamaguch local ping="rump.ping -c 1"
979 1.1 yamaguch local rumplib=""
980 1.1 yamaguch local pfx=24
981 1.1 yamaguch local addr_host0=$IP4ADDR0
982 1.1 yamaguch local addr_host1=$IP4ADDR1
983 1.1 yamaguch
984 1.1 yamaguch case $af in
985 1.1 yamaguch "inet")
986 1.1 yamaguch # do nothing
987 1.1 yamaguch ;;
988 1.1 yamaguch "inet6")
989 1.1 yamaguch ping="rump.ping6 -c 1"
990 1.1 yamaguch rumplib="netinet6"
991 1.1 yamaguch pfx=64
992 1.1 yamaguch addr_host0=$IP6ADDR0
993 1.1 yamaguch addr_host1=$IP6ADDR1
994 1.1 yamaguch ;;
995 1.1 yamaguch esac
996 1.1 yamaguch
997 1.3 yamaguch case $l2proto in
998 1.3 yamaguch "ether")
999 1.3 yamaguch iface0="shmif0"
1000 1.3 yamaguch iface1="shmif1"
1001 1.3 yamaguch iface2="shmif2"
1002 1.3 yamaguch ;;
1003 1.3 yamaguch "l2tp")
1004 1.3 yamaguch rumplib="$rumplib l2tp"
1005 1.3 yamaguch iface0="l2tp0"
1006 1.3 yamaguch iface1="l2tp1"
1007 1.3 yamaguch iface2="l2tp2"
1008 1.3 yamaguch ;;
1009 1.3 yamaguch esac
1010 1.3 yamaguch
1011 1.1 yamaguch local atf_ping="atf_check -s exit:0 -o ignore ${ping}"
1012 1.1 yamaguch
1013 1.1 yamaguch rump_server_start $SOCK_HOST0 lagg $rumplib
1014 1.1 yamaguch rump_server_start $SOCK_HOST1 lagg $rumplib
1015 1.1 yamaguch
1016 1.1 yamaguch rump_server_add_iface $SOCK_HOST0 shmif0 $BUS0
1017 1.1 yamaguch rump_server_add_iface $SOCK_HOST0 shmif1 $BUS1
1018 1.1 yamaguch rump_server_add_iface $SOCK_HOST0 shmif2 $BUS2
1019 1.1 yamaguch
1020 1.1 yamaguch rump_server_add_iface $SOCK_HOST1 shmif0 $BUS0
1021 1.1 yamaguch rump_server_add_iface $SOCK_HOST1 shmif1 $BUS1
1022 1.1 yamaguch rump_server_add_iface $SOCK_HOST1 shmif2 $BUS2
1023 1.1 yamaguch
1024 1.3 yamaguch if [ x"$l2proto" = x"l2tp" ]; then
1025 1.3 yamaguch setup_l2tp_ipv4tunnel
1026 1.3 yamaguch fi
1027 1.3 yamaguch
1028 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST0
1029 1.1 yamaguch $atf_ifconfig lagg0 create
1030 1.1 yamaguch $atf_ifconfig lagg0 laggproto failover
1031 1.1 yamaguch
1032 1.3 yamaguch $atf_ifconfig lagg0 laggport $iface0 pri 1000
1033 1.3 yamaguch $atf_ifconfig lagg0 laggport $iface1 pri 2000
1034 1.3 yamaguch $atf_ifconfig lagg0 laggport $iface2 pri 3000
1035 1.1 yamaguch $atf_ifconfig lagg0 $af $addr_host0/$pfx
1036 1.1 yamaguch
1037 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST1
1038 1.1 yamaguch $atf_ifconfig lagg0 create
1039 1.1 yamaguch $atf_ifconfig lagg0 laggproto failover
1040 1.1 yamaguch
1041 1.3 yamaguch $atf_ifconfig lagg0 laggport $iface0 pri 1000
1042 1.3 yamaguch $atf_ifconfig lagg0 laggport $iface1 pri 3000
1043 1.3 yamaguch $atf_ifconfig lagg0 laggport $iface2 pri 2000
1044 1.1 yamaguch $atf_ifconfig lagg0 $af $addr_host1/$pfx
1045 1.1 yamaguch
1046 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST0
1047 1.3 yamaguch $atf_ifconfig $iface0 up
1048 1.3 yamaguch $atf_ifconfig $iface1 up
1049 1.3 yamaguch $atf_ifconfig $iface2 up
1050 1.1 yamaguch $atf_ifconfig lagg0 up
1051 1.1 yamaguch
1052 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST1
1053 1.3 yamaguch $atf_ifconfig $iface0 up
1054 1.3 yamaguch $atf_ifconfig $iface1 up
1055 1.3 yamaguch $atf_ifconfig $iface2 up
1056 1.1 yamaguch $atf_ifconfig lagg0 up
1057 1.1 yamaguch
1058 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST0
1059 1.1 yamaguch $atf_ifconfig -w 10
1060 1.3 yamaguch wait_for_distributing lagg0 $iface0
1061 1.3 yamaguch wait_state "COLLECTING" lagg0 $iface0
1062 1.3 yamaguch wait_state "COLLECTING" lagg0 $iface1
1063 1.3 yamaguch wait_state "COLLECTING" lagg0 $iface2
1064 1.1 yamaguch
1065 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST1
1066 1.1 yamaguch $atf_ifconfig -w 10
1067 1.3 yamaguch wait_for_distributing lagg0 $iface0
1068 1.3 yamaguch wait_state "COLLECTING" lagg0 $iface0
1069 1.3 yamaguch wait_state "COLLECTING" lagg0 $iface1
1070 1.3 yamaguch wait_state "COLLECTING" lagg0 $iface2
1071 1.1 yamaguch
1072 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST0
1073 1.1 yamaguch $atf_ping $addr_host1
1074 1.1 yamaguch
1075 1.3 yamaguch $atf_ifconfig $iface0 down
1076 1.3 yamaguch wait_for_distributing lagg0 $iface1
1077 1.3 yamaguch wait_state "COLLECTING" lagg0 $iface1
1078 1.3 yamaguch wait_state "COLLECTING" lagg0 $iface2
1079 1.1 yamaguch
1080 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST1
1081 1.3 yamaguch $atf_ifconfig $iface0 down
1082 1.3 yamaguch wait_for_distributing lagg0 $iface2
1083 1.3 yamaguch wait_state "COLLECTING" lagg0 $iface2
1084 1.3 yamaguch wait_state "COLLECTING" lagg0 $iface1
1085 1.1 yamaguch
1086 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST0
1087 1.1 yamaguch $atf_ping $addr_host1
1088 1.1 yamaguch
1089 1.1 yamaguch $atf_ifconfig lagg0 laggfailover -rx-all
1090 1.3 yamaguch atf_check -s exit:0 -o not-match:'$iface2.+COLLECTING' rump.ifconfig lagg0
1091 1.1 yamaguch
1092 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST1
1093 1.1 yamaguch $atf_ifconfig lagg0 laggfailover -rx-all
1094 1.3 yamaguch atf_check -s exit:0 -o not-match:'$iface1.+COLLECTING' rump.ifconfig lagg0
1095 1.1 yamaguch
1096 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST0
1097 1.1 yamaguch atf_check -s not-exit:0 -o ignore -e ignore $ping -c 1 $addr_host1
1098 1.1 yamaguch }
1099 1.1 yamaguch
1100 1.1 yamaguch atf_test_case lagg_failover_ipv4 cleanup
1101 1.1 yamaguch lagg_failover_ipv4_head()
1102 1.1 yamaguch {
1103 1.1 yamaguch
1104 1.1 yamaguch atf_set "descr" "tests for failover using IPv4"
1105 1.1 yamaguch atf_set "require.progs" "rump_server"
1106 1.1 yamaguch }
1107 1.1 yamaguch
1108 1.1 yamaguch lagg_failover_ipv4_body()
1109 1.1 yamaguch {
1110 1.1 yamaguch
1111 1.3 yamaguch lagg_failover "inet" "ether"
1112 1.1 yamaguch }
1113 1.1 yamaguch
1114 1.1 yamaguch lagg_failover_ipv4_cleanup()
1115 1.1 yamaguch {
1116 1.1 yamaguch
1117 1.1 yamaguch $DEBUG && dump
1118 1.1 yamaguch cleanup
1119 1.1 yamaguch }
1120 1.1 yamaguch
1121 1.1 yamaguch atf_test_case lagg_failover_ipv6 cleanup
1122 1.1 yamaguch lagg_failover_ipv6_head()
1123 1.1 yamaguch {
1124 1.1 yamaguch
1125 1.1 yamaguch atf_set "descr" "tests for failover using IPv6"
1126 1.1 yamaguch atf_set "require.progs" "rump_server"
1127 1.1 yamaguch }
1128 1.1 yamaguch
1129 1.1 yamaguch lagg_failover_ipv6_body()
1130 1.1 yamaguch {
1131 1.1 yamaguch
1132 1.3 yamaguch lagg_failover "inet6" "ether"
1133 1.1 yamaguch }
1134 1.1 yamaguch
1135 1.1 yamaguch lagg_failover_ipv6_cleanup()
1136 1.1 yamaguch {
1137 1.1 yamaguch
1138 1.1 yamaguch $DEBUG && dump
1139 1.1 yamaguch cleanup
1140 1.1 yamaguch }
1141 1.1 yamaguch
1142 1.3 yamaguch atf_test_case lagg_failover_l2tp_ipv4 cleanup
1143 1.3 yamaguch lagg_failover_l2tp_ipv4_head()
1144 1.3 yamaguch {
1145 1.3 yamaguch
1146 1.3 yamaguch atf_set "descr" "tests for failover over l2tp using IPv4"
1147 1.3 yamaguch atf_set "require.progs" "rump_server"
1148 1.3 yamaguch }
1149 1.3 yamaguch
1150 1.3 yamaguch lagg_failover_l2tp_ipv4_body()
1151 1.3 yamaguch {
1152 1.3 yamaguch
1153 1.3 yamaguch lagg_failover "inet" "l2tp"
1154 1.3 yamaguch }
1155 1.3 yamaguch
1156 1.3 yamaguch lagg_failover_l2tp_ipv4_cleanup()
1157 1.3 yamaguch {
1158 1.3 yamaguch $DEBUG && dump
1159 1.3 yamaguch cleanup
1160 1.3 yamaguch }
1161 1.3 yamaguch
1162 1.3 yamaguch atf_test_case lagg_failover_l2tp_ipv6 cleanup
1163 1.3 yamaguch lagg_failover_l2tp_ipv6_head()
1164 1.3 yamaguch {
1165 1.3 yamaguch
1166 1.3 yamaguch atf_set "descr" "tests for failover over l2tp using IPv6"
1167 1.3 yamaguch atf_set "require.progs" "rump_server"
1168 1.3 yamaguch }
1169 1.3 yamaguch
1170 1.3 yamaguch lagg_failover_l2tp_ipv6_body()
1171 1.3 yamaguch {
1172 1.3 yamaguch
1173 1.3 yamaguch lagg_failover "inet6" "l2tp"
1174 1.3 yamaguch }
1175 1.3 yamaguch
1176 1.3 yamaguch lagg_failover_l2tp_ipv6_cleanup()
1177 1.3 yamaguch {
1178 1.3 yamaguch $DEBUG && dump
1179 1.3 yamaguch cleanup
1180 1.3 yamaguch }
1181 1.3 yamaguch
1182 1.1 yamaguch lagg_loadbalance()
1183 1.1 yamaguch {
1184 1.1 yamaguch local atf_ifconfig="atf_check -s exit:0 rump.ifconfig"
1185 1.1 yamaguch
1186 1.1 yamaguch local af=$1
1187 1.3 yamaguch local l2proto=$2
1188 1.1 yamaguch local ping="rump.ping -c 1"
1189 1.1 yamaguch local rumplib=""
1190 1.1 yamaguch local pfx=24
1191 1.1 yamaguch local addr_host0=$IP4ADDR0
1192 1.1 yamaguch local addr_host1=$IP4ADDR1
1193 1.1 yamaguch
1194 1.1 yamaguch case $af in
1195 1.1 yamaguch "inet")
1196 1.1 yamaguch # do nothing
1197 1.1 yamaguch ;;
1198 1.1 yamaguch "inet6")
1199 1.1 yamaguch ping="rump.ping6 -c 1"
1200 1.1 yamaguch rumplib="netinet6"
1201 1.1 yamaguch pfx=64
1202 1.1 yamaguch addr_host0=$IP6ADDR0
1203 1.1 yamaguch addr_host1=$IP6ADDR1
1204 1.1 yamaguch ;;
1205 1.1 yamaguch esac
1206 1.1 yamaguch
1207 1.3 yamaguch case $l2proto in
1208 1.3 yamaguch "ether")
1209 1.3 yamaguch iface0=shmif0
1210 1.3 yamaguch iface1=shmif1
1211 1.3 yamaguch iface2=shmif2
1212 1.3 yamaguch ;;
1213 1.3 yamaguch "l2tp")
1214 1.3 yamaguch rumplib="$rumplib l2tp"
1215 1.3 yamaguch iface0=l2tp0
1216 1.3 yamaguch iface1=l2tp1
1217 1.3 yamaguch iface2=l2tp2
1218 1.3 yamaguch ;;
1219 1.3 yamaguch esac
1220 1.3 yamaguch
1221 1.1 yamaguch local atf_ping="atf_check -s exit:0 -o ignore ${ping}"
1222 1.1 yamaguch
1223 1.1 yamaguch rump_server_start $SOCK_HOST0 lagg $rumplib
1224 1.1 yamaguch rump_server_start $SOCK_HOST1 lagg $rumplib
1225 1.1 yamaguch
1226 1.1 yamaguch rump_server_add_iface $SOCK_HOST0 shmif0 $BUS0
1227 1.1 yamaguch rump_server_add_iface $SOCK_HOST0 shmif1 $BUS1
1228 1.1 yamaguch rump_server_add_iface $SOCK_HOST0 shmif2 $BUS2
1229 1.1 yamaguch
1230 1.1 yamaguch rump_server_add_iface $SOCK_HOST1 shmif0 $BUS0
1231 1.1 yamaguch rump_server_add_iface $SOCK_HOST1 shmif1 $BUS1
1232 1.1 yamaguch rump_server_add_iface $SOCK_HOST1 shmif2 $BUS2
1233 1.1 yamaguch
1234 1.3 yamaguch if [ x"$l2proto" = x"l2tp" ]; then
1235 1.3 yamaguch setup_l2tp_ipv4tunnel
1236 1.3 yamaguch fi
1237 1.3 yamaguch
1238 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST0
1239 1.1 yamaguch $atf_ifconfig lagg0 create
1240 1.1 yamaguch $atf_ifconfig lagg0 laggproto loadbalance
1241 1.1 yamaguch
1242 1.3 yamaguch $atf_ifconfig lagg0 laggport $iface0 pri 1000
1243 1.3 yamaguch $atf_ifconfig lagg0 laggport $iface1 pri 2000
1244 1.3 yamaguch $atf_ifconfig lagg0 laggport $iface2 pri 3000
1245 1.1 yamaguch $atf_ifconfig lagg0 $af $addr_host0/$pfx
1246 1.1 yamaguch
1247 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST1
1248 1.1 yamaguch $atf_ifconfig lagg0 create
1249 1.1 yamaguch $atf_ifconfig lagg0 laggproto loadbalance
1250 1.1 yamaguch
1251 1.3 yamaguch $atf_ifconfig lagg0 laggport $iface0 pri 1000
1252 1.3 yamaguch $atf_ifconfig lagg0 laggport $iface1 pri 3000
1253 1.3 yamaguch $atf_ifconfig lagg0 laggport $iface2 pri 2000
1254 1.1 yamaguch $atf_ifconfig lagg0 $af $addr_host1/$pfx
1255 1.1 yamaguch
1256 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST0
1257 1.3 yamaguch $atf_ifconfig $iface0 up
1258 1.3 yamaguch $atf_ifconfig $iface1 up
1259 1.3 yamaguch $atf_ifconfig $iface2 up
1260 1.1 yamaguch $atf_ifconfig lagg0 up
1261 1.1 yamaguch
1262 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST1
1263 1.3 yamaguch $atf_ifconfig $iface0 up
1264 1.3 yamaguch $atf_ifconfig $iface1 up
1265 1.3 yamaguch $atf_ifconfig $iface2 up
1266 1.1 yamaguch $atf_ifconfig lagg0 up
1267 1.1 yamaguch
1268 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST0
1269 1.1 yamaguch $atf_ifconfig -w 10
1270 1.3 yamaguch wait_for_distributing lagg0 $iface0
1271 1.3 yamaguch wait_state "COLLECTING" lagg0 $iface0
1272 1.3 yamaguch wait_state "COLLECTING" lagg0 $iface1
1273 1.3 yamaguch wait_state "COLLECTING" lagg0 $iface2
1274 1.1 yamaguch
1275 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST1
1276 1.1 yamaguch $atf_ifconfig -w 10
1277 1.3 yamaguch wait_state "COLLECTING,DISTRIBUTING" lagg0 $iface0
1278 1.3 yamaguch wait_state "COLLECTING,DISTRIBUTING" lagg0 $iface1
1279 1.3 yamaguch wait_state "COLLECTING,DISTRIBUTING" lagg0 $iface2
1280 1.1 yamaguch
1281 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST0
1282 1.1 yamaguch $atf_ping $addr_host1
1283 1.1 yamaguch
1284 1.3 yamaguch $atf_ifconfig $iface0 down
1285 1.3 yamaguch wait_state "COLLECTING,DISTRIBUTING" lagg0 $iface1
1286 1.3 yamaguch wait_state "COLLECTING,DISTRIBUTING" lagg0 $iface2
1287 1.1 yamaguch
1288 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST1
1289 1.3 yamaguch $atf_ifconfig $iface0 down
1290 1.3 yamaguch wait_state "COLLECTING,DISTRIBUTING" lagg0 $iface1
1291 1.3 yamaguch wait_state "COLLECTING,DISTRIBUTING" lagg0 $iface2
1292 1.1 yamaguch
1293 1.1 yamaguch export RUMP_SERVER=$SOCK_HOST0
1294 1.1 yamaguch $atf_ping $addr_host1
1295 1.1 yamaguch }
1296 1.1 yamaguch
1297 1.1 yamaguch atf_test_case lagg_loadbalance_ipv4 cleanup
1298 1.1 yamaguch lagg_loadbalance_ipv4_head()
1299 1.1 yamaguch {
1300 1.1 yamaguch
1301 1.1 yamaguch atf_set "descr" "tests for loadbalance using IPv4"
1302 1.1 yamaguch atf_set "require.progs" "rump_server"
1303 1.1 yamaguch }
1304 1.1 yamaguch
1305 1.1 yamaguch lagg_loadbalance_ipv4_body()
1306 1.1 yamaguch {
1307 1.1 yamaguch
1308 1.3 yamaguch lagg_loadbalance "inet" "ether"
1309 1.1 yamaguch }
1310 1.1 yamaguch
1311 1.1 yamaguch lagg_loadbalance_ipv4_cleanup()
1312 1.1 yamaguch {
1313 1.1 yamaguch
1314 1.1 yamaguch $DEBUG && dump
1315 1.1 yamaguch cleanup
1316 1.1 yamaguch }
1317 1.1 yamaguch
1318 1.1 yamaguch atf_test_case lagg_loadbalance_ipv6 cleanup
1319 1.1 yamaguch lagg_loadbalance_ipv6_head()
1320 1.1 yamaguch {
1321 1.1 yamaguch
1322 1.1 yamaguch atf_set "descr" "tests for loadbalance using IPv6"
1323 1.1 yamaguch atf_set "require.progs" "rump_server"
1324 1.1 yamaguch }
1325 1.1 yamaguch
1326 1.1 yamaguch lagg_loadbalance_ipv6_body()
1327 1.1 yamaguch {
1328 1.1 yamaguch
1329 1.3 yamaguch lagg_loadbalance "inet6" "ether"
1330 1.1 yamaguch }
1331 1.1 yamaguch
1332 1.1 yamaguch lagg_loadbalance_ipv6_cleanup()
1333 1.1 yamaguch {
1334 1.1 yamaguch
1335 1.1 yamaguch $DEBUG && dump
1336 1.1 yamaguch cleanup
1337 1.1 yamaguch }
1338 1.1 yamaguch
1339 1.3 yamaguch atf_test_case lagg_loadbalance_l2tp_ipv4 cleanup
1340 1.3 yamaguch lagg_loadbalance_l2tp_ipv4_head()
1341 1.3 yamaguch {
1342 1.3 yamaguch
1343 1.3 yamaguch atf_set "descr" "tests for loadbalance over l2tp using IPv4"
1344 1.3 yamaguch atf_set "require.progs" "rump_server"
1345 1.3 yamaguch }
1346 1.3 yamaguch
1347 1.3 yamaguch lagg_loadbalance_l2tp_ipv4_body()
1348 1.3 yamaguch {
1349 1.3 yamaguch
1350 1.3 yamaguch lagg_loadbalance "inet" "l2tp"
1351 1.3 yamaguch }
1352 1.3 yamaguch
1353 1.3 yamaguch lagg_loadbalance_l2tp_ipv4_cleanup()
1354 1.3 yamaguch {
1355 1.3 yamaguch
1356 1.3 yamaguch $DEBUG && dump
1357 1.3 yamaguch cleanup
1358 1.3 yamaguch }
1359 1.3 yamaguch
1360 1.3 yamaguch atf_test_case lagg_loadbalance_l2tp_ipv6 cleanup
1361 1.3 yamaguch lagg_loadbalance_l2tp_ipv4_head()
1362 1.3 yamaguch {
1363 1.3 yamaguch
1364 1.3 yamaguch atf_set "descr" "tests for loadbalance over l2tp using IPv6"
1365 1.3 yamaguch atf_set "require.progs" "rump_server"
1366 1.3 yamaguch }
1367 1.3 yamaguch
1368 1.3 yamaguch lagg_loadbalance_l2tp_ipv6_body()
1369 1.3 yamaguch {
1370 1.3 yamaguch
1371 1.3 yamaguch lagg_loadbalance "inet6" "l2tp"
1372 1.3 yamaguch }
1373 1.3 yamaguch
1374 1.3 yamaguch lagg_loadbalance_l2tp_ipv6_cleanup()
1375 1.3 yamaguch {
1376 1.3 yamaguch
1377 1.3 yamaguch $DEBUG && dump
1378 1.3 yamaguch cleanup
1379 1.3 yamaguch }
1380 1.3 yamaguch
1381 1.1 yamaguch atf_init_test_cases()
1382 1.1 yamaguch {
1383 1.1 yamaguch
1384 1.1 yamaguch atf_add_test_case lagg_ifconfig
1385 1.1 yamaguch atf_add_test_case lagg_macaddr
1386 1.1 yamaguch atf_add_test_case lagg_ipv6lla
1387 1.1 yamaguch atf_add_test_case lagg_lacp_basic
1388 1.1 yamaguch atf_add_test_case lagg_lacp_ipv4
1389 1.1 yamaguch atf_add_test_case lagg_lacp_ipv6
1390 1.3 yamaguch atf_add_test_case lagg_lacp_l2tp_ipv4
1391 1.3 yamaguch atf_add_test_case lagg_lacp_l2tp_ipv6
1392 1.1 yamaguch atf_add_test_case lagg_lacp_vlan_ipv4
1393 1.1 yamaguch atf_add_test_case lagg_lacp_vlan_ipv6
1394 1.5 yamaguch atf_add_test_case lagg_lacp_vlanl2tp_ipv4
1395 1.5 yamaguch atf_add_test_case lagg_lacp_vlanl2tp_ipv6
1396 1.1 yamaguch atf_add_test_case lagg_lacp_portpri
1397 1.1 yamaguch atf_add_test_case lagg_failover_ipv4
1398 1.1 yamaguch atf_add_test_case lagg_failover_ipv6
1399 1.3 yamaguch atf_add_test_case lagg_failover_l2tp_ipv4
1400 1.3 yamaguch atf_add_test_case lagg_failover_l2tp_ipv6
1401 1.1 yamaguch atf_add_test_case lagg_loadbalance_ipv4
1402 1.1 yamaguch atf_add_test_case lagg_loadbalance_ipv6
1403 1.3 yamaguch atf_add_test_case lagg_loadbalance_l2tp_ipv4
1404 1.3 yamaguch atf_add_test_case lagg_loadbalance_l2tp_ipv6
1405 1.1 yamaguch }
1406