summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorMartin Gálik <magalik@cisco.com>2017-04-19 01:12:27 -0700
committerMartin Gálik <magalik@cisco.com>2017-04-26 00:23:22 -0700
commit6bc8c6493c8e7e1401130f8c9ca34c9b2915a7ad (patch)
tree3c1a6830f71a3d74315792b2d38bbc37fc8bccfb /test
parentc9fc77c510e042cf9379b427b63dd3f17a23a584 (diff)
CGNAT: close session API and CLI commands.
Change-Id: I9c8636bd2c4b8da2907e8e4a4f2be1a2c3a8e0bb Signed-off-by: Martin Gálik <magalik@cisco.com>
Diffstat (limited to 'test')
-rw-r--r--test/test_snat.py15
-rw-r--r--test/vpp_papi_provider.py46
2 files changed, 61 insertions, 0 deletions
diff --git a/test/test_snat.py b/test/test_snat.py
index ace17237b38..fe5af418aea 100644
--- a/test/test_snat.py
+++ b/test/test_snat.py
@@ -1686,6 +1686,21 @@ class TestDeterministicNAT(MethodHolder):
self.logger.error(ppp("Unexpected or invalid packet", p))
raise
+ # session close api test
+ self.vapi.snat_det_close_session_out(socket.inet_aton(nat_ip),
+ external_port1,
+ self.pg1.remote_ip4n,
+ port_out)
+ dms = self.vapi.snat_det_map_dump()
+ self.assertEqual(dms[0].ses_num, 1)
+
+ self.vapi.snat_det_close_session_in(host0.ip4n,
+ port_in,
+ self.pg1.remote_ip4n,
+ port_out)
+ dms = self.vapi.snat_det_map_dump()
+ self.assertEqual(dms[0].ses_num, 0)
+
def test_tcp_session_close_detection_in(self):
""" CGNAT TCP session close initiated from inside network """
self.vapi.snat_add_det_map(self.pg0.remote_ip4n,
diff --git a/test/vpp_papi_provider.py b/test/vpp_papi_provider.py
index 4541f01a1bd..a485cefcf96 100644
--- a/test/vpp_papi_provider.py
+++ b/test/vpp_papi_provider.py
@@ -1226,6 +1226,52 @@ class VppPapiProvider(object):
"""
return self.api(self.papi.snat_det_get_timeouts, {})
+ def snat_det_close_session_out(
+ self,
+ out_addr,
+ out_port,
+ ext_addr,
+ ext_port,
+ is_ip4=1):
+ """Close CGN session using outside address and port
+
+ :param out_addr - outside IP address
+ :param out_port - outside port
+ :param ext_addr - external host IP address
+ :param ext_port - external host port
+ :param is_ip4: 1 if address type is IPv4 (Default value = 1)
+ """
+ return self.api(
+ self.papi.snat_det_close_session_out,
+ {'out_addr': out_addr,
+ 'out_port': out_port,
+ 'ext_addr': ext_addr,
+ 'ext_port': ext_port,
+ 'is_ip4': is_ip4})
+
+ def snat_det_close_session_in(
+ self,
+ in_addr,
+ in_port,
+ ext_addr,
+ ext_port,
+ is_ip4=1):
+ """Close CGN session using inside address and port
+
+ :param in_addr - inside IP address
+ :param in_port - inside port
+ :param ext_addr - external host IP address
+ :param ext_port - external host port
+ :param is_ip4: 1 if address type is IPv4 (Default value = 1)
+ """
+ return self.api(
+ self.papi.snat_det_close_session_in,
+ {'in_addr': in_addr,
+ 'in_port': in_port,
+ 'ext_addr': ext_addr,
+ 'ext_port': ext_port,
+ 'is_ip4': is_ip4})
+
def control_ping(self):
self.api(self.papi.control_ping)