aboutsummaryrefslogtreecommitdiffstats
path: root/test/test_snat.py
diff options
context:
space:
mode:
authorMatus Fabian <matfabia@cisco.com>2016-12-21 23:58:46 -0800
committerDamjan Marion <dmarion.lists@gmail.com>2016-12-22 12:28:01 +0000
commit9902fcd3e06dae893264f7681e82a2b73141546c (patch)
treeab6435fafe9c6fc1fcf535e29a4b7e353c681cb7 /test/test_snat.py
parent20d1232532e6f6c94c77a125b6c17680e14785b5 (diff)
SNAT: Remove the oldest translation fix (VPP-568)
Fixed bug and add test. Change-Id: Ibe70dfc81e6c264223050d316cf6a2a3a0e1524e Signed-off-by: Matus Fabian <matfabia@cisco.com>
Diffstat (limited to 'test/test_snat.py')
-rw-r--r--test/test_snat.py27
1 files changed, 27 insertions, 0 deletions
diff --git a/test/test_snat.py b/test/test_snat.py
index fdd81f02..8985c3e4 100644
--- a/test/test_snat.py
+++ b/test/test_snat.py
@@ -589,6 +589,33 @@ class TestSNAT(VppTestCase):
self.logger.error(ppp("Unexpected or invalid packet:"), p)
raise
+ def test_max_translations_per_user(self):
+ """ MAX translations per user - recycle the least recently used """
+
+ self.snat_add_address(self.snat_addr)
+ self.vapi.snat_interface_add_del_feature(self.pg0.sw_if_index)
+ self.vapi.snat_interface_add_del_feature(self.pg1.sw_if_index,
+ is_inside=0)
+
+ # get maximum number of translations per user
+ snat_config = self.vapi.snat_show_config()
+
+ # send more than maximum number of translations per user packets
+ pkts_num = snat_config.max_translations_per_user + 5
+ pkts = []
+ for port in range(0, pkts_num):
+ p = (Ether(dst=self.pg0.local_mac, src=self.pg0.remote_mac) /
+ IP(src=self.pg0.remote_ip4, dst=self.pg1.remote_ip4) /
+ TCP(sport=1025 + port))
+ pkts.append(p)
+ self.pg0.add_stream(pkts)
+ self.pg_enable_capture(self.pg_interfaces)
+ self.pg_start()
+
+ # verify number of translated packet
+ capture = self.pg1.get_capture()
+ self.assertEqual(pkts_num, len(capture))
+
def tearDown(self):
super(TestSNAT, self).tearDown()
if not self.vpp_dead: