t_pppoe.sh revision 1.23 1 1.23 yamaguch # $NetBSD: t_pppoe.sh,v 1.23 2020/09/25 06:15:30 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.18 ozaki atf_test_case pppoe_create_destroy cleanup
43 1.18 ozaki pppoe_create_destroy_head()
44 1.18 ozaki {
45 1.18 ozaki
46 1.18 ozaki atf_set "descr" "Test creating/destroying pppoe interfaces"
47 1.18 ozaki atf_set "require.progs" "rump_server"
48 1.18 ozaki }
49 1.18 ozaki
50 1.18 ozaki pppoe_create_destroy_body()
51 1.18 ozaki {
52 1.18 ozaki
53 1.18 ozaki rump_server_start $CLIENT netinet6 pppoe
54 1.18 ozaki
55 1.18 ozaki test_create_destroy_common $CLIENT pppoe0 true
56 1.18 ozaki }
57 1.18 ozaki
58 1.18 ozaki pppoe_create_destroy_cleanup()
59 1.18 ozaki {
60 1.18 ozaki
61 1.18 ozaki $DEBUG && dump
62 1.18 ozaki cleanup
63 1.18 ozaki }
64 1.18 ozaki
65 1.22 yamaguch setup_ifaces()
66 1.1 ozaki {
67 1.17 ozaki
68 1.17 ozaki rump_server_add_iface $SERVER shmif0 $BUS
69 1.17 ozaki rump_server_add_iface $CLIENT shmif0 $BUS
70 1.22 yamaguch rump_server_add_iface $SERVER pppoe0
71 1.22 yamaguch rump_server_add_iface $CLIENT pppoe0
72 1.1 ozaki
73 1.1 ozaki export RUMP_SERVER=$SERVER
74 1.1 ozaki atf_check -s exit:0 rump.ifconfig shmif0 up
75 1.7 knakahar $inet && atf_check -s exit:0 rump.ifconfig pppoe0 \
76 1.7 knakahar inet $SERVER_IP $CLIENT_IP down
77 1.1 ozaki atf_check -s exit:0 rump.ifconfig pppoe0 link0
78 1.1 ozaki
79 1.1 ozaki $DEBUG && rump.ifconfig
80 1.1 ozaki $DEBUG && $HIJACKING pppoectl -d pppoe0
81 1.1 ozaki unset RUMP_SERVER
82 1.1 ozaki
83 1.1 ozaki export RUMP_SERVER=$CLIENT
84 1.1 ozaki atf_check -s exit:0 rump.ifconfig shmif0 up
85 1.1 ozaki
86 1.7 knakahar $inet && atf_check -s exit:0 rump.ifconfig pppoe0 \
87 1.7 knakahar inet 0.0.0.0 0.0.0.1 down
88 1.1 ozaki
89 1.22 yamaguch $DEBUG && rump.ifconfig
90 1.22 yamaguch $DEBUG && $HIJACKING pppoectl -d pppoe0
91 1.22 yamaguch unset RUMP_SERVER
92 1.22 yamaguch }
93 1.22 yamaguch
94 1.22 yamaguch setup()
95 1.22 yamaguch {
96 1.22 yamaguch inet=true
97 1.22 yamaguch
98 1.22 yamaguch if [ $# -ne 0 ]; then
99 1.22 yamaguch eval $@
100 1.22 yamaguch fi
101 1.22 yamaguch
102 1.22 yamaguch rump_server_start $SERVER netinet6 pppoe
103 1.22 yamaguch rump_server_start $CLIENT netinet6 pppoe
104 1.22 yamaguch
105 1.22 yamaguch setup_ifaces
106 1.22 yamaguch
107 1.22 yamaguch export RUMP_SERVER=$SERVER
108 1.22 yamaguch atf_check -s exit:0 -x "$HIJACKING pppoectl -e shmif0 pppoe0"
109 1.22 yamaguch unset RUMP_SERVER
110 1.22 yamaguch
111 1.22 yamaguch export RUMP_SERVER=$CLIENT
112 1.1 ozaki atf_check -s exit:0 -x "$HIJACKING pppoectl -e shmif0 pppoe0"
113 1.1 ozaki unset RUMP_SERVER
114 1.1 ozaki }
115 1.3 christos
116 1.1 ozaki wait_for_session_established()
117 1.1 ozaki {
118 1.1 ozaki local dontfail=$1
119 1.1 ozaki local n=$WAITTIME
120 1.1 ozaki
121 1.1 ozaki for i in $(seq $n); do
122 1.1 ozaki $HIJACKING pppoectl -d pppoe0 |grep -q "state = session"
123 1.1 ozaki [ $? = 0 ] && return
124 1.1 ozaki sleep 1
125 1.1 ozaki done
126 1.1 ozaki
127 1.8 knakahar if [ "$dontfail" != "dontfail" ]; then
128 1.1 ozaki atf_fail "Couldn't connect to the server for $n seconds."
129 1.1 ozaki fi
130 1.1 ozaki }
131 1.1 ozaki
132 1.7 knakahar wait_for_disconnected()
133 1.7 knakahar {
134 1.7 knakahar local dontfail=$1
135 1.7 knakahar local n=$WAITTIME
136 1.7 knakahar
137 1.7 knakahar for i in $(seq $n); do
138 1.15 knakahar $HIJACKING pppoectl -d pppoe0 | grep -q "state = initial"
139 1.15 knakahar [ $? = 0 ] && return
140 1.15 knakahar # If PPPoE client is disconnected by PPPoE server and then
141 1.15 knakahar # the client kicks callout of pppoe_timeout(), the client
142 1.15 knakahar # state is changed to PPPOE_STATE_PADI_SENT while padi retrying.
143 1.15 knakahar $HIJACKING pppoectl -d pppoe0 | grep -q "state = PADI sent"
144 1.15 knakahar [ $? = 0 ] && return
145 1.15 knakahar
146 1.7 knakahar sleep 1
147 1.7 knakahar done
148 1.7 knakahar
149 1.8 knakahar if [ "$dontfail" != "dontfail" ]; then
150 1.7 knakahar atf_fail "Couldn't disconnect for $n seconds."
151 1.7 knakahar fi
152 1.7 knakahar }
153 1.7 knakahar
154 1.3 christos run_test()
155 1.1 ozaki {
156 1.3 christos local auth=$1
157 1.1 ozaki setup
158 1.1 ozaki
159 1.4 knakahar # As pppoe client doesn't support rechallenge yet.
160 1.4 knakahar local server_optparam=""
161 1.4 knakahar if [ $auth = "chap" ]; then
162 1.4 knakahar server_optparam="norechallenge"
163 1.4 knakahar fi
164 1.4 knakahar
165 1.1 ozaki export RUMP_SERVER=$SERVER
166 1.1 ozaki local setup_serverparam="pppoectl pppoe0 hisauthproto=$auth \
167 1.1 ozaki 'hisauthname=$AUTHNAME' \
168 1.1 ozaki 'hisauthsecret=$SECRET' \
169 1.4 knakahar 'myauthproto=none' \
170 1.4 knakahar $server_optparam"
171 1.1 ozaki atf_check -s exit:0 -x "$HIJACKING $setup_serverparam"
172 1.1 ozaki atf_check -s exit:0 rump.ifconfig pppoe0 up
173 1.1 ozaki unset RUMP_SERVER
174 1.1 ozaki
175 1.1 ozaki export RUMP_SERVER=$CLIENT
176 1.1 ozaki local setup_clientparam="pppoectl pppoe0 myauthproto=$auth \
177 1.1 ozaki 'myauthname=$AUTHNAME' \
178 1.1 ozaki 'myauthsecret=$SECRET' \
179 1.1 ozaki 'hisauthproto=none'"
180 1.1 ozaki atf_check -s exit:0 -x "$HIJACKING $setup_clientparam"
181 1.1 ozaki atf_check -s exit:0 rump.ifconfig pppoe0 up
182 1.1 ozaki $DEBUG && rump.ifconfig
183 1.1 ozaki wait_for_session_established
184 1.1 ozaki atf_check -s exit:0 -o ignore rump.ping -c 1 -w $TIMEOUT $SERVER_IP
185 1.1 ozaki unset RUMP_SERVER
186 1.1 ozaki
187 1.1 ozaki # test for disconnection from server
188 1.16 knakahar export RUMP_SERVER=$SERVER
189 1.16 knakahar atf_check -s exit:0 rump.ifconfig pppoe0 down
190 1.16 knakahar wait_for_disconnected
191 1.1 ozaki export RUMP_SERVER=$CLIENT
192 1.16 knakahar wait_for_disconnected
193 1.1 ozaki atf_check -s not-exit:0 -o ignore -e ignore \
194 1.1 ozaki rump.ping -c 1 -w $TIMEOUT $SERVER_IP
195 1.1 ozaki atf_check -s exit:0 -o match:'PADI sent' -x "$HIJACKING pppoectl -d pppoe0"
196 1.1 ozaki unset RUMP_SERVER
197 1.1 ozaki
198 1.20 yamaguch # test for reconnecting
199 1.1 ozaki atf_check -s exit:0 -x "env RUMP_SERVER=$SERVER rump.ifconfig pppoe0 up"
200 1.1 ozaki export RUMP_SERVER=$CLIENT
201 1.1 ozaki wait_for_session_established
202 1.1 ozaki atf_check -s exit:0 -o ignore rump.ping -c 1 -w $TIMEOUT $SERVER_IP
203 1.1 ozaki unset RUMP_SERVER
204 1.1 ozaki
205 1.1 ozaki # test for disconnection from client
206 1.16 knakahar export RUMP_SERVER=$CLIENT
207 1.16 knakahar atf_check -s exit:0 -x rump.ifconfig pppoe0 down
208 1.16 knakahar wait_for_disconnected
209 1.1 ozaki export RUMP_SERVER=$SERVER
210 1.16 knakahar wait_for_disconnected
211 1.1 ozaki $DEBUG && $HIJACKING pppoectl -d pppoe0
212 1.1 ozaki atf_check -s not-exit:0 -o ignore -e ignore \
213 1.1 ozaki rump.ping -c 1 -w $TIMEOUT $CLIENT_IP
214 1.1 ozaki atf_check -s exit:0 -o match:'initial' -x "$HIJACKING pppoectl -d pppoe0"
215 1.1 ozaki unset RUMP_SERVER
216 1.1 ozaki
217 1.9 knakahar # test for reconnecting
218 1.1 ozaki export RUMP_SERVER=$CLIENT
219 1.1 ozaki atf_check -s exit:0 -x rump.ifconfig pppoe0 up
220 1.1 ozaki wait_for_session_established
221 1.1 ozaki $DEBUG && rump.ifconfig pppoe0
222 1.1 ozaki $DEBUG && $HIJACKING pppoectl -d pppoe0
223 1.1 ozaki unset RUMP_SERVER
224 1.1 ozaki
225 1.1 ozaki export RUMP_SERVER=$SERVER
226 1.9 knakahar atf_check -s exit:0 rump.ifconfig -w 10
227 1.1 ozaki atf_check -s exit:0 -o ignore rump.ping -c 1 -w $TIMEOUT $CLIENT_IP
228 1.1 ozaki atf_check -s exit:0 -o match:'session' -x "$HIJACKING pppoectl -d pppoe0"
229 1.1 ozaki $DEBUG && HIJACKING pppoectl -d pppoe0
230 1.1 ozaki unset RUMP_SERVER
231 1.1 ozaki
232 1.1 ozaki # test for invalid password
233 1.1 ozaki export RUMP_SERVER=$CLIENT
234 1.1 ozaki atf_check -s exit:0 rump.ifconfig pppoe0 down
235 1.16 knakahar wait_for_disconnected
236 1.1 ozaki local setup_clientparam="pppoectl pppoe0 myauthproto=$auth \
237 1.1 ozaki 'myauthname=$AUTHNAME' \
238 1.1 ozaki 'myauthsecret=invalidsecret' \
239 1.21 yamaguch 'hisauthproto=none' \
240 1.21 yamaguch 'max-auth-failure=1'"
241 1.1 ozaki atf_check -s exit:0 -x "$HIJACKING $setup_clientparam"
242 1.1 ozaki atf_check -s exit:0 rump.ifconfig pppoe0 up
243 1.1 ozaki wait_for_session_established dontfail
244 1.1 ozaki atf_check -s not-exit:0 -o ignore -e ignore \
245 1.1 ozaki rump.ping -c 1 -w $TIMEOUT $SERVER_IP
246 1.13 knakahar atf_check -s exit:0 -o match:'DETACHED' rump.ifconfig pppoe0
247 1.1 ozaki unset RUMP_SERVER
248 1.1 ozaki }
249 1.1 ozaki
250 1.6 ozaki atf_test_case pppoe_pap cleanup
251 1.3 christos
252 1.5 ozaki pppoe_pap_head()
253 1.3 christos {
254 1.3 christos atf_set "descr" "Does simple pap tests"
255 1.3 christos atf_set "require.progs" "rump_server pppoectl"
256 1.3 christos }
257 1.3 christos
258 1.5 ozaki pppoe_pap_body()
259 1.3 christos {
260 1.3 christos run_test pap
261 1.3 christos }
262 1.3 christos
263 1.5 ozaki pppoe_pap_cleanup()
264 1.1 ozaki {
265 1.17 ozaki
266 1.17 ozaki $DEBUG && dump
267 1.1 ozaki cleanup
268 1.1 ozaki }
269 1.3 christos
270 1.6 ozaki atf_test_case pppoe_chap cleanup
271 1.3 christos
272 1.5 ozaki pppoe_chap_head()
273 1.3 christos {
274 1.3 christos atf_set "descr" "Does simple chap tests"
275 1.3 christos atf_set "require.progs" "rump_server pppoectl"
276 1.3 christos }
277 1.3 christos
278 1.5 ozaki pppoe_chap_body()
279 1.3 christos {
280 1.3 christos run_test chap
281 1.3 christos }
282 1.3 christos
283 1.5 ozaki pppoe_chap_cleanup()
284 1.3 christos {
285 1.17 ozaki
286 1.17 ozaki $DEBUG && dump
287 1.3 christos cleanup
288 1.3 christos }
289 1.3 christos
290 1.7 knakahar run_test6()
291 1.7 knakahar {
292 1.7 knakahar local auth=$1
293 1.7 knakahar setup "inet=false"
294 1.7 knakahar
295 1.7 knakahar # As pppoe client doesn't support rechallenge yet.
296 1.7 knakahar local server_optparam=""
297 1.7 knakahar if [ $auth = "chap" ]; then
298 1.7 knakahar server_optparam="norechallenge"
299 1.7 knakahar fi
300 1.7 knakahar
301 1.7 knakahar export RUMP_SERVER=$SERVER
302 1.7 knakahar local setup_serverparam="pppoectl pppoe0 hisauthproto=$auth \
303 1.7 knakahar 'hisauthname=$AUTHNAME' \
304 1.7 knakahar 'hisauthsecret=$SECRET' \
305 1.7 knakahar 'myauthproto=none' \
306 1.7 knakahar $server_optparam"
307 1.7 knakahar atf_check -s exit:0 -x "$HIJACKING $setup_serverparam"
308 1.7 knakahar atf_check -s exit:0 rump.ifconfig pppoe0 inet6 $SERVER_IP6/64 down
309 1.7 knakahar atf_check -s exit:0 rump.ifconfig pppoe0 up
310 1.7 knakahar unset RUMP_SERVER
311 1.7 knakahar
312 1.7 knakahar export RUMP_SERVER=$CLIENT
313 1.7 knakahar local setup_clientparam="pppoectl pppoe0 myauthproto=$auth \
314 1.7 knakahar 'myauthname=$AUTHNAME' \
315 1.7 knakahar 'myauthsecret=$SECRET' \
316 1.7 knakahar 'hisauthproto=none'"
317 1.7 knakahar atf_check -s exit:0 -x "$HIJACKING $setup_clientparam"
318 1.7 knakahar atf_check -s exit:0 rump.ifconfig pppoe0 inet6 $CLIENT_IP6/64 down
319 1.7 knakahar atf_check -s exit:0 rump.ifconfig pppoe0 up
320 1.7 knakahar $DEBUG && rump.ifconfig
321 1.7 knakahar wait_for_session_established
322 1.7 knakahar atf_check -s exit:0 -o ignore rump.ifconfig -w 10
323 1.7 knakahar export RUMP_SERVER=$SERVER
324 1.7 knakahar atf_check -s exit:0 -o ignore rump.ifconfig -w 10
325 1.7 knakahar export RUMP_SERVER=$CLIENT
326 1.7 knakahar atf_check -s exit:0 -o ignore rump.ping6 -c 1 -X $TIMEOUT $SERVER_IP6
327 1.7 knakahar unset RUMP_SERVER
328 1.7 knakahar
329 1.7 knakahar # test for disconnection from server
330 1.7 knakahar export RUMP_SERVER=$SERVER
331 1.7 knakahar session_id=`$HIJACKING pppoectl -d pppoe0 | grep state`
332 1.7 knakahar atf_check -s exit:0 rump.ifconfig pppoe0 down
333 1.7 knakahar wait_for_disconnected
334 1.7 knakahar export RUMP_SERVER=$CLIENT
335 1.7 knakahar wait_for_disconnected
336 1.7 knakahar atf_check -s not-exit:0 -o ignore -e ignore \
337 1.14 knakahar rump.ping6 -c 1 -X $TIMEOUT $SERVER_IP6
338 1.7 knakahar atf_check -s exit:0 -o not-match:"$session_id" -x "$HIJACKING pppoectl -d pppoe0"
339 1.7 knakahar unset RUMP_SERVER
340 1.7 knakahar
341 1.20 yamaguch # test for reconnecting
342 1.7 knakahar export RUMP_SERVER=$SERVER
343 1.7 knakahar atf_check -s exit:0 rump.ifconfig pppoe0 up
344 1.7 knakahar wait_for_session_established
345 1.7 knakahar atf_check -s exit:0 rump.ifconfig -w 10
346 1.7 knakahar $DEBUG && $HIJACKING pppoectl -d pppoe0
347 1.7 knakahar $DEBUG && rump.ifconfig pppoe0
348 1.7 knakahar export RUMP_SERVER=$CLIENT
349 1.7 knakahar atf_check -s exit:0 -o ignore rump.ifconfig -w 10
350 1.7 knakahar atf_check -s exit:0 -o ignore rump.ping6 -c 1 -X $TIMEOUT $SERVER_IP6
351 1.7 knakahar unset RUMP_SERVER
352 1.7 knakahar
353 1.7 knakahar # test for disconnection from client
354 1.7 knakahar export RUMP_SERVER=$CLIENT
355 1.7 knakahar atf_check -s exit:0 rump.ifconfig pppoe0 down
356 1.7 knakahar wait_for_disconnected
357 1.7 knakahar
358 1.7 knakahar export RUMP_SERVER=$SERVER
359 1.16 knakahar wait_for_disconnected
360 1.7 knakahar $DEBUG && $HIJACKING pppoectl -d pppoe0
361 1.7 knakahar atf_check -s not-exit:0 -o ignore -e ignore \
362 1.7 knakahar rump.ping6 -c 1 -X $TIMEOUT $CLIENT_IP6
363 1.7 knakahar atf_check -s exit:0 -o match:'initial' -x "$HIJACKING pppoectl -d pppoe0"
364 1.7 knakahar unset RUMP_SERVER
365 1.7 knakahar
366 1.9 knakahar # test for reconnecting
367 1.7 knakahar export RUMP_SERVER=$CLIENT
368 1.7 knakahar atf_check -s exit:0 rump.ifconfig pppoe0 up
369 1.7 knakahar wait_for_session_established
370 1.7 knakahar atf_check -s exit:0 rump.ifconfig -w 10
371 1.7 knakahar
372 1.7 knakahar $DEBUG && rump.ifconfig pppoe0
373 1.7 knakahar $DEBUG && $HIJACKING pppoectl -d pppoe0
374 1.7 knakahar unset RUMP_SERVER
375 1.7 knakahar
376 1.7 knakahar export RUMP_SERVER=$SERVER
377 1.9 knakahar atf_check -s exit:0 rump.ifconfig -w 10
378 1.7 knakahar atf_check -s exit:0 -o ignore rump.ping6 -c 1 -X $TIMEOUT $CLIENT_IP6
379 1.7 knakahar atf_check -s exit:0 -o match:'session' -x "$HIJACKING pppoectl -d pppoe0"
380 1.7 knakahar $DEBUG && HIJACKING pppoectl -d pppoe0
381 1.7 knakahar unset RUMP_SERVER
382 1.7 knakahar
383 1.7 knakahar # test for invalid password
384 1.7 knakahar export RUMP_SERVER=$CLIENT
385 1.7 knakahar atf_check -s exit:0 rump.ifconfig pppoe0 down
386 1.7 knakahar wait_for_disconnected
387 1.7 knakahar local setup_clientparam="pppoectl pppoe0 myauthproto=$auth \
388 1.7 knakahar 'myauthname=$AUTHNAME' \
389 1.7 knakahar 'myauthsecret=invalidsecret' \
390 1.21 yamaguch 'hisauthproto=none' \
391 1.21 yamaguch 'max-auth-failure=1'"
392 1.7 knakahar atf_check -s exit:0 -x "$HIJACKING $setup_clientparam"
393 1.7 knakahar atf_check -s exit:0 rump.ifconfig pppoe0 up
394 1.7 knakahar wait_for_session_established dontfail
395 1.7 knakahar atf_check -s not-exit:0 -o ignore -e ignore \
396 1.7 knakahar rump.ping6 -c 1 -X $TIMEOUT $SERVER_IP6
397 1.7 knakahar atf_check -s exit:0 -o match:'DETACHED' rump.ifconfig pppoe0
398 1.7 knakahar unset RUMP_SERVER
399 1.7 knakahar }
400 1.7 knakahar
401 1.7 knakahar atf_test_case pppoe6_pap cleanup
402 1.7 knakahar
403 1.7 knakahar pppoe6_pap_head()
404 1.7 knakahar {
405 1.7 knakahar atf_set "descr" "Does simple pap using IPv6 tests"
406 1.7 knakahar atf_set "require.progs" "rump_server pppoectl"
407 1.7 knakahar }
408 1.7 knakahar
409 1.7 knakahar pppoe6_pap_body()
410 1.7 knakahar {
411 1.7 knakahar run_test6 pap
412 1.7 knakahar }
413 1.7 knakahar
414 1.7 knakahar pppoe6_pap_cleanup()
415 1.7 knakahar {
416 1.17 ozaki
417 1.17 ozaki $DEBUG && dump
418 1.7 knakahar cleanup
419 1.7 knakahar }
420 1.7 knakahar
421 1.7 knakahar atf_test_case pppoe6_chap cleanup
422 1.7 knakahar
423 1.7 knakahar pppoe6_chap_head()
424 1.7 knakahar {
425 1.7 knakahar atf_set "descr" "Does simple chap using IPv6 tests"
426 1.7 knakahar atf_set "require.progs" "rump_server pppoectl"
427 1.7 knakahar }
428 1.7 knakahar
429 1.7 knakahar pppoe6_chap_body()
430 1.7 knakahar {
431 1.7 knakahar run_test6 chap
432 1.7 knakahar }
433 1.7 knakahar
434 1.7 knakahar pppoe6_chap_cleanup()
435 1.7 knakahar {
436 1.17 ozaki
437 1.17 ozaki $DEBUG && dump
438 1.7 knakahar cleanup
439 1.7 knakahar }
440 1.7 knakahar
441 1.22 yamaguch atf_test_case pppoe_params cleanup
442 1.22 yamaguch
443 1.22 yamaguch dump_bus()
444 1.22 yamaguch {
445 1.22 yamaguch
446 1.22 yamaguch shmif_dumpbus -p - ${BUS} | tcpdump -n -e -r -
447 1.22 yamaguch }
448 1.22 yamaguch
449 1.22 yamaguch setup_auth_conf()
450 1.22 yamaguch {
451 1.22 yamaguch local auth=chap
452 1.22 yamaguch
453 1.22 yamaguch export RUMP_SERVER=$SERVER
454 1.22 yamaguch local setup_serverparam="pppoectl pppoe0 hisauthproto=$auth \
455 1.22 yamaguch 'hisauthname=$AUTHNAME' \
456 1.22 yamaguch 'hisauthsecret=$SECRET' \
457 1.22 yamaguch 'myauthproto=none' \
458 1.22 yamaguch $server_optparam"
459 1.22 yamaguch
460 1.22 yamaguch atf_check -s exit:0 rump.ifconfig pppoe0 link0
461 1.22 yamaguch atf_check -s exit:0 -x "$HIJACKING $setup_serverparam"
462 1.22 yamaguch unset RUMP_SERVER
463 1.22 yamaguch
464 1.22 yamaguch local setup_clientparam="pppoectl pppoe0 myauthproto=$auth \
465 1.22 yamaguch 'myauthname=$AUTHNAME' \
466 1.22 yamaguch 'myauthsecret=$SECRET' \
467 1.22 yamaguch 'hisauthproto=none'"
468 1.22 yamaguch
469 1.22 yamaguch export RUMP_SERVER=$CLIENT
470 1.22 yamaguch $inet && atf_check -s exit:0 rump.ifconfig pppoe0 \
471 1.22 yamaguch inet 0.0.0.0 0.0.0.1 down
472 1.22 yamaguch atf_check -s exit:0 -x "$HIJACKING $setup_clientparam"
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.22 yamaguch
487 1.22 yamaguch dumpcmd="shmif_dumpbus -p - ${BUS}"
488 1.22 yamaguch dumpcmd="${dumpcmd} | tcpdump -n -e -r -"
489 1.22 yamaguch
490 1.22 yamaguch rump_server_start $SERVER netinet6 pppoe
491 1.22 yamaguch rump_server_start $CLIENT netinet6 pppoe
492 1.22 yamaguch
493 1.22 yamaguch setup_ifaces
494 1.22 yamaguch setup_auth_conf
495 1.22 yamaguch
496 1.22 yamaguch export RUMP_SERVER=$SERVER
497 1.22 yamaguch atf_check -s exit:0 -x "$HIJACKING pppoectl -e shmif0 pppoe0"
498 1.22 yamaguch atf_check -s exit:0 rump.ifconfig pppoe0 up
499 1.22 yamaguch unset RUMP_SERVER
500 1.22 yamaguch
501 1.22 yamaguch export RUMP_SERVER=$CLIENT
502 1.22 yamaguch atf_check -s exit:0 -x "$HIJACKING pppoectl -e shmif0 pppoe0"
503 1.22 yamaguch atf_check -s exit:0 rump.ifconfig pppoe0 up
504 1.22 yamaguch $DEBUG && rump.ifconfig
505 1.22 yamaguch wait_for_session_established
506 1.22 yamaguch unset RUMP_SERVER
507 1.22 yamaguch
508 1.22 yamaguch $DEBUG && dump_bus
509 1.22 yamaguch atf_check -s exit:0 -o match:'\[Service-Name\]' -e ignore \
510 1.22 yamaguch -x "${dumpcmd} | grep PADI"
511 1.22 yamaguch atf_check -s exit:0 -o match:'\[Service-Name\]' -e ignore \
512 1.22 yamaguch -x "${dumpcmd} | grep PADR"
513 1.22 yamaguch atf_check -s exit:0 -o not-match:'AC-Name' -e ignore \
514 1.22 yamaguch -x "${dumpcmd} | grep PADI"
515 1.22 yamaguch
516 1.22 yamaguch # set Remote access concentrator name (AC-NAME, -a option)
517 1.22 yamaguch export RUMP_SERVER=$CLIENT
518 1.22 yamaguch atf_check -s exit:0 rump.ifconfig pppoe0 down
519 1.22 yamaguch wait_for_disconnected
520 1.22 yamaguch atf_check -s exit:0 -x "$HIJACKING pppoectl -e shmif0 -a ACNAME-TEST0 pppoe0"
521 1.22 yamaguch atf_check -s exit:0 rump.ifconfig pppoe0 up
522 1.22 yamaguch $DEBUG && rump.ifconfig
523 1.22 yamaguch wait_for_session_established
524 1.22 yamaguch unset RUMP_SERVER
525 1.22 yamaguch
526 1.22 yamaguch $DEBUG && dump_bus
527 1.22 yamaguch atf_check -s exit:0 -o match:'\[AC-Name "ACNAME-TEST0"\]' -e ignore \
528 1.22 yamaguch -x "${dumpcmd} | grep PADI"
529 1.22 yamaguch
530 1.22 yamaguch # change AC-NAME
531 1.22 yamaguch export RUMP_SERVER=$CLIENT
532 1.22 yamaguch atf_check -s exit:0 rump.ifconfig pppoe0 down
533 1.22 yamaguch wait_for_disconnected
534 1.22 yamaguch atf_check -s exit:0 -x "$HIJACKING pppoectl -e shmif0 -a ACNAME-TEST1 pppoe0"
535 1.22 yamaguch atf_check -s exit:0 rump.ifconfig pppoe0 up
536 1.22 yamaguch $DEBUG && rump.ifconfig
537 1.22 yamaguch wait_for_session_established
538 1.22 yamaguch unset RUMP_SERVER
539 1.22 yamaguch
540 1.22 yamaguch $DEBUG && dump_bus
541 1.22 yamaguch atf_check -s exit:0 -o match:'\[AC-Name "ACNAME-TEST1"\]' -e ignore \
542 1.22 yamaguch -x "${dumpcmd} | grep PADI"
543 1.22 yamaguch
544 1.22 yamaguch # clear AC-NAME
545 1.22 yamaguch rump_server_destroy_ifaces
546 1.22 yamaguch rm ${BUS} 2> /dev/null
547 1.22 yamaguch setup_ifaces
548 1.22 yamaguch setup_auth_conf
549 1.22 yamaguch
550 1.22 yamaguch export RUMP_SERVER=$SERVER
551 1.22 yamaguch atf_check -s exit:0 -x "$HIJACKING pppoectl -e shmif0 pppoe0"
552 1.22 yamaguch atf_check -s exit:0 rump.ifconfig pppoe0 up
553 1.22 yamaguch unset RUMP_SERVER
554 1.22 yamaguch
555 1.22 yamaguch export RUMP_SERVER=$CLIENT
556 1.22 yamaguch atf_check -s exit:0 rump.ifconfig pppoe0 down
557 1.22 yamaguch wait_for_disconnected
558 1.22 yamaguch atf_check -s exit:0 -x "$HIJACKING pppoectl -a ACNAME-TEST2 -e shmif0 pppoe0"
559 1.23 yamaguch atf_check -s exit:0 -x "$HIJACKING pppoectl -e shmif0 pppoe0"
560 1.22 yamaguch atf_check -s exit:0 rump.ifconfig pppoe0 up
561 1.22 yamaguch $DEBUG && rump.ifconfig
562 1.22 yamaguch wait_for_session_established
563 1.22 yamaguch unset RUMP_SERVER
564 1.22 yamaguch
565 1.22 yamaguch $DEBUG && dump_bus
566 1.22 yamaguch atf_check -s exit:0 -o match:'\[Service-Name\]' -e ignore \
567 1.22 yamaguch -x "${dumpcmd} | grep PADI"
568 1.22 yamaguch atf_check -s exit:0 -o match:'\[Service-Name\]' -e ignore \
569 1.22 yamaguch -x "${dumpcmd} | grep PADR"
570 1.23 yamaguch atf_check -s exit:0 -o not-match:'AC-Name' -e ignore \
571 1.23 yamaguch -x "${dumpcmd} | grep PADI"
572 1.23 yamaguch
573 1.23 yamaguch # store 0 length string in AC-NAME
574 1.23 yamaguch export RUMP_SERVER=$CLIENT
575 1.23 yamaguch atf_check -s exit:0 rump.ifconfig pppoe0 down
576 1.23 yamaguch wait_for_disconnected
577 1.23 yamaguch atf_check -s exit:0 -x "$HIJACKING pppoectl -a \"\" -e shmif0 pppoe0"
578 1.23 yamaguch atf_check -s exit:0 rump.ifconfig pppoe0 up
579 1.23 yamaguch $DEBUG && rump.ifconfig
580 1.23 yamaguch wait_for_session_established
581 1.23 yamaguch unset RUMP_SERVER
582 1.23 yamaguch
583 1.22 yamaguch atf_check -s exit:0 -o match:'\[AC-Name\]' -e ignore \
584 1.22 yamaguch -x "${dumpcmd} | grep PADI"
585 1.22 yamaguch
586 1.22 yamaguch # set Service Name (Service-Name, -s option)
587 1.22 yamaguch rump_server_destroy_ifaces
588 1.22 yamaguch rm ${BUS} 2> /dev/null
589 1.22 yamaguch setup_ifaces
590 1.22 yamaguch setup_auth_conf
591 1.22 yamaguch
592 1.22 yamaguch export RUMP_SERVER=$SERVER
593 1.22 yamaguch atf_check -s exit:0 -x "$HIJACKING pppoectl -e shmif0 pppoe0"
594 1.22 yamaguch atf_check -s exit:0 rump.ifconfig pppoe0 up
595 1.22 yamaguch unset RUMP_SERVER
596 1.22 yamaguch
597 1.22 yamaguch export RUMP_SERVER=$CLIENT
598 1.22 yamaguch atf_check -s exit:0 rump.ifconfig pppoe0 down
599 1.22 yamaguch wait_for_disconnected
600 1.22 yamaguch atf_check -s exit:0 -x "$HIJACKING pppoectl -e shmif0 -s SNAME-TEST0 pppoe0"
601 1.22 yamaguch atf_check -s exit:0 rump.ifconfig pppoe0 up
602 1.22 yamaguch $DEBUG && rump.ifconfig
603 1.22 yamaguch wait_for_session_established
604 1.22 yamaguch unset RUMP_SERVER
605 1.22 yamaguch
606 1.22 yamaguch $DEBUG && dump_bus
607 1.22 yamaguch atf_check -s exit:0 -o match:'\[Service-Name "SNAME-TEST0"\]' -e ignore \
608 1.22 yamaguch -x "${dumpcmd} | grep PADI"
609 1.22 yamaguch atf_check -s exit:0 -o match:'\[Service-Name "SNAME-TEST0"\]' -e ignore \
610 1.22 yamaguch -x "${dumpcmd} | grep PADR"
611 1.22 yamaguch atf_check -s exit:0 -o not-match:'AC-Name' -e ignore \
612 1.22 yamaguch -x "${dumpcmd} | grep PADI"
613 1.22 yamaguch
614 1.22 yamaguch # change Service-Name
615 1.22 yamaguch export RUMP_SERVER=$CLIENT
616 1.22 yamaguch atf_check -s exit:0 rump.ifconfig pppoe0 down
617 1.22 yamaguch wait_for_disconnected
618 1.22 yamaguch atf_check -s exit:0 -x "$HIJACKING pppoectl -e shmif0 -s SNAME-TEST1 pppoe0"
619 1.22 yamaguch atf_check -s exit:0 rump.ifconfig pppoe0 up
620 1.22 yamaguch $DEBUG && rump.ifconfig
621 1.22 yamaguch wait_for_session_established
622 1.22 yamaguch unset RUMP_SERVER
623 1.22 yamaguch
624 1.22 yamaguch $DEBUG && dump_bus
625 1.22 yamaguch atf_check -s exit:0 -o match:'\[Service-Name "SNAME-TEST1"\]' -e ignore \
626 1.22 yamaguch -x "${dumpcmd} | grep PADI"
627 1.22 yamaguch atf_check -s exit:0 -o match:'\[Service-Name "SNAME-TEST1"\]' -e ignore \
628 1.22 yamaguch -x "${dumpcmd} | grep PADR"
629 1.22 yamaguch
630 1.22 yamaguch # clear Service-Name
631 1.22 yamaguch rump_server_destroy_ifaces
632 1.22 yamaguch rm ${BUS} 2> /dev/null
633 1.22 yamaguch setup_ifaces
634 1.22 yamaguch setup_auth_conf
635 1.22 yamaguch
636 1.22 yamaguch export RUMP_SERVER=$SERVER
637 1.22 yamaguch atf_check -s exit:0 -x "$HIJACKING pppoectl -e shmif0 pppoe0"
638 1.22 yamaguch atf_check -s exit:0 rump.ifconfig pppoe0 up
639 1.22 yamaguch unset RUMP_SERVER
640 1.22 yamaguch
641 1.22 yamaguch export RUMP_SERVER=$CLIENT
642 1.22 yamaguch atf_check -s exit:0 rump.ifconfig pppoe0 down
643 1.22 yamaguch wait_for_disconnected
644 1.22 yamaguch atf_check -s exit:0 -x "$HIJACKING pppoectl -s SNAME-TEST2 -e shmif0 pppoe0"
645 1.23 yamaguch atf_check -s exit:0 -x "$HIJACKING pppoectl -e shmif0 pppoe0"
646 1.22 yamaguch atf_check -s exit:0 rump.ifconfig pppoe0 up
647 1.22 yamaguch $DEBUG && rump.ifconfig
648 1.22 yamaguch wait_for_session_established
649 1.22 yamaguch unset RUMP_SERVER
650 1.22 yamaguch
651 1.22 yamaguch $DEBUG && dump_bus
652 1.22 yamaguch atf_check -s exit:0 -o match:'\[Service-Name\]' -e ignore \
653 1.22 yamaguch -x "${dumpcmd} | grep PADI"
654 1.22 yamaguch atf_check -s exit:0 -o match:'\[Service-Name\]' -e ignore \
655 1.22 yamaguch -x "${dumpcmd} | grep PADR"
656 1.22 yamaguch atf_check -s exit:0 -o not-match:'AC-Name' -e ignore \
657 1.22 yamaguch -x "${dumpcmd} | grep PADI"
658 1.22 yamaguch
659 1.22 yamaguch # set AC-NAME and Service-Name
660 1.22 yamaguch rump_server_destroy_ifaces
661 1.22 yamaguch rm ${BUS} 2> /dev/null
662 1.22 yamaguch setup_ifaces
663 1.22 yamaguch setup_auth_conf
664 1.22 yamaguch
665 1.22 yamaguch export RUMP_SERVER=$SERVER
666 1.22 yamaguch atf_check -s exit:0 -x "$HIJACKING pppoectl -e shmif0 pppoe0"
667 1.22 yamaguch atf_check -s exit:0 rump.ifconfig pppoe0 up
668 1.22 yamaguch unset RUMP_SERVER
669 1.22 yamaguch
670 1.22 yamaguch export RUMP_SERVER=$CLIENT
671 1.22 yamaguch atf_check -s exit:0 rump.ifconfig pppoe0 down
672 1.22 yamaguch wait_for_disconnected
673 1.22 yamaguch atf_check -s exit:0 -x \
674 1.22 yamaguch "$HIJACKING pppoectl -e shmif0 -a ACNAME-TEST3 -s SNAME-TEST3 pppoe0"
675 1.22 yamaguch atf_check -s exit:0 rump.ifconfig pppoe0 up
676 1.22 yamaguch $DEBUG && rump.ifconfig
677 1.22 yamaguch wait_for_session_established
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.22 yamaguch atf_check -s exit:0 rump.ifconfig pppoe0 down
691 1.22 yamaguch wait_for_disconnected
692 1.22 yamaguch atf_check -s exit:0 -x \
693 1.22 yamaguch "$HIJACKING pppoectl -e shmif0 -a ACNAME-TEST4 pppoe0"
694 1.22 yamaguch atf_check -s exit:0 rump.ifconfig pppoe0 up
695 1.22 yamaguch $DEBUG && rump.ifconfig
696 1.22 yamaguch wait_for_session_established
697 1.22 yamaguch unset RUMP_SERVER
698 1.22 yamaguch
699 1.22 yamaguch $DEBUG && dump_bus
700 1.22 yamaguch atf_check -s exit:0 \
701 1.23 yamaguch -o match:'\[Service-Name\] \[AC-Name "ACNAME-TEST4"\]' \
702 1.22 yamaguch -e ignore \
703 1.22 yamaguch -x "${dumpcmd} | grep PADI"
704 1.23 yamaguch atf_check -s exit:0 -o match:'\[Service-Name\]' -e ignore \
705 1.22 yamaguch -x "${dumpcmd} | grep PADR"
706 1.22 yamaguch
707 1.22 yamaguch # change Service-Name
708 1.22 yamaguch export RUMP_SERVER=$CLIENT
709 1.22 yamaguch atf_check -s exit:0 rump.ifconfig pppoe0 down
710 1.22 yamaguch wait_for_disconnected
711 1.22 yamaguch atf_check -s exit:0 -x \
712 1.23 yamaguch "$HIJACKING pppoectl -e shmif0 -a ACNAME-TEST5 -s SNAME-TEST5 pppoe0"
713 1.23 yamaguch atf_check -s exit:0 -x \
714 1.23 yamaguch "$HIJACKING pppoectl -e shmif0 -s SNAME-TEST6 pppoe0"
715 1.22 yamaguch atf_check -s exit:0 rump.ifconfig pppoe0 up
716 1.22 yamaguch $DEBUG && rump.ifconfig
717 1.22 yamaguch wait_for_session_established
718 1.22 yamaguch unset RUMP_SERVER
719 1.22 yamaguch
720 1.22 yamaguch $DEBUG && dump_bus
721 1.22 yamaguch atf_check -s exit:0 \
722 1.23 yamaguch -o match:'\[Service-Name "SNAME-TEST6"\]' \
723 1.22 yamaguch -e ignore \
724 1.22 yamaguch -x "${dumpcmd} | grep PADI"
725 1.23 yamaguch atf_check -s exit:0 -o match:'\[Service-Name "SNAME-TEST6"\]' -e ignore \
726 1.22 yamaguch -x "${dumpcmd} | grep PADR"
727 1.23 yamaguch atf_check -s exit:0 -o not-match:'\[AC-Name "ACNAME-TEST5\]"' -e ignore \
728 1.23 yamaguch -x "${dumpcmd} | grep PADI"
729 1.22 yamaguch }
730 1.22 yamaguch
731 1.22 yamaguch pppoe_params_cleanup()
732 1.22 yamaguch {
733 1.22 yamaguch
734 1.22 yamaguch $DEBUG && dump
735 1.22 yamaguch cleanup
736 1.22 yamaguch }
737 1.1 ozaki atf_init_test_cases()
738 1.1 ozaki {
739 1.18 ozaki
740 1.18 ozaki atf_add_test_case pppoe_create_destroy
741 1.22 yamaguch atf_add_test_case pppoe_params
742 1.5 ozaki atf_add_test_case pppoe_pap
743 1.5 ozaki atf_add_test_case pppoe_chap
744 1.7 knakahar atf_add_test_case pppoe6_pap
745 1.7 knakahar atf_add_test_case pppoe6_chap
746 1.1 ozaki }
747