X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=test%2Ftest_nat44_ei.py;h=955dbb52547e24e8b8aff17bbe50b743d659c3d0;hb=816b5d613c3a977811af0494e2d215aac6684515;hp=9eb127aaf0b6674fc2c441c8fa70f85bd31637ed;hpb=d9b0c6fbf7aa5bd9af84264105b39c82028a4a29;p=vpp.git diff --git a/test/test_nat44_ei.py b/test/test_nat44_ei.py index 9eb127aaf0b..955dbb52547 100644 --- a/test/test_nat44_ei.py +++ b/test/test_nat44_ei.py @@ -8,7 +8,8 @@ import unittest from io import BytesIO import scapy.compat -from framework import VppTestCase, VppTestRunner +from framework import tag_fixme_debian11, is_distro_debian11 +from framework import VppTestCase, VppTestRunner, VppLoInterface from ipfix import IPFIX, Set, Template, Data, IPFIXDecoder from scapy.all import ( bind_layers, @@ -910,6 +911,7 @@ def get_nat44_ei_in2out_worker_index(ip, vpp_worker_count): return 1 + h % vpp_worker_count +@tag_fixme_debian11 class TestNAT44EI(MethodHolder): """NAT44EI Test Cases""" @@ -919,6 +921,8 @@ class TestNAT44EI(MethodHolder): @classmethod def setUpClass(cls): super(TestNAT44EI, cls).setUpClass() + if is_distro_debian11 == True and not hasattr(cls, "vpp"): + return cls.vapi.cli("set log class nat44-ei level debug") cls.tcp_port_in = 6303 @@ -4057,6 +4061,59 @@ class TestNAT44EI(MethodHolder): # a nonzero default should be reported for user_sessions self.assertNotEqual(nat44_ei_config.user_sessions, 0) + def test_delete_interface(self): + """NAT44EI delete nat interface""" + + self.nat44_add_address(self.nat_addr) + + interfaces = self.create_loopback_interfaces(4) + + self.vapi.nat44_ei_interface_add_del_feature( + sw_if_index=interfaces[0].sw_if_index, is_add=1 + ) + flags = self.config_flags.NAT44_EI_IF_INSIDE + self.vapi.nat44_ei_interface_add_del_feature( + sw_if_index=interfaces[1].sw_if_index, flags=flags, is_add=1 + ) + flags |= self.config_flags.NAT44_EI_IF_OUTSIDE + self.vapi.nat44_ei_interface_add_del_feature( + sw_if_index=interfaces[2].sw_if_index, flags=flags, is_add=1 + ) + self.vapi.nat44_ei_add_del_output_interface( + sw_if_index=interfaces[3].sw_if_index, is_add=1 + ) + + nat_sw_if_indices = [ + i.sw_if_index + for i in self.vapi.nat44_ei_interface_dump() + + list(self.vapi.vpp.details_iter(self.vapi.nat44_ei_output_interface_get)) + ] + self.assertEqual(len(nat_sw_if_indices), len(interfaces)) + + loopbacks = [] + for i in interfaces: + # delete nat-enabled interface + self.assertIn(i.sw_if_index, nat_sw_if_indices) + i.remove_vpp_config() + + # create interface with the same index + lo = VppLoInterface(self) + loopbacks.append(lo) + self.assertEqual(lo.sw_if_index, i.sw_if_index) + + # check interface is not nat-enabled + nat_sw_if_indices = [ + i.sw_if_index + for i in self.vapi.nat44_ei_interface_dump() + + list( + self.vapi.vpp.details_iter(self.vapi.nat44_ei_output_interface_get) + ) + ] + self.assertNotIn(lo.sw_if_index, nat_sw_if_indices) + + for i in loopbacks: + i.remove_vpp_config() + class TestNAT44Out2InDPO(MethodHolder): """NAT44EI Test Cases using out2in DPO"""