summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitriyEshenko <dmitriy.eshenko@vyos.io>2021-06-29 09:21:05 +0000
committerChristian Poessinger <christian@poessinger.com>2021-06-29 19:55:11 +0200
commit065c6b620cb52a3235c7b6e210d34dc8cb943b95 (patch)
tree1c7d8c66a0014b16fbac95ecb1e4706863caae4b
parent6152084f5f497e2f4827ec5271b9112d976cf19b (diff)
downloadvyos-1x-065c6b620cb52a3235c7b6e210d34dc8cb943b95.tar.gz
vyos-1x-065c6b620cb52a3235c7b6e210d34dc8cb943b95.zip
pppoe-server: T3405: Add interface cache feature
-rw-r--r--data/templates/accel-ppp/pppoe.config.tmpl3
-rw-r--r--interface-definitions/include/accel-ppp/ppp-interface-cache.xml.i14
-rw-r--r--interface-definitions/service_pppoe-server.xml.in1
-rwxr-xr-xsmoketest/scripts/cli/test_service_pppoe-server.py7
4 files changed, 25 insertions, 0 deletions
diff --git a/data/templates/accel-ppp/pppoe.config.tmpl b/data/templates/accel-ppp/pppoe.config.tmpl
index 05ac31d18..238e7ee15 100644
--- a/data/templates/accel-ppp/pppoe.config.tmpl
+++ b/data/templates/accel-ppp/pppoe.config.tmpl
@@ -95,6 +95,9 @@ ipv6-accept-peer-intf-id={{ "1" if ppp_options.ipv6_accept_peer_intf_id is defin
{% endif %}
{# MTU #}
mtu={{ mtu }}
+{% if ppp_options.interface_cache is defined and ppp_options.interface_cache is not none %}
+unit-cache={{ ppp_options.interface_cache }}
+{% endif %}
[pppoe]
verbose=1
diff --git a/interface-definitions/include/accel-ppp/ppp-interface-cache.xml.i b/interface-definitions/include/accel-ppp/ppp-interface-cache.xml.i
new file mode 100644
index 000000000..9f223d7ed
--- /dev/null
+++ b/interface-definitions/include/accel-ppp/ppp-interface-cache.xml.i
@@ -0,0 +1,14 @@
+<!-- include start from accel-ppp/ppp-interface-cache.xml.i -->
+<leafNode name="interface-cache">
+ <properties>
+ <help>PPP interface cache</help>
+ <valueHelp>
+ <format>1-256000</format>
+ <description>Count of interfaces to keep in cache</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 1-256000"/>
+ </constraint>
+ </properties>
+</leafNode>
+<!-- include end -->
diff --git a/interface-definitions/service_pppoe-server.xml.in b/interface-definitions/service_pppoe-server.xml.in
index 788683868..7b96b5692 100644
--- a/interface-definitions/service_pppoe-server.xml.in
+++ b/interface-definitions/service_pppoe-server.xml.in
@@ -164,6 +164,7 @@
#include <include/accel-ppp/ppp-mppe.xml.i>
#include <include/accel-ppp/lcp-echo-interval-failure.xml.i>
#include <include/accel-ppp/lcp-echo-timeout.xml.i>
+ #include <include/accel-ppp/ppp-interface-cache.xml.i>
<leafNode name="ipv4">
<properties>
<help>IPv4 (IPCP) negotiation algorithm</help>
diff --git a/smoketest/scripts/cli/test_service_pppoe-server.py b/smoketest/scripts/cli/test_service_pppoe-server.py
index 2b11ee362..51cc098ef 100755
--- a/smoketest/scripts/cli/test_service_pppoe-server.py
+++ b/smoketest/scripts/cli/test_service_pppoe-server.py
@@ -91,6 +91,10 @@ class TestServicePPPoEServer(BasicAccelPPPTest.TestCase):
mru = '9000'
self.set(['ppp-options', 'mru', mru])
+ # interface-cache
+ interface_cache = '128000'
+ self.set(['ppp-options', 'interface-cache', interface_cache])
+
# commit changes
self.cli_commit()
@@ -113,6 +117,9 @@ class TestServicePPPoEServer(BasicAccelPPPTest.TestCase):
# check other settings
self.assertEqual(conf['connlimit']['limit'], '20/min')
+ # check interface-cache
+ self.assertEqual(conf['ppp']['unit-cache'], interface_cache)
+
# Check for running process
self.assertTrue(process_named_running(self._process_name))