diff options
| -rw-r--r-- | data/templates/ipsec/swanctl/peer.tmpl | 12 | ||||
| -rw-r--r-- | interface-definitions/vpn_ipsec.xml.in | 24 | ||||
| -rwxr-xr-x | smoketest/scripts/cli/test_vpn_ipsec.py | 7 | 
3 files changed, 43 insertions, 0 deletions
| diff --git a/data/templates/ipsec/swanctl/peer.tmpl b/data/templates/ipsec/swanctl/peer.tmpl index c6b71f2a1..481ea7224 100644 --- a/data/templates/ipsec/swanctl/peer.tmpl +++ b/data/templates/ipsec/swanctl/peer.tmpl @@ -57,6 +57,12 @@  {%     set vti_esp = esp_group[ peer_conf.vti.esp_group ] if peer_conf.vti.esp_group is defined else esp_group[ peer_conf.default_esp_group ] %}              peer_{{ name }}_vti {                  esp_proposals = {{ vti_esp | get_esp_ike_cipher(ike) | join(',') }} +{%   if vti_esp.life_bytes is defined and vti_esp.life_bytes is not none %} +                life_bytes = {{ vti_esp.life_bytes }} +{%   endif %} +{%   if vti_esp.life_packets is defined and vti_esp.life_packets is not none %} +                life_packets = {{ vti_esp.life_packets }} +{%   endif %}                  life_time = {{ vti_esp.lifetime }}s                  local_ts = 0.0.0.0/0,::/0                  remote_ts = 0.0.0.0/0,::/0 @@ -91,6 +97,12 @@  {%       set remote_suffix = '[{0}/{1}]'.format(proto, remote_port) if proto or remote_port else '' %}              peer_{{ name }}_tunnel_{{ tunnel_id }} {                  esp_proposals = {{ tunnel_esp | get_esp_ike_cipher(ike) | join(',') }} +{%       if tunnel_esp.life_bytes is defined and tunnel_esp.life_bytes is not none %} +                life_bytes = {{ tunnel_esp.life_bytes }} +{%       endif %} +{%       if tunnel_esp.life_packets is defined and tunnel_esp.life_packets is not none %} +                life_packets = {{ tunnel_esp.life_packets }} +{%       endif %}                  life_time = {{ tunnel_esp.lifetime }}s  {%       if tunnel_esp.mode is not defined or tunnel_esp.mode == 'tunnel' %}  {%         if tunnel_conf.local is defined and tunnel_conf.local.prefix is defined %} diff --git a/interface-definitions/vpn_ipsec.xml.in b/interface-definitions/vpn_ipsec.xml.in index afa3d52a0..af92eec31 100644 --- a/interface-definitions/vpn_ipsec.xml.in +++ b/interface-definitions/vpn_ipsec.xml.in @@ -55,6 +55,30 @@                  </properties>                  <defaultValue>3600</defaultValue>                </leafNode> +              <leafNode name="life-bytes"> +                <properties> +                  <help>ESP life in bytes</help> +                  <valueHelp> +                    <format>u32:1024-26843545600000</format> +                    <description>ESP life in bytes</description> +                  </valueHelp> +                  <constraint> +                    <validator name="numeric" argument="--range 1024-26843545600000"/> +                  </constraint> +                </properties> +              </leafNode> +              <leafNode name="life-packets"> +                <properties> +                  <help>ESP life in packets</help> +                  <valueHelp> +                    <format>u32:1000-26843545600000</format> +                    <description>ESP life in packets</description> +                  </valueHelp> +                  <constraint> +                    <validator name="numeric" argument="--range 1000-26843545600000"/> +                  </constraint> +                </properties> +              </leafNode>                <leafNode name="mode">                  <properties>                    <help>ESP mode</help> diff --git a/smoketest/scripts/cli/test_vpn_ipsec.py b/smoketest/scripts/cli/test_vpn_ipsec.py index 1433c7329..14079c905 100755 --- a/smoketest/scripts/cli/test_vpn_ipsec.py +++ b/smoketest/scripts/cli/test_vpn_ipsec.py @@ -171,8 +171,13 @@ class TestVPNIPsec(VyOSUnitTestSHIM.TestCase):          # Site to site          local_address = '192.0.2.10'          priority = '20' +        life_bytes = '100000' +        life_packets = '2000000'          peer_base_path = base_path + ['site-to-site', 'peer', peer_ip] +        self.cli_set(base_path + ['esp-group', esp_group, 'life-bytes', life_bytes]) +        self.cli_set(base_path + ['esp-group', esp_group, 'life-packets', life_packets]) +          self.cli_set(peer_base_path + ['authentication', 'mode', 'pre-shared-secret'])          self.cli_set(peer_base_path + ['authentication', 'pre-shared-secret', secret])          self.cli_set(peer_base_path + ['ike-group', ike_group]) @@ -197,6 +202,8 @@ class TestVPNIPsec(VyOSUnitTestSHIM.TestCase):          swanctl_conf_lines = [              f'version = 2',              f'auth = psk', +            f'life_bytes = {life_bytes}', +            f'life_packets = {life_packets}',              f'rekey_time = 28800s', # default value              f'proposals = aes128-sha1-modp1024',              f'esp_proposals = aes128-sha1-modp1024', | 
