summaryrefslogtreecommitdiffstats
path: root/src/plugins/gbp
diff options
context:
space:
mode:
authorFilip Varga <fivarga@cisco.com>2020-09-30 22:24:47 +0200
committerOle Tr�an <otroan@employees.org>2020-10-23 12:09:07 +0000
commit5f4f2081c47a5d86c9c96b7de23a2b0147c737d8 (patch)
treefd80c764cc3deb527f54d289c12a03d85c563373 /src/plugins/gbp
parent498889ae5d36eca5e2c017400b70f71bc5cdaf4a (diff)
nat: nat44 enable/disable dynamic config
This patch changes initialization and configuration of NAT plugin. Instead of allocating data structures at vpp plugin initialization phase allocation and configuration happens after calling enable API or CLI call. This reduces base VPP memory footprint and also enables dynamic reconfiguration of the NAT plugin. Type: improvement Change-Id: I42c069ee19a0311d043ac1f3f230d87bc8d2680f Signed-off-by: Filip Varga <fivarga@cisco.com>
Diffstat (limited to 'src/plugins/gbp')
-rw-r--r--src/plugins/gbp/test/test_gbp.py39
1 files changed, 16 insertions, 23 deletions
diff --git a/src/plugins/gbp/test/test_gbp.py b/src/plugins/gbp/test/test_gbp.py
index 5ff71f42aa2..df3c3ad54f0 100644
--- a/src/plugins/gbp/test/test_gbp.py
+++ b/src/plugins/gbp/test/test_gbp.py
@@ -576,9 +576,13 @@ class TestGBP(VppTestCase):
""" GBP Test Case """
@property
- def config_flags(self):
+ def nat_config_flags(self):
return VppEnum.vl_api_nat_config_flags_t
+ @property
+ def nat44_config_flags(self):
+ return VppEnum.vl_api_nat44_config_flags_t
+
@classmethod
def setUpClass(cls):
super(TestGBP, cls).setUpClass()
@@ -826,6 +830,8 @@ class TestGBP(VppTestCase):
"10.0.2.1", "11.0.0.4",
"2001:10:2::1", "3001::4")]
+ self.vapi.nat44_plugin_enable_disable(enable=1)
+
#
# Config related to each of the EPGs
#
@@ -839,7 +845,7 @@ class TestGBP(VppTestCase):
epg.bvi.set_mac(self.router_mac)
# The BVIs are NAT inside interfaces
- flags = self.config_flags.NAT_IS_INSIDE
+ flags = self.nat_config_flags.NAT_IS_INSIDE
self.vapi.nat44_interface_add_del_feature(
sw_if_index=epg.bvi.sw_if_index,
flags=flags, is_add=1)
@@ -902,7 +908,7 @@ class TestGBP(VppTestCase):
for (ip, fip) in zip(ep.ips, ep.fips):
# Add static mappings for each EP from the 10/8 to 11/8 network
if ip_address(ip).version == 4:
- flags = self.config_flags.NAT_IS_ADDR_ONLY
+ flags = self.nat_config_flags.NAT_IS_ADDR_ONLY
self.vapi.nat44_add_del_static_mapping(
is_add=1,
local_ip_address=ip,
@@ -1468,16 +1474,11 @@ class TestGBP(VppTestCase):
#
# cleanup
#
+ self.vapi.nat44_plugin_enable_disable(enable=0)
+
for ep in eps:
# del static mappings for each EP from the 10/8 to 11/8 network
- flags = self.config_flags.NAT_IS_ADDR_ONLY
- self.vapi.nat44_add_del_static_mapping(
- is_add=0,
- local_ip_address=ep.ip4,
- external_ip_address=ep.fip4,
- external_sw_if_index=0xFFFFFFFF,
- vrf_id=0,
- flags=flags)
+ flags = self.nat_config_flags.NAT_IS_ADDR_ONLY
self.vapi.nat66_add_del_static_mapping(
local_ip_address=ep.ip6,
external_ip_address=ep.fip6,
@@ -1486,22 +1487,14 @@ class TestGBP(VppTestCase):
for epg in epgs:
# IP config on the BVI interfaces
if epg != epgs[0] and epg != epgs[3]:
- flags = self.config_flags.NAT_IS_INSIDE
- self.vapi.nat44_interface_add_del_feature(
- sw_if_index=epg.bvi.sw_if_index,
- flags=flags,
- is_add=0)
+ flags = self.nat_config_flags.NAT_IS_INSIDE
self.vapi.nat66_add_del_interface(
- is_add=0, flags=flags,
- sw_if_index=epg.bvi.sw_if_index)
+ sw_if_index=epg.bvi.sw_if_index,
+ flags=flags, is_add=0)
for recirc in recircs:
- self.vapi.nat44_interface_add_del_feature(
- sw_if_index=recirc.recirc.sw_if_index,
- is_add=0)
self.vapi.nat66_add_del_interface(
- is_add=0,
- sw_if_index=recirc.recirc.sw_if_index)
+ sw_if_index=recirc.recirc.sw_if_index, is_add=0)
def wait_for_ep_timeout(self, sw_if_index=None, ip=None, mac=None,
tep=None, n_tries=100, s_time=1):