summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/test_nat.py21
-rw-r--r--test/vpp_papi_provider.py12
2 files changed, 32 insertions, 1 deletions
diff --git a/test/test_nat.py b/test/test_nat.py
index 3c002bb8eca..76c52828ad9 100644
--- a/test/test_nat.py
+++ b/test/test_nat.py
@@ -3428,7 +3428,7 @@ class TestNAT64(MethodHolder):
cls.vrf1_nat_addr_n = socket.inet_pton(socket.AF_INET,
cls.vrf1_nat_addr)
- cls.create_pg_interfaces(range(4))
+ cls.create_pg_interfaces(range(5))
cls.ip6_interfaces = list(cls.pg_interfaces[0:1])
cls.ip6_interfaces.append(cls.pg_interfaces[2])
cls.ip4_interfaces = list(cls.pg_interfaces[1:2])
@@ -4337,6 +4337,25 @@ class TestNAT64(MethodHolder):
self.assertEqual(p[TCP].dport, self.tcp_port_in)
self.assertEqual(data, p[Raw].load)
+ def test_interface_addr(self):
+ """ Acquire NAT64 pool addresses from interface """
+ self.vapi.nat64_add_interface_addr(self.pg4.sw_if_index)
+
+ # no address in NAT64 pool
+ adresses = self.vapi.nat44_address_dump()
+ self.assertEqual(0, len(adresses))
+
+ # configure interface address and check NAT64 address pool
+ self.pg4.config_ip4()
+ addresses = self.vapi.nat64_pool_addr_dump()
+ self.assertEqual(len(addresses), 1)
+ self.assertEqual(addresses[0].address, self.pg4.local_ip4n)
+
+ # remove interface address and check NAT64 address pool
+ self.pg4.unconfig_ip4()
+ addresses = self.vapi.nat64_pool_addr_dump()
+ self.assertEqual(0, len(adresses))
+
def nat64_get_ses_num(self):
"""
Return number of active NAT64 sessions.
diff --git a/test/vpp_papi_provider.py b/test/vpp_papi_provider.py
index 63f938376ae..495db95052e 100644
--- a/test/vpp_papi_provider.py
+++ b/test/vpp_papi_provider.py
@@ -1723,6 +1723,18 @@ class VppPapiProvider(object):
"""
return self.api(self.papi.nat64_prefix_dump, {})
+ def nat64_add_interface_addr(
+ self,
+ sw_if_index,
+ is_add=1):
+ """Add/del NAT64 address from interface
+
+ :param sw_if_index: Software index of the interface
+ :param is_add: 1 if add, 0 if delete (Default value = 1)
+ """
+ return self.api(self.papi.nat64_add_del_interface_addr,
+ {'is_add': is_add, 'sw_if_index': sw_if_index})
+
def dslite_set_aftr_addr(self, ip6, ip4):
"""Set DS-Lite AFTR addresses