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