diff options
| author | Nataliia Solomko <natalirs1985@gmail.com> | 2025-10-16 11:04:34 +0300 |
|---|---|---|
| committer | Nataliia Solomko <natalirs1985@gmail.com> | 2025-10-20 13:56:11 +0300 |
| commit | ccd60aa1f45763da550c0f5d796ab0798b6645a7 (patch) | |
| tree | b00db21475b361adaef8992a555b28fdb8c83ca2 /src | |
| parent | 459e0b107aa5496d632916031382ec3b2b2a3baa (diff) | |
| download | vyos-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-x | src/conf_mode/vpp.py | 5 | ||||
| -rw-r--r-- | src/conf_mode/vpp_nat.py | 20 |
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) |
