Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

selftests/net: convert l2tp.sh to run it in unique namespace

Here is the test result after conversion.

]# ./l2tp.sh
TEST: IPv4 basic L2TP tunnel [ OK ]
TEST: IPv4 route through L2TP tunnel [ OK ]
TEST: IPv6 basic L2TP tunnel [ OK ]
TEST: IPv6 route through L2TP tunnel [ OK ]
TEST: IPv4 basic L2TP tunnel - with IPsec [ OK ]
TEST: IPv4 route through L2TP tunnel - with IPsec [ OK ]
TEST: IPv6 basic L2TP tunnel - with IPsec [ OK ]
TEST: IPv6 route through L2TP tunnel - with IPsec [ OK ]
TEST: IPv4 basic L2TP tunnel [ OK ]
TEST: IPv4 route through L2TP tunnel [ OK ]
TEST: IPv6 basic L2TP tunnel - with IPsec [ OK ]
TEST: IPv6 route through L2TP tunnel - with IPsec [ OK ]
TEST: IPv4 basic L2TP tunnel - after IPsec teardown [ OK ]
TEST: IPv4 route through L2TP tunnel - after IPsec teardown [ OK ]
TEST: IPv6 basic L2TP tunnel - after IPsec teardown [ OK ]
TEST: IPv6 route through L2TP tunnel - after IPsec teardown [ OK ]

Tests passed: 16
Tests failed: 0

Acked-by: David Ahern <dsahern@kernel.org>
Reviewed-by: James Chapman <jchapman@katalix.com>
Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>

authored by

Hangbin Liu and committed by
Paolo Abeni
4affb17c 2ab1ee82

+62 -68
+62 -68
tools/testing/selftests/net/l2tp.sh
··· 13 13 # 10.1.1.1 | | 10.1.2.1 14 14 # 2001:db8:1::1 | | 2001:db8:2::1 15 15 16 + source lib.sh 16 17 VERBOSE=0 17 18 PAUSE_ON_FAIL=no 18 19 ··· 81 80 [ -z "${addr}" ] && addr="-" 82 81 [ -z "${addr6}" ] && addr6="-" 83 82 84 - ip netns add ${ns} 85 - 86 - ip -netns ${ns} link set lo up 87 83 if [ "${addr}" != "-" ]; then 88 84 ip -netns ${ns} addr add dev lo ${addr} 89 85 fi ··· 131 133 132 134 cleanup() 133 135 { 134 - local ns 135 - 136 - for ns in host-1 host-2 router 137 - do 138 - ip netns del ${ns} 2>/dev/null 139 - done 136 + cleanup_ns $host_1 $host_2 $router 140 137 } 141 138 142 139 setup_l2tp_ipv4() ··· 139 146 # 140 147 # configure l2tpv3 tunnel on host-1 141 148 # 142 - ip -netns host-1 l2tp add tunnel tunnel_id 1041 peer_tunnel_id 1042 \ 149 + ip -netns $host_1 l2tp add tunnel tunnel_id 1041 peer_tunnel_id 1042 \ 143 150 encap ip local 10.1.1.1 remote 10.1.2.1 144 - ip -netns host-1 l2tp add session name l2tp4 tunnel_id 1041 \ 151 + ip -netns $host_1 l2tp add session name l2tp4 tunnel_id 1041 \ 145 152 session_id 1041 peer_session_id 1042 146 - ip -netns host-1 link set dev l2tp4 up 147 - ip -netns host-1 addr add dev l2tp4 172.16.1.1 peer 172.16.1.2 153 + ip -netns $host_1 link set dev l2tp4 up 154 + ip -netns $host_1 addr add dev l2tp4 172.16.1.1 peer 172.16.1.2 148 155 149 156 # 150 157 # configure l2tpv3 tunnel on host-2 151 158 # 152 - ip -netns host-2 l2tp add tunnel tunnel_id 1042 peer_tunnel_id 1041 \ 159 + ip -netns $host_2 l2tp add tunnel tunnel_id 1042 peer_tunnel_id 1041 \ 153 160 encap ip local 10.1.2.1 remote 10.1.1.1 154 - ip -netns host-2 l2tp add session name l2tp4 tunnel_id 1042 \ 161 + ip -netns $host_2 l2tp add session name l2tp4 tunnel_id 1042 \ 155 162 session_id 1042 peer_session_id 1041 156 - ip -netns host-2 link set dev l2tp4 up 157 - ip -netns host-2 addr add dev l2tp4 172.16.1.2 peer 172.16.1.1 163 + ip -netns $host_2 link set dev l2tp4 up 164 + ip -netns $host_2 addr add dev l2tp4 172.16.1.2 peer 172.16.1.1 158 165 159 166 # 160 167 # add routes to loopback addresses 161 168 # 162 - ip -netns host-1 ro add 172.16.101.2/32 via 172.16.1.2 163 - ip -netns host-2 ro add 172.16.101.1/32 via 172.16.1.1 169 + ip -netns $host_1 ro add 172.16.101.2/32 via 172.16.1.2 170 + ip -netns $host_2 ro add 172.16.101.1/32 via 172.16.1.1 164 171 } 165 172 166 173 setup_l2tp_ipv6() ··· 168 175 # 169 176 # configure l2tpv3 tunnel on host-1 170 177 # 171 - ip -netns host-1 l2tp add tunnel tunnel_id 1061 peer_tunnel_id 1062 \ 178 + ip -netns $host_1 l2tp add tunnel tunnel_id 1061 peer_tunnel_id 1062 \ 172 179 encap ip local 2001:db8:1::1 remote 2001:db8:2::1 173 - ip -netns host-1 l2tp add session name l2tp6 tunnel_id 1061 \ 180 + ip -netns $host_1 l2tp add session name l2tp6 tunnel_id 1061 \ 174 181 session_id 1061 peer_session_id 1062 175 - ip -netns host-1 link set dev l2tp6 up 176 - ip -netns host-1 addr add dev l2tp6 fc00:1::1 peer fc00:1::2 182 + ip -netns $host_1 link set dev l2tp6 up 183 + ip -netns $host_1 addr add dev l2tp6 fc00:1::1 peer fc00:1::2 177 184 178 185 # 179 186 # configure l2tpv3 tunnel on host-2 180 187 # 181 - ip -netns host-2 l2tp add tunnel tunnel_id 1062 peer_tunnel_id 1061 \ 188 + ip -netns $host_2 l2tp add tunnel tunnel_id 1062 peer_tunnel_id 1061 \ 182 189 encap ip local 2001:db8:2::1 remote 2001:db8:1::1 183 - ip -netns host-2 l2tp add session name l2tp6 tunnel_id 1062 \ 190 + ip -netns $host_2 l2tp add session name l2tp6 tunnel_id 1062 \ 184 191 session_id 1062 peer_session_id 1061 185 - ip -netns host-2 link set dev l2tp6 up 186 - ip -netns host-2 addr add dev l2tp6 fc00:1::2 peer fc00:1::1 192 + ip -netns $host_2 link set dev l2tp6 up 193 + ip -netns $host_2 addr add dev l2tp6 fc00:1::2 peer fc00:1::1 187 194 188 195 # 189 196 # add routes to loopback addresses 190 197 # 191 - ip -netns host-1 -6 ro add fc00:101::2/128 via fc00:1::2 192 - ip -netns host-2 -6 ro add fc00:101::1/128 via fc00:1::1 198 + ip -netns $host_1 -6 ro add fc00:101::2/128 via fc00:1::2 199 + ip -netns $host_2 -6 ro add fc00:101::1/128 via fc00:1::1 193 200 } 194 201 195 202 setup() ··· 198 205 cleanup 199 206 200 207 set -e 201 - create_ns host-1 172.16.101.1/32 fc00:101::1/128 202 - create_ns host-2 172.16.101.2/32 fc00:101::2/128 203 - create_ns router 208 + setup_ns host_1 host_2 router 209 + create_ns $host_1 172.16.101.1/32 fc00:101::1/128 210 + create_ns $host_2 172.16.101.2/32 fc00:101::2/128 211 + create_ns $router 204 212 205 - connect_ns host-1 eth0 10.1.1.1/24 2001:db8:1::1/64 \ 206 - router eth1 10.1.1.2/24 2001:db8:1::2/64 213 + connect_ns $host_1 eth0 10.1.1.1/24 2001:db8:1::1/64 \ 214 + $router eth1 10.1.1.2/24 2001:db8:1::2/64 207 215 208 - connect_ns host-2 eth0 10.1.2.1/24 2001:db8:2::1/64 \ 209 - router eth2 10.1.2.2/24 2001:db8:2::2/64 216 + connect_ns $host_2 eth0 10.1.2.1/24 2001:db8:2::1/64 \ 217 + $router eth2 10.1.2.2/24 2001:db8:2::2/64 210 218 211 - ip -netns host-1 ro add 10.1.2.0/24 via 10.1.1.2 212 - ip -netns host-1 -6 ro add 2001:db8:2::/64 via 2001:db8:1::2 219 + ip -netns $host_1 ro add 10.1.2.0/24 via 10.1.1.2 220 + ip -netns $host_1 -6 ro add 2001:db8:2::/64 via 2001:db8:1::2 213 221 214 - ip -netns host-2 ro add 10.1.1.0/24 via 10.1.2.2 215 - ip -netns host-2 -6 ro add 2001:db8:1::/64 via 2001:db8:2::2 222 + ip -netns $host_2 ro add 10.1.1.0/24 via 10.1.2.2 223 + ip -netns $host_2 -6 ro add 2001:db8:1::/64 via 2001:db8:2::2 216 224 217 225 setup_l2tp_ipv4 218 226 setup_l2tp_ipv6 ··· 225 231 # 226 232 # IPv4 227 233 # 228 - run_cmd host-1 ip xfrm policy add \ 234 + run_cmd $host_1 ip xfrm policy add \ 229 235 src 10.1.1.1 dst 10.1.2.1 dir out \ 230 236 tmpl proto esp mode transport 231 237 232 - run_cmd host-1 ip xfrm policy add \ 238 + run_cmd $host_1 ip xfrm policy add \ 233 239 src 10.1.2.1 dst 10.1.1.1 dir in \ 234 240 tmpl proto esp mode transport 235 241 236 - run_cmd host-2 ip xfrm policy add \ 242 + run_cmd $host_2 ip xfrm policy add \ 237 243 src 10.1.1.1 dst 10.1.2.1 dir in \ 238 244 tmpl proto esp mode transport 239 245 240 - run_cmd host-2 ip xfrm policy add \ 246 + run_cmd $host_2 ip xfrm policy add \ 241 247 src 10.1.2.1 dst 10.1.1.1 dir out \ 242 248 tmpl proto esp mode transport 243 249 244 - ip -netns host-1 xfrm state add \ 250 + ip -netns $host_1 xfrm state add \ 245 251 src 10.1.1.1 dst 10.1.2.1 \ 246 252 spi 0x1000 proto esp aead 'rfc4106(gcm(aes))' \ 247 253 0x0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f 128 mode transport 248 254 249 - ip -netns host-1 xfrm state add \ 255 + ip -netns $host_1 xfrm state add \ 250 256 src 10.1.2.1 dst 10.1.1.1 \ 251 257 spi 0x1001 proto esp aead 'rfc4106(gcm(aes))' \ 252 258 0x0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f 128 mode transport 253 259 254 - ip -netns host-2 xfrm state add \ 260 + ip -netns $host_2 xfrm state add \ 255 261 src 10.1.1.1 dst 10.1.2.1 \ 256 262 spi 0x1000 proto esp aead 'rfc4106(gcm(aes))' \ 257 263 0x0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f 128 mode transport 258 264 259 - ip -netns host-2 xfrm state add \ 265 + ip -netns $host_2 xfrm state add \ 260 266 src 10.1.2.1 dst 10.1.1.1 \ 261 267 spi 0x1001 proto esp aead 'rfc4106(gcm(aes))' \ 262 268 0x0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f 128 mode transport ··· 264 270 # 265 271 # IPV6 266 272 # 267 - run_cmd host-1 ip -6 xfrm policy add \ 273 + run_cmd $host_1 ip -6 xfrm policy add \ 268 274 src 2001:db8:1::1 dst 2001:db8:2::1 dir out \ 269 275 tmpl proto esp mode transport 270 276 271 - run_cmd host-1 ip -6 xfrm policy add \ 277 + run_cmd $host_1 ip -6 xfrm policy add \ 272 278 src 2001:db8:2::1 dst 2001:db8:1::1 dir in \ 273 279 tmpl proto esp mode transport 274 280 275 - run_cmd host-2 ip -6 xfrm policy add \ 281 + run_cmd $host_2 ip -6 xfrm policy add \ 276 282 src 2001:db8:1::1 dst 2001:db8:2::1 dir in \ 277 283 tmpl proto esp mode transport 278 284 279 - run_cmd host-2 ip -6 xfrm policy add \ 285 + run_cmd $host_2 ip -6 xfrm policy add \ 280 286 src 2001:db8:2::1 dst 2001:db8:1::1 dir out \ 281 287 tmpl proto esp mode transport 282 288 283 - ip -netns host-1 -6 xfrm state add \ 289 + ip -netns $host_1 -6 xfrm state add \ 284 290 src 2001:db8:1::1 dst 2001:db8:2::1 \ 285 291 spi 0x1000 proto esp aead 'rfc4106(gcm(aes))' \ 286 292 0x0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f 128 mode transport 287 293 288 - ip -netns host-1 -6 xfrm state add \ 294 + ip -netns $host_1 -6 xfrm state add \ 289 295 src 2001:db8:2::1 dst 2001:db8:1::1 \ 290 296 spi 0x1001 proto esp aead 'rfc4106(gcm(aes))' \ 291 297 0x0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f 128 mode transport 292 298 293 - ip -netns host-2 -6 xfrm state add \ 299 + ip -netns $host_2 -6 xfrm state add \ 294 300 src 2001:db8:1::1 dst 2001:db8:2::1 \ 295 301 spi 0x1000 proto esp aead 'rfc4106(gcm(aes))' \ 296 302 0x0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f 128 mode transport 297 303 298 - ip -netns host-2 -6 xfrm state add \ 304 + ip -netns $host_2 -6 xfrm state add \ 299 305 src 2001:db8:2::1 dst 2001:db8:1::1 \ 300 306 spi 0x1001 proto esp aead 'rfc4106(gcm(aes))' \ 301 307 0x0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f 128 mode transport ··· 303 309 304 310 teardown_ipsec() 305 311 { 306 - run_cmd host-1 ip xfrm state flush 307 - run_cmd host-1 ip xfrm policy flush 308 - run_cmd host-2 ip xfrm state flush 309 - run_cmd host-2 ip xfrm policy flush 312 + run_cmd $host_1 ip xfrm state flush 313 + run_cmd $host_1 ip xfrm policy flush 314 + run_cmd $host_2 ip xfrm state flush 315 + run_cmd $host_2 ip xfrm policy flush 310 316 } 311 317 312 318 ################################################################################ ··· 316 322 { 317 323 local desc="$1" 318 324 319 - run_cmd host-1 ping -c1 -w1 172.16.1.2 325 + run_cmd $host_1 ping -c1 -w1 172.16.1.2 320 326 log_test $? 0 "IPv4 basic L2TP tunnel ${desc}" 321 327 322 - run_cmd host-1 ping -c1 -w1 -I 172.16.101.1 172.16.101.2 328 + run_cmd $host_1 ping -c1 -w1 -I 172.16.101.1 172.16.101.2 323 329 log_test $? 0 "IPv4 route through L2TP tunnel ${desc}" 324 330 325 - run_cmd host-1 ${ping6} -c1 -w1 fc00:1::2 331 + run_cmd $host_1 ${ping6} -c1 -w1 fc00:1::2 326 332 log_test $? 0 "IPv6 basic L2TP tunnel ${desc}" 327 333 328 - run_cmd host-1 ${ping6} -c1 -w1 -I fc00:101::1 fc00:101::2 334 + run_cmd $host_1 ${ping6} -c1 -w1 -I fc00:101::1 fc00:101::2 329 335 log_test $? 0 "IPv6 route through L2TP tunnel ${desc}" 330 336 } 331 337 ··· 338 344 339 345 setup_ipsec 340 346 run_ping "- with IPsec" 341 - run_cmd host-1 ping -c1 -w1 172.16.1.2 347 + run_cmd $host_1 ping -c1 -w1 172.16.1.2 342 348 log_test $? 0 "IPv4 basic L2TP tunnel ${desc}" 343 349 344 - run_cmd host-1 ping -c1 -w1 -I 172.16.101.1 172.16.101.2 350 + run_cmd $host_1 ping -c1 -w1 -I 172.16.101.1 172.16.101.2 345 351 log_test $? 0 "IPv4 route through L2TP tunnel ${desc}" 346 352 347 - run_cmd host-1 ${ping6} -c1 -w1 fc00:1::2 353 + run_cmd $host_1 ${ping6} -c1 -w1 fc00:1::2 348 354 log_test $? 0 "IPv6 basic L2TP tunnel - with IPsec" 349 355 350 - run_cmd host-1 ${ping6} -c1 -w1 -I fc00:101::1 fc00:101::2 356 + run_cmd $host_1 ${ping6} -c1 -w1 -I fc00:101::1 fc00:101::2 351 357 log_test $? 0 "IPv6 route through L2TP tunnel - with IPsec" 352 358 353 359 teardown_ipsec