Home | History | Annotate | Line # | Download | only in if_vlan
t_vlan.sh revision 1.1.8.2
      1  1.1.8.2     snj #	$NetBSD: t_vlan.sh,v 1.1.8.2 2018/02/26 00:41:14 snj 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.1   ozaki BUS=bus
     29      1.1   ozaki SOCK_LOCAL=unix://commsock1
     30      1.1   ozaki SOCK_REMOTE=unix://commsock2
     31  1.1.8.1  martin IP_LOCAL0=10.0.0.1
     32  1.1.8.1  martin IP_LOCAL1=10.0.1.1
     33  1.1.8.1  martin IP_REMOTE0=10.0.0.2
     34  1.1.8.1  martin IP_REMOTE1=10.0.1.2
     35  1.1.8.1  martin IP6_LOCAL0=fc00:0::1
     36  1.1.8.1  martin IP6_LOCAL1=fc00:1::1
     37  1.1.8.1  martin IP6_REMOTE0=fc00:0::2
     38  1.1.8.1  martin IP6_REMOTE1=fc00:1::2
     39      1.1   ozaki 
     40      1.1   ozaki DEBUG=${DEBUG:-false}
     41      1.1   ozaki 
     42  1.1.8.1  martin vlan_create_destroy_body_common()
     43  1.1.8.1  martin {
     44  1.1.8.1  martin 	export RUMP_SERVER=${SOCK_LOCAL}
     45  1.1.8.1  martin 
     46  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan0 create
     47  1.1.8.2     snj 	atf_check -s exit:0 rump.ifconfig vlan0 destroy
     48  1.1.8.2     snj 
     49  1.1.8.2     snj 	atf_check -s exit:0 rump.ifconfig vlan0 create
     50  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan0 up
     51  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan0 down
     52  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan0 destroy
     53  1.1.8.1  martin 
     54  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig shmif0 create
     55  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan0 create
     56  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan0 vlan 1 vlanif shmif0
     57  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan0 up
     58  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan0 destroy
     59  1.1.8.1  martin 
     60  1.1.8.1  martin 	# more than one vlan interface with a same parent interface
     61  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig shmif1 create
     62  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan0 create
     63  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan0 vlan 10 vlanif shmif0
     64  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan1 create
     65  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan1 vlan 11 vlanif shmif0
     66  1.1.8.1  martin 
     67  1.1.8.1  martin 	# more than one interface with another parent interface
     68  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan2 create
     69  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan2 vlan 12 vlanif shmif1
     70  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan3 create
     71  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan3 vlan 13 vlanif shmif1
     72  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig shmif0 destroy
     73  1.1.8.1  martin 	atf_check -s exit:0 -o not-match:'shmif0' rump.ifconfig vlan0
     74  1.1.8.1  martin 	atf_check -s exit:0 -o not-match:'shmif0' rump.ifconfig vlan1
     75  1.1.8.1  martin 	atf_check -s exit:0 -o match:'shmif1' rump.ifconfig vlan2
     76  1.1.8.1  martin 	atf_check -s exit:0 -o match:'shmif1' rump.ifconfig vlan3
     77  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan0 destroy
     78  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan1 destroy
     79  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan2 destroy
     80  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan3 destroy
     81  1.1.8.1  martin 
     82  1.1.8.1  martin }
     83  1.1.8.1  martin 
     84      1.1   ozaki atf_test_case vlan_create_destroy cleanup
     85      1.1   ozaki vlan_create_destroy_head()
     86      1.1   ozaki {
     87      1.1   ozaki 
     88      1.1   ozaki 	atf_set "descr" "tests of creation and deletion of vlan interface"
     89      1.1   ozaki 	atf_set "require.progs" "rump_server"
     90      1.1   ozaki }
     91      1.1   ozaki 
     92      1.1   ozaki vlan_create_destroy_body()
     93      1.1   ozaki {
     94      1.1   ozaki 	rump_server_start $SOCK_LOCAL vlan
     95      1.1   ozaki 
     96  1.1.8.1  martin 	vlan_create_destroy_body_common
     97      1.1   ozaki }
     98      1.1   ozaki 
     99  1.1.8.1  martin 
    100      1.1   ozaki vlan_create_destroy_cleanup()
    101      1.1   ozaki {
    102      1.1   ozaki 
    103      1.1   ozaki 	$DEBUG && dump
    104      1.1   ozaki 	cleanup
    105      1.1   ozaki }
    106      1.1   ozaki 
    107  1.1.8.1  martin atf_test_case vlan_create_destroy6 cleanup
    108  1.1.8.1  martin vlan_create_destroy6_head()
    109      1.1   ozaki {
    110      1.1   ozaki 
    111  1.1.8.1  martin 	atf_set "descr" "tests of creation and deletion of vlan interface with IPv6"
    112      1.1   ozaki 	atf_set "require.progs" "rump_server"
    113      1.1   ozaki }
    114      1.1   ozaki 
    115  1.1.8.1  martin vlan_create_destroy6_body()
    116      1.1   ozaki {
    117      1.1   ozaki 
    118  1.1.8.1  martin 	rump_server_start $SOCK_LOCAL vlan netinet6
    119  1.1.8.1  martin 
    120  1.1.8.1  martin 	vlan_create_destroy_body_common
    121  1.1.8.1  martin }
    122  1.1.8.1  martin 
    123  1.1.8.1  martin vlan_create_destroy6_cleanup()
    124  1.1.8.1  martin {
    125  1.1.8.1  martin 
    126  1.1.8.1  martin 	$DEBUG && dump
    127  1.1.8.1  martin 	cleanup
    128  1.1.8.1  martin }
    129  1.1.8.1  martin 
    130  1.1.8.1  martin vlan_basic_body_common()
    131  1.1.8.1  martin {
    132  1.1.8.1  martin 	local outfile=./out
    133  1.1.8.1  martin 	local af=inet
    134  1.1.8.1  martin 	local prefix=24
    135  1.1.8.1  martin 	local local0=$IP_LOCAL0
    136  1.1.8.1  martin 	local remote0=$IP_REMOTE0
    137  1.1.8.1  martin 	local ping_cmd="rump.ping -n -w 1 -c 1"
    138  1.1.8.1  martin 
    139  1.1.8.1  martin 	if [ x"$1" = x"inet6" ]; then
    140  1.1.8.1  martin 		af="inet6"
    141  1.1.8.1  martin 		prefix=64
    142  1.1.8.1  martin 		local0=$IP6_LOCAL0
    143  1.1.8.1  martin 		remote0=$IP6_REMOTE0
    144  1.1.8.1  martin 		ping_cmd="rump.ping6 -n -c 1"
    145  1.1.8.1  martin 	fi
    146  1.1.8.1  martin 
    147      1.1   ozaki 	rump_server_add_iface $SOCK_LOCAL shmif0 $BUS
    148      1.1   ozaki 	rump_server_add_iface $SOCK_REMOTE shmif0 $BUS
    149      1.1   ozaki 
    150      1.1   ozaki 	export RUMP_SERVER=$SOCK_LOCAL
    151      1.1   ozaki 	atf_check -s exit:0 rump.ifconfig shmif0 up
    152      1.1   ozaki 	export RUMP_SERVER=$SOCK_REMOTE
    153      1.1   ozaki 	atf_check -s exit:0 rump.ifconfig shmif0 up
    154      1.1   ozaki 
    155      1.1   ozaki 	export RUMP_SERVER=$SOCK_LOCAL
    156      1.1   ozaki 	atf_check -s exit:0 rump.ifconfig vlan0 create
    157      1.1   ozaki 	atf_check -s exit:0 rump.ifconfig vlan0 vlan 10 vlanif shmif0
    158  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan0 $af $local0/$prefix
    159      1.1   ozaki 	atf_check -s exit:0 rump.ifconfig vlan0 up
    160      1.1   ozaki 	atf_check -s exit:0 rump.ifconfig -w 10
    161      1.1   ozaki 
    162      1.1   ozaki 	export RUMP_SERVER=$SOCK_REMOTE
    163      1.1   ozaki 	atf_check -s exit:0 rump.ifconfig vlan0 create
    164      1.1   ozaki 	atf_check -s exit:0 rump.ifconfig vlan0 vlan 10 vlanif shmif0
    165  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan0 $af $remote0/$prefix
    166      1.1   ozaki 	atf_check -s exit:0 rump.ifconfig vlan0 up
    167      1.1   ozaki 	atf_check -s exit:0 rump.ifconfig -w 10
    168      1.1   ozaki 
    169  1.1.8.1  martin 	extract_new_packets $BUS > $outfile
    170  1.1.8.1  martin 
    171  1.1.8.1  martin 	export RUMP_SERVER=$SOCK_LOCAL
    172  1.1.8.1  martin 	atf_check -s exit:0 -o ignore $ping_cmd $remote0
    173  1.1.8.1  martin 
    174  1.1.8.1  martin 	extract_new_packets $BUS > $outfile
    175  1.1.8.1  martin 	atf_check -s exit:0 -o match:'vlan 10' cat $outfile
    176  1.1.8.1  martin 
    177  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan0 -vlanif
    178  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan0 vlan 20 vlanif shmif0
    179  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan0 $af $local0/$prefix
    180  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan0 up
    181  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig -w 10
    182  1.1.8.1  martin 
    183  1.1.8.1  martin 	extract_new_packets $BUS > $outfile
    184  1.1.8.1  martin 	atf_check -s not-exit:0 -o ignore $ping_cmd $remote0
    185  1.1.8.1  martin 
    186  1.1.8.1  martin 	extract_new_packets $BUS > $outfile
    187  1.1.8.1  martin 	atf_check -s exit:0 -o match:'vlan 20' cat $outfile
    188  1.1.8.1  martin 
    189      1.1   ozaki 	export RUMP_SERVER=$SOCK_LOCAL
    190  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan0 -vlanif
    191  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan0 vlan 10 vlanif shmif0
    192  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan0 $af $local0/$prefix
    193  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan0 up
    194  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig -w 10
    195  1.1.8.1  martin 
    196  1.1.8.1  martin 	atf_check -s exit:0 -o ignore rump.ifconfig -z vlan0
    197  1.1.8.1  martin 	atf_check -s exit:0 -o ignore $ping_cmd $remote0
    198  1.1.8.1  martin 	rump.ifconfig -v vlan0 > $outfile
    199  1.1.8.1  martin 
    200  1.1.8.1  martin 	atf_check -s exit:0 -o not-match:' 0 packets' cat $outfile
    201  1.1.8.1  martin 	atf_check -s exit:0 -o not-match:' 0 bytes' cat $outfile
    202  1.1.8.1  martin }
    203  1.1.8.1  martin 
    204  1.1.8.1  martin atf_test_case vlan_basic cleanup
    205  1.1.8.1  martin vlan_basic_head()
    206  1.1.8.1  martin {
    207  1.1.8.1  martin 
    208  1.1.8.1  martin 	atf_set "descr" "tests of communications over vlan interfaces"
    209  1.1.8.1  martin 	atf_set "require.progs" "rump_server"
    210  1.1.8.1  martin }
    211  1.1.8.1  martin 
    212  1.1.8.1  martin vlan_basic_body()
    213  1.1.8.1  martin {
    214  1.1.8.1  martin 	rump_server_start $SOCK_LOCAL vlan
    215  1.1.8.1  martin 	rump_server_start $SOCK_REMOTE vlan
    216  1.1.8.1  martin 
    217  1.1.8.1  martin 	vlan_basic_body_common inet
    218  1.1.8.1  martin 
    219      1.1   ozaki }
    220      1.1   ozaki 
    221      1.1   ozaki vlan_basic_cleanup()
    222      1.1   ozaki {
    223      1.1   ozaki 
    224      1.1   ozaki 	$DEBUG && dump
    225      1.1   ozaki 	cleanup
    226      1.1   ozaki }
    227      1.1   ozaki 
    228  1.1.8.1  martin atf_test_case vlan_basic6 cleanup
    229  1.1.8.1  martin vlan_basic6_head()
    230  1.1.8.1  martin {
    231  1.1.8.1  martin 
    232  1.1.8.1  martin 	atf_set "descr" "tests of communications over vlan interfaces using IPv6"
    233  1.1.8.1  martin 	atf_set "require.progs" "rump_server"
    234  1.1.8.1  martin }
    235  1.1.8.1  martin 
    236  1.1.8.1  martin vlan_basic6_body()
    237  1.1.8.1  martin {
    238  1.1.8.1  martin 	rump_server_start $SOCK_LOCAL vlan netinet6
    239  1.1.8.1  martin 	rump_server_start $SOCK_REMOTE vlan netinet6
    240  1.1.8.1  martin 
    241  1.1.8.1  martin 	vlan_basic_body_common inet6
    242  1.1.8.1  martin }
    243  1.1.8.1  martin 
    244  1.1.8.1  martin vlan_basic6_cleanup()
    245  1.1.8.1  martin {
    246  1.1.8.1  martin 
    247  1.1.8.1  martin 	$DEBUG && dump
    248  1.1.8.1  martin 	cleanup
    249  1.1.8.1  martin }
    250  1.1.8.1  martin 
    251  1.1.8.1  martin vlanid_config_and_ping()
    252  1.1.8.1  martin {
    253  1.1.8.1  martin 	local vlanid=$1
    254  1.1.8.1  martin 	shift
    255  1.1.8.1  martin 
    256  1.1.8.1  martin 	export RUMP_SERVER=$SOCK_LOCAL
    257  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan0 vlan $vlanid vlanif shmif0
    258  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan0 $IP_LOCAL0/24
    259  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan0 up
    260  1.1.8.1  martin 
    261  1.1.8.1  martin 	export RUMP_SERVER=$SOCK_REMOTE
    262  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan0 vlan $vlanid vlanif shmif0
    263  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan0 $IP_REMOTE0/24
    264  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan0 up
    265  1.1.8.1  martin 
    266  1.1.8.1  martin 	export RUMP_SERVER=$SOCK_LOCAL
    267  1.1.8.1  martin 	atf_check -s exit:0 -o ignore rump.ping -n -w 1 -c 1 $IP_REMOTE0
    268  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan0 -vlanif
    269  1.1.8.1  martin 
    270  1.1.8.1  martin 	export RUMP_SERVER=$SOCK_REMOTE
    271  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan0 -vlanif
    272  1.1.8.1  martin }
    273  1.1.8.1  martin 
    274  1.1.8.1  martin vlanid_config_and_ping6()
    275  1.1.8.1  martin {
    276  1.1.8.1  martin 	local vlanid=$1
    277  1.1.8.1  martin 	shift
    278  1.1.8.1  martin 
    279  1.1.8.1  martin 	export RUMP_SERVER=$SOCK_LOCAL
    280  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan0 vlan $vlanid vlanif shmif0
    281  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan0 inet6 $IP6_LOCAL0/64
    282  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan0 up
    283  1.1.8.1  martin 
    284  1.1.8.1  martin 	export RUMP_SERVER=$SOCK_REMOTE
    285  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan0 vlan $vlanid vlanif shmif0
    286  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan0 inet6 $IP6_REMOTE0/64
    287  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan0 up
    288  1.1.8.1  martin 
    289  1.1.8.1  martin 	export RUMP_SERVER=$SOCK_LOCAL
    290  1.1.8.1  martin 	atf_check -s exit:0 -o ignore rump.ping6 -n -c 1 $IP6_REMOTE0
    291  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan0 -vlanif
    292  1.1.8.1  martin 
    293  1.1.8.1  martin 	export RUMP_SERVER=$SOCK_REMOTE
    294  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan0 -vlanif
    295  1.1.8.1  martin }
    296  1.1.8.1  martin 
    297  1.1.8.1  martin vlan_vlanid_body_common()
    298  1.1.8.1  martin {
    299  1.1.8.1  martin 	local af=inet
    300  1.1.8.1  martin 	local prefix=24
    301  1.1.8.1  martin 	local sysctl_param="net.inet.ip.dad_count=0"
    302  1.1.8.1  martin 	local ping_cmd="rump.ping -n -w 1 -c 1"
    303  1.1.8.1  martin 	local config_and_ping=vlanid_config_and_ping
    304  1.1.8.1  martin 	local local0=$IP_LOCAL0
    305  1.1.8.1  martin 	local local1=$IP_LOCAL1
    306  1.1.8.1  martin 	local remote0=$IP_REMOTE0
    307  1.1.8.1  martin 	local remote1=$IP_REMOTE1
    308  1.1.8.1  martin 
    309  1.1.8.1  martin 	if [ x"$1" = x"inet6" ]; then
    310  1.1.8.1  martin 		af=inet6
    311  1.1.8.1  martin 		prefix=64
    312  1.1.8.1  martin 		sysctl_param="net.inet6.ip6.dad_count=0"
    313  1.1.8.1  martin 		ping_cmd="rump.ping6 -n -c 1"
    314  1.1.8.1  martin 		config_and_ping=vlanid_config_and_ping6
    315  1.1.8.1  martin 		local0=$IP6_LOCAL0
    316  1.1.8.1  martin 		local1=$IP6_LOCAL1
    317  1.1.8.1  martin 		remote0=$IP6_REMOTE0
    318  1.1.8.1  martin 		remote1=$IP6_REMOTE1
    319  1.1.8.1  martin 	fi
    320  1.1.8.1  martin 
    321  1.1.8.1  martin 	rump_server_add_iface $SOCK_LOCAL shmif0 $BUS
    322  1.1.8.1  martin 	rump_server_add_iface $SOCK_REMOTE shmif0 $BUS
    323  1.1.8.1  martin 
    324  1.1.8.1  martin 	export RUMP_SERVER=$SOCK_LOCAL
    325  1.1.8.1  martin 	atf_check -s exit:0 -o ignore rump.sysctl -w $sysctl_param
    326  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig shmif0 up
    327  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan0 create
    328  1.1.8.1  martin 
    329  1.1.8.1  martin 	export RUMP_SERVER=$SOCK_REMOTE
    330  1.1.8.1  martin 	atf_check -s exit:0 -o ignore rump.sysctl -w $sysctl_param
    331  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig shmif0 up
    332  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan0 create
    333  1.1.8.1  martin 
    334  1.1.8.1  martin 	export RUMP_SERVER=$SOCK_LOCAL
    335  1.1.8.1  martin 	atf_check -s not-exit:0 -e ignore\
    336  1.1.8.1  martin 	    rump.ifconfig vlan0 vlan -1 vlanif shmif0
    337  1.1.8.1  martin 
    338  1.1.8.1  martin 	$config_and_ping 0 # reserved vlan id
    339  1.1.8.1  martin 	$config_and_ping 1
    340  1.1.8.1  martin 	$config_and_ping 4094
    341  1.1.8.1  martin 	$config_and_ping 4095 #reserved vlan id
    342  1.1.8.1  martin 
    343  1.1.8.1  martin 	export RUMP_SERVER=$SOCK_LOCAL
    344  1.1.8.1  martin 	atf_check -s not-exit:0 -e ignore \
    345  1.1.8.1  martin 	    rump.ifconfig vlan0 vlan 4096 vlanif shmif0
    346  1.1.8.1  martin 
    347  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan0 vlan 1 vlanif shmif0
    348  1.1.8.1  martin 	atf_check -s not-exit:0 -e ignore \
    349  1.1.8.1  martin 	    rump.ifconfig vlan0 vlan 2 vlanif shmif0
    350  1.1.8.1  martin 
    351  1.1.8.1  martin 	atf_check -s not-exit:0 -e ignore \
    352  1.1.8.1  martin 	    rump.ifconfig vlan0 vlan 1 vlanif shmif1
    353  1.1.8.1  martin 
    354  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan0 -vlanif
    355  1.1.8.1  martin 	atf_check -s not-exit:0 -e ignore \
    356  1.1.8.1  martin 	    rump.ifconfig vlan0 $local0/$prefix
    357  1.1.8.1  martin 
    358  1.1.8.1  martin 	export RUMP_SERVER=$SOCK_LOCAL
    359  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan0 vlan 10 vlanif shmif0
    360  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan0 $af $local0/$prefix
    361  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan0 up
    362  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan1 create
    363  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan1 vlan 11 vlanif shmif0
    364  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan1 $af $local1/$prefix
    365  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan1 up
    366  1.1.8.1  martin 
    367  1.1.8.1  martin 	export RUMP_SERVER=$SOCK_REMOTE
    368  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan0 -vlanif
    369  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan0 vlan 10 vlanif shmif0
    370  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan0 $af $remote0/$prefix
    371  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan0 up
    372  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan1 create
    373  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan1 vlan 11 vlanif shmif0
    374  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan1 $af $remote1/$prefix
    375  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan1 up
    376  1.1.8.1  martin 
    377  1.1.8.1  martin 	export RUMP_SERVER=$SOCK_LOCAL
    378  1.1.8.1  martin 	atf_check -s exit:0 -o ignore $ping_cmd $remote0
    379  1.1.8.1  martin 	atf_check -s exit:0 -o ignore $ping_cmd $remote1
    380  1.1.8.1  martin }
    381  1.1.8.1  martin 
    382  1.1.8.1  martin atf_test_case vlan_vlanid cleanup
    383  1.1.8.1  martin vlan_vlanid_head()
    384  1.1.8.1  martin {
    385  1.1.8.1  martin 
    386  1.1.8.1  martin 	atf_set "descr" "tests of configuration for vlan id"
    387  1.1.8.1  martin 	atf_set "require.progs" "rump_server"
    388  1.1.8.1  martin }
    389  1.1.8.1  martin 
    390  1.1.8.1  martin vlan_vlanid_body()
    391  1.1.8.1  martin {
    392  1.1.8.1  martin 	rump_server_start $SOCK_LOCAL vlan
    393  1.1.8.1  martin 	rump_server_start $SOCK_REMOTE vlan
    394  1.1.8.1  martin 
    395  1.1.8.1  martin 	vlan_vlanid_body_common inet
    396  1.1.8.1  martin }
    397  1.1.8.1  martin 
    398  1.1.8.1  martin vlan_vlanid_cleanup()
    399  1.1.8.1  martin {
    400  1.1.8.1  martin 
    401  1.1.8.1  martin 	$DEBUG && dump
    402  1.1.8.1  martin 	cleanup
    403  1.1.8.1  martin }
    404  1.1.8.1  martin 
    405  1.1.8.1  martin atf_test_case vlan_vlanid6 cleanup
    406  1.1.8.1  martin vlan_vlanid6_head()
    407  1.1.8.1  martin {
    408  1.1.8.1  martin 
    409  1.1.8.1  martin 	atf_set "descr" "tests of configuration for vlan id using IPv6"
    410  1.1.8.1  martin 	atf_set "require.progs" "rump_server"
    411  1.1.8.1  martin }
    412  1.1.8.1  martin 
    413  1.1.8.1  martin 
    414  1.1.8.1  martin vlan_vlanid6_body()
    415  1.1.8.1  martin {
    416  1.1.8.1  martin 	rump_server_start $SOCK_LOCAL vlan netinet6
    417  1.1.8.1  martin 	rump_server_start $SOCK_REMOTE vlan netinet6
    418  1.1.8.1  martin 
    419  1.1.8.1  martin 	vlan_vlanid_body_common inet6
    420  1.1.8.1  martin }
    421  1.1.8.1  martin 
    422  1.1.8.1  martin vlan_vlanid6_cleanup()
    423  1.1.8.1  martin {
    424  1.1.8.1  martin 
    425  1.1.8.1  martin 	$DEBUG && dump
    426  1.1.8.1  martin 	cleanup
    427  1.1.8.1  martin }
    428  1.1.8.1  martin 
    429  1.1.8.1  martin vlan_configs_body_common()
    430  1.1.8.1  martin {
    431  1.1.8.1  martin 	export RUMP_SERVER=${SOCK_LOCAL}
    432  1.1.8.1  martin 
    433  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig shmif0 create
    434  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig shmif1 create
    435  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan0 create
    436  1.1.8.1  martin 
    437  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan0 vlan 10 vlanif shmif0
    438  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan0 -vlanif
    439  1.1.8.1  martin 
    440  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan0 vlan 10 vlanif shmif0
    441  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan0 -vlanif shmif0
    442  1.1.8.1  martin 
    443  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan0 vlan 10 vlanif shmif0
    444  1.1.8.1  martin 	atf_check -s exit:0 -e ignore rump.ifconfig vlan0 -vlanif shmif1
    445  1.1.8.1  martin 	atf_check -s exit:0 -e ignore rump.ifconfig vlan0 -vlanif shmif2
    446  1.1.8.1  martin 
    447  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan0 -vlanif
    448  1.1.8.1  martin 
    449  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan0 vlan 10 vlanif shmif0
    450  1.1.8.1  martin 	atf_check -s exit:0 -e match:'Invalid argument' \
    451  1.1.8.1  martin 	    rump.ifconfig vlan0 mtu 1497
    452  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan0 mtu 1496
    453  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan0 mtu 42
    454  1.1.8.1  martin 	atf_check -s exit:0 -e match:'Invalid argument' \
    455  1.1.8.1  martin 	    rump.ifconfig vlan0 mtu 41
    456  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan0 -vlanif
    457  1.1.8.1  martin 
    458  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan1 create
    459  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan0 vlan 10 vlanif shmif0
    460  1.1.8.1  martin 	atf_check -s not-exit:0 -e match:'File exists' \
    461  1.1.8.1  martin 	    rump.ifconfig vlan1 vlan 10 vlanif shmif0
    462  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan1 vlan 10 vlanif shmif1
    463  1.1.8.1  martin 
    464  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan1 -vlanif shmif1
    465  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan1 vlan 10 vlanif shmif1
    466  1.1.8.1  martin 
    467  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan0 -vlanif shmif0
    468  1.1.8.1  martin 	atf_check -s exit:0 rump.ifconfig vlan0 vlan 10 vlanif shmif0
    469  1.1.8.1  martin }
    470  1.1.8.1  martin 
    471  1.1.8.1  martin atf_test_case vlan_configs cleanup
    472  1.1.8.1  martin vlan_configs_head()
    473  1.1.8.1  martin {
    474  1.1.8.1  martin 	atf_set "descr" "tests of configuration except vlan id"
    475  1.1.8.1  martin 	atf_set "require.progs" "rump_server"
    476  1.1.8.1  martin }
    477  1.1.8.1  martin 
    478  1.1.8.1  martin vlan_configs_body()
    479  1.1.8.1  martin {
    480  1.1.8.1  martin 
    481  1.1.8.1  martin 	rump_server_start $SOCK_LOCAL vlan
    482  1.1.8.1  martin 
    483  1.1.8.1  martin 	vlan_configs_body_common
    484  1.1.8.1  martin 
    485  1.1.8.1  martin }
    486  1.1.8.1  martin 
    487  1.1.8.1  martin vlan_configs_cleanup()
    488  1.1.8.1  martin {
    489  1.1.8.1  martin 
    490  1.1.8.1  martin 	$DEBUG && dump
    491  1.1.8.1  martin 	cleanup
    492  1.1.8.1  martin }
    493  1.1.8.1  martin 
    494  1.1.8.1  martin atf_test_case vlan_configs6 cleanup
    495  1.1.8.1  martin vlan_configs6_head()
    496  1.1.8.1  martin {
    497  1.1.8.1  martin 	atf_set "descr" "tests of configuration except vlan id using IPv6"
    498  1.1.8.1  martin 	atf_set "require.progs" "rump_server"
    499  1.1.8.1  martin }
    500  1.1.8.1  martin 
    501  1.1.8.1  martin vlan_configs6_body()
    502  1.1.8.1  martin {
    503  1.1.8.1  martin 	rump_server_start $SOCK_LOCAL vlan netinet6
    504  1.1.8.1  martin 
    505  1.1.8.1  martin 	vlan_configs_body_common
    506  1.1.8.1  martin }
    507  1.1.8.1  martin 
    508  1.1.8.1  martin vlan_configs6_cleanup()
    509  1.1.8.1  martin {
    510  1.1.8.1  martin 	$DEBUG && dump
    511  1.1.8.1  martin 	cleanup
    512  1.1.8.1  martin }
    513  1.1.8.1  martin 
    514      1.1   ozaki atf_init_test_cases()
    515      1.1   ozaki {
    516      1.1   ozaki 
    517      1.1   ozaki 	atf_add_test_case vlan_create_destroy
    518      1.1   ozaki 	atf_add_test_case vlan_basic
    519  1.1.8.1  martin 	atf_add_test_case vlan_vlanid
    520  1.1.8.1  martin 	atf_add_test_case vlan_configs
    521  1.1.8.1  martin 
    522  1.1.8.1  martin 	atf_add_test_case vlan_create_destroy6
    523  1.1.8.1  martin 	atf_add_test_case vlan_basic6
    524  1.1.8.1  martin 	atf_add_test_case vlan_vlanid6
    525  1.1.8.1  martin 	atf_add_test_case vlan_configs6
    526      1.1   ozaki }
    527