[26-06-22 06:34:44] START switch_namespace_openvpn scenario: cases/switch_namespace_openvpn.sh header : verify namespace openvpn snat and non-snat network isolation topology: vpn1 10.241.0.10 | sw1 example [vrf-vpn] -- TCP output --> sw2 example VIP 10.240.2.12 | sw1 network b 192.66.0.1 -- acb 192.66.0.11 topology: # Topology: topology: # - Diagram: topology: # vpn1 10.241.0.10 topology: # | topology: # sw1 example [vrf-vpn] -- TCP output --> sw2 example VIP 10.240.2.12 topology: # sw1 network b 192.66.0.1 -- acb 192.66.0.11 topology: # VRF + OpenVPN SNAT path is isolated from network b topology: # - Docker mgmt network: 100.100.0.0/24 topology: # sw1=100.100.0.241, sw2=100.100.0.242, vpn1 joins the same mgmt network. topology: # - OpenLAN service network "example": 192.65.0.0/24 topology: # sw1=192.65.0.1, sw2=192.65.0.2. topology: # - sw1 service network L3 device and OpenVPN device are enslaved to VRF topology: # "vrf-vpn"; sw2 is not. topology: # - sw1 non-namespace network "b": 192.66.0.0/24 topology: # sw1=192.66.0.1, acb=192.66.0.11. topology: # - OpenVPN overlay: topology: # tcp/1194, subnet 10.241.0.0/24, vpn1@example fixed address 10.241.0.10. topology: # - sw2 VIP: topology: # lo=10.240.2.12/32, declared in sw2 example and sw1 b networks, HTTP service topology: # listens on 10.240.2.12:8081. topology: # - Forwarding link: topology: # sw1 -> sw2 over TCP output. topology: # Validation: topology: # vpn1 connects, server tun device is bound to the VRF. Without OpenVPN SNAT, topology: # vpn1 cannot reach sw2 VIP; after enabling OpenVPN SNAT, sw2 HTTP sees sw1 topology: # overlay address as the source. acb, connected to sw1 non-namespace network topology: # b, cannot reach the same VIP because b SNAT is disabled, even though b has topology: # a route for the VIP. Started switch pause container: tests-sw-namespace-openvpn2-pause Started switch frr container: tests-sw-namespace-openvpn2-frr Started switch ipsec container: tests-sw-namespace-openvpn2-ipsec Started switch container: tests-sw-namespace-openvpn2 [26-06-22 06:34:45][ASSERT#0001][expect] at cases/switch_namespace_openvpn.sh:111 fn=setup_sw2 retry=30 cmd="docker logs -f tests-sw-namespace-openvpn2" expect="Http.Start" 2026/06/22 06:34:46 INFO|root|Http.LoadToken: file:/etc/openlan/switch/token does not exist 2026/06/22 06:34:46 INFO|root|UdpServer.Listen: udp://0.0.0.0:10002 2026/06/22 06:34:46 INFO|root|TcpServer.Listen: tcp://0.0.0.0:10002 2026/06/22 06:34:46 INFO|root|Http.Start 0.0.0.0:10000 [26-06-22 06:34:46][ASSERT#0001][OK] cost=1.030s [26-06-22 06:34:46][ASSERT#0002][cmd] at cases/switch_namespace_openvpn.sh:113 fn=setup_sw2 cmd="docker exec tests-sw-namespace-openvpn2 openlan network --name example add --address 192.65.0.2/24" [26-06-22 06:34:46][ASSERT#0002][OK] cost=0.245s [26-06-22 06:34:46][ASSERT#0003][cmd] at cases/switch_namespace_openvpn.sh:114 fn=setup_sw2 cmd="docker exec tests-sw-namespace-openvpn2 openlan router address add --device lo --address 10.240.2.12/32" [26-06-22 06:34:46][ASSERT#0003][OK] cost=0.073s [26-06-22 06:34:46][ASSERT#0004][cmd] at cases/switch_namespace_openvpn.sh:115 fn=setup_sw2 cmd="docker exec tests-sw-namespace-openvpn2 openlan network --name example route add --prefix 10.240.2.12/32" [26-06-22 06:34:47][ASSERT#0004][OK] cost=0.070s [26-06-22 06:34:47][ASSERT#0005][cmd] at cases/switch_namespace_openvpn.sh:116 fn=setup_sw2 cmd="docker exec tests-sw-namespace-openvpn2 openlan user add --name t1@example --password 123456" # total 1 username password role lease t1@example 123456 guest 2027-06-22T06 [26-06-22 06:34:47][ASSERT#0005][OK] cost=0.073s Started switch pause container: tests-sw-namespace-openvpn1-pause Started switch frr container: tests-sw-namespace-openvpn1-frr Started switch ipsec container: tests-sw-namespace-openvpn1-ipsec Started switch container: tests-sw-namespace-openvpn1 [26-06-22 06:34:47][ASSERT#0006][expect] at cases/switch_namespace_openvpn.sh:89 fn=setup_sw1 retry=30 cmd="docker logs -f tests-sw-namespace-openvpn1" expect="Http.Start" 2026/06/22 06:34:48 INFO|root|Http.LoadToken: file:/etc/openlan/switch/token does not exist 2026/06/22 06:34:48 INFO|root|UdpServer.Listen: udp://0.0.0.0:10002 2026/06/22 06:34:48 INFO|root|TcpServer.Listen: tcp://0.0.0.0:10002 2026/06/22 06:34:48 INFO|root|Http.Start 0.0.0.0:10000 [26-06-22 06:34:48][ASSERT#0006][OK] cost=1.027s [26-06-22 06:34:48][ASSERT#0007][cmd] at cases/switch_namespace_openvpn.sh:91 fn=setup_sw1 cmd="docker exec tests-sw-namespace-openvpn1 openlan network --name example add --address 192.65.0.1/24 --namespace vrf-vpn" [26-06-22 06:34:49][ASSERT#0007][OK] cost=0.278s [26-06-22 06:34:49][ASSERT#0008][match] at cases/switch_namespace_openvpn.sh:92 fn=setup_sw1 retry=1 cmd="docker exec tests-sw-namespace-openvpn1 openlan network --name example" expect="namespace: vrf-vpn" address: 192.65.0.1/24 name: br-example name: example namespace: vrf-vpn snat: enable subnet: netmask: 255.255.255.0 [26-06-22 06:34:49][ASSERT#0008][OK] cost=0.080s [26-06-22 06:34:49][ASSERT#0009][cmd] at cases/switch_namespace_openvpn.sh:93 fn=setup_sw1 cmd="docker exec tests-sw-namespace-openvpn1 ip link show vrf-vpn" 9: vrf-vpn: mtu 65575 qdisc noqueue state UP mode DEFAULT group default link/ether 4a:7d:36:ca:e8:f8 brd ff:ff:ff:ff:ff:ff [26-06-22 06:34:49][ASSERT#0009][OK] cost=0.058s [26-06-22 06:34:49][ASSERT#0010][match] at cases/switch_namespace_openvpn.sh:94 fn=setup_sw1 retry=5 cmd="docker exec tests-sw-namespace-openvpn1 ip link show hi-example" expect="master vrf-vpn" 8: hi-example@bi-example: mtu 1500 qdisc noqueue master vrf-vpn state UP mode DEFAULT group default link/ether 2e:02:93:80:f7:79 brd ff:ff:ff:ff:ff:ff [26-06-22 06:34:49][ASSERT#0010][OK] cost=0.060s [26-06-22 06:34:49][ASSERT#0011][cmd] at cases/switch_namespace_openvpn.sh:95 fn=setup_sw1 cmd="docker exec tests-sw-namespace-openvpn1 openlan network --name b add --address 192.66.0.1/24" [26-06-22 06:34:49][ASSERT#0011][OK] cost=0.268s [26-06-22 06:34:49][ASSERT#0012][cmd] at cases/switch_namespace_openvpn.sh:96 fn=setup_sw1 cmd="docker exec tests-sw-namespace-openvpn1 openlan network --name b snat disable" [26-06-22 06:34:49][ASSERT#0012][OK] cost=0.096s [26-06-22 06:34:49][ASSERT#0013][cmd] at cases/switch_namespace_openvpn.sh:97 fn=setup_sw1 cmd="docker exec tests-sw-namespace-openvpn1 openlan network --name b route add --prefix 10.240.2.12/32 --nexthop 192.65.0.2" [26-06-22 06:34:49][ASSERT#0013][OK] cost=0.060s [26-06-22 06:34:49][ASSERT#0014][cmd] at cases/switch_namespace_openvpn.sh:98 fn=setup_sw1 cmd="docker exec tests-sw-namespace-openvpn1 openlan network --name example snat disable" [26-06-22 06:34:49][ASSERT#0014][OK] cost=0.079s [26-06-22 06:34:49][ASSERT#0015][cmd] at cases/switch_namespace_openvpn.sh:99 fn=setup_sw1 cmd="docker exec tests-sw-namespace-openvpn1 openlan network --name example route add --prefix 10.240.2.12/32 --nexthop 192.65.0.2" [26-06-22 06:34:50][ASSERT#0015][OK] cost=0.068s [26-06-22 06:34:50][ASSERT#0016][cmd] at cases/switch_namespace_openvpn.sh:100 fn=setup_sw1 cmd="docker exec tests-sw-namespace-openvpn1 openlan user add --name vpn1@example --password 123456" # total 1 username password role lease vpn1@example 123456 guest 2027-06-22T06 [26-06-22 06:34:50][ASSERT#0016][OK] cost=0.068s [26-06-22 06:34:50][ASSERT#0017][cmd] at cases/switch_namespace_openvpn.sh:101 fn=setup_sw1 cmd="docker exec tests-sw-namespace-openvpn1 openlan user add --name acb@b --password 123456" # total 1 username password role lease acb@b 123456 guest 2027-06-22T06 [26-06-22 06:34:50][ASSERT#0017][OK] cost=0.067s [26-06-22 06:34:50][ASSERT#0018][cmd] at cases/switch_namespace_openvpn.sh:102 fn=setup_sw1 cmd="docker exec tests-sw-namespace-openvpn1 openlan network --name example output add --remote 100.100.0.242 --protocol tcp --secret t1@example:123456 --crypt aes-128:ea64d5b0c96c" [26-06-22 06:34:50][ASSERT#0018][OK] cost=0.071s [26-06-22 06:34:50][ASSERT#0019][cmd] at cases/switch_namespace_openvpn.sh:122 fn=setup_openvpn cmd="docker exec tests-sw-namespace-openvpn1 openlan network --name example openvpn add --listen :1194 --protocol tcp --subnet 10.241.0.0/24 --dns 8.8.8.8" [26-06-22 06:34:50][ASSERT#0019][OK] cost=0.105s [26-06-22 06:34:50][ASSERT#0020][cmd] at cases/switch_namespace_openvpn.sh:123 fn=setup_openvpn cmd="docker exec tests-sw-namespace-openvpn1 openlan network --name example client add --user vpn1 --address 10.241.0.10" [26-06-22 06:34:50][ASSERT#0020][OK] cost=0.044s [26-06-22 06:34:50][ASSERT#0021][cmd] at cases/switch_namespace_openvpn.sh:124 fn=setup_openvpn cmd="docker exec tests-sw-namespace-openvpn1 test -f /var/openlan/openvpn/example/tcp1194server.conf" [26-06-22 06:34:50][ASSERT#0021][OK] cost=0.057s [26-06-22 06:34:50][ASSERT#0022][cmd] at cases/switch_namespace_openvpn.sh:125 fn=setup_openvpn cmd="docker exec tests-sw-namespace-openvpn1 test -f /var/openlan/openvpn/example/tcp1194client.ovpn" [26-06-22 06:34:50][ASSERT#0022][OK] cost=0.056s [26-06-22 06:34:50][ASSERT#0023][cmd] at cases/switch_namespace_openvpn.sh:126 fn=setup_openvpn cmd="docker exec tests-sw-namespace-openvpn1 test -f /var/openlan/openvpn/example/ccd/vpn1@example" [26-06-22 06:34:50][ASSERT#0023][OK] cost=0.047s Started OpenVPN client container: tests-sw-namespace-openvpn.vpn1 [26-06-22 06:34:50][ASSERT#0024][expect] at cases/switch_namespace_openvpn.sh:136 fn=setup_openvpn retry=40 cmd="docker logs -f tests-sw-namespace-openvpn.vpn1" expect="Initialization Sequence Completed" 2026-06-22 06:34:51 net_route_v4_add: 10.241.0.0/24 via 10.241.0.1 dev [NULL] table 0 metric 300 2026-06-22 06:34:51 net_route_v4_add: 192.65.0.0/24 via 10.241.0.1 dev [NULL] table 0 metric 300 2026-06-22 06:34:51 net_route_v4_add: 10.240.2.12/32 via 10.241.0.1 dev [NULL] table 0 metric 300 2026-06-22 06:34:51 Initialization Sequence Completed [26-06-22 06:34:51][ASSERT#0024][OK] cost=1.033s Started access container: tests-sw-namespace-openvpn.acb [26-06-22 06:34:52][ASSERT#0025][expect] at cases/switch_namespace_openvpn.sh:157 fn=setup_acb retry=30 cmd="docker logs -f tests-sw-namespace-openvpn.acb" expect="onLogin: success" 2026/06/22 06:34:52 INFO|100.100.0.241:10002|b|Worker.OnSuccess 2026/06/22 06:34:52 INFO|100.100.0.241:10002|b|Access.AddAddr: 192.66.0.11/24 via 2026/06/22 06:34:52 INFO|100.100.0.241:10002|b|Access.AddRoute: 10.240.2.12/32 via 192.66.0.1 2026/06/22 06:34:52 INFO|udp:100.100.0.241:10002|b|SocketWorker.onLogin: success 2026/06/22 06:34:52 INFO|100.100.0.241:10002|b|Worker.OnIpAddr: name:b gateway:192.66.0.1 address:192.66.0.11 netmask:255.255.255.0 routes:[] 2026/06/22 06:34:52 WARN|100.100.0.241:10002|b|Access.AddAddr.SetLinkIp: file exists 2026/06/22 06:34:52 INFO|100.100.0.241:10002|b|Access.AddAddr: 192.66.0.11/24 via 192.66.0.1 [26-06-22 06:34:53][ASSERT#0025][OK] cost=1.032s [26-06-22 06:34:53][ASSERT#0026][cmd] at cases/switch_namespace_openvpn.sh:161 fn=setup_vip_http cmd="docker exec tests-sw-namespace-openvpn2 sh -c cat > /tmp/namespace-openvpn-http.sh <<'EOF' #!/bin/sh printf 'HTTP/1.1 200 OK\r\nContent-Type: text/plain\r\nConnection: close\r\n\r\nsrc=%s\n' "$SOCAT_PEERADDR" EOF chmod +x /tmp/namespace-openvpn-http.sh nohup socat TCP-LISTEN:8081,bind=10.240.2.12,reuseaddr,fork EXEC:/tmp/namespace-openvpn-http.sh >/tmp/namespace-openvpn-http.log 2>&1 &" [26-06-22 06:34:53][ASSERT#0026][OK] cost=0.067s [26-06-22 06:34:53][ASSERT#0027][match] at cases/switch_namespace_openvpn.sh:188 fn=test_openvpn_namespace retry=15 cmd="docker exec tests-sw-namespace-openvpn1 openlan network --name example output ls" expect="state: authenticated" protocol: tcp remote: 100.100.0.242 secret: t1@example:123456 state: authenticated [26-06-22 06:34:53][ASSERT#0027][OK] cost=0.059s [26-06-22 06:34:53][ASSERT#0028][match] at cases/switch_namespace_openvpn.sh:189 fn=test_openvpn_namespace retry=20 cmd="docker exec tests-sw-namespace-openvpn1 ip link show tun1194" expect="master vrf-vpn" 14: tun1194: mtu 1500 qdisc fq_codel master vrf-vpn state UNKNOWN mode DEFAULT group default qlen 500 link/none [26-06-22 06:34:53][ASSERT#0028][OK] cost=0.062s [26-06-22 06:34:53][ASSERT#0029][match] at cases/switch_namespace_openvpn.sh:190 fn=test_openvpn_namespace retry=20 cmd="docker exec tests-sw-namespace-openvpn.vpn1 ping -c 3 192.65.0.1" expect="bytes from" PING 192.65.0.1 (192.65.0.1) 56(84) bytes of data. 64 bytes from 192.65.0.1: icmp_seq=1 ttl=64 time=0.264 ms 64 bytes from 192.65.0.1: icmp_seq=2 ttl=64 time=1.16 ms 64 bytes from 192.65.0.1: icmp_seq=3 ttl=64 time=0.767 ms --- 192.65.0.1 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2014ms [26-06-22 06:34:55][ASSERT#0029][OK] cost=2.103s [26-06-22 06:34:55][ASSERT#0030][match] at cases/switch_namespace_openvpn.sh:191 fn=test_openvpn_namespace retry=5 cmd="docker exec tests-sw-namespace-openvpn1 ip route show vrf vrf-vpn" expect="10.241.0.0/24" 10.240.2.12 via 192.65.0.2 dev hi-example metric 660 10.241.0.0/24 dev tun1194 proto kernel scope link src 10.241.0.1 192.65.0.0/24 dev hi-example proto kernel scope link src 192.65.0.1 [26-06-22 06:34:55][ASSERT#0030][OK] cost=0.056s [26-06-22 06:34:55][ASSERT#0031][match] at cases/switch_namespace_openvpn.sh:192 fn=test_openvpn_namespace retry=5 cmd="docker exec tests-sw-namespace-openvpn2 openlan network --name example route ls" expect="10.240.2.12/32" # total 1 prefix nexthop metric 10.240.2.12/32 192.65.0.2 660 [26-06-22 06:34:55][ASSERT#0031][OK] cost=0.067s [26-06-22 06:34:55][ASSERT#0032][match] at cases/switch_namespace_openvpn.sh:193 fn=test_openvpn_namespace retry=5 cmd="docker exec tests-sw-namespace-openvpn1 openlan network --name b route ls" expect="10.240.2.12/32" # total 1 prefix nexthop metric 10.240.2.12/32 192.65.0.2 660 [26-06-22 06:34:55][ASSERT#0032][OK] cost=0.081s [26-06-22 06:34:55][ASSERT#0033][unmatch] at cases/switch_namespace_openvpn.sh:195 fn=test_openvpn_namespace retry=3 cmd="docker exec tests-sw-namespace-openvpn.vpn1 ping -c 3 10.240.2.12" unexpected="bytes from" Last output: PING 10.240.2.12 (10.240.2.12) 56(84) bytes of data. --- 10.240.2.12 ping statistics --- 3 packets transmitted, 0 received, 100% packet loss, time 2036ms [26-06-22 06:35:35][ASSERT#0033][OK] cost=39.403s [26-06-22 06:35:35][ASSERT#0034][unmatch] at cases/switch_namespace_openvpn.sh:184 fn=assert_vpn_http_unreachable retry=3 cmd="docker exec tests-sw-namespace-openvpn.vpn1 wget -qO- -T 3 -t 1 http://10.240.2.12:8081" unexpected="src=" Last output: [26-06-22 06:35:47][ASSERT#0034][OK] cost=12.265s [26-06-22 06:35:47][ASSERT#0035][cmd] at cases/switch_namespace_openvpn.sh:197 fn=test_openvpn_namespace cmd="docker exec tests-sw-namespace-openvpn1 openlan network --name example snat enable --scope openvpn" [26-06-22 06:35:47][ASSERT#0035][OK] cost=0.066s [26-06-22 06:35:47][ASSERT#0036][match] at cases/switch_namespace_openvpn.sh:198 fn=test_openvpn_namespace retry=20 cmd="docker exec tests-sw-namespace-openvpn.vpn1 ping -c 3 10.240.2.12" expect="bytes from" PING 10.240.2.12 (10.240.2.12) 56(84) bytes of data. 64 bytes from 10.240.2.12: icmp_seq=1 ttl=63 time=0.674 ms 64 bytes from 10.240.2.12: icmp_seq=2 ttl=63 time=2.02 ms 64 bytes from 10.240.2.12: icmp_seq=3 ttl=63 time=2.53 ms --- 10.240.2.12 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2008ms [26-06-22 06:35:49][ASSERT#0036][OK] cost=2.097s [26-06-22 06:35:49][ASSERT#0037][match] at cases/switch_namespace_openvpn.sh:180 fn=assert_vpn_http_source retry=20 cmd="docker exec tests-sw-namespace-openvpn.vpn1 wget -qO- -T 3 -t 1 http://10.240.2.12:8081" expect="src=192.65.0.1" src=192.65.0.1 [26-06-22 06:35:49][ASSERT#0037][OK] cost=0.091s [26-06-22 06:35:49][ASSERT#0038][unmatch] at cases/switch_namespace_openvpn.sh:200 fn=test_openvpn_namespace retry=3 cmd="docker exec tests-sw-namespace-openvpn.acb ping -c 3 10.240.2.12" unexpected="bytes from" Last output: PING 10.240.2.12 (10.240.2.12) 56(84) bytes of data. --- 10.240.2.12 ping statistics --- 3 packets transmitted, 0 received, 100% packet loss, time 2042ms [26-06-22 06:36:29][ASSERT#0038][OK] cost=39.344s [26-06-22 06:36:29][ASSERT#0039][unmatch] at cases/switch_namespace_openvpn.sh:175 fn=assert_acb_http_unreachable retry=3 cmd="docker exec tests-sw-namespace-openvpn.acb wget -qO- -T 3 -t 1 http://10.240.2.12:8081" unexpected="src=" Last output: [26-06-22 06:36:41][ASSERT#0039][OK] cost=12.207s [26-06-22 06:36:41][ASSERT#0040][cmd] at cases/switch_namespace_openvpn.sh:205 fn=test_reload_persistence cmd="docker exec tests-sw-namespace-openvpn1 openlan reload --save" Save configuraion ... success # reloading pid:45 .... PID 45 CMD: /usr/bin/openlan-switch -conf:dir /etc/openlan/switch -log:level 20 # max wait 60s... # during 1s, new pid:1019 ... PID 1019 CMD: /usr/bin/openlan-switch -conf:dir /etc/openlan/switch -log:level 20 [26-06-22 06:36:42][ASSERT#0040][OK] cost=1.064s [26-06-22 06:36:42][ASSERT#0041][cmd] at cases/switch_namespace_openvpn.sh:206 fn=test_reload_persistence cmd="docker exec tests-sw-namespace-openvpn2 openlan reload --save" Save configuraion ... success # reloading pid:45 .... PID 45 CMD: /usr/bin/openlan-switch -conf:dir /etc/openlan/switch -log:level 20 # max wait 60s... # during 1s, new pid:664 ... PID 664 CMD: /usr/bin/openlan-switch -conf:dir /etc/openlan/switch -log:level 20 [26-06-22 06:36:43][ASSERT#0041][OK] cost=1.071s [26-06-22 06:36:43][ASSERT#0042][match] at cases/switch_namespace_openvpn.sh:208 fn=test_reload_persistence retry=10 cmd="docker exec tests-sw-namespace-openvpn1 openlan network --name example" expect="namespace: vrf-vpn" address: 192.65.0.1/24 name: br-example name: example namespace: vrf-vpn openvpn: clients: - address: 10.241.0.10 [26-06-22 06:36:43][ASSERT#0042][OK] cost=0.084s [26-06-22 06:36:43][ASSERT#0043][match] at cases/switch_namespace_openvpn.sh:209 fn=test_reload_persistence retry=15 cmd="docker exec tests-sw-namespace-openvpn1 openlan network --name example output ls" expect="state: authenticated" protocol: tcp remote: 100.100.0.242 secret: t1@example:123456 state: authenticated [26-06-22 06:36:43][ASSERT#0043][OK] cost=0.087s [26-06-22 06:36:43][ASSERT#0044][match] at cases/switch_namespace_openvpn.sh:210 fn=test_reload_persistence retry=20 cmd="docker exec tests-sw-namespace-openvpn1 ip link show hi-example" expect="master vrf-vpn" 8: hi-example@bi-example: mtu 1500 qdisc noqueue master vrf-vpn state UP mode DEFAULT group default link/ether 2e:02:93:80:f7:79 brd ff:ff:ff:ff:ff:ff [26-06-22 06:36:43][ASSERT#0044][OK] cost=0.061s [26-06-22 06:36:43][ASSERT#0045][match] at cases/switch_namespace_openvpn.sh:211 fn=test_reload_persistence retry=20 cmd="docker exec tests-sw-namespace-openvpn1 ip link show tun1194" expect="master vrf-vpn" 14: tun1194: mtu 1500 qdisc fq_codel master vrf-vpn state UNKNOWN mode DEFAULT group default qlen 500 link/none [26-06-22 06:36:43][ASSERT#0045][OK] cost=0.069s [26-06-22 06:36:43][ASSERT#0046][match] at cases/switch_namespace_openvpn.sh:212 fn=test_reload_persistence retry=20 cmd="docker exec tests-sw-namespace-openvpn.vpn1 ping -c 3 192.65.0.1" expect="bytes from" PING 192.65.0.1 (192.65.0.1) 56(84) bytes of data. 64 bytes from 192.65.0.1: icmp_seq=1 ttl=64 time=0.308 ms 64 bytes from 192.65.0.1: icmp_seq=2 ttl=64 time=0.335 ms 64 bytes from 192.65.0.1: icmp_seq=3 ttl=64 time=0.949 ms --- 192.65.0.1 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2041ms [26-06-22 06:36:45][ASSERT#0046][OK] cost=2.132s [26-06-22 06:36:45][ASSERT#0047][match] at cases/switch_namespace_openvpn.sh:213 fn=test_reload_persistence retry=5 cmd="docker exec tests-sw-namespace-openvpn2 openlan network --name example route ls" expect="10.240.2.12/32" # total 1 prefix nexthop metric 10.240.2.12/32 192.65.0.2 660 [26-06-22 06:36:45][ASSERT#0047][OK] cost=0.079s [26-06-22 06:36:45][ASSERT#0048][match] at cases/switch_namespace_openvpn.sh:214 fn=test_reload_persistence retry=5 cmd="docker exec tests-sw-namespace-openvpn1 openlan network --name b route ls" expect="10.240.2.12/32" # total 1 prefix nexthop metric 10.240.2.12/32 192.65.0.2 660 [26-06-22 06:36:46][ASSERT#0048][OK] cost=0.069s [26-06-22 06:36:46][ASSERT#0049][match] at cases/switch_namespace_openvpn.sh:215 fn=test_reload_persistence retry=20 cmd="docker exec tests-sw-namespace-openvpn.vpn1 ping -c 3 10.240.2.12" expect="bytes from" PING 10.240.2.12 (10.240.2.12) 56(84) bytes of data. 64 bytes from 10.240.2.12: icmp_seq=1 ttl=63 time=0.909 ms 64 bytes from 10.240.2.12: icmp_seq=2 ttl=63 time=2.65 ms 64 bytes from 10.240.2.12: icmp_seq=3 ttl=63 time=2.07 ms --- 10.240.2.12 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2028ms [26-06-22 06:36:56][ASSERT#0049][OK] cost=10.435s [26-06-22 06:36:56][ASSERT#0050][match] at cases/switch_namespace_openvpn.sh:180 fn=assert_vpn_http_source retry=20 cmd="docker exec tests-sw-namespace-openvpn.vpn1 wget -qO- -T 3 -t 1 http://10.240.2.12:8081" expect="src=192.65.0.1" src=192.65.0.1 [26-06-22 06:36:56][ASSERT#0050][OK] cost=0.091s [26-06-22 06:36:56][ASSERT#0051][unmatch] at cases/switch_namespace_openvpn.sh:217 fn=test_reload_persistence retry=3 cmd="docker exec tests-sw-namespace-openvpn.acb ping -c 3 10.240.2.12" unexpected="bytes from" Last output: PING 10.240.2.12 (10.240.2.12) 56(84) bytes of data. --- 10.240.2.12 ping statistics --- 3 packets transmitted, 0 received, 100% packet loss, time 2049ms [26-06-22 06:37:35][ASSERT#0051][OK] cost=39.338s [26-06-22 06:37:35][ASSERT#0052][unmatch] at cases/switch_namespace_openvpn.sh:175 fn=assert_acb_http_unreachable retry=3 cmd="docker exec tests-sw-namespace-openvpn.acb wget -qO- -T 3 -t 1 http://10.240.2.12:8081" unexpected="src=" Last output: [26-06-22 06:37:48][ASSERT#0052][OK] cost=12.220s [26-06-22 06:37:48] END switch_namespace_openvpn status=PASS cost=184.143s