for j in range(self.pg_ifs_per_vrf):
pg_if = self.pg_if_sets[if_set_id][j]
pg_if.unconfig_ip6()
+ pg_if.set_table_ip6(0)
if pg_if in self.pg_in_vrf:
self.pg_in_vrf.remove(pg_if)
if pg_if not in self.pg_not_in_vrf:
self.logger.info("IPv6 VRF ID %d reset finished" % vrf_id)
self.logger.debug(self.vapi.ppcli("show ip6 fib"))
self.logger.debug(self.vapi.ppcli("show ip6 neighbors"))
+
+ def delete_vrf(self, vrf_id):
+ if vrf_id in self.vrf_list:
+ self.vrf_list.remove(vrf_id)
+ if vrf_id in self.vrf_reset_list:
+ self.vrf_reset_list.remove(vrf_id)
self.vapi.ip_table_add_del(is_add=0,
table={'table_id': vrf_id, 'is_ip6': 1})
self.run_verify_test()
self.run_crosswise_vrf_test()
- @unittest.skip('VPP crashes after running this test. \
- There seems to be an issue with the way fib locks are managed')
def test_ip6_vrf_05(self):
""" IP6 VRF Multi-instance test 5 - auto allocate vrf id
"""
vrf_list_length, 0,
"List of configured VRFs is not empty: %s != 0" % vrf_list_length)
+ # Cleanup our extra created VRFs
+ for vrf in auto_vrf_id:
+ self.delete_vrf(vrf)
+ self.delete_vrf(5)
+ self.delete_vrf(10)
+
+ def test_ip6_vrf_06(self):
+ """ IP6 VRF Multi-instance test 6 - recreate 4 VRFs
+ """
+ # Reconfigure all the VRFs
+ self.create_vrf_and_assign_interfaces(4)
+ # Verify
+ for vrf_id in self.vrf_list:
+ self.assert_equal(self.verify_vrf(vrf_id),
+ VRFState.configured, VRFState)
+ # Test
+ self.run_verify_test()
+ self.run_crosswise_vrf_test()
+ # Cleanup
+ for i in range(len(self.vrf_list)):
+ self.reset_vrf_and_remove_from_vrf_list(self.vrf_list[0])
+ # Verify
+ for vrf_id in self.vrf_reset_list:
+ self.assert_equal(self.verify_vrf(vrf_id),
+ VRFState.reset, VRFState)
+ vrf_list_length = len(self.vrf_list)
+ self.assertEqual(
+ vrf_list_length, 0,
+ "List of configured VRFs is not empty: %s != 0" % vrf_list_length)
+ # Test
+ self.run_verify_test()
+ self.run_crosswise_vrf_test()
+
if __name__ == '__main__':
unittest.main(testRunner=VppTestRunner)