t_pppoe.sh revision 1.26 1 1.26 yamaguch # $NetBSD: t_pppoe.sh,v 1.26 2021/04/23 03:38:19 yamaguchi Exp $
2 1.1 ozaki #
3 1.1 ozaki # Copyright (c) 2016 Internet Initiative Japan Inc.
4 1.1 ozaki # All rights reserved.
5 1.1 ozaki #
6 1.1 ozaki # Redistribution and use in source and binary forms, with or without
7 1.1 ozaki # modification, are permitted provided that the following conditions
8 1.1 ozaki # are met:
9 1.1 ozaki # 1. Redistributions of source code must retain the above copyright
10 1.1 ozaki # notice, this list of conditions and the following disclaimer.
11 1.1 ozaki # 2. Redistributions in binary form must reproduce the above copyright
12 1.1 ozaki # notice, this list of conditions and the following disclaimer in the
13 1.1 ozaki # documentation and/or other materials provided with the distribution.
14 1.1 ozaki #
15 1.1 ozaki # THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
16 1.1 ozaki # ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
17 1.1 ozaki # TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
18 1.1 ozaki # PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
19 1.1 ozaki # BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
20 1.1 ozaki # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
21 1.1 ozaki # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
22 1.1 ozaki # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
23 1.1 ozaki # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
24 1.1 ozaki # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
25 1.1 ozaki # POSSIBILITY OF SUCH DAMAGE.
26 1.1 ozaki #
27 1.1 ozaki
28 1.17 ozaki SERVER=unix://pppoe_server
29 1.17 ozaki CLIENT=unix://pppoe_client
30 1.1 ozaki
31 1.1 ozaki SERVER_IP=10.3.3.1
32 1.1 ozaki CLIENT_IP=10.3.3.3
33 1.7 knakahar SERVER_IP6=fc00::1
34 1.7 knakahar CLIENT_IP6=fc00::3
35 1.1 ozaki AUTHNAME=foobar@baz.com
36 1.1 ozaki SECRET=oink
37 1.1 ozaki BUS=bus0
38 1.1 ozaki TIMEOUT=3
39 1.11 knakahar WAITTIME=10
40 1.10 ozaki DEBUG=${DEBUG:-false}
41 1.1 ozaki
42 1.26 yamaguch atf_ifconfig()
43 1.26 yamaguch {
44 1.26 yamaguch
45 1.26 yamaguch atf_check -s exit:0 rump.ifconfig $*
46 1.26 yamaguch }
47 1.26 yamaguch
48 1.26 yamaguch atf_pppoectl()
49 1.26 yamaguch {
50 1.26 yamaguch
51 1.26 yamaguch atf_check -s exit:0 -x "$HIJACKING pppoectl $*"
52 1.26 yamaguch }
53 1.26 yamaguch
54 1.18 ozaki atf_test_case pppoe_create_destroy cleanup
55 1.18 ozaki pppoe_create_destroy_head()
56 1.18 ozaki {
57 1.18 ozaki
58 1.18 ozaki atf_set "descr" "Test creating/destroying pppoe interfaces"
59 1.18 ozaki atf_set "require.progs" "rump_server"
60 1.18 ozaki }
61 1.18 ozaki
62 1.18 ozaki pppoe_create_destroy_body()
63 1.18 ozaki {
64 1.18 ozaki
65 1.18 ozaki rump_server_start $CLIENT netinet6 pppoe
66 1.18 ozaki
67 1.18 ozaki test_create_destroy_common $CLIENT pppoe0 true
68 1.18 ozaki }
69 1.18 ozaki
70 1.18 ozaki pppoe_create_destroy_cleanup()
71 1.18 ozaki {
72 1.18 ozaki
73 1.18 ozaki $DEBUG && dump
74 1.18 ozaki cleanup
75 1.18 ozaki }
76 1.18 ozaki
77 1.22 yamaguch setup_ifaces()
78 1.1 ozaki {
79 1.17 ozaki
80 1.17 ozaki rump_server_add_iface $SERVER shmif0 $BUS
81 1.17 ozaki rump_server_add_iface $CLIENT shmif0 $BUS
82 1.22 yamaguch rump_server_add_iface $SERVER pppoe0
83 1.22 yamaguch rump_server_add_iface $CLIENT pppoe0
84 1.1 ozaki
85 1.1 ozaki export RUMP_SERVER=$SERVER
86 1.26 yamaguch atf_ifconfig shmif0 up
87 1.26 yamaguch $inet && atf_ifconfig pppoe0 \
88 1.7 knakahar inet $SERVER_IP $CLIENT_IP down
89 1.26 yamaguch atf_ifconfig pppoe0 link0
90 1.1 ozaki
91 1.1 ozaki $DEBUG && rump.ifconfig
92 1.1 ozaki $DEBUG && $HIJACKING pppoectl -d pppoe0
93 1.1 ozaki unset RUMP_SERVER
94 1.1 ozaki
95 1.1 ozaki export RUMP_SERVER=$CLIENT
96 1.26 yamaguch atf_ifconfig shmif0 up
97 1.1 ozaki
98 1.26 yamaguch $inet && atf_ifconfig pppoe0 \
99 1.7 knakahar inet 0.0.0.0 0.0.0.1 down
100 1.1 ozaki
101 1.22 yamaguch $DEBUG && rump.ifconfig
102 1.22 yamaguch $DEBUG && $HIJACKING pppoectl -d pppoe0
103 1.22 yamaguch unset RUMP_SERVER
104 1.22 yamaguch }
105 1.22 yamaguch
106 1.22 yamaguch setup()
107 1.22 yamaguch {
108 1.22 yamaguch inet=true
109 1.22 yamaguch
110 1.22 yamaguch if [ $# -ne 0 ]; then
111 1.22 yamaguch eval $@
112 1.22 yamaguch fi
113 1.22 yamaguch
114 1.22 yamaguch rump_server_start $SERVER netinet6 pppoe
115 1.22 yamaguch rump_server_start $CLIENT netinet6 pppoe
116 1.22 yamaguch
117 1.22 yamaguch setup_ifaces
118 1.22 yamaguch
119 1.22 yamaguch export RUMP_SERVER=$SERVER
120 1.26 yamaguch atf_pppoectl -e shmif0 pppoe0
121 1.22 yamaguch unset RUMP_SERVER
122 1.22 yamaguch
123 1.22 yamaguch export RUMP_SERVER=$CLIENT
124 1.26 yamaguch atf_pppoectl -e shmif0 pppoe0
125 1.1 ozaki unset RUMP_SERVER
126 1.1 ozaki }
127 1.3 christos
128 1.24 yamaguch wait_for_opened()
129 1.1 ozaki {
130 1.24 yamaguch local cp=$1
131 1.24 yamaguch local dontfail=$2
132 1.1 ozaki local n=$WAITTIME
133 1.1 ozaki
134 1.1 ozaki for i in $(seq $n); do
135 1.24 yamaguch $HIJACKING pppoectl -dd pppoe0 | grep -q "$cp state: opened"
136 1.24 yamaguch if [ $? = 0 ]; then
137 1.24 yamaguch rump.ifconfig -w 10
138 1.24 yamaguch return
139 1.24 yamaguch fi
140 1.1 ozaki sleep 1
141 1.1 ozaki done
142 1.1 ozaki
143 1.8 knakahar if [ "$dontfail" != "dontfail" ]; then
144 1.1 ozaki atf_fail "Couldn't connect to the server for $n seconds."
145 1.1 ozaki fi
146 1.1 ozaki }
147 1.1 ozaki
148 1.7 knakahar wait_for_disconnected()
149 1.7 knakahar {
150 1.7 knakahar local dontfail=$1
151 1.7 knakahar local n=$WAITTIME
152 1.7 knakahar
153 1.7 knakahar for i in $(seq $n); do
154 1.24 yamaguch # If PPPoE client is disconnected by PPPoE server, then
155 1.24 yamaguch # the LCP state will of the client is in a starting to send PADI.
156 1.24 yamaguch $HIJACKING pppoectl -dd pppoe0 | grep -q \
157 1.24 yamaguch -e "LCP state: initial" -e "LCP state: starting"
158 1.15 knakahar [ $? = 0 ] && return
159 1.15 knakahar
160 1.7 knakahar sleep 1
161 1.7 knakahar done
162 1.7 knakahar
163 1.8 knakahar if [ "$dontfail" != "dontfail" ]; then
164 1.7 knakahar atf_fail "Couldn't disconnect for $n seconds."
165 1.7 knakahar fi
166 1.7 knakahar }
167 1.7 knakahar
168 1.3 christos run_test()
169 1.1 ozaki {
170 1.3 christos local auth=$1
171 1.24 yamaguch local cp="IPCP"
172 1.1 ozaki setup
173 1.1 ozaki
174 1.4 knakahar # As pppoe client doesn't support rechallenge yet.
175 1.4 knakahar local server_optparam=""
176 1.4 knakahar if [ $auth = "chap" ]; then
177 1.4 knakahar server_optparam="norechallenge"
178 1.4 knakahar fi
179 1.4 knakahar
180 1.1 ozaki export RUMP_SERVER=$SERVER
181 1.26 yamaguch atf_pppoectl pppoe0 "hisauthproto=$auth" \
182 1.26 yamaguch "hisauthname=$AUTHNAME" "hisauthsecret=$SECRET" \
183 1.26 yamaguch "myauthproto=none" $server_optparam
184 1.26 yamaguch atf_ifconfig pppoe0 up
185 1.1 ozaki unset RUMP_SERVER
186 1.1 ozaki
187 1.1 ozaki export RUMP_SERVER=$CLIENT
188 1.26 yamaguch atf_pppoectl pppoe0 \
189 1.26 yamaguch "myauthname=$AUTHNAME" "myauthsecret=$SECRET" \
190 1.26 yamaguch "myauthproto=$auth" "hisauthproto=none"
191 1.26 yamaguch atf_ifconfig pppoe0 up
192 1.1 ozaki $DEBUG && rump.ifconfig
193 1.24 yamaguch wait_for_opened $cp
194 1.1 ozaki atf_check -s exit:0 -o ignore rump.ping -c 1 -w $TIMEOUT $SERVER_IP
195 1.1 ozaki unset RUMP_SERVER
196 1.1 ozaki
197 1.1 ozaki # test for disconnection from server
198 1.16 knakahar export RUMP_SERVER=$SERVER
199 1.26 yamaguch atf_ifconfig pppoe0 down
200 1.16 knakahar wait_for_disconnected
201 1.1 ozaki export RUMP_SERVER=$CLIENT
202 1.16 knakahar wait_for_disconnected
203 1.1 ozaki atf_check -s not-exit:0 -o ignore -e ignore \
204 1.1 ozaki rump.ping -c 1 -w $TIMEOUT $SERVER_IP
205 1.1 ozaki atf_check -s exit:0 -o match:'PADI sent' -x "$HIJACKING pppoectl -d pppoe0"
206 1.1 ozaki unset RUMP_SERVER
207 1.1 ozaki
208 1.20 yamaguch # test for reconnecting
209 1.1 ozaki atf_check -s exit:0 -x "env RUMP_SERVER=$SERVER rump.ifconfig pppoe0 up"
210 1.1 ozaki export RUMP_SERVER=$CLIENT
211 1.24 yamaguch wait_for_opened $cp
212 1.1 ozaki atf_check -s exit:0 -o ignore rump.ping -c 1 -w $TIMEOUT $SERVER_IP
213 1.1 ozaki unset RUMP_SERVER
214 1.1 ozaki
215 1.1 ozaki # test for disconnection from client
216 1.16 knakahar export RUMP_SERVER=$CLIENT
217 1.26 yamaguch atf_ifconfig pppoe0 down
218 1.16 knakahar wait_for_disconnected
219 1.1 ozaki export RUMP_SERVER=$SERVER
220 1.16 knakahar wait_for_disconnected
221 1.1 ozaki $DEBUG && $HIJACKING pppoectl -d pppoe0
222 1.1 ozaki atf_check -s not-exit:0 -o ignore -e ignore \
223 1.1 ozaki rump.ping -c 1 -w $TIMEOUT $CLIENT_IP
224 1.1 ozaki atf_check -s exit:0 -o match:'initial' -x "$HIJACKING pppoectl -d pppoe0"
225 1.1 ozaki unset RUMP_SERVER
226 1.1 ozaki
227 1.9 knakahar # test for reconnecting
228 1.1 ozaki export RUMP_SERVER=$CLIENT
229 1.26 yamaguch atf_ifconfig pppoe0 up
230 1.24 yamaguch wait_for_opened $cp
231 1.1 ozaki $DEBUG && rump.ifconfig pppoe0
232 1.1 ozaki $DEBUG && $HIJACKING pppoectl -d pppoe0
233 1.1 ozaki unset RUMP_SERVER
234 1.1 ozaki
235 1.1 ozaki export RUMP_SERVER=$SERVER
236 1.26 yamaguch atf_ifconfig -w 10
237 1.1 ozaki atf_check -s exit:0 -o ignore rump.ping -c 1 -w $TIMEOUT $CLIENT_IP
238 1.1 ozaki atf_check -s exit:0 -o match:'session' -x "$HIJACKING pppoectl -d pppoe0"
239 1.1 ozaki $DEBUG && HIJACKING pppoectl -d pppoe0
240 1.1 ozaki unset RUMP_SERVER
241 1.1 ozaki
242 1.1 ozaki # test for invalid password
243 1.1 ozaki export RUMP_SERVER=$CLIENT
244 1.26 yamaguch atf_ifconfig pppoe0 down
245 1.16 knakahar wait_for_disconnected
246 1.26 yamaguch atf_pppoectl pppoe0 "myauthproto=$auth" \
247 1.26 yamaguch "myauthname=$AUTHNAME" \
248 1.26 yamaguch "myauthsecret=invalidsecret" \
249 1.26 yamaguch "hisauthproto=none" \
250 1.26 yamaguch "max-auth-failure=1"
251 1.26 yamaguch atf_ifconfig pppoe0 up
252 1.24 yamaguch wait_for_opened $cp dontfail
253 1.1 ozaki atf_check -s not-exit:0 -o ignore -e ignore \
254 1.1 ozaki rump.ping -c 1 -w $TIMEOUT $SERVER_IP
255 1.13 knakahar atf_check -s exit:0 -o match:'DETACHED' rump.ifconfig pppoe0
256 1.1 ozaki unset RUMP_SERVER
257 1.1 ozaki }
258 1.1 ozaki
259 1.6 ozaki atf_test_case pppoe_pap cleanup
260 1.3 christos
261 1.5 ozaki pppoe_pap_head()
262 1.3 christos {
263 1.3 christos atf_set "descr" "Does simple pap tests"
264 1.3 christos atf_set "require.progs" "rump_server pppoectl"
265 1.3 christos }
266 1.3 christos
267 1.5 ozaki pppoe_pap_body()
268 1.3 christos {
269 1.3 christos run_test pap
270 1.3 christos }
271 1.3 christos
272 1.5 ozaki pppoe_pap_cleanup()
273 1.1 ozaki {
274 1.17 ozaki
275 1.17 ozaki $DEBUG && dump
276 1.1 ozaki cleanup
277 1.1 ozaki }
278 1.3 christos
279 1.6 ozaki atf_test_case pppoe_chap cleanup
280 1.3 christos
281 1.5 ozaki pppoe_chap_head()
282 1.3 christos {
283 1.3 christos atf_set "descr" "Does simple chap tests"
284 1.3 christos atf_set "require.progs" "rump_server pppoectl"
285 1.3 christos }
286 1.3 christos
287 1.5 ozaki pppoe_chap_body()
288 1.3 christos {
289 1.3 christos run_test chap
290 1.3 christos }
291 1.3 christos
292 1.5 ozaki pppoe_chap_cleanup()
293 1.3 christos {
294 1.17 ozaki
295 1.17 ozaki $DEBUG && dump
296 1.3 christos cleanup
297 1.3 christos }
298 1.3 christos
299 1.7 knakahar run_test6()
300 1.7 knakahar {
301 1.7 knakahar local auth=$1
302 1.24 yamaguch local cp="IPv6CP"
303 1.7 knakahar setup "inet=false"
304 1.7 knakahar
305 1.7 knakahar # As pppoe client doesn't support rechallenge yet.
306 1.7 knakahar local server_optparam=""
307 1.7 knakahar if [ $auth = "chap" ]; then
308 1.7 knakahar server_optparam="norechallenge"
309 1.7 knakahar fi
310 1.7 knakahar
311 1.7 knakahar export RUMP_SERVER=$SERVER
312 1.26 yamaguch atf_pppoectl pppoe0 \
313 1.26 yamaguch "hisauthname=$AUTHNAME" "hisauthsecret=$SECRET" \
314 1.26 yamaguch "hisauthproto=$auth" "myauthproto=none" \
315 1.26 yamaguch $server_optparam
316 1.26 yamaguch atf_ifconfig pppoe0 inet6 $SERVER_IP6/64 down
317 1.26 yamaguch atf_ifconfig pppoe0 up
318 1.7 knakahar unset RUMP_SERVER
319 1.7 knakahar
320 1.7 knakahar export RUMP_SERVER=$CLIENT
321 1.26 yamaguch atf_pppoectl pppoe0 \
322 1.26 yamaguch "myauthname=$AUTHNAME" "myauthsecret=$SECRET" \
323 1.26 yamaguch "myauthproto=$auth" "hisauthproto=none"
324 1.26 yamaguch atf_ifconfig pppoe0 inet6 $CLIENT_IP6/64 down
325 1.26 yamaguch atf_ifconfig pppoe0 up
326 1.7 knakahar $DEBUG && rump.ifconfig
327 1.24 yamaguch wait_for_opened $cp
328 1.26 yamaguch atf_ifconfig -w 10
329 1.7 knakahar export RUMP_SERVER=$SERVER
330 1.26 yamaguch rump.ifconfig -w 10
331 1.7 knakahar export RUMP_SERVER=$CLIENT
332 1.7 knakahar atf_check -s exit:0 -o ignore rump.ping6 -c 1 -X $TIMEOUT $SERVER_IP6
333 1.7 knakahar unset RUMP_SERVER
334 1.7 knakahar
335 1.7 knakahar # test for disconnection from server
336 1.7 knakahar export RUMP_SERVER=$SERVER
337 1.7 knakahar session_id=`$HIJACKING pppoectl -d pppoe0 | grep state`
338 1.26 yamaguch atf_ifconfig pppoe0 down
339 1.7 knakahar wait_for_disconnected
340 1.7 knakahar export RUMP_SERVER=$CLIENT
341 1.7 knakahar wait_for_disconnected
342 1.7 knakahar atf_check -s not-exit:0 -o ignore -e ignore \
343 1.14 knakahar rump.ping6 -c 1 -X $TIMEOUT $SERVER_IP6
344 1.7 knakahar atf_check -s exit:0 -o not-match:"$session_id" -x "$HIJACKING pppoectl -d pppoe0"
345 1.7 knakahar unset RUMP_SERVER
346 1.7 knakahar
347 1.20 yamaguch # test for reconnecting
348 1.7 knakahar export RUMP_SERVER=$SERVER
349 1.26 yamaguch atf_ifconfig pppoe0 up
350 1.24 yamaguch wait_for_opened $cp
351 1.26 yamaguch atf_ifconfig -w 10
352 1.7 knakahar $DEBUG && $HIJACKING pppoectl -d pppoe0
353 1.7 knakahar $DEBUG && rump.ifconfig pppoe0
354 1.7 knakahar export RUMP_SERVER=$CLIENT
355 1.26 yamaguch atf_ifconfig -w 10
356 1.7 knakahar atf_check -s exit:0 -o ignore rump.ping6 -c 1 -X $TIMEOUT $SERVER_IP6
357 1.7 knakahar unset RUMP_SERVER
358 1.7 knakahar
359 1.7 knakahar # test for disconnection from client
360 1.7 knakahar export RUMP_SERVER=$CLIENT
361 1.26 yamaguch atf_ifconfig pppoe0 down
362 1.7 knakahar wait_for_disconnected
363 1.7 knakahar
364 1.7 knakahar export RUMP_SERVER=$SERVER
365 1.16 knakahar wait_for_disconnected
366 1.7 knakahar $DEBUG && $HIJACKING pppoectl -d pppoe0
367 1.7 knakahar atf_check -s not-exit:0 -o ignore -e ignore \
368 1.7 knakahar rump.ping6 -c 1 -X $TIMEOUT $CLIENT_IP6
369 1.7 knakahar atf_check -s exit:0 -o match:'initial' -x "$HIJACKING pppoectl -d pppoe0"
370 1.7 knakahar unset RUMP_SERVER
371 1.7 knakahar
372 1.9 knakahar # test for reconnecting
373 1.7 knakahar export RUMP_SERVER=$CLIENT
374 1.26 yamaguch atf_ifconfig pppoe0 up
375 1.24 yamaguch wait_for_opened $cp
376 1.26 yamaguch atf_ifconfig -w 10
377 1.7 knakahar
378 1.7 knakahar $DEBUG && rump.ifconfig pppoe0
379 1.7 knakahar $DEBUG && $HIJACKING pppoectl -d pppoe0
380 1.7 knakahar unset RUMP_SERVER
381 1.7 knakahar
382 1.7 knakahar export RUMP_SERVER=$SERVER
383 1.26 yamaguch atf_ifconfig -w 10
384 1.7 knakahar atf_check -s exit:0 -o ignore rump.ping6 -c 1 -X $TIMEOUT $CLIENT_IP6
385 1.7 knakahar atf_check -s exit:0 -o match:'session' -x "$HIJACKING pppoectl -d pppoe0"
386 1.7 knakahar $DEBUG && HIJACKING pppoectl -d pppoe0
387 1.7 knakahar unset RUMP_SERVER
388 1.7 knakahar
389 1.7 knakahar # test for invalid password
390 1.7 knakahar export RUMP_SERVER=$CLIENT
391 1.26 yamaguch atf_ifconfig pppoe0 down
392 1.7 knakahar wait_for_disconnected
393 1.26 yamaguch atf_pppoectl pppoe0 \
394 1.26 yamaguch "myauthname=$AUTHNAME" "myauthsecret=invalidsecret" \
395 1.26 yamaguch "myauthproto=$auth" "hisauthproto=none" \
396 1.26 yamaguch "max-auth-failure=1"
397 1.26 yamaguch atf_ifconfig pppoe0 up
398 1.24 yamaguch wait_for_opened $cp dontfail
399 1.7 knakahar atf_check -s not-exit:0 -o ignore -e ignore \
400 1.7 knakahar rump.ping6 -c 1 -X $TIMEOUT $SERVER_IP6
401 1.7 knakahar atf_check -s exit:0 -o match:'DETACHED' rump.ifconfig pppoe0
402 1.7 knakahar unset RUMP_SERVER
403 1.7 knakahar }
404 1.7 knakahar
405 1.7 knakahar atf_test_case pppoe6_pap cleanup
406 1.7 knakahar
407 1.7 knakahar pppoe6_pap_head()
408 1.7 knakahar {
409 1.7 knakahar atf_set "descr" "Does simple pap using IPv6 tests"
410 1.7 knakahar atf_set "require.progs" "rump_server pppoectl"
411 1.7 knakahar }
412 1.7 knakahar
413 1.7 knakahar pppoe6_pap_body()
414 1.7 knakahar {
415 1.7 knakahar run_test6 pap
416 1.7 knakahar }
417 1.7 knakahar
418 1.7 knakahar pppoe6_pap_cleanup()
419 1.7 knakahar {
420 1.17 ozaki
421 1.17 ozaki $DEBUG && dump
422 1.7 knakahar cleanup
423 1.7 knakahar }
424 1.7 knakahar
425 1.7 knakahar atf_test_case pppoe6_chap cleanup
426 1.7 knakahar
427 1.7 knakahar pppoe6_chap_head()
428 1.7 knakahar {
429 1.7 knakahar atf_set "descr" "Does simple chap using IPv6 tests"
430 1.7 knakahar atf_set "require.progs" "rump_server pppoectl"
431 1.7 knakahar }
432 1.7 knakahar
433 1.7 knakahar pppoe6_chap_body()
434 1.7 knakahar {
435 1.7 knakahar run_test6 chap
436 1.7 knakahar }
437 1.7 knakahar
438 1.7 knakahar pppoe6_chap_cleanup()
439 1.7 knakahar {
440 1.17 ozaki
441 1.17 ozaki $DEBUG && dump
442 1.7 knakahar cleanup
443 1.7 knakahar }
444 1.7 knakahar
445 1.22 yamaguch atf_test_case pppoe_params cleanup
446 1.22 yamaguch
447 1.22 yamaguch dump_bus()
448 1.22 yamaguch {
449 1.22 yamaguch
450 1.22 yamaguch shmif_dumpbus -p - ${BUS} | tcpdump -n -e -r -
451 1.22 yamaguch }
452 1.22 yamaguch
453 1.22 yamaguch setup_auth_conf()
454 1.22 yamaguch {
455 1.22 yamaguch local auth=chap
456 1.26 yamaguch local server_optparam="norechallenge"
457 1.22 yamaguch
458 1.22 yamaguch export RUMP_SERVER=$SERVER
459 1.26 yamaguch atf_ifconfig pppoe0 link0
460 1.26 yamaguch atf_pppoectl pppoe0 \
461 1.26 yamaguch "hisauthname=$AUTHNAME" "hisauthsecret=$SECRET" \
462 1.26 yamaguch "hisauthproto=$auth" "myauthproto=none" \
463 1.26 yamaguch $server_optparam
464 1.22 yamaguch unset RUMP_SERVER
465 1.22 yamaguch
466 1.22 yamaguch export RUMP_SERVER=$CLIENT
467 1.26 yamaguch $inet && atf_ifconfig pppoe0 \
468 1.22 yamaguch inet 0.0.0.0 0.0.0.1 down
469 1.26 yamaguch atf_pppoectl pppoe0 \
470 1.26 yamaguch "myauthname=$AUTHNAME" "myauthsecret=$SECRET" \
471 1.26 yamaguch "myauthproto=$auth" "hisauthproto=none"
472 1.26 yamaguch
473 1.22 yamaguch $DEBUG && rump.ifconfig
474 1.22 yamaguch unset RUMP_SERVER
475 1.22 yamaguch }
476 1.22 yamaguch
477 1.22 yamaguch pppoe_params_head()
478 1.22 yamaguch {
479 1.22 yamaguch atf_set "descr" "Set and clear access concentrator name and service name"
480 1.22 yamaguch atf_set "require.progs" "rump_server pppoectl"
481 1.22 yamaguch }
482 1.22 yamaguch
483 1.22 yamaguch pppoe_params_body()
484 1.22 yamaguch {
485 1.22 yamaguch local dumpcmd
486 1.24 yamaguch local cp="LCP"
487 1.22 yamaguch
488 1.22 yamaguch dumpcmd="shmif_dumpbus -p - ${BUS}"
489 1.22 yamaguch dumpcmd="${dumpcmd} | tcpdump -n -e -r -"
490 1.22 yamaguch
491 1.22 yamaguch rump_server_start $SERVER netinet6 pppoe
492 1.22 yamaguch rump_server_start $CLIENT netinet6 pppoe
493 1.22 yamaguch
494 1.22 yamaguch setup_ifaces
495 1.22 yamaguch setup_auth_conf
496 1.22 yamaguch
497 1.22 yamaguch export RUMP_SERVER=$SERVER
498 1.26 yamaguch atf_pppoectl -e shmif0 pppoe0
499 1.26 yamaguch atf_ifconfig pppoe0 up
500 1.22 yamaguch unset RUMP_SERVER
501 1.22 yamaguch
502 1.22 yamaguch export RUMP_SERVER=$CLIENT
503 1.26 yamaguch atf_pppoectl -e shmif0 pppoe0
504 1.26 yamaguch atf_ifconfig pppoe0 up
505 1.22 yamaguch $DEBUG && rump.ifconfig
506 1.24 yamaguch wait_for_opened $cp
507 1.22 yamaguch unset RUMP_SERVER
508 1.22 yamaguch
509 1.22 yamaguch $DEBUG && dump_bus
510 1.22 yamaguch atf_check -s exit:0 -o match:'\[Service-Name\]' -e ignore \
511 1.22 yamaguch -x "${dumpcmd} | grep PADI"
512 1.22 yamaguch atf_check -s exit:0 -o match:'\[Service-Name\]' -e ignore \
513 1.22 yamaguch -x "${dumpcmd} | grep PADR"
514 1.22 yamaguch atf_check -s exit:0 -o not-match:'AC-Name' -e ignore \
515 1.22 yamaguch -x "${dumpcmd} | grep PADI"
516 1.22 yamaguch
517 1.22 yamaguch # set Remote access concentrator name (AC-NAME, -a option)
518 1.22 yamaguch export RUMP_SERVER=$CLIENT
519 1.26 yamaguch atf_ifconfig pppoe0 down
520 1.22 yamaguch wait_for_disconnected
521 1.26 yamaguch atf_pppoectl -e shmif0 -a ACNAME-TEST0 pppoe0
522 1.26 yamaguch atf_ifconfig pppoe0 up
523 1.22 yamaguch $DEBUG && rump.ifconfig
524 1.24 yamaguch wait_for_opened $cp
525 1.22 yamaguch unset RUMP_SERVER
526 1.22 yamaguch
527 1.22 yamaguch $DEBUG && dump_bus
528 1.22 yamaguch atf_check -s exit:0 -o match:'\[AC-Name "ACNAME-TEST0"\]' -e ignore \
529 1.22 yamaguch -x "${dumpcmd} | grep PADI"
530 1.22 yamaguch
531 1.22 yamaguch # change AC-NAME
532 1.22 yamaguch export RUMP_SERVER=$CLIENT
533 1.26 yamaguch atf_ifconfig pppoe0 down
534 1.22 yamaguch wait_for_disconnected
535 1.26 yamaguch atf_pppoectl -e shmif0 -a ACNAME-TEST1 pppoe0
536 1.26 yamaguch atf_ifconfig pppoe0 up
537 1.22 yamaguch $DEBUG && rump.ifconfig
538 1.24 yamaguch wait_for_opened $cp
539 1.22 yamaguch unset RUMP_SERVER
540 1.22 yamaguch
541 1.22 yamaguch $DEBUG && dump_bus
542 1.22 yamaguch atf_check -s exit:0 -o match:'\[AC-Name "ACNAME-TEST1"\]' -e ignore \
543 1.22 yamaguch -x "${dumpcmd} | grep PADI"
544 1.22 yamaguch
545 1.22 yamaguch # clear AC-NAME
546 1.22 yamaguch rump_server_destroy_ifaces
547 1.22 yamaguch rm ${BUS} 2> /dev/null
548 1.22 yamaguch setup_ifaces
549 1.22 yamaguch setup_auth_conf
550 1.22 yamaguch
551 1.22 yamaguch export RUMP_SERVER=$SERVER
552 1.26 yamaguch atf_pppoectl -e shmif0 pppoe0
553 1.26 yamaguch atf_ifconfig pppoe0 up
554 1.22 yamaguch unset RUMP_SERVER
555 1.22 yamaguch
556 1.22 yamaguch export RUMP_SERVER=$CLIENT
557 1.26 yamaguch atf_ifconfig pppoe0 down
558 1.22 yamaguch wait_for_disconnected
559 1.26 yamaguch atf_pppoectl -a ACNAME-TEST2 -e shmif0 pppoe0
560 1.26 yamaguch atf_pppoectl -e shmif0 pppoe0
561 1.26 yamaguch atf_ifconfig pppoe0 up
562 1.22 yamaguch $DEBUG && rump.ifconfig
563 1.24 yamaguch wait_for_opened $cp
564 1.22 yamaguch unset RUMP_SERVER
565 1.22 yamaguch
566 1.22 yamaguch $DEBUG && dump_bus
567 1.22 yamaguch atf_check -s exit:0 -o match:'\[Service-Name\]' -e ignore \
568 1.22 yamaguch -x "${dumpcmd} | grep PADI"
569 1.22 yamaguch atf_check -s exit:0 -o match:'\[Service-Name\]' -e ignore \
570 1.22 yamaguch -x "${dumpcmd} | grep PADR"
571 1.23 yamaguch atf_check -s exit:0 -o not-match:'AC-Name' -e ignore \
572 1.23 yamaguch -x "${dumpcmd} | grep PADI"
573 1.23 yamaguch
574 1.23 yamaguch # store 0 length string in AC-NAME
575 1.23 yamaguch export RUMP_SERVER=$CLIENT
576 1.26 yamaguch atf_ifconfig pppoe0 down
577 1.23 yamaguch wait_for_disconnected
578 1.26 yamaguch atf_pppoectl -a \"\" -e shmif0 pppoe0
579 1.26 yamaguch atf_ifconfig pppoe0 up
580 1.23 yamaguch $DEBUG && rump.ifconfig
581 1.24 yamaguch wait_for_opened $cp
582 1.23 yamaguch unset RUMP_SERVER
583 1.23 yamaguch
584 1.22 yamaguch atf_check -s exit:0 -o match:'\[AC-Name\]' -e ignore \
585 1.22 yamaguch -x "${dumpcmd} | grep PADI"
586 1.22 yamaguch
587 1.22 yamaguch # set Service Name (Service-Name, -s option)
588 1.22 yamaguch rump_server_destroy_ifaces
589 1.22 yamaguch rm ${BUS} 2> /dev/null
590 1.22 yamaguch setup_ifaces
591 1.22 yamaguch setup_auth_conf
592 1.22 yamaguch
593 1.22 yamaguch export RUMP_SERVER=$SERVER
594 1.26 yamaguch atf_pppoectl -e shmif0 pppoe0
595 1.26 yamaguch atf_ifconfig pppoe0 up
596 1.22 yamaguch unset RUMP_SERVER
597 1.22 yamaguch
598 1.22 yamaguch export RUMP_SERVER=$CLIENT
599 1.26 yamaguch atf_ifconfig pppoe0 down
600 1.22 yamaguch wait_for_disconnected
601 1.26 yamaguch atf_pppoectl -e shmif0 -s SNAME-TEST0 pppoe0
602 1.26 yamaguch atf_ifconfig pppoe0 up
603 1.22 yamaguch $DEBUG && rump.ifconfig
604 1.24 yamaguch wait_for_opened $cp
605 1.22 yamaguch unset RUMP_SERVER
606 1.22 yamaguch
607 1.22 yamaguch $DEBUG && dump_bus
608 1.22 yamaguch atf_check -s exit:0 -o match:'\[Service-Name "SNAME-TEST0"\]' -e ignore \
609 1.22 yamaguch -x "${dumpcmd} | grep PADI"
610 1.22 yamaguch atf_check -s exit:0 -o match:'\[Service-Name "SNAME-TEST0"\]' -e ignore \
611 1.22 yamaguch -x "${dumpcmd} | grep PADR"
612 1.22 yamaguch atf_check -s exit:0 -o not-match:'AC-Name' -e ignore \
613 1.22 yamaguch -x "${dumpcmd} | grep PADI"
614 1.22 yamaguch
615 1.22 yamaguch # change Service-Name
616 1.22 yamaguch export RUMP_SERVER=$CLIENT
617 1.26 yamaguch atf_ifconfig pppoe0 down
618 1.22 yamaguch wait_for_disconnected
619 1.26 yamaguch atf_pppoectl -e shmif0 -s SNAME-TEST1 pppoe0
620 1.26 yamaguch atf_ifconfig pppoe0 up
621 1.22 yamaguch $DEBUG && rump.ifconfig
622 1.24 yamaguch wait_for_opened $cp
623 1.22 yamaguch unset RUMP_SERVER
624 1.22 yamaguch
625 1.22 yamaguch $DEBUG && dump_bus
626 1.22 yamaguch atf_check -s exit:0 -o match:'\[Service-Name "SNAME-TEST1"\]' -e ignore \
627 1.22 yamaguch -x "${dumpcmd} | grep PADI"
628 1.22 yamaguch atf_check -s exit:0 -o match:'\[Service-Name "SNAME-TEST1"\]' -e ignore \
629 1.22 yamaguch -x "${dumpcmd} | grep PADR"
630 1.22 yamaguch
631 1.22 yamaguch # clear Service-Name
632 1.22 yamaguch rump_server_destroy_ifaces
633 1.22 yamaguch rm ${BUS} 2> /dev/null
634 1.22 yamaguch setup_ifaces
635 1.22 yamaguch setup_auth_conf
636 1.22 yamaguch
637 1.22 yamaguch export RUMP_SERVER=$SERVER
638 1.26 yamaguch atf_pppoectl -e shmif0 pppoe0
639 1.26 yamaguch atf_ifconfig pppoe0 up
640 1.22 yamaguch unset RUMP_SERVER
641 1.22 yamaguch
642 1.22 yamaguch export RUMP_SERVER=$CLIENT
643 1.26 yamaguch atf_ifconfig pppoe0 down
644 1.22 yamaguch wait_for_disconnected
645 1.26 yamaguch atf_pppoectl -s SNAME-TEST2 -e shmif0 pppoe0
646 1.26 yamaguch atf_pppoectl -e shmif0 pppoe0
647 1.26 yamaguch atf_ifconfig pppoe0 up
648 1.22 yamaguch $DEBUG && rump.ifconfig
649 1.24 yamaguch wait_for_opened $cp
650 1.22 yamaguch unset RUMP_SERVER
651 1.22 yamaguch
652 1.22 yamaguch $DEBUG && dump_bus
653 1.22 yamaguch atf_check -s exit:0 -o match:'\[Service-Name\]' -e ignore \
654 1.22 yamaguch -x "${dumpcmd} | grep PADI"
655 1.22 yamaguch atf_check -s exit:0 -o match:'\[Service-Name\]' -e ignore \
656 1.22 yamaguch -x "${dumpcmd} | grep PADR"
657 1.22 yamaguch atf_check -s exit:0 -o not-match:'AC-Name' -e ignore \
658 1.22 yamaguch -x "${dumpcmd} | grep PADI"
659 1.22 yamaguch
660 1.22 yamaguch # set AC-NAME and Service-Name
661 1.22 yamaguch rump_server_destroy_ifaces
662 1.22 yamaguch rm ${BUS} 2> /dev/null
663 1.22 yamaguch setup_ifaces
664 1.22 yamaguch setup_auth_conf
665 1.22 yamaguch
666 1.22 yamaguch export RUMP_SERVER=$SERVER
667 1.26 yamaguch atf_pppoectl -e shmif0 pppoe0
668 1.26 yamaguch atf_ifconfig pppoe0 up
669 1.22 yamaguch unset RUMP_SERVER
670 1.22 yamaguch
671 1.22 yamaguch export RUMP_SERVER=$CLIENT
672 1.26 yamaguch atf_ifconfig pppoe0 down
673 1.22 yamaguch wait_for_disconnected
674 1.26 yamaguch atf_pppoectl -e shmif0 -a ACNAME-TEST3 -s SNAME-TEST3 pppoe0
675 1.26 yamaguch atf_ifconfig pppoe0 up
676 1.22 yamaguch $DEBUG && rump.ifconfig
677 1.24 yamaguch wait_for_opened $cp
678 1.22 yamaguch unset RUMP_SERVER
679 1.22 yamaguch
680 1.22 yamaguch $DEBUG && dump_bus
681 1.22 yamaguch atf_check -s exit:0 \
682 1.22 yamaguch -o match:'\[Service-Name "SNAME-TEST3"\] \[AC-Name "ACNAME-TEST3"\]' \
683 1.22 yamaguch -e ignore \
684 1.22 yamaguch -x "${dumpcmd} | grep PADI"
685 1.22 yamaguch atf_check -s exit:0 -o match:'\[Service-Name "SNAME-TEST3"\]' -e ignore \
686 1.22 yamaguch -x "${dumpcmd} | grep PADR"
687 1.22 yamaguch
688 1.22 yamaguch # change AC-NAME
689 1.22 yamaguch export RUMP_SERVER=$CLIENT
690 1.26 yamaguch atf_ifconfig pppoe0 down
691 1.22 yamaguch wait_for_disconnected
692 1.26 yamaguch atf_pppoectl -e shmif0 -a ACNAME-TEST4 pppoe0
693 1.26 yamaguch atf_ifconfig pppoe0 up
694 1.22 yamaguch $DEBUG && rump.ifconfig
695 1.24 yamaguch wait_for_opened $cp
696 1.22 yamaguch unset RUMP_SERVER
697 1.22 yamaguch
698 1.22 yamaguch $DEBUG && dump_bus
699 1.22 yamaguch atf_check -s exit:0 \
700 1.23 yamaguch -o match:'\[Service-Name\] \[AC-Name "ACNAME-TEST4"\]' \
701 1.22 yamaguch -e ignore \
702 1.22 yamaguch -x "${dumpcmd} | grep PADI"
703 1.23 yamaguch atf_check -s exit:0 -o match:'\[Service-Name\]' -e ignore \
704 1.22 yamaguch -x "${dumpcmd} | grep PADR"
705 1.22 yamaguch
706 1.22 yamaguch # change Service-Name
707 1.22 yamaguch export RUMP_SERVER=$CLIENT
708 1.26 yamaguch atf_ifconfig pppoe0 down
709 1.22 yamaguch wait_for_disconnected
710 1.26 yamaguch atf_pppoectl -e shmif0 -a ACNAME-TEST5 -s SNAME-TEST5 pppoe0
711 1.26 yamaguch atf_pppoectl -e shmif0 -s SNAME-TEST6 pppoe0
712 1.26 yamaguch atf_ifconfig pppoe0 up
713 1.22 yamaguch $DEBUG && rump.ifconfig
714 1.24 yamaguch wait_for_opened $cp
715 1.22 yamaguch unset RUMP_SERVER
716 1.22 yamaguch
717 1.22 yamaguch $DEBUG && dump_bus
718 1.22 yamaguch atf_check -s exit:0 \
719 1.23 yamaguch -o match:'\[Service-Name "SNAME-TEST6"\]' \
720 1.22 yamaguch -e ignore \
721 1.22 yamaguch -x "${dumpcmd} | grep PADI"
722 1.23 yamaguch atf_check -s exit:0 -o match:'\[Service-Name "SNAME-TEST6"\]' -e ignore \
723 1.22 yamaguch -x "${dumpcmd} | grep PADR"
724 1.23 yamaguch atf_check -s exit:0 -o not-match:'\[AC-Name "ACNAME-TEST5\]"' -e ignore \
725 1.23 yamaguch -x "${dumpcmd} | grep PADI"
726 1.22 yamaguch }
727 1.22 yamaguch
728 1.22 yamaguch pppoe_params_cleanup()
729 1.22 yamaguch {
730 1.22 yamaguch
731 1.22 yamaguch $DEBUG && dump
732 1.22 yamaguch cleanup
733 1.22 yamaguch }
734 1.25 yamaguch
735 1.25 yamaguch pppoe_passiveauthproto()
736 1.25 yamaguch {
737 1.25 yamaguch local auth=$1
738 1.25 yamaguch local cp="IPCP"
739 1.25 yamaguch setup
740 1.25 yamaguch
741 1.25 yamaguch local server_optparam=""
742 1.25 yamaguch if [ $auth = "chap" ]; then
743 1.25 yamaguch server_optparam="norechallenge"
744 1.25 yamaguch fi
745 1.25 yamaguch
746 1.25 yamaguch export RUMP_SERVER=$SERVER
747 1.26 yamaguch atf_pppoectl pppoe0 \
748 1.26 yamaguch "hisauthname=$AUTHNAME" "hisauthsecret=$SECRET" \
749 1.26 yamaguch "hisauthproto=$auth" "myauthproto=none" \
750 1.26 yamaguch $server_optparam
751 1.26 yamaguch atf_ifconfig pppoe0 up
752 1.26 yamaguch
753 1.26 yamaguch export RUMP_SERVER=$CLIENT
754 1.26 yamaguch atf_pppoectl pppoe0 \
755 1.26 yamaguch "myauthname=$AUTHNAME" "myauthsecret=$SECRET" \
756 1.26 yamaguch "myauthproto=none" "hisauthproto=none" \
757 1.26 yamaguch "passiveauthproto"
758 1.26 yamaguch atf_ifconfig pppoe0 up
759 1.25 yamaguch $DEBUG && rump.ifconfig
760 1.25 yamaguch wait_for_opened $cp
761 1.25 yamaguch atf_check -s exit:0 -o ignore rump.ping -c 1 -w $TIMEOUT $SERVER_IP
762 1.25 yamaguch }
763 1.25 yamaguch
764 1.25 yamaguch atf_test_case pppoe_passiveauthproto_pap cleanup
765 1.25 yamaguch pppoe_passiveauthproto_pap_head()
766 1.25 yamaguch {
767 1.25 yamaguch
768 1.25 yamaguch atf_set "descr" "Test for passiveauthproto option on PAP"
769 1.25 yamaguch atf_set "require.progs" "rump_server"
770 1.25 yamaguch }
771 1.25 yamaguch
772 1.25 yamaguch pppoe_passiveauthproto_pap_body()
773 1.25 yamaguch {
774 1.25 yamaguch
775 1.25 yamaguch pppoe_passiveauthproto "pap"
776 1.25 yamaguch }
777 1.25 yamaguch
778 1.25 yamaguch pppoe_passiveauthproto_pap_cleanup()
779 1.25 yamaguch {
780 1.25 yamaguch
781 1.25 yamaguch $DEBUG && dump
782 1.25 yamaguch cleanup
783 1.25 yamaguch }
784 1.25 yamaguch
785 1.25 yamaguch atf_test_case pppoe_passiveauthproto_chap cleanup
786 1.25 yamaguch pppoe_passiveauthproto_chap_head()
787 1.25 yamaguch {
788 1.25 yamaguch
789 1.25 yamaguch atf_set "descr" "Test for passiveauthproto option on chap"
790 1.25 yamaguch atf_set "require.progs" "rump_server"
791 1.25 yamaguch }
792 1.25 yamaguch
793 1.25 yamaguch pppoe_passiveauthproto_chap_body()
794 1.25 yamaguch {
795 1.25 yamaguch
796 1.25 yamaguch pppoe_passiveauthproto "chap"
797 1.25 yamaguch }
798 1.25 yamaguch
799 1.25 yamaguch pppoe_passiveauthproto_chap_cleanup()
800 1.25 yamaguch {
801 1.25 yamaguch
802 1.25 yamaguch $DEBUG && dump
803 1.25 yamaguch cleanup
804 1.25 yamaguch }
805 1.25 yamaguch
806 1.1 ozaki atf_init_test_cases()
807 1.1 ozaki {
808 1.18 ozaki
809 1.18 ozaki atf_add_test_case pppoe_create_destroy
810 1.22 yamaguch atf_add_test_case pppoe_params
811 1.5 ozaki atf_add_test_case pppoe_pap
812 1.5 ozaki atf_add_test_case pppoe_chap
813 1.7 knakahar atf_add_test_case pppoe6_pap
814 1.7 knakahar atf_add_test_case pppoe6_chap
815 1.25 yamaguch atf_add_test_case pppoe_passiveauthproto_pap
816 1.25 yamaguch atf_add_test_case pppoe_passiveauthproto_chap
817 1.1 ozaki }
818