1*fdf86df7SPouria Mousavizadeh Tehrani# 2*fdf86df7SPouria Mousavizadeh Tehrani# Copyright (c) 2026 Pouria Mousavizadeh Tehrani <pouria@FreeBSD.org> 3*fdf86df7SPouria Mousavizadeh Tehrani# 4*fdf86df7SPouria Mousavizadeh Tehrani# SPDX-License-Identifier: BSD-2-Clause 5*fdf86df7SPouria Mousavizadeh Tehrani# 6*fdf86df7SPouria Mousavizadeh Tehrani 7*fdf86df7SPouria Mousavizadeh Tehrani. $(atf_get_srcdir)/../common/vnet.subr 8*fdf86df7SPouria Mousavizadeh Tehrani 9*fdf86df7SPouria Mousavizadeh Tehraniatf_test_case "gre4_basic" "cleanup" 10*fdf86df7SPouria Mousavizadeh Tehranigre4_basic_head() 11*fdf86df7SPouria Mousavizadeh Tehrani{ 12*fdf86df7SPouria Mousavizadeh Tehrani atf_set descr 'Create a gre(4) tunnel over ipv4 underlay' 13*fdf86df7SPouria Mousavizadeh Tehrani atf_set require.user root 14*fdf86df7SPouria Mousavizadeh Tehrani atf_set require.kmods if_gre 15*fdf86df7SPouria Mousavizadeh Tehrani} 16*fdf86df7SPouria Mousavizadeh Tehranigre4_basic_body() 17*fdf86df7SPouria Mousavizadeh Tehrani{ 18*fdf86df7SPouria Mousavizadeh Tehrani local epair endpoint1 endpoint2 19*fdf86df7SPouria Mousavizadeh Tehrani local v4tunnel1 v4tunnel2 v6tunnel1 v6tunnel2 20*fdf86df7SPouria Mousavizadeh Tehrani 21*fdf86df7SPouria Mousavizadeh Tehrani endpoint1=192.168.2.1 22*fdf86df7SPouria Mousavizadeh Tehrani endpoint2=192.168.2.2 23*fdf86df7SPouria Mousavizadeh Tehrani v4tunnel1=169.254.0.1 24*fdf86df7SPouria Mousavizadeh Tehrani v4tunnel2=169.254.0.2 25*fdf86df7SPouria Mousavizadeh Tehrani v6tunnel1=2001:db8::1 26*fdf86df7SPouria Mousavizadeh Tehrani v6tunnel2=2001:db8::2 27*fdf86df7SPouria Mousavizadeh Tehrani 28*fdf86df7SPouria Mousavizadeh Tehrani vnet_init 29*fdf86df7SPouria Mousavizadeh Tehrani epair=$(vnet_mkepair) 30*fdf86df7SPouria Mousavizadeh Tehrani vnet_mkjail gretest1 ${epair}a 31*fdf86df7SPouria Mousavizadeh Tehrani vnet_mkjail gretest2 ${epair}b 32*fdf86df7SPouria Mousavizadeh Tehrani 33*fdf86df7SPouria Mousavizadeh Tehrani ifconfig -j gretest1 ${epair}a inet ${endpoint1}/30 up 34*fdf86df7SPouria Mousavizadeh Tehrani ifconfig -j gretest2 ${epair}b inet ${endpoint2}/30 up 35*fdf86df7SPouria Mousavizadeh Tehrani 36*fdf86df7SPouria Mousavizadeh Tehrani # Sanity check 37*fdf86df7SPouria Mousavizadeh Tehrani atf_check -o ignore \ 38*fdf86df7SPouria Mousavizadeh Tehrani jexec gretest1 ping -c 1 -t 3 ${endpoint2} 39*fdf86df7SPouria Mousavizadeh Tehrani atf_check -o ignore \ 40*fdf86df7SPouria Mousavizadeh Tehrani jexec gretest2 ping -c 1 -t 3 ${endpoint1} 41*fdf86df7SPouria Mousavizadeh Tehrani 42*fdf86df7SPouria Mousavizadeh Tehrani atf_check ifconfig -j gretest1 gre1 create \ 43*fdf86df7SPouria Mousavizadeh Tehrani inet tunnel ${endpoint1} ${endpoint2} up 44*fdf86df7SPouria Mousavizadeh Tehrani atf_check ifconfig -j gretest2 gre1 create \ 45*fdf86df7SPouria Mousavizadeh Tehrani inet tunnel ${endpoint2} ${endpoint1} up 46*fdf86df7SPouria Mousavizadeh Tehrani 47*fdf86df7SPouria Mousavizadeh Tehrani atf_check ifconfig -j gretest1 gre1 inet ${v4tunnel1} ${v4tunnel2} 48*fdf86df7SPouria Mousavizadeh Tehrani atf_check ifconfig -j gretest1 gre1 inet6 ${v6tunnel1} 49*fdf86df7SPouria Mousavizadeh Tehrani atf_check ifconfig -j gretest2 gre1 inet ${v4tunnel2} ${v4tunnel1} 50*fdf86df7SPouria Mousavizadeh Tehrani atf_check ifconfig -j gretest2 gre1 inet6 ${v6tunnel2} 51*fdf86df7SPouria Mousavizadeh Tehrani 52*fdf86df7SPouria Mousavizadeh Tehrani # Tunnel test 53*fdf86df7SPouria Mousavizadeh Tehrani atf_check -o ignore jexec gretest1 ping -nc 1 -t 1 $v4tunnel2 54*fdf86df7SPouria Mousavizadeh Tehrani atf_check -o ignore jexec gretest2 ping -nc 1 -t 1 $v4tunnel1 55*fdf86df7SPouria Mousavizadeh Tehrani atf_check -o ignore jexec gretest1 ping -nc 1 -t 1 $v6tunnel2 56*fdf86df7SPouria Mousavizadeh Tehrani atf_check -o ignore jexec gretest2 ping -nc 1 -t 1 $v6tunnel1 57*fdf86df7SPouria Mousavizadeh Tehrani} 58*fdf86df7SPouria Mousavizadeh Tehranigre4_basic_cleanup() 59*fdf86df7SPouria Mousavizadeh Tehrani{ 60*fdf86df7SPouria Mousavizadeh Tehrani vnet_cleanup 61*fdf86df7SPouria Mousavizadeh Tehrani} 62*fdf86df7SPouria Mousavizadeh Tehrani 63*fdf86df7SPouria Mousavizadeh Tehraniatf_test_case "gre6_basic" "cleanup" 64*fdf86df7SPouria Mousavizadeh Tehranigre6_basic_head() 65*fdf86df7SPouria Mousavizadeh Tehrani{ 66*fdf86df7SPouria Mousavizadeh Tehrani atf_set descr 'Create a gre(4) tunnel over ipv6 underlay' 67*fdf86df7SPouria Mousavizadeh Tehrani atf_set require.user root 68*fdf86df7SPouria Mousavizadeh Tehrani atf_set require.kmods if_gre 69*fdf86df7SPouria Mousavizadeh Tehrani} 70*fdf86df7SPouria Mousavizadeh Tehranigre6_basic_body() 71*fdf86df7SPouria Mousavizadeh Tehrani{ 72*fdf86df7SPouria Mousavizadeh Tehrani local epair endpoint1 endpoint2 73*fdf86df7SPouria Mousavizadeh Tehrani local v4tunnel1 v4tunnel2 v6tunnel1 v6tunnel2 74*fdf86df7SPouria Mousavizadeh Tehrani 75*fdf86df7SPouria Mousavizadeh Tehrani endpoint1=3fff::1 76*fdf86df7SPouria Mousavizadeh Tehrani endpoint2=3fff::2 77*fdf86df7SPouria Mousavizadeh Tehrani v4tunnel1=169.254.0.1 78*fdf86df7SPouria Mousavizadeh Tehrani v4tunnel2=169.254.0.2 79*fdf86df7SPouria Mousavizadeh Tehrani v6tunnel1=2001:db8::1 80*fdf86df7SPouria Mousavizadeh Tehrani v6tunnel2=2001:db8::2 81*fdf86df7SPouria Mousavizadeh Tehrani 82*fdf86df7SPouria Mousavizadeh Tehrani vnet_init 83*fdf86df7SPouria Mousavizadeh Tehrani epair=$(vnet_mkepair) 84*fdf86df7SPouria Mousavizadeh Tehrani vnet_mkjail gretest1 ${epair}a 85*fdf86df7SPouria Mousavizadeh Tehrani vnet_mkjail gretest2 ${epair}b 86*fdf86df7SPouria Mousavizadeh Tehrani 87*fdf86df7SPouria Mousavizadeh Tehrani ifconfig -j gretest1 ${epair}a inet6 ${endpoint1} up 88*fdf86df7SPouria Mousavizadeh Tehrani ifconfig -j gretest2 ${epair}b inet6 ${endpoint2} up 89*fdf86df7SPouria Mousavizadeh Tehrani 90*fdf86df7SPouria Mousavizadeh Tehrani # Sanity check 91*fdf86df7SPouria Mousavizadeh Tehrani atf_check -o ignore \ 92*fdf86df7SPouria Mousavizadeh Tehrani jexec gretest1 ping -c 1 -t 3 ${endpoint2} 93*fdf86df7SPouria Mousavizadeh Tehrani atf_check -o ignore \ 94*fdf86df7SPouria Mousavizadeh Tehrani jexec gretest2 ping -c 1 -t 3 ${endpoint1} 95*fdf86df7SPouria Mousavizadeh Tehrani 96*fdf86df7SPouria Mousavizadeh Tehrani atf_check ifconfig -j gretest1 gre1 create \ 97*fdf86df7SPouria Mousavizadeh Tehrani inet6 tunnel ${endpoint1} ${endpoint2} up 98*fdf86df7SPouria Mousavizadeh Tehrani atf_check ifconfig -j gretest2 gre1 create \ 99*fdf86df7SPouria Mousavizadeh Tehrani inet6 tunnel ${endpoint2} ${endpoint1} up 100*fdf86df7SPouria Mousavizadeh Tehrani 101*fdf86df7SPouria Mousavizadeh Tehrani atf_check ifconfig -j gretest1 gre1 inet ${v4tunnel1} ${v4tunnel2} 102*fdf86df7SPouria Mousavizadeh Tehrani atf_check ifconfig -j gretest1 gre1 inet6 ${v6tunnel1} 103*fdf86df7SPouria Mousavizadeh Tehrani atf_check ifconfig -j gretest2 gre1 inet ${v4tunnel2} ${v4tunnel1} 104*fdf86df7SPouria Mousavizadeh Tehrani atf_check ifconfig -j gretest2 gre1 inet6 ${v6tunnel2} 105*fdf86df7SPouria Mousavizadeh Tehrani 106*fdf86df7SPouria Mousavizadeh Tehrani # Tunnel test 107*fdf86df7SPouria Mousavizadeh Tehrani atf_check -o ignore jexec gretest1 ping -nc 1 -t 1 $v4tunnel2 108*fdf86df7SPouria Mousavizadeh Tehrani atf_check -o ignore jexec gretest2 ping -nc 1 -t 1 $v4tunnel1 109*fdf86df7SPouria Mousavizadeh Tehrani atf_check -o ignore jexec gretest1 ping -nc 1 -t 1 $v6tunnel2 110*fdf86df7SPouria Mousavizadeh Tehrani atf_check -o ignore jexec gretest2 ping -nc 1 -t 1 $v6tunnel1 111*fdf86df7SPouria Mousavizadeh Tehrani} 112*fdf86df7SPouria Mousavizadeh Tehranigre6_basic_cleanup() 113*fdf86df7SPouria Mousavizadeh Tehrani{ 114*fdf86df7SPouria Mousavizadeh Tehrani vnet_cleanup 115*fdf86df7SPouria Mousavizadeh Tehrani} 116*fdf86df7SPouria Mousavizadeh Tehrani 117*fdf86df7SPouria Mousavizadeh Tehraniatf_test_case "gre6_csum" "cleanup" 118*fdf86df7SPouria Mousavizadeh Tehranigre6_csum_head() 119*fdf86df7SPouria Mousavizadeh Tehrani{ 120*fdf86df7SPouria Mousavizadeh Tehrani atf_set descr 'Create a gre(4) tunnel over ipv6 underlay with checksum option' 121*fdf86df7SPouria Mousavizadeh Tehrani atf_set require.user root 122*fdf86df7SPouria Mousavizadeh Tehrani atf_set require.kmods if_gre 123*fdf86df7SPouria Mousavizadeh Tehrani} 124*fdf86df7SPouria Mousavizadeh Tehranigre6_csum_body() 125*fdf86df7SPouria Mousavizadeh Tehrani{ 126*fdf86df7SPouria Mousavizadeh Tehrani local epair endpoint1 endpoint2 127*fdf86df7SPouria Mousavizadeh Tehrani local v4tunnel1 v4tunnel2 v6tunnel1 v6tunnel2 128*fdf86df7SPouria Mousavizadeh Tehrani 129*fdf86df7SPouria Mousavizadeh Tehrani endpoint1=3fff::1 130*fdf86df7SPouria Mousavizadeh Tehrani endpoint2=3fff::2 131*fdf86df7SPouria Mousavizadeh Tehrani v4tunnel1=169.254.0.1 132*fdf86df7SPouria Mousavizadeh Tehrani v4tunnel2=169.254.0.2 133*fdf86df7SPouria Mousavizadeh Tehrani v6tunnel1=2001:db8::1 134*fdf86df7SPouria Mousavizadeh Tehrani v6tunnel2=2001:db8::2 135*fdf86df7SPouria Mousavizadeh Tehrani 136*fdf86df7SPouria Mousavizadeh Tehrani vnet_init 137*fdf86df7SPouria Mousavizadeh Tehrani epair=$(vnet_mkepair) 138*fdf86df7SPouria Mousavizadeh Tehrani vnet_mkjail gretest1 ${epair}a 139*fdf86df7SPouria Mousavizadeh Tehrani vnet_mkjail gretest2 ${epair}b 140*fdf86df7SPouria Mousavizadeh Tehrani 141*fdf86df7SPouria Mousavizadeh Tehrani ifconfig -j gretest1 ${epair}a inet6 ${endpoint1} up 142*fdf86df7SPouria Mousavizadeh Tehrani ifconfig -j gretest2 ${epair}b inet6 ${endpoint2} up 143*fdf86df7SPouria Mousavizadeh Tehrani 144*fdf86df7SPouria Mousavizadeh Tehrani # Sanity check 145*fdf86df7SPouria Mousavizadeh Tehrani atf_check -o ignore \ 146*fdf86df7SPouria Mousavizadeh Tehrani jexec gretest1 ping -c 1 -t 3 ${endpoint2} 147*fdf86df7SPouria Mousavizadeh Tehrani atf_check -o ignore \ 148*fdf86df7SPouria Mousavizadeh Tehrani jexec gretest2 ping -c 1 -t 3 ${endpoint1} 149*fdf86df7SPouria Mousavizadeh Tehrani 150*fdf86df7SPouria Mousavizadeh Tehrani atf_check ifconfig -j gretest1 gre1 create \ 151*fdf86df7SPouria Mousavizadeh Tehrani inet6 tunnel ${endpoint1} ${endpoint2} enable_csum up 152*fdf86df7SPouria Mousavizadeh Tehrani atf_check ifconfig -j gretest2 gre1 create \ 153*fdf86df7SPouria Mousavizadeh Tehrani inet6 tunnel ${endpoint2} ${endpoint1} enable_csum up 154*fdf86df7SPouria Mousavizadeh Tehrani 155*fdf86df7SPouria Mousavizadeh Tehrani atf_check ifconfig -j gretest1 gre1 inet ${v4tunnel1} ${v4tunnel2} 156*fdf86df7SPouria Mousavizadeh Tehrani atf_check ifconfig -j gretest1 gre1 inet6 ${v6tunnel1} 157*fdf86df7SPouria Mousavizadeh Tehrani atf_check ifconfig -j gretest2 gre1 inet ${v4tunnel2} ${v4tunnel1} 158*fdf86df7SPouria Mousavizadeh Tehrani atf_check ifconfig -j gretest2 gre1 inet6 ${v6tunnel2} 159*fdf86df7SPouria Mousavizadeh Tehrani 160*fdf86df7SPouria Mousavizadeh Tehrani # ifconfig test 161*fdf86df7SPouria Mousavizadeh Tehrani atf_check -o match:"ENABLE_CSUM" ifconfig -j gretest1 gre1 162*fdf86df7SPouria Mousavizadeh Tehrani atf_check -o match:"ENABLE_CSUM" ifconfig -j gretest2 gre1 163*fdf86df7SPouria Mousavizadeh Tehrani 164*fdf86df7SPouria Mousavizadeh Tehrani # Tunnel test 165*fdf86df7SPouria Mousavizadeh Tehrani atf_check -o ignore jexec gretest1 ping -nc 1 -t 1 $v4tunnel2 166*fdf86df7SPouria Mousavizadeh Tehrani atf_check -o ignore jexec gretest2 ping -nc 1 -t 1 $v4tunnel1 167*fdf86df7SPouria Mousavizadeh Tehrani atf_check -o ignore jexec gretest1 ping -nc 1 -t 1 $v6tunnel2 168*fdf86df7SPouria Mousavizadeh Tehrani atf_check -o ignore jexec gretest2 ping -nc 1 -t 1 $v6tunnel1 169*fdf86df7SPouria Mousavizadeh Tehrani} 170*fdf86df7SPouria Mousavizadeh Tehranigre6_csum_cleanup() 171*fdf86df7SPouria Mousavizadeh Tehrani{ 172*fdf86df7SPouria Mousavizadeh Tehrani vnet_cleanup 173*fdf86df7SPouria Mousavizadeh Tehrani} 174*fdf86df7SPouria Mousavizadeh Tehrani 175*fdf86df7SPouria Mousavizadeh Tehraniatf_test_case "gre6_key" "cleanup" 176*fdf86df7SPouria Mousavizadeh Tehranigre6_key_head() 177*fdf86df7SPouria Mousavizadeh Tehrani{ 178*fdf86df7SPouria Mousavizadeh Tehrani atf_set descr 'Create a gre(4) tunnel over ipv6 underlay with gre key option' 179*fdf86df7SPouria Mousavizadeh Tehrani atf_set require.user root 180*fdf86df7SPouria Mousavizadeh Tehrani atf_set require.kmods if_gre 181*fdf86df7SPouria Mousavizadeh Tehrani} 182*fdf86df7SPouria Mousavizadeh Tehranigre6_key_body() 183*fdf86df7SPouria Mousavizadeh Tehrani{ 184*fdf86df7SPouria Mousavizadeh Tehrani local epair endpoint1 endpoint2 185*fdf86df7SPouria Mousavizadeh Tehrani local v4tunnel1 v4tunnel2 v6tunnel1 v6tunnel2 186*fdf86df7SPouria Mousavizadeh Tehrani 187*fdf86df7SPouria Mousavizadeh Tehrani endpoint1=3fff::1 188*fdf86df7SPouria Mousavizadeh Tehrani endpoint2=3fff::2 189*fdf86df7SPouria Mousavizadeh Tehrani v4tunnel1=169.254.0.1 190*fdf86df7SPouria Mousavizadeh Tehrani v4tunnel2=169.254.0.2 191*fdf86df7SPouria Mousavizadeh Tehrani v6tunnel1=2001:db8::1 192*fdf86df7SPouria Mousavizadeh Tehrani v6tunnel2=2001:db8::2 193*fdf86df7SPouria Mousavizadeh Tehrani 194*fdf86df7SPouria Mousavizadeh Tehrani vnet_init 195*fdf86df7SPouria Mousavizadeh Tehrani epair=$(vnet_mkepair) 196*fdf86df7SPouria Mousavizadeh Tehrani vnet_mkjail gretest1 ${epair}a 197*fdf86df7SPouria Mousavizadeh Tehrani vnet_mkjail gretest2 ${epair}b 198*fdf86df7SPouria Mousavizadeh Tehrani 199*fdf86df7SPouria Mousavizadeh Tehrani ifconfig -j gretest1 ${epair}a inet6 ${endpoint1} up 200*fdf86df7SPouria Mousavizadeh Tehrani ifconfig -j gretest2 ${epair}b inet6 ${endpoint2} up 201*fdf86df7SPouria Mousavizadeh Tehrani 202*fdf86df7SPouria Mousavizadeh Tehrani # Sanity check 203*fdf86df7SPouria Mousavizadeh Tehrani atf_check -o ignore \ 204*fdf86df7SPouria Mousavizadeh Tehrani jexec gretest1 ping -c 1 -t 3 ${endpoint2} 205*fdf86df7SPouria Mousavizadeh Tehrani atf_check -o ignore \ 206*fdf86df7SPouria Mousavizadeh Tehrani jexec gretest2 ping -c 1 -t 3 ${endpoint1} 207*fdf86df7SPouria Mousavizadeh Tehrani 208*fdf86df7SPouria Mousavizadeh Tehrani atf_check ifconfig -j gretest1 gre1 create \ 209*fdf86df7SPouria Mousavizadeh Tehrani inet6 tunnel ${endpoint1} ${endpoint2} grekey 10 up 210*fdf86df7SPouria Mousavizadeh Tehrani atf_check ifconfig -j gretest2 gre1 create \ 211*fdf86df7SPouria Mousavizadeh Tehrani inet6 tunnel ${endpoint2} ${endpoint1} grekey 10 up 212*fdf86df7SPouria Mousavizadeh Tehrani 213*fdf86df7SPouria Mousavizadeh Tehrani atf_check ifconfig -j gretest1 gre1 inet ${v4tunnel1} ${v4tunnel2} 214*fdf86df7SPouria Mousavizadeh Tehrani atf_check ifconfig -j gretest1 gre1 inet6 ${v6tunnel1} 215*fdf86df7SPouria Mousavizadeh Tehrani atf_check ifconfig -j gretest2 gre1 inet ${v4tunnel2} ${v4tunnel1} 216*fdf86df7SPouria Mousavizadeh Tehrani atf_check ifconfig -j gretest2 gre1 inet6 ${v6tunnel2} 217*fdf86df7SPouria Mousavizadeh Tehrani 218*fdf86df7SPouria Mousavizadeh Tehrani # ifconfig test 219*fdf86df7SPouria Mousavizadeh Tehrani atf_check -o match:"grekey: 0xa \(10\)" ifconfig -j gretest1 gre1 220*fdf86df7SPouria Mousavizadeh Tehrani atf_check -o match:"grekey: 0xa \(10\)" ifconfig -j gretest2 gre1 221*fdf86df7SPouria Mousavizadeh Tehrani 222*fdf86df7SPouria Mousavizadeh Tehrani # Tunnel test 223*fdf86df7SPouria Mousavizadeh Tehrani atf_check -o ignore jexec gretest1 ping -nc 1 -t 1 $v4tunnel2 224*fdf86df7SPouria Mousavizadeh Tehrani atf_check -o ignore jexec gretest2 ping -nc 1 -t 1 $v4tunnel1 225*fdf86df7SPouria Mousavizadeh Tehrani atf_check -o ignore jexec gretest1 ping -nc 1 -t 1 $v6tunnel2 226*fdf86df7SPouria Mousavizadeh Tehrani atf_check -o ignore jexec gretest2 ping -nc 1 -t 1 $v6tunnel1 227*fdf86df7SPouria Mousavizadeh Tehrani} 228*fdf86df7SPouria Mousavizadeh Tehranigre6_key_cleanup() 229*fdf86df7SPouria Mousavizadeh Tehrani{ 230*fdf86df7SPouria Mousavizadeh Tehrani vnet_cleanup 231*fdf86df7SPouria Mousavizadeh Tehrani} 232*fdf86df7SPouria Mousavizadeh Tehrani 233*fdf86df7SPouria Mousavizadeh Tehraniatf_test_case "gre6_seq" "cleanup" 234*fdf86df7SPouria Mousavizadeh Tehranigre6_seq_head() 235*fdf86df7SPouria Mousavizadeh Tehrani{ 236*fdf86df7SPouria Mousavizadeh Tehrani atf_set descr 'Create a sequenced gre(4) tunnel over ipv6 underlay' 237*fdf86df7SPouria Mousavizadeh Tehrani atf_set require.user root 238*fdf86df7SPouria Mousavizadeh Tehrani atf_set require.kmods if_gre 239*fdf86df7SPouria Mousavizadeh Tehrani} 240*fdf86df7SPouria Mousavizadeh Tehranigre6_seq_body() 241*fdf86df7SPouria Mousavizadeh Tehrani{ 242*fdf86df7SPouria Mousavizadeh Tehrani local epair endpoint1 endpoint2 243*fdf86df7SPouria Mousavizadeh Tehrani local v4tunnel1 v4tunnel2 v6tunnel1 v6tunnel2 244*fdf86df7SPouria Mousavizadeh Tehrani 245*fdf86df7SPouria Mousavizadeh Tehrani endpoint1=3fff::1 246*fdf86df7SPouria Mousavizadeh Tehrani endpoint2=3fff::2 247*fdf86df7SPouria Mousavizadeh Tehrani v4tunnel1=169.254.0.1 248*fdf86df7SPouria Mousavizadeh Tehrani v4tunnel2=169.254.0.2 249*fdf86df7SPouria Mousavizadeh Tehrani v6tunnel1=2001:db8::1 250*fdf86df7SPouria Mousavizadeh Tehrani v6tunnel2=2001:db8::2 251*fdf86df7SPouria Mousavizadeh Tehrani 252*fdf86df7SPouria Mousavizadeh Tehrani vnet_init 253*fdf86df7SPouria Mousavizadeh Tehrani epair=$(vnet_mkepair) 254*fdf86df7SPouria Mousavizadeh Tehrani vnet_mkjail gretest1 ${epair}a 255*fdf86df7SPouria Mousavizadeh Tehrani vnet_mkjail gretest2 ${epair}b 256*fdf86df7SPouria Mousavizadeh Tehrani 257*fdf86df7SPouria Mousavizadeh Tehrani ifconfig -j gretest1 ${epair}a inet6 ${endpoint1} up 258*fdf86df7SPouria Mousavizadeh Tehrani ifconfig -j gretest2 ${epair}b inet6 ${endpoint2} up 259*fdf86df7SPouria Mousavizadeh Tehrani 260*fdf86df7SPouria Mousavizadeh Tehrani # Sanity check 261*fdf86df7SPouria Mousavizadeh Tehrani atf_check -o ignore \ 262*fdf86df7SPouria Mousavizadeh Tehrani jexec gretest1 ping -c 1 -t 3 ${endpoint2} 263*fdf86df7SPouria Mousavizadeh Tehrani atf_check -o ignore \ 264*fdf86df7SPouria Mousavizadeh Tehrani jexec gretest2 ping -c 1 -t 3 ${endpoint1} 265*fdf86df7SPouria Mousavizadeh Tehrani 266*fdf86df7SPouria Mousavizadeh Tehrani atf_check ifconfig -j gretest1 gre1 create \ 267*fdf86df7SPouria Mousavizadeh Tehrani inet6 tunnel ${endpoint1} ${endpoint2} enable_seq up 268*fdf86df7SPouria Mousavizadeh Tehrani atf_check ifconfig -j gretest2 gre1 create \ 269*fdf86df7SPouria Mousavizadeh Tehrani inet6 tunnel ${endpoint2} ${endpoint1} enable_seq up 270*fdf86df7SPouria Mousavizadeh Tehrani 271*fdf86df7SPouria Mousavizadeh Tehrani atf_check ifconfig -j gretest1 gre1 inet ${v4tunnel1} ${v4tunnel2} 272*fdf86df7SPouria Mousavizadeh Tehrani atf_check ifconfig -j gretest1 gre1 inet6 ${v6tunnel1} 273*fdf86df7SPouria Mousavizadeh Tehrani atf_check ifconfig -j gretest2 gre1 inet ${v4tunnel2} ${v4tunnel1} 274*fdf86df7SPouria Mousavizadeh Tehrani atf_check ifconfig -j gretest2 gre1 inet6 ${v6tunnel2} 275*fdf86df7SPouria Mousavizadeh Tehrani 276*fdf86df7SPouria Mousavizadeh Tehrani # ifconfig test 277*fdf86df7SPouria Mousavizadeh Tehrani atf_check -o match:"ENABLE_SEQ" ifconfig -j gretest1 gre1 278*fdf86df7SPouria Mousavizadeh Tehrani atf_check -o match:"ENABLE_SEQ" ifconfig -j gretest2 gre1 279*fdf86df7SPouria Mousavizadeh Tehrani 280*fdf86df7SPouria Mousavizadeh Tehrani # Tunnel test 281*fdf86df7SPouria Mousavizadeh Tehrani atf_check -o ignore jexec gretest1 ping -nc 1 -t 1 $v4tunnel2 282*fdf86df7SPouria Mousavizadeh Tehrani atf_check -o ignore jexec gretest2 ping -nc 1 -t 1 $v4tunnel1 283*fdf86df7SPouria Mousavizadeh Tehrani atf_check -o ignore jexec gretest1 ping -nc 1 -t 1 $v6tunnel2 284*fdf86df7SPouria Mousavizadeh Tehrani atf_check -o ignore jexec gretest2 ping -nc 1 -t 1 $v6tunnel1 285*fdf86df7SPouria Mousavizadeh Tehrani} 286*fdf86df7SPouria Mousavizadeh Tehranigre6_seq_cleanup() 287*fdf86df7SPouria Mousavizadeh Tehrani{ 288*fdf86df7SPouria Mousavizadeh Tehrani vnet_cleanup 289*fdf86df7SPouria Mousavizadeh Tehrani} 290*fdf86df7SPouria Mousavizadeh Tehrani 291*fdf86df7SPouria Mousavizadeh Tehraniatf_test_case "gre6_udpencap" "cleanup" 292*fdf86df7SPouria Mousavizadeh Tehranigre6_udpencap_head() 293*fdf86df7SPouria Mousavizadeh Tehrani{ 294*fdf86df7SPouria Mousavizadeh Tehrani atf_set descr 'Create a gre(4) over UDP tunnel with ipv6 underlay' 295*fdf86df7SPouria Mousavizadeh Tehrani atf_set require.user root 296*fdf86df7SPouria Mousavizadeh Tehrani atf_set require.kmods if_gre 297*fdf86df7SPouria Mousavizadeh Tehrani} 298*fdf86df7SPouria Mousavizadeh Tehranigre6_udpencap_body() 299*fdf86df7SPouria Mousavizadeh Tehrani{ 300*fdf86df7SPouria Mousavizadeh Tehrani local epair endpoint1 endpoint2 301*fdf86df7SPouria Mousavizadeh Tehrani local v4tunnel1 v4tunnel2 v6tunnel1 v6tunnel2 302*fdf86df7SPouria Mousavizadeh Tehrani 303*fdf86df7SPouria Mousavizadeh Tehrani endpoint1=3fff::1 304*fdf86df7SPouria Mousavizadeh Tehrani endpoint2=3fff::2 305*fdf86df7SPouria Mousavizadeh Tehrani v4tunnel1=169.254.0.1 306*fdf86df7SPouria Mousavizadeh Tehrani v4tunnel2=169.254.0.2 307*fdf86df7SPouria Mousavizadeh Tehrani v6tunnel1=2001:db8::1 308*fdf86df7SPouria Mousavizadeh Tehrani v6tunnel2=2001:db8::2 309*fdf86df7SPouria Mousavizadeh Tehrani 310*fdf86df7SPouria Mousavizadeh Tehrani vnet_init 311*fdf86df7SPouria Mousavizadeh Tehrani epair=$(vnet_mkepair) 312*fdf86df7SPouria Mousavizadeh Tehrani vnet_mkjail gretest1 ${epair}a 313*fdf86df7SPouria Mousavizadeh Tehrani vnet_mkjail gretest2 ${epair}b 314*fdf86df7SPouria Mousavizadeh Tehrani 315*fdf86df7SPouria Mousavizadeh Tehrani ifconfig -j gretest1 ${epair}a inet6 ${endpoint1} up 316*fdf86df7SPouria Mousavizadeh Tehrani ifconfig -j gretest2 ${epair}b inet6 ${endpoint2} up 317*fdf86df7SPouria Mousavizadeh Tehrani 318*fdf86df7SPouria Mousavizadeh Tehrani # Sanity check 319*fdf86df7SPouria Mousavizadeh Tehrani atf_check -o ignore \ 320*fdf86df7SPouria Mousavizadeh Tehrani jexec gretest1 ping -c 1 -t 3 ${endpoint2} 321*fdf86df7SPouria Mousavizadeh Tehrani atf_check -o ignore \ 322*fdf86df7SPouria Mousavizadeh Tehrani jexec gretest2 ping -c 1 -t 3 ${endpoint1} 323*fdf86df7SPouria Mousavizadeh Tehrani 324*fdf86df7SPouria Mousavizadeh Tehrani atf_check ifconfig -j gretest1 gre1 create \ 325*fdf86df7SPouria Mousavizadeh Tehrani inet6 tunnel ${endpoint1} ${endpoint2} udpencap up 326*fdf86df7SPouria Mousavizadeh Tehrani atf_check ifconfig -j gretest2 gre1 create \ 327*fdf86df7SPouria Mousavizadeh Tehrani inet6 tunnel ${endpoint2} ${endpoint1} udpencap udpport 55555 up 328*fdf86df7SPouria Mousavizadeh Tehrani 329*fdf86df7SPouria Mousavizadeh Tehrani atf_check ifconfig -j gretest1 gre1 inet ${v4tunnel1} ${v4tunnel2} 330*fdf86df7SPouria Mousavizadeh Tehrani atf_check ifconfig -j gretest1 gre1 inet6 ${v6tunnel1} 331*fdf86df7SPouria Mousavizadeh Tehrani atf_check ifconfig -j gretest2 gre1 inet ${v4tunnel2} ${v4tunnel1} 332*fdf86df7SPouria Mousavizadeh Tehrani atf_check ifconfig -j gretest2 gre1 inet6 ${v6tunnel2} 333*fdf86df7SPouria Mousavizadeh Tehrani 334*fdf86df7SPouria Mousavizadeh Tehrani # ifconfig test 335*fdf86df7SPouria Mousavizadeh Tehrani atf_check -o match:"UDPENCAP" ifconfig -j gretest1 gre1 336*fdf86df7SPouria Mousavizadeh Tehrani atf_check -o match:"udpport: 55555" ifconfig -j gretest2 gre1 337*fdf86df7SPouria Mousavizadeh Tehrani 338*fdf86df7SPouria Mousavizadeh Tehrani # Tunnel test 339*fdf86df7SPouria Mousavizadeh Tehrani atf_check -o ignore jexec gretest1 ping -nc 1 -t 1 $v4tunnel2 340*fdf86df7SPouria Mousavizadeh Tehrani atf_check -o ignore jexec gretest2 ping -nc 1 -t 1 $v4tunnel1 341*fdf86df7SPouria Mousavizadeh Tehrani atf_check -o ignore jexec gretest1 ping -nc 1 -t 1 $v6tunnel2 342*fdf86df7SPouria Mousavizadeh Tehrani atf_check -o ignore jexec gretest2 ping -nc 1 -t 1 $v6tunnel1 343*fdf86df7SPouria Mousavizadeh Tehrani} 344*fdf86df7SPouria Mousavizadeh Tehranigre6_udpencap_cleanup() 345*fdf86df7SPouria Mousavizadeh Tehrani{ 346*fdf86df7SPouria Mousavizadeh Tehrani vnet_cleanup 347*fdf86df7SPouria Mousavizadeh Tehrani} 348*fdf86df7SPouria Mousavizadeh Tehrani 349*fdf86df7SPouria Mousavizadeh Tehraniatf_test_case "gre_blind_options" "cleanup" 350*fdf86df7SPouria Mousavizadeh Tehranigre_blind_options_head() 351*fdf86df7SPouria Mousavizadeh Tehrani{ 352*fdf86df7SPouria Mousavizadeh Tehrani atf_set descr 'Test gre(4) tunnel options without verifying its effect on dataplane.' 353*fdf86df7SPouria Mousavizadeh Tehrani atf_set require.user root 354*fdf86df7SPouria Mousavizadeh Tehrani atf_set require.kmods if_gre 355*fdf86df7SPouria Mousavizadeh Tehrani} 356*fdf86df7SPouria Mousavizadeh Tehranigre_blind_options_body() 357*fdf86df7SPouria Mousavizadeh Tehrani{ 358*fdf86df7SPouria Mousavizadeh Tehrani local gre 359*fdf86df7SPouria Mousavizadeh Tehrani 360*fdf86df7SPouria Mousavizadeh Tehrani v4tunnel1=169.254.0.1 361*fdf86df7SPouria Mousavizadeh Tehrani v4tunnel2=169.254.0.2 362*fdf86df7SPouria Mousavizadeh Tehrani v6tunnel1=2001:db8::1 363*fdf86df7SPouria Mousavizadeh Tehrani v6tunnel2=2001:db8::2 364*fdf86df7SPouria Mousavizadeh Tehrani 365*fdf86df7SPouria Mousavizadeh Tehrani vnet_init 366*fdf86df7SPouria Mousavizadeh Tehrani vnet_mkjail gretest 367*fdf86df7SPouria Mousavizadeh Tehrani 368*fdf86df7SPouria Mousavizadeh Tehrani gre=$(ifconfig -j gretest gre create \ 369*fdf86df7SPouria Mousavizadeh Tehrani enable_seq grekey 10 enable_csum udpencap udpport 55555 up) 370*fdf86df7SPouria Mousavizadeh Tehrani 371*fdf86df7SPouria Mousavizadeh Tehrani atf_check ifconfig -j gretest $gre inet ${v4tunnel1} ${v4tunnel2} 372*fdf86df7SPouria Mousavizadeh Tehrani atf_check ifconfig -j gretest $gre inet6 ${v6tunnel1} 373*fdf86df7SPouria Mousavizadeh Tehrani 374*fdf86df7SPouria Mousavizadeh Tehrani # ifconfig test 375*fdf86df7SPouria Mousavizadeh Tehrani atf_check -o match:"grekey: 0xa \(10\)" ifconfig -j gretest $gre 376*fdf86df7SPouria Mousavizadeh Tehrani atf_check -o match:"ENABLE_CSUM" ifconfig -j gretest $gre 377*fdf86df7SPouria Mousavizadeh Tehrani atf_check -o match:"ENABLE_SEQ" ifconfig -j gretest $gre 378*fdf86df7SPouria Mousavizadeh Tehrani atf_check -o match:"UDPENCAP" ifconfig -j gretest $gre 379*fdf86df7SPouria Mousavizadeh Tehrani atf_check -o match:"udpport: 55555" ifconfig -j gretest $gre 380*fdf86df7SPouria Mousavizadeh Tehrani} 381*fdf86df7SPouria Mousavizadeh Tehranigre_blind_options_cleanup() 382*fdf86df7SPouria Mousavizadeh Tehrani{ 383*fdf86df7SPouria Mousavizadeh Tehrani vnet_cleanup 384*fdf86df7SPouria Mousavizadeh Tehrani} 385*fdf86df7SPouria Mousavizadeh Tehrani 386*fdf86df7SPouria Mousavizadeh Tehrani 387*fdf86df7SPouria Mousavizadeh Tehraniatf_init_test_cases() 388*fdf86df7SPouria Mousavizadeh Tehrani{ 389*fdf86df7SPouria Mousavizadeh Tehrani atf_add_test_case "gre4_basic" 390*fdf86df7SPouria Mousavizadeh Tehrani atf_add_test_case "gre6_basic" 391*fdf86df7SPouria Mousavizadeh Tehrani atf_add_test_case "gre6_csum" 392*fdf86df7SPouria Mousavizadeh Tehrani atf_add_test_case "gre6_key" 393*fdf86df7SPouria Mousavizadeh Tehrani atf_add_test_case "gre6_seq" 394*fdf86df7SPouria Mousavizadeh Tehrani atf_add_test_case "gre6_udpencap" 395*fdf86df7SPouria Mousavizadeh Tehrani atf_add_test_case "gre_blind_options" 396*fdf86df7SPouria Mousavizadeh Tehrani} 397