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:56:42 +0200
commit6fdb90a43e910841d2a73960446cdef2d094763f (patch)
treefbf747a59976bc1a4efe845ed75aa0ca34973a80
parentb50f2ffb470eb6cab070166f297219800f91f4c3 (diff)
downloadvyos-1x-6fdb90a43e910841d2a73960446cdef2d094763f.tar.gz
vyos-1x-6fdb90a43e910841d2a73960446cdef2d094763f.zip
pppoe-server: T3405: Add interface cache feature
(cherry picked from commit 065c6b620cb52a3235c7b6e210d34dc8cb943b95)
-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 3dfb615da..14079becb 100644
--- a/data/templates/accel-ppp/pppoe.config.tmpl
+++ b/data/templates/accel-ppp/pppoe.config.tmpl
@@ -91,6 +91,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 dc8af67af..9d3420ed2 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 e8f9facbb..bfbe88daa 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.BaseTest):
mru = '9000'
self.set(['ppp-options', 'mru', mru])
+ # interface-cache
+ interface_cache = '128000'
+ self.set(['ppp-options', 'interface-cache', interface_cache])
+
# commit changes
self.session.commit()
@@ -113,6 +117,9 @@ class TestServicePPPoEServer(BasicAccelPPPTest.BaseTest):
# 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))