[26-06-22 06:42:38] START switch_tcp scenario: cases/switch_tcp.sh header : build two switches and verify tcp output connectivity topology: sw1 192.41.0.1 | TCP output | TCP output | sw2 192.41.0.2 sw3 192.41.0.3 | then sw3 output is moved from sw1 to sw2 topology: # Topology: topology: # - Diagram: topology: # sw1 192.41.0.1 topology: # ^ ^ topology: # | TCP output | TCP output topology: # sw2 192.41.0.2 sw3 192.41.0.3 topology: # then sw3 output is moved from sw1 to sw2 topology: # - Docker mgmt network: 100.100.0.0/24 topology: # sw1=100.100.0.241, sw2=100.100.0.242, sw3=100.100.0.243. topology: # - OpenLAN service network "example": 192.41.0.0/24 topology: # sw1=192.41.0.1, sw2=192.41.0.2, sw3=192.41.0.3. topology: # - Forwarding links: topology: # sw2 -> sw1 first, sw3 -> sw1 first, then sw3 -> sw2. topology: # Validation: topology: # (see scenario assertions in this case) Started switch pause container: tests-sw1-pause Started switch frr container: tests-sw1-frr Started switch ipsec container: tests-sw1-ipsec Started switch container: tests-sw1 [26-06-22 06:42:39][ASSERT#0001][expect] at cases/switch_tcp.sh:64 fn=setup_sw1 retry=30 cmd="docker logs -f tests-sw1" expect="Http.Start" 2026/06/22 06:42:39 INFO|root|Wait: ... 2026/06/22 06:42:39 INFO|root|UdpServer.Listen: udp://0.0.0.0:10002 2026/06/22 06:42:39 INFO|root|TcpServer.Listen: tcp://0.0.0.0:10002 2026/06/22 06:42:39 INFO|root|Http.Start 0.0.0.0:10000 [26-06-22 06:42:40][ASSERT#0001][OK] cost=1.032s [26-06-22 06:42:40][ASSERT#0002][cmd] at cases/switch_tcp.sh:67 fn=setup_sw1 cmd="docker exec tests-sw1 openlan network --name example add --address 192.41.0.1/24" [26-06-22 06:42:40][ASSERT#0002][OK] cost=0.251s [26-06-22 06:42:40][ASSERT#0003][match] at cases/switch_tcp.sh:68 fn=setup_sw1 retry=1 cmd="docker exec tests-sw1 openlan network ls" expect="name: example" bridge: address: 192.41.0.1/24 name: br-example name: example snat: enable subnet: netmask: 255.255.255.0 name: example openvpnStatus: disabled - config: name: ipsec [26-06-22 06:42:40][ASSERT#0003][OK] cost=0.070s [26-06-22 06:42:40][ASSERT#0004][cmd] at cases/switch_tcp.sh:70 fn=setup_sw1 cmd="docker exec tests-sw1 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:42:40][ASSERT#0004][OK] cost=0.065s Started switch pause container: tests-sw2-pause Started switch frr container: tests-sw2-frr Started switch ipsec container: tests-sw2-ipsec Started switch container: tests-sw2 [26-06-22 06:42:41][ASSERT#0005][expect] at cases/switch_tcp.sh:90 fn=setup_sw2 retry=30 cmd="docker logs -f tests-sw2" expect="Http.Start" 2026/06/22 06:42:42 INFO|root|Wait: ... 2026/06/22 06:42:42 INFO|root|UdpServer.Listen: udp://0.0.0.0:10002 2026/06/22 06:42:42 INFO|root|TcpServer.Listen: tcp://0.0.0.0:10002 2026/06/22 06:42:42 INFO|root|Http.Start 0.0.0.0:10000 [26-06-22 06:42:42][ASSERT#0005][OK] cost=1.033s [26-06-22 06:42:42][ASSERT#0006][cmd] at cases/switch_tcp.sh:93 fn=setup_sw2 cmd="docker exec tests-sw2 openlan network --name example add --address 192.41.0.2/24" [26-06-22 06:42:42][ASSERT#0006][OK] cost=0.258s [26-06-22 06:42:42][ASSERT#0007][cmd] at cases/switch_tcp.sh:95 fn=setup_sw2 cmd="docker exec tests-sw2 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:42:42][ASSERT#0007][OK] cost=0.057s [26-06-22 06:42:42][ASSERT#0008][cmd] at cases/switch_tcp.sh:98 fn=setup_sw2 cmd="docker exec tests-sw2 openlan network --name example output add --remote 100.100.0.241 --protocol tcp --secret t1:123456 --crypt aes-128:password" [26-06-22 06:42:42][ASSERT#0008][OK] cost=0.060s [26-06-22 06:42:42][ASSERT#0009][cmd] at cases/switch_tcp.sh:99 fn=setup_sw2 cmd="docker exec tests-sw2 openlan network --name example output ls" - aliveTime: 0 crypt: aes-128:password device: "" network: example protocol: tcp remote: 100.100.0.241 secret: t1:123456 [26-06-22 06:42:42][ASSERT#0009][OK] cost=0.057s Started switch pause container: tests-sw3-pause Started switch frr container: tests-sw3-frr Started switch ipsec container: tests-sw3-ipsec Started switch container: tests-sw3 [26-06-22 06:42:43][ASSERT#0010][expect] at cases/switch_tcp.sh:120 fn=setup_sw3 retry=30 cmd="docker logs -f tests-sw3" expect="Http.Start" 2026/06/22 06:42:44 INFO|root|Wait: ... 2026/06/22 06:42:44 INFO|root|UdpServer.Listen: udp://0.0.0.0:10002 2026/06/22 06:42:44 INFO|root|TcpServer.Listen: tcp://0.0.0.0:10002 2026/06/22 06:42:44 INFO|root|Http.Start 0.0.0.0:10000 [26-06-22 06:42:44][ASSERT#0010][OK] cost=1.034s [26-06-22 06:42:44][ASSERT#0011][cmd] at cases/switch_tcp.sh:123 fn=setup_sw3 cmd="docker exec tests-sw3 openlan network --name example add --address 192.41.0.3/24" [26-06-22 06:42:44][ASSERT#0011][OK] cost=0.249s [26-06-22 06:42:44][ASSERT#0012][cmd] at cases/switch_tcp.sh:125 fn=setup_sw3 cmd="docker exec tests-sw3 openlan network --name example output add --remote 100.100.0.241 --protocol tcp --secret t1:123456 --crypt aes-128:ea64d5b0c96c" [26-06-22 06:42:44][ASSERT#0012][OK] cost=0.071s [26-06-22 06:42:44][ASSERT#0013][cmd] at cases/switch_tcp.sh:126 fn=setup_sw3 cmd="docker exec tests-sw3 openlan network --name example output ls" - aliveTime: 1 crypt: aes-128:ea64d5b0c96c device: "" network: example protocol: tcp remote: 100.100.0.241 secret: t1:123456 [26-06-22 06:42:45][ASSERT#0013][OK] cost=0.071s [26-06-22 06:42:45][ASSERT#0014][match] at cases/switch_tcp.sh:130 fn=test_ping_before_sw3_sw2_output retry=15 cmd="docker exec tests-sw2 ping -c 3 192.41.0.1" expect="bytes from" PING 192.41.0.1 (192.41.0.1) 56(84) bytes of data. 64 bytes from 192.41.0.1: icmp_seq=1 ttl=64 time=2051 ms 64 bytes from 192.41.0.1: icmp_seq=2 ttl=64 time=1026 ms 64 bytes from 192.41.0.1: icmp_seq=3 ttl=64 time=2.21 ms --- 192.41.0.1 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2049ms [26-06-22 06:42:47][ASSERT#0014][OK] cost=2.118s [26-06-22 06:42:47][ASSERT#0015][unmatch] at cases/switch_tcp.sh:131 fn=test_ping_before_sw3_sw2_output retry=3 cmd="docker exec tests-sw3 ping -c 3 192.41.0.1" unexpected="bytes from" Last output: PING 192.41.0.1 (192.41.0.1) 56(84) bytes of data. From 192.41.0.3 icmp_seq=1 Destination Host Unreachable From 192.41.0.3 icmp_seq=2 Destination Host Unreachable From 192.41.0.3 icmp_seq=3 Destination Host Unreachable --- 192.41.0.1 ping statistics --- 3 packets transmitted, 0 received, +3 errors, 100% packet loss, time 2077ms pipe 3 [26-06-22 06:42:59][ASSERT#0015][OK] cost=12.456s [26-06-22 06:42:59][ASSERT#0016][cmd] at cases/switch_tcp.sh:144 fn=test_ping cmd="docker exec tests-sw3 openlan network --name example output add --remote 100.100.0.242 --protocol tcp --secret t1:123456 --crypt aes-128:ea64d5b0c96c" [26-06-22 06:42:59][ASSERT#0016][OK] cost=0.070s [26-06-22 06:42:59][ASSERT#0017][match] at cases/switch_tcp.sh:145 fn=test_ping retry=15 cmd="docker exec tests-sw3 openlan network --name example output ls" expect="state: authenticated" protocol: tcp remote: 100.100.0.242 secret: t1:123456 state: authenticated - aliveTime: 16 crypt: aes-128:ea64d5b0c96c device: tap0 [26-06-22 06:43:01][ASSERT#0017][OK] cost=2.204s [26-06-22 06:43:01][ASSERT#0018][match] at cases/switch_tcp.sh:135 fn=test_ping_after_sw3_sw2_output retry=15 cmd="docker exec tests-sw2 ping -c 3 192.41.0.2" expect="bytes from" PING 192.41.0.2 (192.41.0.2) 56(84) bytes of data. 64 bytes from 192.41.0.2: icmp_seq=1 ttl=64 time=0.075 ms 64 bytes from 192.41.0.2: icmp_seq=2 ttl=64 time=0.119 ms 64 bytes from 192.41.0.2: icmp_seq=3 ttl=64 time=0.107 ms --- 192.41.0.2 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2079ms [26-06-22 06:43:04][ASSERT#0018][OK] cost=2.139s [26-06-22 06:43:04][ASSERT#0019][match] at cases/switch_tcp.sh:136 fn=test_ping_after_sw3_sw2_output retry=15 cmd="docker exec tests-sw2 ping -c 3 192.41.0.3" expect="bytes from" PING 192.41.0.3 (192.41.0.3) 56(84) bytes of data. 64 bytes from 192.41.0.3: icmp_seq=1 ttl=64 time=1.00 ms 64 bytes from 192.41.0.3: icmp_seq=2 ttl=64 time=1.20 ms 64 bytes from 192.41.0.3: icmp_seq=3 ttl=64 time=1.14 ms --- 192.41.0.3 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2003ms [26-06-22 06:43:06][ASSERT#0019][OK] cost=2.075s [26-06-22 06:43:06][ASSERT#0020][cmd] at cases/switch_tcp.sh:148 fn=test_ping cmd="docker exec tests-sw1 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:485 ... PID 485 CMD: /usr/bin/openlan-switch -conf:dir /etc/openlan/switch -log:level 20 [26-06-22 06:43:07][ASSERT#0020][OK] cost=1.076s [26-06-22 06:43:07][ASSERT#0021][cmd] at cases/switch_tcp.sh:149 fn=test_ping cmd="docker exec tests-sw2 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:525 ... PID 525 CMD: /usr/bin/openlan-switch -conf:dir /etc/openlan/switch -log:level 20 [26-06-22 06:43:08][ASSERT#0021][OK] cost=1.067s [26-06-22 06:43:08][ASSERT#0022][cmd] at cases/switch_tcp.sh:150 fn=test_ping cmd="docker exec tests-sw3 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:566 ... PID 566 CMD: /usr/bin/openlan-switch -conf:dir /etc/openlan/switch -log:level 20 [26-06-22 06:43:09][ASSERT#0022][OK] cost=1.081s [26-06-22 06:43:09][ASSERT#0023][cmd] at cases/switch_tcp.sh:152 fn=test_ping cmd="docker exec tests-sw2 ip neigh flush dev hi-example" [26-06-22 06:43:09][ASSERT#0023][OK] cost=0.061s [26-06-22 06:43:09][ASSERT#0024][match] at cases/switch_tcp.sh:135 fn=test_ping_after_sw3_sw2_output retry=15 cmd="docker exec tests-sw2 ping -c 3 192.41.0.2" expect="bytes from" PING 192.41.0.2 (192.41.0.2) 56(84) bytes of data. 64 bytes from 192.41.0.2: icmp_seq=1 ttl=64 time=0.074 ms 64 bytes from 192.41.0.2: icmp_seq=2 ttl=64 time=0.062 ms 64 bytes from 192.41.0.2: icmp_seq=3 ttl=64 time=0.108 ms --- 192.41.0.2 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2086ms [26-06-22 06:43:11][ASSERT#0024][OK] cost=2.151s [26-06-22 06:43:11][ASSERT#0025][match] at cases/switch_tcp.sh:136 fn=test_ping_after_sw3_sw2_output retry=15 cmd="docker exec tests-sw2 ping -c 3 192.41.0.3" expect="bytes from" PING 192.41.0.3 (192.41.0.3) 56(84) bytes of data. 64 bytes from 192.41.0.3: icmp_seq=1 ttl=64 time=0.696 ms 64 bytes from 192.41.0.3: icmp_seq=2 ttl=64 time=1.02 ms 64 bytes from 192.41.0.3: icmp_seq=3 ttl=64 time=0.960 ms --- 192.41.0.3 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2051ms [26-06-22 06:43:21][ASSERT#0025][OK] cost=10.404s [26-06-22 06:43:22][ASSERT#0026][cmd] at cases/switch_tcp.sh:158 fn=test_ping cmd="docker exec tests-sw3 openlan network --name example output rm --device tcp:100.100.0.242:t1" [26-06-22 06:43:22][ASSERT#0026][OK] cost=0.064s [26-06-22 06:43:22][ASSERT#0027][unmatch] at cases/switch_tcp.sh:159 fn=test_ping retry=20 cmd="docker exec tests-sw2 ping -c 3 192.41.0.3" unexpected="bytes from" Last output: PING 192.41.0.3 (192.41.0.3) 56(84) bytes of data. From 192.41.0.2 icmp_seq=1 Destination Host Unreachable From 192.41.0.2 icmp_seq=2 Destination Host Unreachable From 192.41.0.2 icmp_seq=3 Destination Host Unreachable --- 192.41.0.3 ping statistics --- 3 packets transmitted, 0 received, +3 errors, 100% packet loss, time 2067ms pipe 3 [26-06-22 06:45:21][ASSERT#0027][OK] cost=119.030s [26-06-22 06:45:21] END switch_tcp status=PASS cost=163.565s