diff options
author | Matus Fabian <matfabia@cisco.com> | 2016-12-22 02:46:27 -0800 |
---|---|---|
committer | Matus Fabian <matfabia@cisco.com> | 2016-12-22 02:46:27 -0800 |
commit | e73d0a3aab61a4b192fe73165e6cece4a95c107b (patch) | |
tree | 692c81562d5891d8adf71e6f9b65a78cd338a0a1 /test/test_snat.py | |
parent | 436b319354362c5f64ad342d19ada87f246b5e74 (diff) |
SNAT: Remove the oldest translation fix (VPP-568)
Fixed bug and add test.
Change-Id: I60fbec48abd9d9cb86be1bd1cdbb7d16f9f93c3e
Signed-off-by: Matus Fabian <matfabia@cisco.com>
Diffstat (limited to 'test/test_snat.py')
-rw-r--r-- | test/test_snat.py | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/test/test_snat.py b/test/test_snat.py index fdd81f02e75..8985c3e47dc 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: |