[26-06-22 06:27:19] START switch_findhop scenario: cases/switch_findhop.sh header : verify findhop route binding, remove guard, and reload state topology: sw0 VIP 10.243.0.10 | network a | network b | sw1.0 ------------------- sw1.1 | +--------- sw2 ---------+ topology: # Topology: topology: # - Diagram: topology: # sw0 VIP 10.243.0.10 topology: # ^ ^ topology: # | network a | network b topology: # sw1.0 ------------------- sw1.1 topology: # ^ ^ topology: # +--------- sw2 ---------+ topology: # findhop active-backup chooses nexthop path topology: # - Docker mgmt network: 100.100.0.0/24 topology: # sw0=100.100.0.240, sw1.0=100.100.0.241, sw1.1=100.100.0.242, sw2=100.100.0.243. topology: # - Service networks: topology: # network a: sw0=192.53.0.1, sw1.0=192.53.0.2, sw1.1=192.53.0.4, sw2=192.53.0.3. topology: # network b: sw0=192.54.0.1, sw1.1=192.54.0.2, sw2=192.54.0.3. topology: # - VIP: topology: # sw0 lo=10.243.0.10/32. topology: # Validation: topology: # sw2 -> sw1.0 -> sw0 uses network a, sw2 -> sw1.1 -> sw0 uses network b, topology: # then findhop on sw2 uses multi-nexthop in active-backup mode. Started switch pause container: tests-sw-findhop0-pause Started switch frr container: tests-sw-findhop0-frr Started switch ipsec container: tests-sw-findhop0-ipsec Started switch container: tests-sw-findhop0 [26-06-22 06:27:20][ASSERT#0001][expect] at cases/switch_findhop.sh:58 fn=setup_sw0 retry=30 cmd="docker logs -f tests-sw-findhop0" expect="Http.Start" 2026/06/22 06:27:20 INFO|root|Wait: ... 2026/06/22 06:27:20 INFO|root|UdpServer.Listen: udp://0.0.0.0:10002 2026/06/22 06:27:20 INFO|root|TcpServer.Listen: tcp://0.0.0.0:10002 2026/06/22 06:27:20 INFO|root|Http.Start 0.0.0.0:10000 [26-06-22 06:27:21][ASSERT#0001][OK] cost=1.031s [26-06-22 06:27:21][ASSERT#0002][cmd] at cases/switch_findhop.sh:60 fn=setup_sw0 cmd="docker exec tests-sw-findhop0 openlan crypt update --algorithm aes-128 --secret cb2ff088a34d" [26-06-22 06:27:21][ASSERT#0002][OK] cost=0.070s [26-06-22 06:27:21][ASSERT#0003][cmd] at cases/switch_findhop.sh:61 fn=setup_sw0 cmd="docker exec tests-sw-findhop0 openlan network --name a add --address 192.53.0.1/24" [26-06-22 06:27:21][ASSERT#0003][OK] cost=0.253s [26-06-22 06:27:21][ASSERT#0004][cmd] at cases/switch_findhop.sh:62 fn=setup_sw0 cmd="docker exec tests-sw-findhop0 openlan network --name b add --address 192.54.0.1/24" [26-06-22 06:27:21][ASSERT#0004][OK] cost=0.263s [26-06-22 06:27:21][ASSERT#0005][cmd] at cases/switch_findhop.sh:63 fn=setup_sw0 cmd="docker exec tests-sw-findhop0 openlan router address add --device lo --address 10.243.0.10/32" [26-06-22 06:27:21][ASSERT#0005][OK] cost=0.066s [26-06-22 06:27:21][ASSERT#0006][cmd] at cases/switch_findhop.sh:64 fn=setup_sw0 cmd="docker exec tests-sw-findhop0 openlan user add --name edgea@a --password 123456" # total 1 username password role lease edgea@a 123456 guest 2027-06-22T06 [26-06-22 06:27:21][ASSERT#0006][OK] cost=0.070s [26-06-22 06:27:21][ASSERT#0007][cmd] at cases/switch_findhop.sh:65 fn=setup_sw0 cmd="docker exec tests-sw-findhop0 openlan user add --name edgeb@b --password 123457" # total 1 username password role lease edgeb@b 123457 guest 2027-06-22T06 [26-06-22 06:27:21][ASSERT#0007][OK] cost=0.069s Started switch pause container: tests-sw-findhop10-pause Started switch frr container: tests-sw-findhop10-frr Started switch ipsec container: tests-sw-findhop10-ipsec Started switch container: tests-sw-findhop10 [26-06-22 06:27:22][ASSERT#0008][expect] at cases/switch_findhop.sh:74 fn=setup_sw10 retry=30 cmd="docker logs -f tests-sw-findhop10" expect="Http.Start" 2026/06/22 06:27:23 INFO|root|TcpServer.Listen: tcp://0.0.0.0:10002 2026/06/22 06:27:23 INFO|root|UdpServer.Listen: udp://0.0.0.0:10002 2026/06/22 06:27:23 INFO|root|Wait: ... 2026/06/22 06:27:23 INFO|root|Http.Start 0.0.0.0:10000 [26-06-22 06:27:23][ASSERT#0008][OK] cost=1.033s [26-06-22 06:27:23][ASSERT#0009][cmd] at cases/switch_findhop.sh:76 fn=setup_sw10 cmd="docker exec tests-sw-findhop10 openlan crypt update --algorithm aes-128 --secret cb2ff088a34d" [26-06-22 06:27:23][ASSERT#0009][OK] cost=0.068s [26-06-22 06:27:23][ASSERT#0010][cmd] at cases/switch_findhop.sh:77 fn=setup_sw10 cmd="docker exec tests-sw-findhop10 openlan network --name a add --address 192.53.0.2/24" [26-06-22 06:27:24][ASSERT#0010][OK] cost=0.264s [26-06-22 06:27:24][ASSERT#0011][cmd] at cases/switch_findhop.sh:78 fn=setup_sw10 cmd="docker exec tests-sw-findhop10 openlan user add --name edgea@a --password 123456" # total 1 username password role lease edgea@a 123456 guest 2027-06-22T06 [26-06-22 06:27:24][ASSERT#0011][OK] cost=0.060s [26-06-22 06:27:24][ASSERT#0012][cmd] at cases/switch_findhop.sh:79 fn=setup_sw10 cmd="docker exec tests-sw-findhop10 openlan network --name a output add --remote 100.100.0.240 --protocol tcp --secret edgea:123456 --crypt aes-128:cb2ff088a34d" [26-06-22 06:27:24][ASSERT#0012][OK] cost=0.075s Started switch pause container: tests-sw-findhop11-pause Started switch frr container: tests-sw-findhop11-frr Started switch ipsec container: tests-sw-findhop11-ipsec Started switch container: tests-sw-findhop11 [26-06-22 06:27:25][ASSERT#0013][expect] at cases/switch_findhop.sh:88 fn=setup_sw11 retry=30 cmd="docker logs -f tests-sw-findhop11" expect="Http.Start" 2026/06/22 06:27:25 INFO|root|UdpServer.Listen: udp://0.0.0.0:10002 2026/06/22 06:27:25 INFO|root|Http.LoadToken: file:/etc/openlan/switch/token does not exist 2026/06/22 06:27:25 INFO|root|TcpServer.Listen: tcp://0.0.0.0:10002 2026/06/22 06:27:25 INFO|root|Http.Start 0.0.0.0:10000 [26-06-22 06:27:26][ASSERT#0013][OK] cost=1.028s [26-06-22 06:27:26][ASSERT#0014][cmd] at cases/switch_findhop.sh:90 fn=setup_sw11 cmd="docker exec tests-sw-findhop11 openlan crypt update --algorithm aes-128 --secret cb2ff088a34d" [26-06-22 06:27:26][ASSERT#0014][OK] cost=0.061s [26-06-22 06:27:26][ASSERT#0015][cmd] at cases/switch_findhop.sh:91 fn=setup_sw11 cmd="docker exec tests-sw-findhop11 openlan network --name a add --address 192.53.0.4/24" [26-06-22 06:27:26][ASSERT#0015][OK] cost=0.244s [26-06-22 06:27:26][ASSERT#0016][cmd] at cases/switch_findhop.sh:92 fn=setup_sw11 cmd="docker exec tests-sw-findhop11 openlan network --name b add --address 192.54.0.2/24" [26-06-22 06:27:26][ASSERT#0016][OK] cost=0.262s [26-06-22 06:27:26][ASSERT#0017][cmd] at cases/switch_findhop.sh:93 fn=setup_sw11 cmd="docker exec tests-sw-findhop11 openlan user add --name edgea@a --password 123456" # total 1 username password role lease edgea@a 123456 guest 2027-06-22T06 [26-06-22 06:27:26][ASSERT#0017][OK] cost=0.061s [26-06-22 06:27:26][ASSERT#0018][cmd] at cases/switch_findhop.sh:94 fn=setup_sw11 cmd="docker exec tests-sw-findhop11 openlan user add --name edgeb@b --password 123457" # total 1 username password role lease edgeb@b 123457 guest 2027-06-22T06 [26-06-22 06:27:26][ASSERT#0018][OK] cost=0.063s [26-06-22 06:27:26][ASSERT#0019][cmd] at cases/switch_findhop.sh:95 fn=setup_sw11 cmd="docker exec tests-sw-findhop11 openlan network --name b output add --remote 100.100.0.240 --protocol tcp --secret edgeb:123457 --crypt aes-128:cb2ff088a34d" [26-06-22 06:27:26][ASSERT#0019][OK] cost=0.068s Started switch pause container: tests-sw-findhop2-pause Started switch frr container: tests-sw-findhop2-frr Started switch ipsec container: tests-sw-findhop2-ipsec Started switch container: tests-sw-findhop2 [26-06-22 06:27:27][ASSERT#0020][expect] at cases/switch_findhop.sh:104 fn=setup_sw2 retry=30 cmd="docker logs -f tests-sw-findhop2" expect="Http.Start" 2026/06/22 06:27:28 INFO|root|UdpServer.Listen: udp://0.0.0.0:10002 2026/06/22 06:27:28 INFO|root|TcpServer.Listen: tcp://0.0.0.0:10002 2026/06/22 06:27:28 INFO|root|Wait: ... 2026/06/22 06:27:28 INFO|root|Http.Start 0.0.0.0:10000 [26-06-22 06:27:28][ASSERT#0020][OK] cost=1.035s [26-06-22 06:27:28][ASSERT#0021][cmd] at cases/switch_findhop.sh:106 fn=setup_sw2 cmd="docker exec tests-sw-findhop2 openlan crypt update --algorithm aes-128 --secret cb2ff088a34d" [26-06-22 06:27:28][ASSERT#0021][OK] cost=0.065s [26-06-22 06:27:28][ASSERT#0022][cmd] at cases/switch_findhop.sh:107 fn=setup_sw2 cmd="docker exec tests-sw-findhop2 openlan network --name a add --address 192.53.0.3/24" [26-06-22 06:27:28][ASSERT#0022][OK] cost=0.257s [26-06-22 06:27:28][ASSERT#0023][cmd] at cases/switch_findhop.sh:108 fn=setup_sw2 cmd="docker exec tests-sw-findhop2 openlan network --name b add --address 192.54.0.3/24" [26-06-22 06:27:29][ASSERT#0023][OK] cost=0.258s [26-06-22 06:27:29][ASSERT#0024][cmd] at cases/switch_findhop.sh:109 fn=setup_sw2 cmd="docker exec tests-sw-findhop2 openlan user add --name edgea@a --password 123456" # total 1 username password role lease edgea@a 123456 guest 2027-06-22T06 [26-06-22 06:27:29][ASSERT#0024][OK] cost=0.068s [26-06-22 06:27:29][ASSERT#0025][cmd] at cases/switch_findhop.sh:110 fn=setup_sw2 cmd="docker exec tests-sw-findhop2 openlan user add --name edgeb@b --password 123457" # total 1 username password role lease edgeb@b 123457 guest 2027-06-22T06 [26-06-22 06:27:29][ASSERT#0025][OK] cost=0.061s [26-06-22 06:27:29][ASSERT#0026][cmd] at cases/switch_findhop.sh:112 fn=setup_sw2 cmd="docker exec tests-sw-findhop2 openlan network --name a output add --remote 100.100.0.241 --protocol tcp --secret edgea:123456 --crypt aes-128:cb2ff088a34d" [26-06-22 06:27:29][ASSERT#0026][OK] cost=0.073s [26-06-22 06:27:29][ASSERT#0027][cmd] at cases/switch_findhop.sh:113 fn=setup_sw2 cmd="docker exec tests-sw-findhop2 openlan network --name b output add --remote 100.100.0.242 --protocol tcp --secret edgeb:123457 --crypt aes-128:cb2ff088a34d" [26-06-22 06:27:29][ASSERT#0027][OK] cost=0.052s [26-06-22 06:27:29][ASSERT#0028][match] at cases/switch_findhop.sh:199 fn=setup_topology retry=30 cmd="docker exec tests-sw-findhop10 openlan network --name a output ls" expect="state: authenticated" remote: 100.100.0.240 rxBytes: 73 secret: edgea:123456 state: authenticated txBytes: 156 [26-06-22 06:27:29][ASSERT#0028][OK] cost=0.065s [26-06-22 06:27:29][ASSERT#0029][match] at cases/switch_findhop.sh:200 fn=setup_topology retry=30 cmd="docker exec tests-sw-findhop11 openlan network --name b output ls" expect="state: authenticated" remote: 100.100.0.240 rxBytes: 52 secret: edgeb:123457 state: authenticated [26-06-22 06:27:29][ASSERT#0029][OK] cost=0.071s [26-06-22 06:27:29][ASSERT#0030][match] at cases/switch_findhop.sh:202 fn=setup_topology retry=30 cmd="docker exec tests-sw-findhop2 openlan network --name a output ls" expect="state: authenticated" remote: 100.100.0.241 rxBytes: 52 secret: edgea:123456 state: authenticated [26-06-22 06:27:31][ASSERT#0030][OK] cost=2.214s [26-06-22 06:27:31][ASSERT#0031][match] at cases/switch_findhop.sh:203 fn=setup_topology retry=30 cmd="docker exec tests-sw-findhop2 openlan network --name b output ls" expect="state: authenticated" remote: 100.100.0.242 rxBytes: 94 secret: edgeb:123457 state: authenticated txBytes: 156 [26-06-22 06:27:31][ASSERT#0031][OK] cost=0.074s [26-06-22 06:27:31][ASSERT#0032][match] at cases/switch_findhop.sh:129 fn=test_path_via_sw10_network_a retry=15 cmd="docker exec tests-sw-findhop2 ping -c 3 192.53.0.1" expect="bytes from" PING 192.53.0.1 (192.53.0.1) 56(84) bytes of data. 64 bytes from 192.53.0.1: icmp_seq=1 ttl=64 time=2055 ms 64 bytes from 192.53.0.1: icmp_seq=2 ttl=64 time=1028 ms 64 bytes from 192.53.0.1: icmp_seq=3 ttl=64 time=4.20 ms --- 192.53.0.1 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2051ms [26-06-22 06:27:34][ASSERT#0032][OK] cost=2.128s [26-06-22 06:27:34][ASSERT#0033][cmd] at cases/switch_findhop.sh:130 fn=test_path_via_sw10_network_a cmd="docker exec tests-sw-findhop2 openlan network --name a route add --prefix 10.243.0.10/32 --nexthop 192.53.0.1" [26-06-22 06:27:34][ASSERT#0033][OK] cost=0.061s [26-06-22 06:27:34][ASSERT#0034][match] at cases/switch_findhop.sh:131 fn=test_path_via_sw10_network_a retry=20 cmd="docker exec tests-sw-findhop2 ping -c 3 10.243.0.10" expect="bytes from" PING 10.243.0.10 (10.243.0.10) 56(84) bytes of data. 64 bytes from 10.243.0.10: icmp_seq=1 ttl=64 time=0.813 ms 64 bytes from 10.243.0.10: icmp_seq=2 ttl=64 time=2.02 ms 64 bytes from 10.243.0.10: icmp_seq=3 ttl=64 time=1.99 ms --- 10.243.0.10 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2010ms [26-06-22 06:27:36][ASSERT#0034][OK] cost=2.079s [26-06-22 06:27:36][ASSERT#0035][cmd] at cases/switch_findhop.sh:132 fn=test_path_via_sw10_network_a cmd="docker exec tests-sw-findhop2 openlan network --name a route rm --prefix 10.243.0.10/32" [26-06-22 06:27:36][ASSERT#0035][OK] cost=0.073s [26-06-22 06:27:36][ASSERT#0036][match] at cases/switch_findhop.sh:137 fn=test_path_via_sw11_network_b retry=15 cmd="docker exec tests-sw-findhop2 ping -c 3 192.54.0.1" expect="bytes from" PING 192.54.0.1 (192.54.0.1) 56(84) bytes of data. 64 bytes from 192.54.0.1: icmp_seq=1 ttl=64 time=1.45 ms 64 bytes from 192.54.0.1: icmp_seq=2 ttl=64 time=2.51 ms 64 bytes from 192.54.0.1: icmp_seq=3 ttl=64 time=1.91 ms --- 192.54.0.1 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2003ms [26-06-22 06:27:38][ASSERT#0036][OK] cost=2.068s [26-06-22 06:27:38][ASSERT#0037][cmd] at cases/switch_findhop.sh:138 fn=test_path_via_sw11_network_b cmd="docker exec tests-sw-findhop2 openlan network --name b route add --prefix 10.243.0.10/32 --nexthop 192.54.0.1" [26-06-22 06:27:38][ASSERT#0037][OK] cost=0.067s [26-06-22 06:27:38][ASSERT#0038][match] at cases/switch_findhop.sh:139 fn=test_path_via_sw11_network_b retry=20 cmd="docker exec tests-sw-findhop2 ping -c 3 10.243.0.10" expect="bytes from" PING 10.243.0.10 (10.243.0.10) 56(84) bytes of data. 64 bytes from 10.243.0.10: icmp_seq=1 ttl=64 time=0.849 ms 64 bytes from 10.243.0.10: icmp_seq=2 ttl=64 time=2.47 ms 64 bytes from 10.243.0.10: icmp_seq=3 ttl=64 time=2.20 ms --- 10.243.0.10 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2056ms [26-06-22 06:27:40][ASSERT#0038][OK] cost=2.119s [26-06-22 06:27:40][ASSERT#0039][cmd] at cases/switch_findhop.sh:140 fn=test_path_via_sw11_network_b cmd="docker exec tests-sw-findhop2 openlan network --name b route rm --prefix 10.243.0.10/32" [26-06-22 06:27:40][ASSERT#0039][OK] cost=0.075s [26-06-22 06:27:40][ASSERT#0040][cmd] at cases/switch_findhop.sh:144 fn=test_findhop_active_backup cmd="docker exec tests-sw-findhop2 openlan network --name a findhop add --findhop sw0-hop --nexthop 192.53.0.1,192.54.0.1 --check ping --mode active-backup" [26-06-22 06:27:40][ASSERT#0040][OK] cost=0.067s [26-06-22 06:27:40][ASSERT#0041][match] at cases/switch_findhop.sh:145 fn=test_findhop_active_backup retry=20 cmd="docker exec tests-sw-findhop2 openlan network --name a findhop ls" expect="192.53.0.1,192.54.0.1" # total 1 name checker mode nexthop available sw0-hop ping active-backup 192.53.0.1,192.54.0.1 - [26-06-22 06:27:40][ASSERT#0041][OK] cost=0.060s [26-06-22 06:27:40][ASSERT#0042][cmd] at cases/switch_findhop.sh:147 fn=test_findhop_active_backup cmd="docker exec tests-sw-findhop2 openlan network --name a route add --prefix 10.243.0.10/32 --findhop sw0-hop" [26-06-22 06:27:40][ASSERT#0042][OK] cost=0.069s [26-06-22 06:27:40][ASSERT#0043][match] at cases/switch_findhop.sh:148 fn=test_findhop_active_backup retry=60 cmd="docker exec tests-sw-findhop2 ip r get 10.243.0.10" expect="via 192" 10.243.0.10 via 192.53.0.1 dev hi-a src 192.53.0.3 uid 0 cache [26-06-22 06:27:47][ASSERT#0043][OK] cost=6.446s [26-06-22 06:27:47][ASSERT#0044][match] at cases/switch_findhop.sh:149 fn=test_findhop_active_backup retry=20 cmd="docker exec tests-sw-findhop2 ping -c 3 10.243.0.10" expect="bytes from" PING 10.243.0.10 (10.243.0.10) 56(84) bytes of data. 64 bytes from 10.243.0.10: icmp_seq=1 ttl=64 time=0.896 ms 64 bytes from 10.243.0.10: icmp_seq=2 ttl=64 time=1.90 ms 64 bytes from 10.243.0.10: icmp_seq=3 ttl=64 time=2.53 ms --- 10.243.0.10 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2015ms [26-06-22 06:27:49][ASSERT#0044][OK] cost=2.076s Save configuraion ... success Stopped switch containers: tests-sw-findhop10, tests-sw-findhop10-pause, tests-sw-findhop10-ipsec, tests-sw-findhop10-frr [26-06-22 06:27:49][ASSERT#0045][match] at cases/switch_findhop.sh:153 fn=test_findhop_active_backup retry=60 cmd="docker exec tests-sw-findhop2 ip r get 10.243.0.10" expect="192.54.0.1" 10.243.0.10 via 192.54.0.1 dev hi-b src 192.54.0.3 uid 0 cache [26-06-22 06:28:06][ASSERT#0045][OK] cost=17.049s [26-06-22 06:28:06][ASSERT#0046][match] at cases/switch_findhop.sh:154 fn=test_findhop_active_backup retry=30 cmd="docker exec tests-sw-findhop2 ping -c 3 10.243.0.10" expect="bytes from" PING 10.243.0.10 (10.243.0.10) 56(84) bytes of data. 64 bytes from 10.243.0.10: icmp_seq=1 ttl=64 time=0.857 ms 64 bytes from 10.243.0.10: icmp_seq=2 ttl=64 time=0.944 ms 64 bytes from 10.243.0.10: icmp_seq=3 ttl=64 time=0.928 ms --- 10.243.0.10 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2053ms [26-06-22 06:28:08][ASSERT#0046][OK] cost=2.119s Save configuraion ... success Stopped switch containers: tests-sw-findhop11, tests-sw-findhop11-pause, tests-sw-findhop11-ipsec, tests-sw-findhop11-frr Started switch pause container: tests-sw-findhop10-pause Started switch frr container: tests-sw-findhop10-frr Started switch ipsec container: tests-sw-findhop10-ipsec Started switch container: tests-sw-findhop10 [26-06-22 06:28:09][ASSERT#0047][expect] at cases/switch_findhop.sh:118 fn=recover_sw10 retry=30 cmd="docker logs -f tests-sw-findhop10" expect="Http.Start" 2026/06/22 06:28:10 INFO|root|Wait: ... 2026/06/22 06:28:10 INFO|root|UdpServer.Listen: udp://0.0.0.0:10002 2026/06/22 06:28:10 INFO|root|TcpServer.Listen: tcp://0.0.0.0:10002 2026/06/22 06:28:10 INFO|root|Http.Start 0.0.0.0:10000 [26-06-22 06:28:10][ASSERT#0047][OK] cost=1.032s [26-06-22 06:28:10][ASSERT#0048][match] at cases/switch_findhop.sh:119 fn=recover_sw10 retry=30 cmd="docker exec tests-sw-findhop10 openlan network --name a output ls" expect="state: authenticated" protocol: tcp remote: 100.100.0.240 secret: edgea:123456 state: authenticated [26-06-22 06:28:13][ASSERT#0048][OK] cost=2.216s [26-06-22 06:28:13][ASSERT#0049][match] at cases/switch_findhop.sh:159 fn=test_findhop_active_backup retry=60 cmd="docker exec tests-sw-findhop2 ip r get 10.243.0.10" expect="192.53.0.1" 10.243.0.10 via 192.53.0.1 dev hi-a src 192.53.0.3 uid 0 cache [26-06-22 06:28:36][ASSERT#0049][OK] cost=23.456s [26-06-22 06:28:36][ASSERT#0050][match] at cases/switch_findhop.sh:160 fn=test_findhop_active_backup retry=30 cmd="docker exec tests-sw-findhop2 ping -c 3 10.243.0.10" expect="bytes from" PING 10.243.0.10 (10.243.0.10) 56(84) bytes of data. 64 bytes from 10.243.0.10: icmp_seq=1 ttl=64 time=0.827 ms 64 bytes from 10.243.0.10: icmp_seq=2 ttl=64 time=1.44 ms 64 bytes from 10.243.0.10: icmp_seq=3 ttl=64 time=1.86 ms --- 10.243.0.10 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2011ms [26-06-22 06:28:38][ASSERT#0050][OK] cost=2.083s [26-06-22 06:28:38][ASSERT#0051][cmd] at cases/switch_findhop.sh:162 fn=test_findhop_active_backup cmd="docker exec tests-sw-findhop0 openlan reload --save" Save configuraion ... success # reloading pid:46 .... PID 46 CMD: /usr/bin/openlan-switch -conf:dir /etc/openlan/switch -log:level 20 # max wait 60s... # during 1s, new pid:739 ... PID 739 CMD: /usr/bin/openlan-switch -conf:dir /etc/openlan/switch -log:level 20 [26-06-22 06:28:39][ASSERT#0051][OK] cost=1.075s [26-06-22 06:28:39][ASSERT#0052][cmd] at cases/switch_findhop.sh:163 fn=test_findhop_active_backup cmd="docker exec tests-sw-findhop10 openlan reload --save" Save configuraion ... success # reloading pid:34 .... PID 34 CMD: /usr/bin/openlan-switch -conf:dir /etc/openlan/switch -log:level 20 # max wait 60s... # during 1s, new pid:491 ... PID 491 CMD: /usr/bin/openlan-switch -conf:dir /etc/openlan/switch -log:level 20 [26-06-22 06:28:40][ASSERT#0052][OK] cost=1.077s [26-06-22 06:28:40][ASSERT#0053][cmd] at cases/switch_findhop.sh:164 fn=test_findhop_active_backup cmd="docker exec tests-sw-findhop2 openlan reload --save" Save configuraion ... success # reloading pid:46 .... PID 46 CMD: /usr/bin/openlan-switch -conf:dir /etc/openlan/switch -log:level 20 # max wait 60s... # during 1s, new pid:1228 ... PID 1228 CMD: /usr/bin/openlan-switch -conf:dir /etc/openlan/switch -log:level 20 [26-06-22 06:28:41][ASSERT#0053][OK] cost=1.066s [26-06-22 06:28:41][ASSERT#0054][cmd] at cases/switch_findhop.sh:166 fn=test_findhop_active_backup cmd="docker exec tests-sw-findhop2 ip neigh flush all" [26-06-22 06:28:42][ASSERT#0054][OK] cost=0.062s [26-06-22 06:28:42][ASSERT#0055][match] at cases/switch_findhop.sh:167 fn=test_findhop_active_backup retry=20 cmd="docker exec tests-sw-findhop2 ping -c 3 10.243.0.10" expect="bytes from" PING 10.243.0.10 (10.243.0.10) 56(84) bytes of data. 64 bytes from 10.243.0.10: icmp_seq=1 ttl=64 time=1.54 ms 64 bytes from 10.243.0.10: icmp_seq=2 ttl=64 time=1.85 ms 64 bytes from 10.243.0.10: icmp_seq=3 ttl=64 time=1.89 ms --- 10.243.0.10 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2002ms [26-06-22 06:28:51][ASSERT#0055][OK] cost=9.951s [26-06-22 06:28:52][ASSERT#0056][match] at cases/switch_findhop.sh:168 fn=test_findhop_active_backup retry=5 cmd="docker exec tests-sw-findhop2 openlan network --name a findhop rm --findhop sw0-hop" expect="checker has route" 2026/06/22 06:28:52 400 Bad Request FindHop.delHop: checker has route sw0-hop [26-06-22 06:28:52][ASSERT#0056][OK] cost=0.068s findhop remove is blocked while route is bound, as expected: [26-06-22 06:28:52][ASSERT#0057][cmd] at cases/switch_findhop.sh:171 fn=test_findhop_active_backup cmd="docker exec tests-sw-findhop2 openlan network --name a route rm --prefix 10.243.0.10/32" [26-06-22 06:28:52][ASSERT#0057][OK] cost=0.072s [26-06-22 06:28:52][ASSERT#0058][unmatch] at cases/switch_findhop.sh:172 fn=test_findhop_active_backup retry=5 cmd="docker exec tests-sw-findhop2 ip r get 10.243.0.10" unexpected="via 192" Last output: 10.243.0.10 via 100.100.0.1 dev eth0 src 100.100.0.243 uid 0 cache [26-06-22 06:28:57][ASSERT#0058][OK] cost=5.292s [26-06-22 06:28:57][ASSERT#0059][cmd] at cases/switch_findhop.sh:173 fn=test_findhop_active_backup cmd="docker exec tests-sw-findhop2 openlan network --name a findhop rm --findhop sw0-hop" [26-06-22 06:28:57][ASSERT#0059][OK] cost=0.065s Started switch pause container: tests-sw-findhop11-pause Started switch frr container: tests-sw-findhop11-frr Started switch ipsec container: tests-sw-findhop11-ipsec Started switch container: tests-sw-findhop11 [26-06-22 06:28:58][ASSERT#0060][expect] at cases/switch_findhop.sh:124 fn=recover_sw11 retry=30 cmd="docker logs -f tests-sw-findhop11" expect="Http.Start" 2026/06/22 06:29:04 INFO|root|UdpServer.Listen: udp://0.0.0.0:10002 2026/06/22 06:29:04 INFO|root|Wait: ... 2026/06/22 06:29:04 INFO|root|TcpServer.Listen: tcp://0.0.0.0:10002 2026/06/22 06:29:04 INFO|root|Http.Start 0.0.0.0:10000 [26-06-22 06:29:04][ASSERT#0060][OK] cost=6.158s [26-06-22 06:29:04][ASSERT#0061][match] at cases/switch_findhop.sh:125 fn=recover_sw11 retry=30 cmd="docker exec tests-sw-findhop11 openlan network --name b output ls" expect="state: authenticated" protocol: tcp remote: 100.100.0.240 secret: edgeb:123457 state: authenticated [26-06-22 06:29:05][ASSERT#0061][OK] cost=1.131s [26-06-22 06:29:05][ASSERT#0062][match] at cases/switch_findhop.sh:178 fn=test_findhop_loadbalance retry=30 cmd="docker exec tests-sw-findhop2 openlan network --name b output ls" expect="state: authenticated" remote: 100.100.0.242 rxBytes: 1826 secret: edgeb:123457 state: authenticated txBytes: 5086 [26-06-22 06:29:12][ASSERT#0062][OK] cost=6.496s [26-06-22 06:29:12][ASSERT#0063][cmd] at cases/switch_findhop.sh:180 fn=test_findhop_loadbalance cmd="docker exec tests-sw-findhop2 openlan network --name a findhop add --findhop sw0-hop-lb --nexthop 192.53.0.1,192.54.0.1 --check ping --mode load-balance" [26-06-22 06:29:12][ASSERT#0063][OK] cost=0.063s [26-06-22 06:29:12][ASSERT#0064][match] at cases/switch_findhop.sh:181 fn=test_findhop_loadbalance retry=20 cmd="docker exec tests-sw-findhop2 openlan network --name a findhop ls" expect="load-balance" # total 1 name checker mode nexthop available sw0-hop-lb ping load-balance 192.53.0.1,192.54.0.1 - [26-06-22 06:29:12][ASSERT#0064][OK] cost=0.072s [26-06-22 06:29:12][ASSERT#0065][cmd] at cases/switch_findhop.sh:183 fn=test_findhop_loadbalance cmd="docker exec tests-sw-findhop2 openlan network --name a route add --prefix 10.243.0.10/32 --findhop sw0-hop-lb" [26-06-22 06:29:12][ASSERT#0065][OK] cost=0.061s [26-06-22 06:29:12][ASSERT#0066][match] at cases/switch_findhop.sh:184 fn=test_findhop_loadbalance retry=60 cmd="docker exec tests-sw-findhop2 ip route show" expect="nexthop via 192.53.0.1" default via 100.100.0.1 dev eth0 10.243.0.10 metric 660 nexthop via 192.53.0.1 dev hi-a weight 2 nexthop via 192.54.0.1 dev hi-b weight 2 100.100.0.0/24 dev eth0 proto kernel scope link src 100.100.0.243 192.53.0.0/24 dev hi-a proto kernel scope link src 192.53.0.3 [26-06-22 06:29:18][ASSERT#0066][OK] cost=6.447s [26-06-22 06:29:18][ASSERT#0067][match] at cases/switch_findhop.sh:185 fn=test_findhop_loadbalance retry=60 cmd="docker exec tests-sw-findhop2 ip route show" expect="nexthop via 192.54.0.1" default via 100.100.0.1 dev eth0 10.243.0.10 metric 660 nexthop via 192.53.0.1 dev hi-a weight 2 nexthop via 192.54.0.1 dev hi-b weight 2 100.100.0.0/24 dev eth0 proto kernel scope link src 100.100.0.243 192.53.0.0/24 dev hi-a proto kernel scope link src 192.53.0.3 192.54.0.0/24 dev hi-b proto kernel scope link src 192.54.0.3 [26-06-22 06:29:18][ASSERT#0067][OK] cost=0.056s [26-06-22 06:29:18][ASSERT#0068][match] at cases/switch_findhop.sh:186 fn=test_findhop_loadbalance retry=30 cmd="docker exec tests-sw-findhop2 ping -c 3 10.243.0.10" expect="bytes from" PING 10.243.0.10 (10.243.0.10) 56(84) bytes of data. 64 bytes from 10.243.0.10: icmp_seq=1 ttl=64 time=0.861 ms 64 bytes from 10.243.0.10: icmp_seq=2 ttl=64 time=2.43 ms 64 bytes from 10.243.0.10: icmp_seq=3 ttl=64 time=1.84 ms --- 10.243.0.10 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2018ms [26-06-22 06:29:20][ASSERT#0068][OK] cost=2.077s [26-06-22 06:29:20][ASSERT#0069][cmd] at cases/switch_findhop.sh:188 fn=test_findhop_loadbalance cmd="docker exec tests-sw-findhop2 openlan network --name a route rm --prefix 10.243.0.10/32" [26-06-22 06:29:20][ASSERT#0069][OK] cost=0.068s [26-06-22 06:29:20][ASSERT#0070][cmd] at cases/switch_findhop.sh:189 fn=test_findhop_loadbalance cmd="docker exec tests-sw-findhop2 openlan network --name a findhop rm --findhop sw0-hop-lb" [26-06-22 06:29:21][ASSERT#0070][OK] cost=0.067s [26-06-22 06:29:21] END switch_findhop status=PASS cost=122.614s