diff options
| author | Christian Breunig <christian@breunig.cc> | 2026-05-25 08:25:45 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-05-25 08:25:45 +0200 |
| commit | dc47f550e908eb4252ab2a30791b851403a3feae (patch) | |
| tree | 4f6a7985a3f46c2474beabf1622699de20f3a09b | |
| parent | 9554a316c80ac808a6b94f098484380cc422e597 (diff) | |
| parent | ce401c3f099a92c49ee8a0344ac80e113e19883e (diff) | |
| download | vyos-1x-dc47f550e908eb4252ab2a30791b851403a3feae.tar.gz vyos-1x-dc47f550e908eb4252ab2a30791b851403a3feae.zip | |
Merge pull request #5215 from alexk37/T8910-ipoe-idle-timeout
T8910: ipoe-server: expose accel-ppp idle-timeout option
| -rw-r--r-- | data/templates/accel-ppp/ipoe.config.j2 | 3 | ||||
| -rw-r--r-- | interface-definitions/include/accel-ppp/idle-timeout.xml.i | 15 | ||||
| -rw-r--r-- | interface-definitions/service_ipoe-server.xml.in | 1 | ||||
| -rwxr-xr-x | smoketest/scripts/cli/test_service_ipoe-server.py | 19 |
4 files changed, 38 insertions, 0 deletions
diff --git a/data/templates/accel-ppp/ipoe.config.j2 b/data/templates/accel-ppp/ipoe.config.j2 index 34dfa529a..b0f83a0d6 100644 --- a/data/templates/accel-ppp/ipoe.config.j2 +++ b/data/templates/accel-ppp/ipoe.config.j2 @@ -38,6 +38,9 @@ level={{ log.level }} [ipoe] verbose=1 +{% if idle_timeout is vyos_defined %} +idle-timeout={{ idle_timeout }} +{% endif %} {% if lua_file is vyos_defined %} lua-file={{ lua_file }} {% endif %} diff --git a/interface-definitions/include/accel-ppp/idle-timeout.xml.i b/interface-definitions/include/accel-ppp/idle-timeout.xml.i new file mode 100644 index 000000000..98af5aa85 --- /dev/null +++ b/interface-definitions/include/accel-ppp/idle-timeout.xml.i @@ -0,0 +1,15 @@ +<!-- include start from accel-ppp/idle-timeout.xml.i --> +<leafNode name="idle-timeout"> + <properties> + <help>Disconnect idle sessions after the specified time (in seconds)</help> + <valueHelp> + <format>u32:0-86400</format> + <description>Idle timeout in seconds</description> + </valueHelp> + <constraint> + <validator name="numeric" argument="--range 0-86400"/> + </constraint> + <constraintErrorMessage>Idle timeout must be in range 0 to 86400</constraintErrorMessage> + </properties> +</leafNode> +<!-- include end --> diff --git a/interface-definitions/service_ipoe-server.xml.in b/interface-definitions/service_ipoe-server.xml.in index 3093151ea..27b163001 100644 --- a/interface-definitions/service_ipoe-server.xml.in +++ b/interface-definitions/service_ipoe-server.xml.in @@ -233,6 +233,7 @@ #include <include/accel-ppp/default-ipv6-pool.xml.i> #include <include/accel-ppp/extended-scripts.xml.i> #include <include/accel-ppp/gateway-address-multi.xml.i> + #include <include/accel-ppp/idle-timeout.xml.i> #include <include/accel-ppp/limits.xml.i> #include <include/accel-ppp/max-concurrent-sessions.xml.i> #include <include/accel-ppp/shaper.xml.i> diff --git a/smoketest/scripts/cli/test_service_ipoe-server.py b/smoketest/scripts/cli/test_service_ipoe-server.py index 47d6cce4b..614295fd8 100755 --- a/smoketest/scripts/cli/test_service_ipoe-server.py +++ b/smoketest/scripts/cli/test_service_ipoe-server.py @@ -319,6 +319,25 @@ delegate={delegate_2_prefix},{delegate_mask},name={pool_name}""" conf.read(self._config_file) self.assertIn(f'start={start_session}', conf['ipoe']['interface']) + def test_ipoe_server_idle_timeout(self): + idle_timeout = '300' + + self.basic_config() + self.cli_commit() + + # Default: no idle-timeout emitted + conf = ConfigParser(allow_no_value=True, delimiters='=', strict=False) + conf.read(self._config_file) + self.assertNotIn('idle-timeout', conf['ipoe']) + + # Configure idle-timeout + self.set(['idle-timeout', idle_timeout]) + self.cli_commit() + + conf = ConfigParser(allow_no_value=True, delimiters='=', strict=False) + conf.read(self._config_file) + self.assertEqual(conf['ipoe']['idle-timeout'], idle_timeout) + @unittest.skip("PPP is not a part of IPoE") def test_accel_ppp_options(self): pass |
