Hello vpp dev team, I'm working on Multi-context - add/update/delete ip4 vrf instances test case (make test framework, usage of vpp_lite) and I have an issue with deleting/reseting of VRF / FIB table. First I create 5 VRFs (1, 2, ..., 5) with three packet-generator interfaces in every VRF (VRF1: pg0, pg1, pg2; VRF2: pg3, pg4, pg5; ...) and run traffic test - everything is OK there.
Unfortunately there is an issue with deleting VRFs. I tried two available possibilities: 1. Use of reset_vrf API command (description: Reset VRF (remove all routes etc) request.) - it seems it doesn't work at all - no route is deleted for defined VRF as well as no ARP entry is removed and packets are routed inside VRFs between all pg interfaces in the VRF (e.g. from pg0 and pg1 to pg2 in VRF1, ...) 2. Use of reset_fib API command (description: Reset fib table request.) - Here I can see that corresponding ARP entries are deleted - But the routes in the FIB table are not deleted - And routing still works on the last deleted/reset VRF ---------------------------------------------------------------------- Starting IP4 VRF Multi-instance test 4 - delete 4 VRFs ... ---------------------------------------------------------------------- 13:18:37,448 VRF ID 3 deleted 13:18:37,449 VRF ID 4 deleted 13:18:37,451 VRF ID 1 deleted 13:18:37,452 VRF ID 5 deleted 13:18:37,455 show ip fib ipv4-VRF:0, fib_index 0, flow hash: src dst sport dport proto 0.0.0.0/0 unicast-ip4-chain [@0]: dpo-load-balance: [index:0 buckets:1 uRPF:0 to:[60:43120]] [0] [@0]: dpo-drop ip4 0.0.0.0/32 unicast-ip4-chain [@0]: dpo-load-balance: [index:1 buckets:1 uRPF:1 to:[0:0]] [0] [@0]: dpo-drop ip4 172.16.1.1/32 unicast-ip4-chain [@0]: dpo-load-balance: [index:24 buckets:1 uRPF:0 to:[0:0]] [0] [@0]: dpo-drop ip4 172.16.4.1/32 unicast-ip4-chain [@0]: dpo-load-balance: [index:51 buckets:1 uRPF:0 to:[0:0]] [0] [@0]: dpo-drop ip4 172.16.7.1/32 unicast-ip4-chain [@0]: dpo-load-balance: [index:78 buckets:1 uRPF:0 to:[0:0]] [0] [@0]: dpo-drop ip4 172.16.10.1/32 unicast-ip4-chain [@0]: dpo-load-balance: [index:105 buckets:1 uRPF:0 to:[0:0]] [0] [@0]: dpo-drop ip4 172.16.13.1/32 unicast-ip4-chain [@0]: dpo-load-balance: [index:38 buckets:1 uRPF:0 to:[0:0]] [0] [@0]: dpo-drop ip4 224.0.0.0/4 unicast-ip4-chain [@0]: dpo-load-balance: [index:3 buckets:1 uRPF:3 to:[0:0]] [0] [@0]: dpo-drop ip4 240.0.0.0/4 unicast-ip4-chain [@0]: dpo-load-balance: [index:2 buckets:1 uRPF:2 to:[0:0]] [0] [@0]: dpo-drop ip4 255.255.255.255/32 unicast-ip4-chain [@0]: dpo-load-balance: [index:4 buckets:1 uRPF:4 to:[0:0]] [0] [@0]: dpo-drop ip4 ipv4-VRF:1, fib_index 1, flow hash: src dst sport dport proto 0.0.0.0/0 unicast-ip4-chain [@0]: dpo-load-balance: [index:19 buckets:1 uRPF:17 to:[0:0]] [0] [@0]: dpo-drop ip4 0.0.0.0/32 unicast-ip4-chain [@0]: dpo-load-balance: [index:20 buckets:1 uRPF:18 to:[0:0]] [0] [@0]: dpo-drop ip4 172.16.1.1/32 unicast-ip4-chain [@0]: dpo-load-balance: [index:26 buckets:1 uRPF:24 to:[0:0]] [0] [@2]: dpo-receive: 172.16.1.1 on pg0 172.16.1.0/24 unicast-ip4-chain [@0]: dpo-load-balance: [index:25 buckets:1 uRPF:23 to:[10:9772]] [0] [@0]: dpo-drop ip4 172.16.2.0/24 unicast-ip4-chain [@0]: dpo-load-balance: [index:32 buckets:1 uRPF:30 to:[10:6850]] [0] [@0]: dpo-drop ip4 172.16.2.1/32 unicast-ip4-chain [@0]: dpo-load-balance: [index:33 buckets:1 uRPF:31 to:[0:0]] [0] [@2]: dpo-receive: 172.16.2.1 on pg1 172.16.3.0/24 unicast-ip4-chain [@0]: dpo-load-balance: [index:39 buckets:1 uRPF:37 to:[10:5788]] [0] [@0]: dpo-drop ip4 172.16.3.1/32 unicast-ip4-chain [@0]: dpo-load-balance: [index:40 buckets:1 uRPF:38 to:[0:0]] [0] [@2]: dpo-receive: 172.16.3.1 on pg2 224.0.0.0/4 unicast-ip4-chain [@0]: dpo-load-balance: [index:22 buckets:1 uRPF:20 to:[0:0]] [0] [@0]: dpo-drop ip4 240.0.0.0/4 unicast-ip4-chain [@0]: dpo-load-balance: [index:21 buckets:1 uRPF:19 to:[0:0]] [0] [@0]: dpo-drop ip4 255.255.255.255/32 unicast-ip4-chain [@0]: dpo-load-balance: [index:23 buckets:1 uRPF:21 to:[0:0]] [0] [@0]: dpo-drop ip4 ipv4-VRF:2, fib_index 2, flow hash: src dst sport dport proto 0.0.0.0/0 unicast-ip4-chain [@0]: dpo-load-balance: [index:46 buckets:1 uRPF:44 to:[0:0]] [0] [@0]: dpo-drop ip4 0.0.0.0/32 unicast-ip4-chain [@0]: dpo-load-balance: [index:47 buckets:1 uRPF:45 to:[0:0]] [0] [@0]: dpo-drop ip4 172.16.4.1/32 unicast-ip4-chain [@0]: dpo-load-balance: [index:53 buckets:1 uRPF:51 to:[0:0]] [0] [@2]: dpo-receive: 172.16.4.1 on pg3 172.16.4.0/24 unicast-ip4-chain [@0]: dpo-load-balance: [index:52 buckets:1 uRPF:50 to:[20:12502]] [0] [@4]: ipv4-glean: pg3 172.16.5.0/24 unicast-ip4-chain [@0]: dpo-load-balance: [index:59 buckets:1 uRPF:57 to:[20:16526]] [0] [@4]: ipv4-glean: pg4 172.16.5.1/32 unicast-ip4-chain [@0]: dpo-load-balance: [index:60 buckets:1 uRPF:58 to:[0:0]] [0] [@2]: dpo-receive: 172.16.5.1 on pg4 172.16.6.0/24 unicast-ip4-chain [@0]: dpo-load-balance: [index:66 buckets:1 uRPF:64 to:[20:13508]] [0] [@4]: ipv4-glean: pg5 172.16.6.1/32 unicast-ip4-chain [@0]: dpo-load-balance: [index:67 buckets:1 uRPF:65 to:[0:0]] [0] [@2]: dpo-receive: 172.16.6.1 on pg5 224.0.0.0/4 unicast-ip4-chain [@0]: dpo-load-balance: [index:49 buckets:1 uRPF:47 to:[0:0]] [0] [@0]: dpo-drop ip4 240.0.0.0/4 unicast-ip4-chain [@0]: dpo-load-balance: [index:48 buckets:1 uRPF:46 to:[0:0]] [0] [@0]: dpo-drop ip4 255.255.255.255/32 unicast-ip4-chain [@0]: dpo-load-balance: [index:50 buckets:1 uRPF:48 to:[0:0]] [0] [@0]: dpo-drop ip4 ipv4-VRF:3, fib_index 3, flow hash: src dst sport dport proto 0.0.0.0/0 unicast-ip4-chain [@0]: dpo-load-balance: [index:73 buckets:1 uRPF:71 to:[0:0]] [0] [@0]: dpo-drop ip4 0.0.0.0/32 unicast-ip4-chain [@0]: dpo-load-balance: [index:74 buckets:1 uRPF:72 to:[0:0]] [0] [@0]: dpo-drop ip4 172.16.7.1/32 unicast-ip4-chain [@0]: dpo-load-balance: [index:80 buckets:1 uRPF:78 to:[0:0]] [0] [@2]: dpo-receive: 172.16.7.1 on pg6 172.16.7.0/24 unicast-ip4-chain [@0]: dpo-load-balance: [index:79 buckets:1 uRPF:77 to:[0:0]] [0] [@0]: dpo-drop ip4 172.16.8.0/24 unicast-ip4-chain [@0]: dpo-load-balance: [index:86 buckets:1 uRPF:84 to:[0:0]] [0] [@0]: dpo-drop ip4 172.16.8.1/32 unicast-ip4-chain [@0]: dpo-load-balance: [index:87 buckets:1 uRPF:85 to:[0:0]] [0] [@2]: dpo-receive: 172.16.8.1 on pg7 172.16.9.0/24 unicast-ip4-chain [@0]: dpo-load-balance: [index:93 buckets:1 uRPF:91 to:[0:0]] [0] [@0]: dpo-drop ip4 172.16.9.1/32 unicast-ip4-chain [@0]: dpo-load-balance: [index:94 buckets:1 uRPF:92 to:[0:0]] [0] [@2]: dpo-receive: 172.16.9.1 on pg8 224.0.0.0/4 unicast-ip4-chain [@0]: dpo-load-balance: [index:76 buckets:1 uRPF:74 to:[0:0]] [0] [@0]: dpo-drop ip4 240.0.0.0/4 unicast-ip4-chain [@0]: dpo-load-balance: [index:75 buckets:1 uRPF:73 to:[0:0]] [0] [@0]: dpo-drop ip4 255.255.255.255/32 unicast-ip4-chain [@0]: dpo-load-balance: [index:77 buckets:1 uRPF:75 to:[0:0]] [0] [@0]: dpo-drop ip4 ipv4-VRF:4, fib_index 4, flow hash: src dst sport dport proto 0.0.0.0/0 unicast-ip4-chain [@0]: dpo-load-balance: [index:100 buckets:1 uRPF:98 to:[0:0]] [0] [@0]: dpo-drop ip4 0.0.0.0/32 unicast-ip4-chain [@0]: dpo-load-balance: [index:101 buckets:1 uRPF:99 to:[0:0]] [0] [@0]: dpo-drop ip4 172.16.10.1/32 unicast-ip4-chain [@0]: dpo-load-balance: [index:107 buckets:1 uRPF:105 to:[0:0]] [0] [@2]: dpo-receive: 172.16.10.1 on pg9 172.16.10.0/24 unicast-ip4-chain [@0]: dpo-load-balance: [index:106 buckets:1 uRPF:104 to:[0:0]] [0] [@0]: dpo-drop ip4 172.16.11.0/24 unicast-ip4-chain [@0]: dpo-load-balance: [index:113 buckets:1 uRPF:111 to:[0:0]] [0] [@0]: dpo-drop ip4 172.16.11.1/32 unicast-ip4-chain [@0]: dpo-load-balance: [index:114 buckets:1 uRPF:112 to:[0:0]] [0] [@2]: dpo-receive: 172.16.11.1 on pg10 172.16.12.0/24 unicast-ip4-chain [@0]: dpo-load-balance: [index:120 buckets:1 uRPF:118 to:[0:0]] [0] [@0]: dpo-drop ip4 172.16.12.1/32 unicast-ip4-chain [@0]: dpo-load-balance: [index:121 buckets:1 uRPF:119 to:[0:0]] [0] [@2]: dpo-receive: 172.16.12.1 on pg11 224.0.0.0/4 unicast-ip4-chain [@0]: dpo-load-balance: [index:103 buckets:1 uRPF:101 to:[0:0]] [0] [@0]: dpo-drop ip4 240.0.0.0/4 unicast-ip4-chain [@0]: dpo-load-balance: [index:102 buckets:1 uRPF:100 to:[0:0]] [0] [@0]: dpo-drop ip4 255.255.255.255/32 unicast-ip4-chain [@0]: dpo-load-balance: [index:104 buckets:1 uRPF:102 to:[0:0]] [0] [@0]: dpo-drop ip4 ipv4-VRF:5, fib_index 5, flow hash: src dst sport dport proto 0.0.0.0/0 unicast-ip4-chain [@0]: dpo-load-balance: [index:45 buckets:1 uRPF:52 to:[0:0]] [0] [@0]: dpo-drop ip4 0.0.0.0/32 unicast-ip4-chain [@0]: dpo-load-balance: [index:44 buckets:1 uRPF:43 to:[0:0]] [0] [@0]: dpo-drop ip4 172.16.13.1/32 unicast-ip4-chain [@0]: dpo-load-balance: [index:36 buckets:1 uRPF:35 to:[0:0]] [0] [@2]: dpo-receive: 172.16.13.1 on pg12 172.16.13.0/24 unicast-ip4-chain [@0]: dpo-load-balance: [index:37 buckets:1 uRPF:36 to:[0:0]] [0] [@0]: dpo-drop ip4 172.16.14.0/24 unicast-ip4-chain [@0]: dpo-load-balance: [index:28 buckets:1 uRPF:27 to:[0:0]] [0] [@0]: dpo-drop ip4 172.16.14.1/32 unicast-ip4-chain [@0]: dpo-load-balance: [index:27 buckets:1 uRPF:26 to:[0:0]] [0] [@2]: dpo-receive: 172.16.14.1 on pg13 172.16.15.0/24 unicast-ip4-chain [@0]: dpo-load-balance: [index:132 buckets:1 uRPF:130 to:[0:0]] [0] [@0]: dpo-drop ip4 172.16.15.1/32 unicast-ip4-chain [@0]: dpo-load-balance: [index:133 buckets:1 uRPF:131 to:[0:0]] [0] [@2]: dpo-receive: 172.16.15.1 on pg14 224.0.0.0/4 unicast-ip4-chain [@0]: dpo-load-balance: [index:42 buckets:1 uRPF:41 to:[0:0]] [0] [@0]: dpo-drop ip4 240.0.0.0/4 unicast-ip4-chain [@0]: dpo-load-balance: [index:43 buckets:1 uRPF:42 to:[0:0]] [0] [@0]: dpo-drop ip4 255.255.255.255/32 unicast-ip4-chain [@0]: dpo-load-balance: [index:41 buckets:1 uRPF:40 to:[0:0]] [0] [@0]: dpo-drop ip4 13:18:37,457 show ip arp 13:18:38,768 File /tmp/vpp-unittest-TestIp4VrfMultiInst-zERM7t/pg0_out.pcap does not exist, probably because no packets arrived 13:18:38,768 File /tmp/vpp-unittest-TestIp4VrfMultiInst-zERM7t/pg1_out.pcap does not exist, probably because no packets arrived 13:18:38,768 File /tmp/vpp-unittest-TestIp4VrfMultiInst-zERM7t/pg2_out.pcap does not exist, probably because no packets arrived 13:18:38,768 File /tmp/vpp-unittest-TestIp4VrfMultiInst-zERM7t/pg3_out.pcap does not exist, probably because no packets arrived 13:18:38,768 File /tmp/vpp-unittest-TestIp4VrfMultiInst-zERM7t/pg4_out.pcap does not exist, probably because no packets arrived 13:18:38,768 File /tmp/vpp-unittest-TestIp4VrfMultiInst-zERM7t/pg5_out.pcap does not exist, probably because no packets arrived 13:18:38,768 File /tmp/vpp-unittest-TestIp4VrfMultiInst-zERM7t/pg6_out.pcap does not exist, probably because no packets arrived 13:18:38,768 File /tmp/vpp-unittest-TestIp4VrfMultiInst-zERM7t/pg7_out.pcap does not exist, probably because no packets arrived 13:18:38,768 File /tmp/vpp-unittest-TestIp4VrfMultiInst-zERM7t/pg8_out.pcap does not exist, probably because no packets arrived 13:18:38,768 File /tmp/vpp-unittest-TestIp4VrfMultiInst-zERM7t/pg9_out.pcap does not exist, probably because no packets arrived 13:18:38,769 File /tmp/vpp-unittest-TestIp4VrfMultiInst-zERM7t/pg10_out.pcap does not exist, probably because no packets arrived 13:18:38,769 File /tmp/vpp-unittest-TestIp4VrfMultiInst-zERM7t/pg11_out.pcap does not exist, probably because no packets arrived ... ====================================================================== ERROR: IP4 VRF Multi-instance test 4 - delete 4 VRFs ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/vpp/Documents/vpp/test/test_ip4_vrf_multi_instance.py", line 418, in test_ip4_vrf_04 self.run_verify_test() File "/home/vpp/Documents/vpp/test/test_ip4_vrf_multi_instance.py", line 343, in run_verify_test "the capture is not empty!" % pg_if.name) RuntimeError: Interface pg12 is not in VRF but the capture is not empty! ? Packets reached the pg12 interface in deleted VRF5... Could somebody have a look on behaviour of reset_vfr and reset_fib API commands, please? Thanks, Jan
_______________________________________________ vpp-dev mailing list vpp-dev@lists.fd.io https://lists.fd.io/mailman/listinfo/vpp-dev