summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniil Baturin <daniil@vyos.io>2022-10-03 12:16:31 -0400
committerDaniil Baturin <daniil@vyos.io>2022-10-03 12:16:31 -0400
commit14fb822154015dc7944187361153b4fed205730e (patch)
treef7d534327c0bae84bb34777fde49558ffbf06def
parent8248aaaa7952db580a199bd36202e7f26c19ec88 (diff)
downloadvyos-1x-14fb822154015dc7944187361153b4fed205730e.tar.gz
vyos-1x-14fb822154015dc7944187361153b4fed205730e.zip
T4726: add completion help and validation for accel-ppp vendor option
-rw-r--r--interface-definitions/include/accel-ppp/radius-additions-rate-limit.xml.i12
-rw-r--r--interface-definitions/vpn-l2tp.xml.in24
-rwxr-xr-xsrc/validators/accel-radius-dictionary13
3 files changed, 23 insertions, 26 deletions
diff --git a/interface-definitions/include/accel-ppp/radius-additions-rate-limit.xml.i b/interface-definitions/include/accel-ppp/radius-additions-rate-limit.xml.i
index c9ad0d3d4..44ed9465e 100644
--- a/interface-definitions/include/accel-ppp/radius-additions-rate-limit.xml.i
+++ b/interface-definitions/include/accel-ppp/radius-additions-rate-limit.xml.i
@@ -6,18 +6,24 @@
<children>
<leafNode name="attribute">
<properties>
- <help>Specifies which RADIUS attribute contains rate information. (default is Filter-Id)</help>
+ <help>RADIUS attribute that contains rate information. (default: Filter-Id)</help>
</properties>
<defaultValue>Filter-Id</defaultValue>
</leafNode>
<leafNode name="vendor">
<properties>
- <help>Specifies the vendor dictionary. (dictionary needs to be in /usr/share/accel-ppp/radius)</help>
+ <help>Vendor dictionary</help>
+ <completionHelp>
+ <list>alcatel cisco microsoft mikrotik</list>
+ </completionHelp>
+ <constraint>
+ <validator name="accel-radius-dictionary" />
+ </constraint>
</properties>
</leafNode>
<leafNode name="enable">
<properties>
- <help>Enables Bandwidth shaping via RADIUS</help>
+ <help>Enable bandwidth shaping via RADIUS</help>
<valueless />
</properties>
</leafNode>
diff --git a/interface-definitions/vpn-l2tp.xml.in b/interface-definitions/vpn-l2tp.xml.in
index fd70a76dc..cb5900e0d 100644
--- a/interface-definitions/vpn-l2tp.xml.in
+++ b/interface-definitions/vpn-l2tp.xml.in
@@ -238,29 +238,7 @@
</leafNode>
</children>
</node>
- <node name="rate-limit">
- <properties>
- <help>Upload/Download speed limits</help>
- </properties>
- <children>
- <leafNode name="attribute">
- <properties>
- <help>Specifies which radius attribute contains rate information</help>
- </properties>
- </leafNode>
- <leafNode name="vendor">
- <properties>
- <help>Specifies the vendor dictionary. (dictionary needs to be in /usr/share/accel-ppp/radius)</help>
- </properties>
- </leafNode>
- <leafNode name="enable">
- <properties>
- <help>Enables Bandwidth shaping via RADIUS</help>
- <valueless />
- </properties>
- </leafNode>
- </children>
- </node>
+ #include <include/accel-ppp/radius-additions-rate-limit.xml.i>
</children>
</node>
</children>
diff --git a/src/validators/accel-radius-dictionary b/src/validators/accel-radius-dictionary
new file mode 100755
index 000000000..05287e770
--- /dev/null
+++ b/src/validators/accel-radius-dictionary
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+DICT_PATH=/usr/share/accel-ppp/radius
+NAME=$1
+
+if [ -n "$NAME" -a -e $DICT_PATH/dictionary.$NAME ]; then
+ exit 0
+else
+ echo "$NAME is not a valid RADIUS dictionary name"
+ echo "Please make sure that $DICT_PATH/dictionary.$NAME file exists"
+ exit 1
+fi
+