summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorNataliia Solomko <natalirs1985@gmail.com>2025-10-16 11:04:34 +0300
committerNataliia Solomko <natalirs1985@gmail.com>2025-10-20 13:56:11 +0300
commitccd60aa1f45763da550c0f5d796ab0798b6645a7 (patch)
treeb00db21475b361adaef8992a555b28fdb8c83ca2 /src
parent459e0b107aa5496d632916031382ec3b2b2a3baa (diff)
downloadvyos-1x-ccd60aa1f45763da550c0f5d796ab0798b6645a7.tar.gz
vyos-1x-ccd60aa1f45763da550c0f5d796ab0798b6645a7.zip
T7930: VPP: Changing NAT44 settings resets `forwarding_enabled` to False
Enable/disable NAT forwarding in vpp_nat.py script to prevent it's reset
Diffstat (limited to 'src')
-rwxr-xr-xsrc/conf_mode/vpp.py5
-rw-r--r--src/conf_mode/vpp_nat.py20
2 files changed, 13 insertions, 12 deletions
diff --git a/src/conf_mode/vpp.py b/src/conf_mode/vpp.py
index 7124c738a..f16711901 100755
--- a/src/conf_mode/vpp.py
+++ b/src/conf_mode/vpp.py
@@ -749,11 +749,6 @@ def apply(config):
# NAT44 settings
nat44_settings = config['settings'].get('nat44', {})
- enable_forwarding = True
- if 'no_forwarding' in nat44_settings:
- enable_forwarding = False
- vpp_control.enable_disable_nat44_forwarding(enable_forwarding)
-
vpp_control.set_nat44_session_limit(
int(nat44_settings.get('session_limit'))
)
diff --git a/src/conf_mode/vpp_nat.py b/src/conf_mode/vpp_nat.py
index ad82b53b4..e10bf3ac4 100644
--- a/src/conf_mode/vpp_nat.py
+++ b/src/conf_mode/vpp_nat.py
@@ -108,13 +108,12 @@ def get_config(config=None) -> dict:
}
)
- if conf.exists(['vpp', 'settings', 'nat44', 'timeout']):
- timeouts = conf.get_config_dict(
- ['vpp', 'settings', 'nat44', 'timeout'],
- key_mangling=('-', '_'),
- with_defaults=True,
- )
- config.update(timeouts)
+ settings = conf.get_config_dict(
+ ['vpp', 'settings', 'nat44'],
+ key_mangling=('-', '_'),
+ with_recursive_defaults=True,
+ )
+ config.update(settings.get('nat44'))
if effective_config:
config.update({'effective': effective_config})
@@ -434,6 +433,13 @@ def apply(config):
# Add NAT44
n.enable_nat44_ed()
+
+ # Enable/disable forwarding
+ enable_forwarding = True
+ if 'no_forwarding' in config:
+ enable_forwarding = False
+ n.enable_disable_nat44_forwarding(enable_forwarding)
+
# Add inside interfaces
for interface in config['interface']['inside']:
n.add_nat44_interface_inside(interface)