summaryrefslogtreecommitdiff
path: root/interface-definitions
diff options
context:
space:
mode:
Diffstat (limited to 'interface-definitions')
-rw-r--r--interface-definitions/include/accel-radius-additions-disable-accounting.xml.i (renamed from interface-definitions/include/accel-radius-additions-disable-accounting.xlm.in)3
-rw-r--r--interface-definitions/include/accel-radius-additions.xml.i2
-rw-r--r--interface-definitions/include/bfd-common.xml.i72
-rw-r--r--interface-definitions/include/bgp-afi-allowas-in.xml.i21
-rw-r--r--interface-definitions/include/bgp-afi-attribute-unchanged.xml.i27
-rw-r--r--interface-definitions/include/bgp-afi-common.xml.i133
-rw-r--r--interface-definitions/include/bgp-afi-l2vpn-common.xml.i14
-rw-r--r--interface-definitions/include/bgp-afi-nexthop-self.xml.i15
-rw-r--r--interface-definitions/include/bgp-afi-peer-group.xml.i7
-rw-r--r--interface-definitions/include/bgp-afi-redistribute-metric-route-map.xml.i9
-rw-r--r--interface-definitions/include/bgp-afi-route-map.xml.i25
-rw-r--r--interface-definitions/include/bgp-afi-route-reflector-client.xml.i8
-rw-r--r--interface-definitions/include/bgp-afi-route-server-client.xml.i8
-rw-r--r--interface-definitions/include/bgp-afi-soft-reconfiguration.xml.i15
-rw-r--r--interface-definitions/include/bgp-capability-dynamic.xml.i9
-rw-r--r--interface-definitions/include/bgp-capability.xml.i7
-rw-r--r--interface-definitions/include/bgp-neighbor-afi-ipv4-unicast.xml.i2
-rw-r--r--interface-definitions/include/bgp-neighbor-afi-ipv6-unicast.xml.i2
-rw-r--r--interface-definitions/include/bgp-neighbor-afi-l2vpn-evpn.xml.i16
-rw-r--r--interface-definitions/include/bgp-peer-group.xml.i4
-rw-r--r--interface-definitions/include/bgp-shutdown.xml.i2
-rw-r--r--interface-definitions/include/bgp-update-source.xml.i2
-rw-r--r--interface-definitions/include/interface-parameters-flowlabel.xml.i16
-rw-r--r--interface-definitions/include/interface-parameters-key.xml.i15
-rw-r--r--interface-definitions/include/interface-parameters-tos.xml.i16
-rw-r--r--interface-definitions/include/interface-parameters-ttl.xml.i20
-rw-r--r--interface-definitions/include/ospf-authentication.xml.i56
-rw-r--r--interface-definitions/include/ospf-interface-common.xml.i39
-rw-r--r--interface-definitions/include/ospf-intervals.xml.i54
-rw-r--r--interface-definitions/include/ospf-route-map.xml.i4
-rw-r--r--interface-definitions/include/radius-server-ipv4-ipv6.xml.i4
-rw-r--r--interface-definitions/include/radius-server-ipv4.xml.i4
-rw-r--r--interface-definitions/include/radius-server-key.xml.i (renamed from interface-definitions/include/radius-server-key.xml.in)0
-rw-r--r--interface-definitions/include/radius-server-port.xml.i (renamed from interface-definitions/include/radius-server-port.xml.in)0
-rw-r--r--interface-definitions/include/rip-access-list.xml.i39
-rw-r--r--interface-definitions/include/rip-access-list6.xml.i39
-rw-r--r--interface-definitions/include/rip-default-information.xml.i15
-rw-r--r--interface-definitions/include/rip-default-metric.xml.i14
-rw-r--r--interface-definitions/include/rip-interface.xml.i38
-rw-r--r--interface-definitions/include/rip-prefix-list.xml.i33
-rw-r--r--interface-definitions/include/rip-prefix-list6.xml.i33
-rw-r--r--interface-definitions/include/rip-redistribute.xml.i13
-rw-r--r--interface-definitions/include/rip-timers.xml.i48
-rw-r--r--interface-definitions/include/routing-passive-interface-xml.i24
-rw-r--r--interface-definitions/include/static-route-blackhole.xml.i10
-rw-r--r--interface-definitions/include/static-route-distance.xml.i14
-rw-r--r--interface-definitions/include/static-route-interface.xml.i17
-rw-r--r--interface-definitions/include/static-route-map.xml.i10
-rw-r--r--interface-definitions/include/static-route-vrf.xml.i19
-rw-r--r--interface-definitions/include/static-route.xml.i75
-rw-r--r--interface-definitions/include/static-route6.xml.i75
-rw-r--r--interface-definitions/include/tunnel-local-remote-ip.xml.i37
-rw-r--r--interface-definitions/include/vif-s.xml.i1
-rw-r--r--interface-definitions/include/vni.xml.i12
-rw-r--r--interface-definitions/interfaces-erspan.xml.in113
-rw-r--r--interface-definitions/interfaces-geneve.xml.in13
-rw-r--r--interface-definitions/interfaces-tunnel.xml.in107
-rw-r--r--interface-definitions/interfaces-vxlan.xml.in13
-rw-r--r--interface-definitions/protocols-bfd.xml.in100
-rw-r--r--interface-definitions/protocols-bgp.xml.in158
-rw-r--r--interface-definitions/protocols-multicast.xml.in1
-rw-r--r--interface-definitions/protocols-ospf.xml.in216
-rw-r--r--interface-definitions/protocols-ospfv3.xml.in72
-rw-r--r--interface-definitions/protocols-rip.xml.in289
-rw-r--r--interface-definitions/protocols-ripng.xml.in146
-rw-r--r--interface-definitions/protocols-rpki.xml.in85
-rw-r--r--interface-definitions/protocols-static-arp.xml.in (renamed from interface-definitions/arp.xml.in)2
-rw-r--r--interface-definitions/protocols-static.xml.in33
-rw-r--r--interface-definitions/protocols-vrf.xml.in35
-rw-r--r--interface-definitions/vpn_l2tp.xml.in2
-rw-r--r--interface-definitions/vrf.xml.in2
-rw-r--r--interface-definitions/vrrp.xml.in9
72 files changed, 1808 insertions, 785 deletions
diff --git a/interface-definitions/include/accel-radius-additions-disable-accounting.xlm.in b/interface-definitions/include/accel-radius-additions-disable-accounting.xml.i
index 026f67453..dc5b9dd96 100644
--- a/interface-definitions/include/accel-radius-additions-disable-accounting.xlm.in
+++ b/interface-definitions/include/accel-radius-additions-disable-accounting.xml.i
@@ -1,7 +1,8 @@
+<!-- included start from accel-radius-additions-disable-accounting.xml.i -->
<leafNode name="disable-accounting">
<properties>
<help>Disable accounting</help>
<valueless/>
</properties>
</leafNode>
-
+<!-- included end -->
diff --git a/interface-definitions/include/accel-radius-additions.xml.i b/interface-definitions/include/accel-radius-additions.xml.i
index 3ec0d587e..0067b6d1c 100644
--- a/interface-definitions/include/accel-radius-additions.xml.i
+++ b/interface-definitions/include/accel-radius-additions.xml.i
@@ -29,7 +29,7 @@
</properties>
<defaultValue>1813</defaultValue>
</leafNode>
- #include <include/accel-radius-additions-disable-accounting.xlm.in>
+ #include <include/accel-radius-additions-disable-accounting.xml.i>
<leafNode name="fail-time">
<properties>
<help>Mark server unavailable for &lt;n&gt; seconds on failure</help>
diff --git a/interface-definitions/include/bfd-common.xml.i b/interface-definitions/include/bfd-common.xml.i
new file mode 100644
index 000000000..ff73e4b20
--- /dev/null
+++ b/interface-definitions/include/bfd-common.xml.i
@@ -0,0 +1,72 @@
+<!-- included start from bfd-common.xml.i -->
+<leafNode name="echo-mode">
+ <properties>
+ <help>Enables the echo transmission mode</help>
+ <valueless/>
+ </properties>
+</leafNode>
+<node name="interval">
+ <properties>
+ <help>Configure timer intervals</help>
+ </properties>
+ <children>
+ <leafNode name="receive">
+ <properties>
+ <help>Minimum interval of receiving control packets</help>
+ <valueHelp>
+ <format>10-60000</format>
+ <description>Interval in milliseconds</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 10-60000"/>
+ </constraint>
+ </properties>
+ <defaultValue>300</defaultValue>
+ </leafNode>
+ <leafNode name="transmit">
+ <properties>
+ <help>Minimum interval of transmitting control packets</help>
+ <valueHelp>
+ <format>10-60000</format>
+ <description>Interval in milliseconds</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 10-60000"/>
+ </constraint>
+ </properties>
+ <defaultValue>300</defaultValue>
+ </leafNode>
+ <leafNode name="multiplier">
+ <properties>
+ <help>Multiplier to determine packet loss</help>
+ <valueHelp>
+ <format>2-255</format>
+ <description>Remote transmission interval will be multiplied by this value</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 2-255"/>
+ </constraint>
+ </properties>
+ <defaultValue>3</defaultValue>
+ </leafNode>
+ <leafNode name="echo-interval">
+ <properties>
+ <help>Echo receive transmission interval</help>
+ <valueHelp>
+ <format>10-60000</format>
+ <description>The minimal echo receive transmission interval that this system is capable of handling</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 10-60000"/>
+ </constraint>
+ </properties>
+ </leafNode>
+ </children>
+</node>
+<leafNode name="shutdown">
+ <properties>
+ <help>Disable this peer</help>
+ <valueless/>
+ </properties>
+</leafNode>
+<!-- included end -->
diff --git a/interface-definitions/include/bgp-afi-allowas-in.xml.i b/interface-definitions/include/bgp-afi-allowas-in.xml.i
new file mode 100644
index 000000000..77de04ed7
--- /dev/null
+++ b/interface-definitions/include/bgp-afi-allowas-in.xml.i
@@ -0,0 +1,21 @@
+<!-- included start from bgp-afi-allowas-in.xml.i -->
+<node name="allowas-in">
+ <properties>
+ <help>Accept route that contains the local-as in the as-path</help>
+ </properties>
+ <children>
+ <leafNode name="number">
+ <properties>
+ <help>Number of occurrences of AS number</help>
+ <valueHelp>
+ <format>u32:1-10</format>
+ <description>Number of times AS is allowed in path</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 1-10"/>
+ </constraint>
+ </properties>
+ </leafNode>
+ </children>
+</node>
+<!-- included end -->
diff --git a/interface-definitions/include/bgp-afi-attribute-unchanged.xml.i b/interface-definitions/include/bgp-afi-attribute-unchanged.xml.i
new file mode 100644
index 000000000..fef53dd9d
--- /dev/null
+++ b/interface-definitions/include/bgp-afi-attribute-unchanged.xml.i
@@ -0,0 +1,27 @@
+<!-- included start from bgp-afi-attribute-unchanged.xml.i -->
+<node name="attribute-unchanged">
+ <properties>
+ <help>BGP attributes are sent unchanged</help>
+ </properties>
+ <children>
+ <leafNode name="as-path">
+ <properties>
+ <help>Send AS path unchanged</help>
+ <valueless/>
+ </properties>
+ </leafNode>
+ <leafNode name="med">
+ <properties>
+ <help>Send multi-exit discriminator unchanged</help>
+ <valueless/>
+ </properties>
+ </leafNode>
+ <leafNode name="next-hop">
+ <properties>
+ <help>Send nexthop unchanged</help>
+ <valueless/>
+ </properties>
+ </leafNode>
+ </children>
+</node>
+<!-- included end -->
diff --git a/interface-definitions/include/bgp-afi-common.xml.i b/interface-definitions/include/bgp-afi-common.xml.i
index ea4eea591..90c2753c8 100644
--- a/interface-definitions/include/bgp-afi-common.xml.i
+++ b/interface-definitions/include/bgp-afi-common.xml.i
@@ -1,54 +1,24 @@
<!-- included start from bgp-afi-common.xml.i -->
-<node name="allowas-in">
+<leafNode name="addpath-tx-all">
<properties>
- <help>Accept route that contains the local-as in the as-path</help>
+ <help>Use addpath to advertise all paths to a neighbor</help>
+ <valueless/>
</properties>
- <children>
- <leafNode name="number">
- <properties>
- <help>Number of occurrences of AS number</help>
- <valueHelp>
- <format>u32:1-10</format>
- <description>Number of times AS is allowed in path</description>
- </valueHelp>
- <constraint>
- <validator name="numeric" argument="--range 1-10"/>
- </constraint>
- </properties>
- </leafNode>
- </children>
-</node>
-<leafNode name="as-override">
+</leafNode>
+<leafNode name="addpath-tx-per-as">
<properties>
- <help>AS for routes sent to this peer to be the local AS</help>
+ <help>Use addpath to advertise the bestpath per each neighboring AS</help>
<valueless/>
</properties>
</leafNode>
-<node name="attribute-unchanged">
+#include <include/bgp-afi-allowas-in.xml.i>
+<leafNode name="as-override">
<properties>
- <help>BGP attributes are sent unchanged</help>
+ <help>AS for routes sent to this peer to be the local AS</help>
+ <valueless/>
</properties>
- <children>
- <leafNode name="as-path">
- <properties>
- <help>Send AS path unchanged</help>
- <valueless/>
- </properties>
- </leafNode>
- <leafNode name="med">
- <properties>
- <help>Send multi-exit discriminator unchanged</help>
- <valueless/>
- </properties>
- </leafNode>
- <leafNode name="next-hop">
- <properties>
- <help>Send nexthop unchanged</help>
- <valueless/>
- </properties>
- </leafNode>
- </children>
-</node>
+</leafNode>
+#include <include/bgp-afi-attribute-unchanged.xml.i>
<node name="disable-send-community">
<properties>
<help>Disable sending community attributes to this peer</help>
@@ -73,14 +43,7 @@
<help>Originate default route to this peer</help>
</properties>
<children>
- <leafNode name="route-map">
- <properties>
- <help>route-map to specify criteria of the default route</help>
- <completionHelp>
- <path>policy route-map</path>
- </completionHelp>
- </properties>
- </leafNode>
+ #include <include/bgp-route-map.xml.i>
</children>
</node>
<node name="distribute-list">
@@ -155,77 +118,23 @@
</constraint>
</properties>
</leafNode>
-<node name="nexthop-self">
- <properties>
- <help>Disable the next hop calculation for this peer</help>
- </properties>
- <children>
- <leafNode name="force">
- <properties>
- <help>Set the next hop to self for reflected routes</help>
- <valueless/>
- </properties>
- </leafNode>
- </children>
-</node>
+#include <include/bgp-afi-nexthop-self.xml.i>
<leafNode name="remove-private-as">
<properties>
<help>Remove private AS numbers from AS path in outbound route updates</help>
<valueless/>
</properties>
</leafNode>
-<node name="route-map">
- <properties>
- <help>Route-map to filter route updates to/from this peer</help>
- </properties>
- <children>
- <leafNode name="export">
- <properties>
- <help>Route-map to filter outgoing route updates</help>
- <completionHelp>
- <path>policy route-map</path>
- </completionHelp>
- </properties>
- </leafNode>
- <leafNode name="import">
- <properties>
- <help>Route-map to filter incoming route updates</help>
- <completionHelp>
- <path>policy route-map</path>
- </completionHelp>
- </properties>
- </leafNode>
- </children>
-</node>
-<leafNode name="route-reflector-client">
- <properties>
- <help>Peer is a route reflector client</help>
- <valueless/>
- </properties>
-</leafNode>
-<leafNode name="route-server-client">
- <properties>
- <help>Peer is a route server client</help>
- <valueless/>
- </properties>
-</leafNode>
-<node name="soft-reconfiguration">
- <properties>
- <help>Soft reconfiguration for peer</help>
- </properties>
- <children>
- <leafNode name="inbound">
- <properties>
- <help>Enable inbound soft reconfiguration</help>
- <valueless/>
- </properties>
- </leafNode>
- </children>
-</node>
+#include <include/bgp-afi-route-map.xml.i>
+#include <include/bgp-afi-route-reflector-client.xml.i>
+#include <include/bgp-afi-route-server-client.xml.i>
+#include <include/bgp-afi-soft-reconfiguration.xml.i>
<leafNode name="unsuppress-map">
<properties>
<help>Route-map to selectively unsuppress suppressed routes</help>
- <valueless/>
+ <completionHelp>
+ <path>policy route-map</path>
+ </completionHelp>
</properties>
</leafNode>
<leafNode name="weight">
diff --git a/interface-definitions/include/bgp-afi-l2vpn-common.xml.i b/interface-definitions/include/bgp-afi-l2vpn-common.xml.i
new file mode 100644
index 000000000..11b1cf6bf
--- /dev/null
+++ b/interface-definitions/include/bgp-afi-l2vpn-common.xml.i
@@ -0,0 +1,14 @@
+<!-- included start from bgp-afi-l2vpn-common.xml.i -->
+<leafNode name="advertise-default-gw">
+ <properties>
+ <help>Advertise All default g/w mac-ip routes in EVPN</help>
+ <valueless/>
+ </properties>
+</leafNode>
+<leafNode name="advertise-svi-ip">
+ <properties>
+ <help>Advertise svi mac-ip routes in EVPN</help>
+ <valueless/>
+ </properties>
+</leafNode>
+<!-- included end -->
diff --git a/interface-definitions/include/bgp-afi-nexthop-self.xml.i b/interface-definitions/include/bgp-afi-nexthop-self.xml.i
new file mode 100644
index 000000000..0bcc4e937
--- /dev/null
+++ b/interface-definitions/include/bgp-afi-nexthop-self.xml.i
@@ -0,0 +1,15 @@
+<!-- included start from bgp-afi-nexthop-self.xml.i -->
+<node name="nexthop-self">
+ <properties>
+ <help>Disable the next hop calculation for this peer</help>
+ </properties>
+ <children>
+ <leafNode name="force">
+ <properties>
+ <help>Set the next hop to self for reflected routes</help>
+ <valueless/>
+ </properties>
+ </leafNode>
+ </children>
+</node>
+<!-- included end -->
diff --git a/interface-definitions/include/bgp-afi-peer-group.xml.i b/interface-definitions/include/bgp-afi-peer-group.xml.i
deleted file mode 100644
index c98a91030..000000000
--- a/interface-definitions/include/bgp-afi-peer-group.xml.i
+++ /dev/null
@@ -1,7 +0,0 @@
-<!-- included start from bgp-afi-peer-group.xml.i -->
-<leafNode name="peer-group">
- <properties>
- <help>Peer group used for this neighbor</help>
- </properties>
-</leafNode>
-<!-- included end -->
diff --git a/interface-definitions/include/bgp-afi-redistribute-metric-route-map.xml.i b/interface-definitions/include/bgp-afi-redistribute-metric-route-map.xml.i
index afd56eff3..e85bf7d11 100644
--- a/interface-definitions/include/bgp-afi-redistribute-metric-route-map.xml.i
+++ b/interface-definitions/include/bgp-afi-redistribute-metric-route-map.xml.i
@@ -8,12 +8,5 @@
</valueHelp>
</properties>
</leafNode>
-<leafNode name="route-map">
- <properties>
- <help>Route map to filter redistributed routes</help>
- <completionHelp>
- <path>policy route-map</path>
- </completionHelp>
- </properties>
-</leafNode>
+#include <include/bgp-route-map.xml.i>
<!-- included end -->
diff --git a/interface-definitions/include/bgp-afi-route-map.xml.i b/interface-definitions/include/bgp-afi-route-map.xml.i
new file mode 100644
index 000000000..5549f56ca
--- /dev/null
+++ b/interface-definitions/include/bgp-afi-route-map.xml.i
@@ -0,0 +1,25 @@
+<!-- included start from bgp-afi-route-map.xml.i -->
+<node name="route-map">
+ <properties>
+ <help>Route-map to filter route updates to/from this peer</help>
+ </properties>
+ <children>
+ <leafNode name="export">
+ <properties>
+ <help>Route-map to filter outgoing route updates</help>
+ <completionHelp>
+ <path>policy route-map</path>
+ </completionHelp>
+ </properties>
+ </leafNode>
+ <leafNode name="import">
+ <properties>
+ <help>Route-map to filter incoming route updates</help>
+ <completionHelp>
+ <path>policy route-map</path>
+ </completionHelp>
+ </properties>
+ </leafNode>
+ </children>
+</node>
+<!-- included end -->
diff --git a/interface-definitions/include/bgp-afi-route-reflector-client.xml.i b/interface-definitions/include/bgp-afi-route-reflector-client.xml.i
new file mode 100644
index 000000000..f6a9caa61
--- /dev/null
+++ b/interface-definitions/include/bgp-afi-route-reflector-client.xml.i
@@ -0,0 +1,8 @@
+<!-- included start from bgp-afi-route-reflector-client.xml.i -->
+<leafNode name="route-reflector-client">
+ <properties>
+ <help>Peer is a route reflector client</help>
+ <valueless/>
+ </properties>
+</leafNode>
+<!-- included end -->
diff --git a/interface-definitions/include/bgp-afi-route-server-client.xml.i b/interface-definitions/include/bgp-afi-route-server-client.xml.i
new file mode 100644
index 000000000..60de553fe
--- /dev/null
+++ b/interface-definitions/include/bgp-afi-route-server-client.xml.i
@@ -0,0 +1,8 @@
+<!-- included start from bgp-afi-route-server-client.xml.i -->
+<leafNode name="route-server-client">
+ <properties>
+ <help>Peer is a route server client</help>
+ <valueless/>
+ </properties>
+</leafNode>
+<!-- included end --> \ No newline at end of file
diff --git a/interface-definitions/include/bgp-afi-soft-reconfiguration.xml.i b/interface-definitions/include/bgp-afi-soft-reconfiguration.xml.i
new file mode 100644
index 000000000..7af11f8f4
--- /dev/null
+++ b/interface-definitions/include/bgp-afi-soft-reconfiguration.xml.i
@@ -0,0 +1,15 @@
+<!-- included start from bgp-afi-soft-reconfiguration.xml.i -->
+<node name="soft-reconfiguration">
+ <properties>
+ <help>Soft reconfiguration for peer</help>
+ </properties>
+ <children>
+ <leafNode name="inbound">
+ <properties>
+ <help>Enable inbound soft reconfiguration</help>
+ <valueless/>
+ </properties>
+ </leafNode>
+ </children>
+</node>
+<!-- included end -->
diff --git a/interface-definitions/include/bgp-capability-dynamic.xml.i b/interface-definitions/include/bgp-capability-dynamic.xml.i
deleted file mode 100644
index 3cf300156..000000000
--- a/interface-definitions/include/bgp-capability-dynamic.xml.i
+++ /dev/null
@@ -1,9 +0,0 @@
-<!-- included start from bgp-capability-dynamic.xml.i -->
-<!-- Capability dynamic in the afi ipv6 does nothing T3037 -->
-<leafNode name="dynamic">
- <properties>
- <help>Advertise dynamic capability to this neighbor</help>
- <valueless/>
- </properties>
-</leafNode>
-<!-- included end -->
diff --git a/interface-definitions/include/bgp-capability.xml.i b/interface-definitions/include/bgp-capability.xml.i
index 5940e46e4..8de5bd8ab 100644
--- a/interface-definitions/include/bgp-capability.xml.i
+++ b/interface-definitions/include/bgp-capability.xml.i
@@ -4,7 +4,12 @@
<help>Advertise capabilities to this peer-group</help>
</properties>
<children>
- #include <include/bgp-capability-dynamic.xml.i>
+ <leafNode name="dynamic">
+ <properties>
+ <help>Advertise dynamic capability to this neighbor</help>
+ <valueless/>
+ </properties>
+ </leafNode>
<leafNode name="extended-nexthop">
<properties>
<help>Advertise extended-nexthop capability to this neighbor</help>
diff --git a/interface-definitions/include/bgp-neighbor-afi-ipv4-unicast.xml.i b/interface-definitions/include/bgp-neighbor-afi-ipv4-unicast.xml.i
index 03a859271..ece277fbf 100644
--- a/interface-definitions/include/bgp-neighbor-afi-ipv4-unicast.xml.i
+++ b/interface-definitions/include/bgp-neighbor-afi-ipv4-unicast.xml.i
@@ -10,10 +10,8 @@
</properties>
<children>
#include <include/bgp-afi-capability-orf.xml.i>
- #include <include/bgp-capability-dynamic.xml.i>
</children>
</node>
- #include <include/bgp-afi-peer-group.xml.i>
#include <include/bgp-afi-ipv4-prefix-list.xml.i>
#include <include/bgp-afi-common.xml.i>
</children>
diff --git a/interface-definitions/include/bgp-neighbor-afi-ipv6-unicast.xml.i b/interface-definitions/include/bgp-neighbor-afi-ipv6-unicast.xml.i
index e9ba23408..e43c34113 100644
--- a/interface-definitions/include/bgp-neighbor-afi-ipv6-unicast.xml.i
+++ b/interface-definitions/include/bgp-neighbor-afi-ipv6-unicast.xml.i
@@ -10,10 +10,8 @@
</properties>
<children>
#include <include/bgp-afi-capability-orf.xml.i>
- #include <include/bgp-capability-dynamic.xml.i>
</children>
</node>
- #include <include/bgp-afi-peer-group.xml.i>
#include <include/bgp-afi-ipv6-nexthop-local.xml.i>
#include <include/bgp-afi-ipv6-prefix-list.xml.i>
#include <include/bgp-afi-common.xml.i>
diff --git a/interface-definitions/include/bgp-neighbor-afi-l2vpn-evpn.xml.i b/interface-definitions/include/bgp-neighbor-afi-l2vpn-evpn.xml.i
new file mode 100644
index 000000000..df346afc1
--- /dev/null
+++ b/interface-definitions/include/bgp-neighbor-afi-l2vpn-evpn.xml.i
@@ -0,0 +1,16 @@
+<!-- included start from bgp-neighbor-afi-l2vpn-evpn.xml.i -->
+<node name="l2vpn-evpn">
+ <properties>
+ <help>L2VPN EVPN BGP settings</help>
+ </properties>
+ <children>
+ #include <include/bgp-afi-allowas-in.xml.i>
+ #include <include/bgp-afi-attribute-unchanged.xml.i>
+ #include <include/bgp-afi-nexthop-self.xml.i>
+ #include <include/bgp-afi-route-map.xml.i>
+ #include <include/bgp-afi-route-reflector-client.xml.i>
+ #include <include/bgp-afi-route-server-client.xml.i>
+ #include <include/bgp-afi-soft-reconfiguration.xml.i>
+ </children>
+</node>
+<!-- included end -->
diff --git a/interface-definitions/include/bgp-peer-group.xml.i b/interface-definitions/include/bgp-peer-group.xml.i
index 24585c1ce..73c80e0e4 100644
--- a/interface-definitions/include/bgp-peer-group.xml.i
+++ b/interface-definitions/include/bgp-peer-group.xml.i
@@ -2,6 +2,10 @@
<leafNode name="peer-group">
<properties>
<help>Peer group for this peer</help>
+ <valueHelp>
+ <format>txt</format>
+ <description>Peer-group name</description>
+ </valueHelp>
</properties>
</leafNode>
<!-- included end -->
diff --git a/interface-definitions/include/bgp-shutdown.xml.i b/interface-definitions/include/bgp-shutdown.xml.i
index 330120bba..fefbfcebb 100644
--- a/interface-definitions/include/bgp-shutdown.xml.i
+++ b/interface-definitions/include/bgp-shutdown.xml.i
@@ -1,7 +1,7 @@
<!-- included start from bgp-shutdown.xml.i -->
<leafNode name="shutdown">
<properties>
- <help>Administratively shut down peer-group</help>
+ <help>Administratively shut down this neighbor</help>
<valueless/>
</properties>
</leafNode>
diff --git a/interface-definitions/include/bgp-update-source.xml.i b/interface-definitions/include/bgp-update-source.xml.i
index c1db2e2c1..a8b212720 100644
--- a/interface-definitions/include/bgp-update-source.xml.i
+++ b/interface-definitions/include/bgp-update-source.xml.i
@@ -21,7 +21,7 @@
<constraint>
<validator name="ipv4-address"/>
<validator name="ipv6-address"/>
- <regex>^(br|bond|dum|en|eth|gnv|peth|tun|vti|vxlan|wg|wlan)[0-9]+|lo$</regex>
+ <validator name="interface-name"/>
</constraint>
</properties>
</leafNode>
diff --git a/interface-definitions/include/interface-parameters-flowlabel.xml.i b/interface-definitions/include/interface-parameters-flowlabel.xml.i
new file mode 100644
index 000000000..ae65c27c9
--- /dev/null
+++ b/interface-definitions/include/interface-parameters-flowlabel.xml.i
@@ -0,0 +1,16 @@
+<!-- included start from interface-parameters-flowlabel.xml.i -->
+<leafNode name="flowlabel">
+ <properties>
+ <help>Specifies the flow label to use in outgoing packets</help>
+ <valueHelp>
+ <format>0x0-0x0FFFFF</format>
+ <description>Tunnel key, 'inherit' or hex value</description>
+ </valueHelp>
+ <constraint>
+ <regex>^((0x){0,1}(0?[0-9A-Fa-f]{1,5})|inherit)$</regex>
+ </constraint>
+ <constraintErrorMessage>Must be 'inherit' or a number</constraintErrorMessage>
+ </properties>
+ <defaultValue>inherit</defaultValue>
+</leafNode>
+<!-- included end -->
diff --git a/interface-definitions/include/interface-parameters-key.xml.i b/interface-definitions/include/interface-parameters-key.xml.i
new file mode 100644
index 000000000..e918ff0e8
--- /dev/null
+++ b/interface-definitions/include/interface-parameters-key.xml.i
@@ -0,0 +1,15 @@
+<!-- included start from interface-parameters-key.xml.i -->
+<leafNode name="key">
+ <properties>
+ <help>Tunnel key</help>
+ <valueHelp>
+ <format>u32</format>
+ <description>Tunnel key</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 0-4294967295"/>
+ </constraint>
+ <constraintErrorMessage>key must be between 0-4294967295</constraintErrorMessage>
+ </properties>
+</leafNode>
+<!-- included end -->
diff --git a/interface-definitions/include/interface-parameters-tos.xml.i b/interface-definitions/include/interface-parameters-tos.xml.i
new file mode 100644
index 000000000..ebb537bed
--- /dev/null
+++ b/interface-definitions/include/interface-parameters-tos.xml.i
@@ -0,0 +1,16 @@
+<!-- included start from tunnel-parameters-tos.xml.i -->
+<leafNode name="tos">
+ <properties>
+ <help>Specifies TOS value to use in outgoing packets</help>
+ <valueHelp>
+ <format>0-99</format>
+ <description>Type of Service (TOS)</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 0-99"/>
+ </constraint>
+ <constraintErrorMessage>TOS must be between 0 and 99</constraintErrorMessage>
+ </properties>
+ <defaultValue>inherit</defaultValue>
+</leafNode>
+<!-- included end -->
diff --git a/interface-definitions/include/interface-parameters-ttl.xml.i b/interface-definitions/include/interface-parameters-ttl.xml.i
new file mode 100644
index 000000000..a6a6f163f
--- /dev/null
+++ b/interface-definitions/include/interface-parameters-ttl.xml.i
@@ -0,0 +1,20 @@
+<!-- included start from interface-parameters-ttl.xml.i -->
+<leafNode name="ttl">
+ <properties>
+ <help>Specifies TTL value to use in outgoing packets (default: 0)</help>
+ <valueHelp>
+ <format>0</format>
+ <description>Copy value from original IP header</description>
+ </valueHelp>
+ <valueHelp>
+ <format>1-255</format>
+ <description>Time to Live</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 0-255"/>
+ </constraint>
+ <constraintErrorMessage>TTL must be between 0 and 255</constraintErrorMessage>
+ </properties>
+ <defaultValue>0</defaultValue>
+</leafNode>
+<!-- included end -->
diff --git a/interface-definitions/include/ospf-authentication.xml.i b/interface-definitions/include/ospf-authentication.xml.i
new file mode 100644
index 000000000..efb29c1f0
--- /dev/null
+++ b/interface-definitions/include/ospf-authentication.xml.i
@@ -0,0 +1,56 @@
+<!-- included start from ospf-authentication.xml.i -->
+<node name="authentication">
+ <properties>
+ <help>Authentication</help>
+ </properties>
+ <children>
+ <node name="md5">
+ <properties>
+ <help>MD5 key id</help>
+ </properties>
+ <children>
+ <tagNode name="key-id">
+ <properties>
+ <help>MD5 key id</help>
+ <valueHelp>
+ <format>u32:1-255</format>
+ <description>MD5 key id</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 1-255"/>
+ </constraint>
+ </properties>
+ <children>
+ <leafNode name="md5-key">
+ <properties>
+ <help>MD5 authentication type</help>
+ <valueHelp>
+ <format>txt</format>
+ <description>MD5 Key (16 characters or less)</description>
+ </valueHelp>
+ <constraint>
+ <regex>^[^[:space:]]{1,16}$</regex>
+ </constraint>
+ <constraintErrorMessage>Password must be 16 characters or less</constraintErrorMessage>
+ </properties>
+ </leafNode>
+ </children>
+ </tagNode>
+ </children>
+ </node>
+ <leafNode name="plaintext-password">
+ <properties>
+ <help>Plain text password</help>
+ <valueHelp>
+ <format>txt</format>
+ <description>Plain text password (8 characters or less)</description>
+ </valueHelp>
+ <constraint>
+ <regex>^[^[:space:]]{1,8}$</regex>
+ </constraint>
+ <constraintErrorMessage>Password must be 8 characters or less</constraintErrorMessage>
+ </properties>
+ </leafNode>
+ </children>
+</node>
+<!-- included end -->
diff --git a/interface-definitions/include/ospf-interface-common.xml.i b/interface-definitions/include/ospf-interface-common.xml.i
new file mode 100644
index 000000000..c3493faa3
--- /dev/null
+++ b/interface-definitions/include/ospf-interface-common.xml.i
@@ -0,0 +1,39 @@
+<!-- included start from ospf-interface-common.xml.i -->
+<leafNode name="bfd">
+ <properties>
+ <help>Enable Bidirectional Forwarding Detection (BFD) support</help>
+ <valueless/>
+ </properties>
+</leafNode>
+<leafNode name="cost">
+ <properties>
+ <help>Interface cost</help>
+ <valueHelp>
+ <format>u32:1-65535</format>
+ <description>OSPF interface cost</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 1-65535"/>
+ </constraint>
+ </properties>
+</leafNode>
+<leafNode name="mtu-ignore">
+ <properties>
+ <help>Disable Maximum Transmission Unit (MTU) mismatch detection</help>
+ <valueless/>
+ </properties>
+</leafNode>
+<leafNode name="priority">
+ <properties>
+ <help>Router priority (default: 1)</help>
+ <valueHelp>
+ <format>u32:0-255</format>
+ <description>OSPF router priority cost</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 0-255"/>
+ </constraint>
+ </properties>
+ <defaultValue>1</defaultValue>
+</leafNode>
+<!-- included end -->
diff --git a/interface-definitions/include/ospf-intervals.xml.i b/interface-definitions/include/ospf-intervals.xml.i
new file mode 100644
index 000000000..e532bd14b
--- /dev/null
+++ b/interface-definitions/include/ospf-intervals.xml.i
@@ -0,0 +1,54 @@
+<!-- included start from ospf-intervals.xml.i -->
+<leafNode name="dead-interval">
+ <properties>
+ <help>Interval after which a neighbor is declared dead (default: 40)</help>
+ <valueHelp>
+ <format>u32:1-65535</format>
+ <description>Neighbor dead interval (seconds)</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 1-65535"/>
+ </constraint>
+ </properties>
+ <defaultValue>40</defaultValue>
+</leafNode>
+<leafNode name="hello-interval">
+ <properties>
+ <help>Interval between hello packets (default: 10)</help>
+ <valueHelp>
+ <format>u32:1-65535</format>
+ <description>Hello interval (seconds)</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 1-65535"/>
+ </constraint>
+ </properties>
+ <defaultValue>10</defaultValue>
+</leafNode>
+<leafNode name="retransmit-interval">
+ <properties>
+ <help>Interval between retransmitting lost link state advertisements (default: 5)</help>
+ <valueHelp>
+ <format>u32:1-65535</format>
+ <description>Retransmit interval (seconds)</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 1-65535"/>
+ </constraint>
+ </properties>
+ <defaultValue>5</defaultValue>
+</leafNode>
+<leafNode name="transmit-delay">
+ <properties>
+ <help>Link state transmit delay (default: 1)</help>
+ <valueHelp>
+ <format>u32:1-65535</format>
+ <description>Link state transmit delay (seconds)</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 1-65535"/>
+ </constraint>
+ </properties>
+ <defaultValue>1</defaultValue>
+</leafNode>
+<!-- included end -->
diff --git a/interface-definitions/include/ospf-route-map.xml.i b/interface-definitions/include/ospf-route-map.xml.i
index 8dc5b37da..943a477c0 100644
--- a/interface-definitions/include/ospf-route-map.xml.i
+++ b/interface-definitions/include/ospf-route-map.xml.i
@@ -2,6 +2,10 @@
<leafNode name="route-map">
<properties>
<help>Route map reference</help>
+ <valueHelp>
+ <format>txt</format>
+ <description>Route map reference</description>
+ </valueHelp>
<completionHelp>
<path>policy route-map</path>
</completionHelp>
diff --git a/interface-definitions/include/radius-server-ipv4-ipv6.xml.i b/interface-definitions/include/radius-server-ipv4-ipv6.xml.i
index e4919d86a..ab3c6d72a 100644
--- a/interface-definitions/include/radius-server-ipv4-ipv6.xml.i
+++ b/interface-definitions/include/radius-server-ipv4-ipv6.xml.i
@@ -22,8 +22,8 @@
</properties>
<children>
#include <include/generic-disable-node.xml.i>
- #include <include/radius-server-key.xml.in>
- #include <include/radius-server-port.xml.in>
+ #include <include/radius-server-key.xml.i>
+ #include <include/radius-server-port.xml.i>
</children>
</tagNode>
#include <include/source-address-ipv4-ipv6.xml.i>
diff --git a/interface-definitions/include/radius-server-ipv4.xml.i b/interface-definitions/include/radius-server-ipv4.xml.i
index 9c73c4c49..15a421b9a 100644
--- a/interface-definitions/include/radius-server-ipv4.xml.i
+++ b/interface-definitions/include/radius-server-ipv4.xml.i
@@ -18,8 +18,8 @@
</properties>
<children>
#include <include/generic-disable-node.xml.i>
- #include <include/radius-server-key.xml.in>
- #include <include/radius-server-port.xml.in>
+ #include <include/radius-server-key.xml.i>
+ #include <include/radius-server-port.xml.i>
</children>
</tagNode>
</children>
diff --git a/interface-definitions/include/radius-server-key.xml.in b/interface-definitions/include/radius-server-key.xml.i
index 32a01b402..32a01b402 100644
--- a/interface-definitions/include/radius-server-key.xml.in
+++ b/interface-definitions/include/radius-server-key.xml.i
diff --git a/interface-definitions/include/radius-server-port.xml.in b/interface-definitions/include/radius-server-port.xml.i
index 71b6bddb7..71b6bddb7 100644
--- a/interface-definitions/include/radius-server-port.xml.in
+++ b/interface-definitions/include/radius-server-port.xml.i
diff --git a/interface-definitions/include/rip-access-list.xml.i b/interface-definitions/include/rip-access-list.xml.i
new file mode 100644
index 000000000..0db6863e5
--- /dev/null
+++ b/interface-definitions/include/rip-access-list.xml.i
@@ -0,0 +1,39 @@
+<!-- included start from rip-access-list.xml.i -->
+<node name="access-list">
+ <properties>
+ <help>Access-list</help>
+ </properties>
+ <children>
+ <leafNode name="in">
+ <properties>
+ <help>Access list to apply to input packets</help>
+ <valueHelp>
+ <format>u32</format>
+ <description>Access list to apply to input packets</description>
+ </valueHelp>
+ <completionHelp>
+ <path>policy access-list</path>
+ </completionHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 0-4294967295"/>
+ </constraint>
+ </properties>
+ </leafNode>
+ <leafNode name="out">
+ <properties>
+ <help>Access list to apply to output packets</help>
+ <valueHelp>
+ <format>u32</format>
+ <description>Access list to apply to output packets</description>
+ </valueHelp>
+ <completionHelp>
+ <path>policy access-list</path>
+ </completionHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 0-4294967295"/>
+ </constraint>
+ </properties>
+ </leafNode>
+ </children>
+</node>
+<!-- included end -->
diff --git a/interface-definitions/include/rip-access-list6.xml.i b/interface-definitions/include/rip-access-list6.xml.i
new file mode 100644
index 000000000..6a8a37607
--- /dev/null
+++ b/interface-definitions/include/rip-access-list6.xml.i
@@ -0,0 +1,39 @@
+<!-- included start from rip-access-list.xml.i -->
+<node name="access-list">
+ <properties>
+ <help>Access-list</help>
+ </properties>
+ <children>
+ <leafNode name="in">
+ <properties>
+ <help>Access list to apply to input packets</help>
+ <valueHelp>
+ <format>u32</format>
+ <description>Access list to apply to input packets</description>
+ </valueHelp>
+ <completionHelp>
+ <path>policy access-list6</path>
+ </completionHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 0-4294967295"/>
+ </constraint>
+ </properties>
+ </leafNode>
+ <leafNode name="out">
+ <properties>
+ <help>Access list to apply to output packets</help>
+ <valueHelp>
+ <format>u32</format>
+ <description>Access list to apply to output packets</description>
+ </valueHelp>
+ <completionHelp>
+ <path>policy access-list6</path>
+ </completionHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 0-4294967295"/>
+ </constraint>
+ </properties>
+ </leafNode>
+ </children>
+</node>
+<!-- included end -->
diff --git a/interface-definitions/include/rip-default-information.xml.i b/interface-definitions/include/rip-default-information.xml.i
new file mode 100644
index 000000000..22a2f6ac7
--- /dev/null
+++ b/interface-definitions/include/rip-default-information.xml.i
@@ -0,0 +1,15 @@
+<!-- included start from rip-default-information.xml.i -->
+<node name="default-information">
+ <properties>
+ <help>Control distribution of default route</help>
+ </properties>
+ <children>
+ <leafNode name="originate">
+ <properties>
+ <help>Distribute a default route</help>
+ <valueless/>
+ </properties>
+ </leafNode>
+ </children>
+</node>
+<!-- included end -->
diff --git a/interface-definitions/include/rip-default-metric.xml.i b/interface-definitions/include/rip-default-metric.xml.i
new file mode 100644
index 000000000..a5e6016d6
--- /dev/null
+++ b/interface-definitions/include/rip-default-metric.xml.i
@@ -0,0 +1,14 @@
+<!-- included start from rip-default-metric.xml.i -->
+<leafNode name="default-metric">
+ <properties>
+ <help>Metric of redistributed routes</help>
+ <valueHelp>
+ <format>u32:1-16</format>
+ <description>Default metric</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 1-16"/>
+ </constraint>
+ </properties>
+</leafNode>
+<!-- included end -->
diff --git a/interface-definitions/include/rip-interface.xml.i b/interface-definitions/include/rip-interface.xml.i
new file mode 100644
index 000000000..6279c16c8
--- /dev/null
+++ b/interface-definitions/include/rip-interface.xml.i
@@ -0,0 +1,38 @@
+<!-- included start from rip-interface.xml.i -->
+<tagNode name="interface">
+ <properties>
+ <help>Interface name</help>
+ <completionHelp>
+ <script>${vyos_completion_dir}/list_interfaces.py</script>
+ </completionHelp>
+ <valueHelp>
+ <format>txt</format>
+ <description>Interface name</description>
+ </valueHelp>
+ <constraint>
+ <validator name="interface-name"/>
+ </constraint>
+ </properties>
+ <children>
+ <node name="split-horizon">
+ <properties>
+ <help>Split horizon parameters</help>
+ </properties>
+ <children>
+ <leafNode name="disable">
+ <properties>
+ <help>Disable split horizon on specified interface</help>
+ <valueless/>
+ </properties>
+ </leafNode>
+ <leafNode name="poison-reverse">
+ <properties>
+ <help>Disable split horizon on specified interface</help>
+ <valueless/>
+ </properties>
+ </leafNode>
+ </children>
+ </node>
+ </children>
+</tagNode>
+<!-- included end -->
diff --git a/interface-definitions/include/rip-prefix-list.xml.i b/interface-definitions/include/rip-prefix-list.xml.i
new file mode 100644
index 000000000..58969a86b
--- /dev/null
+++ b/interface-definitions/include/rip-prefix-list.xml.i
@@ -0,0 +1,33 @@
+<!-- included start from rip-prefix-list.xml.i -->
+<node name="prefix-list">
+ <properties>
+ <help>Prefix-list</help>
+ </properties>
+ <children>
+ <leafNode name="in">
+ <properties>
+ <help>Prefix-list to apply to input packets</help>
+ <valueHelp>
+ <format>txt</format>
+ <description>Prefix-list to apply to input packets</description>
+ </valueHelp>
+ <completionHelp>
+ <path>policy prefix-list</path>
+ </completionHelp>
+ </properties>
+ </leafNode>
+ <leafNode name="out">
+ <properties>
+ <help>Prefix-list to apply to output packets</help>
+ <valueHelp>
+ <format>txt</format>
+ <description>Prefix-list to apply to output packets</description>
+ </valueHelp>
+ <completionHelp>
+ <path>policy prefix-list</path>
+ </completionHelp>
+ </properties>
+ </leafNode>
+ </children>
+</node>
+<!-- included end -->
diff --git a/interface-definitions/include/rip-prefix-list6.xml.i b/interface-definitions/include/rip-prefix-list6.xml.i
new file mode 100644
index 000000000..f73f77d05
--- /dev/null
+++ b/interface-definitions/include/rip-prefix-list6.xml.i
@@ -0,0 +1,33 @@
+<!-- included start from rip-prefix-list.xml.i -->
+<node name="prefix-list">
+ <properties>
+ <help>Prefix-list</help>
+ </properties>
+ <children>
+ <leafNode name="in">
+ <properties>
+ <help>Prefix-list to apply to input packets</help>
+ <valueHelp>
+ <format>txt</format>
+ <description>Prefix-list to apply to input packets</description>
+ </valueHelp>
+ <completionHelp>
+ <path>policy prefix-list6</path>
+ </completionHelp>
+ </properties>
+ </leafNode>
+ <leafNode name="out">
+ <properties>
+ <help>Prefix-list to apply to output packets</help>
+ <valueHelp>
+ <format>txt</format>
+ <description>Prefix-list to apply to output packets</description>
+ </valueHelp>
+ <completionHelp>
+ <path>policy prefix-list6</path>
+ </completionHelp>
+ </properties>
+ </leafNode>
+ </children>
+</node>
+<!-- included end -->
diff --git a/interface-definitions/include/rip-redistribute.xml.i b/interface-definitions/include/rip-redistribute.xml.i
index f9dba3ffe..c7b9d2c09 100644
--- a/interface-definitions/include/rip-redistribute.xml.i
+++ b/interface-definitions/include/rip-redistribute.xml.i
@@ -11,16 +11,5 @@
</constraint>
</properties>
</leafNode>
-<leafNode name="route-map">
- <properties>
- <help>Route map reference</help>
- <valueHelp>
- <format>txt</format>
- <description>Route map reference</description>
- </valueHelp>
- <completionHelp>
- <path>policy route-map</path>
- </completionHelp>
- </properties>
-</leafNode>
+#include <include/ospf-route-map.xml.i>
<!-- included end -->
diff --git a/interface-definitions/include/rip-timers.xml.i b/interface-definitions/include/rip-timers.xml.i
new file mode 100644
index 000000000..5ba19bb06
--- /dev/null
+++ b/interface-definitions/include/rip-timers.xml.i
@@ -0,0 +1,48 @@
+<!-- included start from rip-timers.xml.i -->
+<node name="timers">
+ <properties>
+ <help>RIPng timer values</help>
+ </properties>
+ <children>
+ <leafNode name="garbage-collection">
+ <properties>
+ <help>Garbage collection timer</help>
+ <valueHelp>
+ <format>u32:5-2147483647</format>
+ <description>Garbage colletion time (default 120)</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 5-2147483647"/>
+ </constraint>
+ </properties>
+ <defaultValue>120</defaultValue>
+ </leafNode>
+ <leafNode name="timeout">
+ <properties>
+ <help>Routing information timeout timer</help>
+ <valueHelp>
+ <format>u32:5-2147483647</format>
+ <description>Routing information timeout timer (default 180)</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 5-2147483647"/>
+ </constraint>
+ </properties>
+ <defaultValue>180</defaultValue>
+ </leafNode>
+ <leafNode name="update">
+ <properties>
+ <help>Routing table update timer</help>
+ <valueHelp>
+ <format>u32:5-2147483647</format>
+ <description>Routing table update timer in seconds (default 30)</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 5-2147483647"/>
+ </constraint>
+ </properties>
+ <defaultValue>30</defaultValue>
+ </leafNode>
+ </children>
+</node>
+<!-- included end -->
diff --git a/interface-definitions/include/routing-passive-interface-xml.i b/interface-definitions/include/routing-passive-interface-xml.i
new file mode 100644
index 000000000..8478620cf
--- /dev/null
+++ b/interface-definitions/include/routing-passive-interface-xml.i
@@ -0,0 +1,24 @@
+<!-- included start from routing-passive-interface-xml.i -->
+<leafNode name="passive-interface">
+ <properties>
+ <help>Suppress routing updates on an interface</help>
+ <completionHelp>
+ <list>default</list>
+ <script>${vyos_completion_dir}/list_interfaces.py</script>
+ </completionHelp>
+ <valueHelp>
+ <format>txt</format>
+ <description>Interface to be passive (i.e. suppress routing updates)</description>
+ </valueHelp>
+ <valueHelp>
+ <format>default</format>
+ <description>Default to suppress routing updates on all interfaces</description>
+ </valueHelp>
+ <constraint>
+ <regex>^(default)$</regex>
+ <validator name="interface-name"/>
+ </constraint>
+ <multi/>
+ </properties>
+</leafNode>
+<!-- included end -->
diff --git a/interface-definitions/include/static-route-blackhole.xml.i b/interface-definitions/include/static-route-blackhole.xml.i
new file mode 100644
index 000000000..d0a0c2079
--- /dev/null
+++ b/interface-definitions/include/static-route-blackhole.xml.i
@@ -0,0 +1,10 @@
+<!-- included start from static-route-blackhole.xml.i -->
+<node name="blackhole">
+ <properties>
+ <help>Silently discard packets when matched</help>
+ </properties>
+ <children>
+ #include <include/static-route-distance.xml.i>
+ </children>
+</node>
+<!-- included end -->
diff --git a/interface-definitions/include/static-route-distance.xml.i b/interface-definitions/include/static-route-distance.xml.i
new file mode 100644
index 000000000..d6c0d3d82
--- /dev/null
+++ b/interface-definitions/include/static-route-distance.xml.i
@@ -0,0 +1,14 @@
+<!-- included start from static-route-distance.xml.i -->
+<leafNode name="distance">
+ <properties>
+ <help>Distance for this route</help>
+ <valueHelp>
+ <format>u32:1-255</format>
+ <description>Distance for this route</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 1-255"/>
+ </constraint>
+ </properties>
+</leafNode>
+<!-- included end -->
diff --git a/interface-definitions/include/static-route-interface.xml.i b/interface-definitions/include/static-route-interface.xml.i
new file mode 100644
index 000000000..0f10837df
--- /dev/null
+++ b/interface-definitions/include/static-route-interface.xml.i
@@ -0,0 +1,17 @@
+<!-- included start from static-route-interface.xml.i -->
+<leafNode name="interface">
+ <properties>
+ <help>Gateway interface name</help>
+ <completionHelp>
+ <script>${vyos_completion_dir}/list_interfaces.py</script>
+ </completionHelp>
+ <valueHelp>
+ <format>txt</format>
+ <description>Gateway interface name</description>
+ </valueHelp>
+ <constraint>
+ <validator name="interface-name"/>
+ </constraint>
+ </properties>
+</leafNode>
+<!-- included end -->
diff --git a/interface-definitions/include/static-route-map.xml.i b/interface-definitions/include/static-route-map.xml.i
new file mode 100644
index 000000000..25542b8b1
--- /dev/null
+++ b/interface-definitions/include/static-route-map.xml.i
@@ -0,0 +1,10 @@
+<!-- included start from static-route-map.xml.i -->
+<leafNode name="route-map">
+ <properties>
+ <help>Filter routes installed in local route map</help>
+ <completionHelp>
+ <path>policy route-map</path>
+ </completionHelp>
+ </properties>
+</leafNode>
+<!-- included end -->
diff --git a/interface-definitions/include/static-route-vrf.xml.i b/interface-definitions/include/static-route-vrf.xml.i
new file mode 100644
index 000000000..70f8b0be8
--- /dev/null
+++ b/interface-definitions/include/static-route-vrf.xml.i
@@ -0,0 +1,19 @@
+<!-- included start from static-route-vrf.xml.i -->
+<leafNode name="vrf">
+ <properties>
+ <help>VRF to leak route</help>
+ <completionHelp>
+ <list>default</list>
+ <path>vrf name</path>
+ </completionHelp>
+ <valueHelp>
+ <format>txt</format>
+ <description>Name of VRF to leak to</description>
+ </valueHelp>
+ <constraint>
+ <regex>^(default)$</regex>
+ <validator name="vrf-name"/>
+ </constraint>
+ </properties>
+</leafNode>
+<!-- included end -->
diff --git a/interface-definitions/include/static-route.xml.i b/interface-definitions/include/static-route.xml.i
new file mode 100644
index 000000000..386582e09
--- /dev/null
+++ b/interface-definitions/include/static-route.xml.i
@@ -0,0 +1,75 @@
+<!-- included start from static-route.xml.i -->
+<tagNode name="route">
+ <properties>
+ <help>VRF static IPv4 route</help>
+ <valueHelp>
+ <format>ipv4net</format>
+ <description>IPv4 static route</description>
+ </valueHelp>
+ <constraint>
+ <validator name="ipv4-prefix"/>
+ </constraint>
+ </properties>
+ <children>
+ <node name="blackhole">
+ <properties>
+ <help>Silently discard pkts when matched</help>
+ </properties>
+ <children>
+ #include <include/static-route-distance.xml.i>
+ <leafNode name="tag">
+ <properties>
+ <help>Tag value for this route</help>
+ <valueHelp>
+ <format>u32:1-4294967295</format>
+ <description>Tag value for this route</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 1-4294967295"/>
+ </constraint>
+ </properties>
+ </leafNode>
+ </children>
+ </node>
+ <tagNode name="interface">
+ <properties>
+ <help>Next-hop IPv4 router interface</help>
+ <completionHelp>
+ <script>${vyos_completion_dir}/list_interfaces.py</script>
+ </completionHelp>
+ <valueHelp>
+ <format>txt</format>
+ <description>Gateway interface name</description>
+ </valueHelp>
+ <constraint>
+ <validator name="interface-name"/>
+ </constraint>
+ </properties>
+ <children>
+ #include <include/generic-disable-node.xml.i>
+ #include <include/static-route-distance.xml.i>
+ #include <include/static-route-vrf.xml.i>
+ </children>
+ </tagNode>
+ <tagNode name="next-hop">
+ <properties>
+ <help>Next-hop IPv4 router address</help>
+ <valueHelp>
+ <format>ipv4</format>
+ <description>Next-hop router address</description>
+ </valueHelp>
+ <constraint>
+ <validator name="ipv4-address"/>
+ </constraint>
+ </properties>
+ <children>
+ #include <include/generic-disable-node.xml.i>
+ #include <include/static-route-distance.xml.i>
+ #include <include/static-route-interface.xml.i>
+ #include <include/static-route-vrf.xml.i>
+ </children>
+ </tagNode>
+ </children>
+</tagNode>
+<!-- included end -->
+
diff --git a/interface-definitions/include/static-route6.xml.i b/interface-definitions/include/static-route6.xml.i
new file mode 100644
index 000000000..fcf97cd03
--- /dev/null
+++ b/interface-definitions/include/static-route6.xml.i
@@ -0,0 +1,75 @@
+<!-- included start from static-route6.xml.i -->
+<tagNode name="route6">
+ <properties>
+ <help>VRF static IPv6 route</help>
+ <valueHelp>
+ <format>ipv6net</format>
+ <description>IPv6 static route</description>
+ </valueHelp>
+ <constraint>
+ <validator name="ipv6-prefix"/>
+ </constraint>
+ </properties>
+ <children>
+ <node name="blackhole">
+ <properties>
+ <help>Silently discard pkts when matched</help>
+ </properties>
+ <children>
+ #include <include/static-route-distance.xml.i>
+ <leafNode name="tag">
+ <properties>
+ <help>Tag value for this route</help>
+ <valueHelp>
+ <format>u32:1-4294967295</format>
+ <description>Tag value for this route</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 1-4294967295"/>
+ </constraint>
+ </properties>
+ </leafNode>
+ </children>
+ </node>
+ <tagNode name="interface">
+ <properties>
+ <help>IPv6 gateway interface name</help>
+ <completionHelp>
+ <script>${vyos_completion_dir}/list_interfaces.py</script>
+ </completionHelp>
+ <valueHelp>
+ <format>txt</format>
+ <description>Gateway interface name</description>
+ </valueHelp>
+ <constraint>
+ <validator name="interface-name"/>
+ </constraint>
+ </properties>
+ <children>
+ #include <include/generic-disable-node.xml.i>
+ #include <include/static-route-distance.xml.i>
+ #include <include/static-route-vrf.xml.i>
+ </children>
+ </tagNode>
+ <tagNode name="next-hop">
+ <properties>
+ <help>IPv6 gateway address</help>
+ <valueHelp>
+ <format>ipv6</format>
+ <description>Next-hop IPv6 router</description>
+ </valueHelp>
+ <constraint>
+ <validator name="ipv6-address"/>
+ </constraint>
+ </properties>
+ <children>
+ #include <include/generic-disable-node.xml.i>
+ #include <include/static-route-distance.xml.i>
+ #include <include/static-route-interface.xml.i>
+ #include <include/static-route-vrf.xml.i>
+ </children>
+ </tagNode>
+ </children>
+</tagNode>
+<!-- included end -->
+
diff --git a/interface-definitions/include/tunnel-local-remote-ip.xml.i b/interface-definitions/include/tunnel-local-remote-ip.xml.i
new file mode 100644
index 000000000..85c20f482
--- /dev/null
+++ b/interface-definitions/include/tunnel-local-remote-ip.xml.i
@@ -0,0 +1,37 @@
+<!-- included start from tunnel-local-remote-ip.xml.i -->
+<leafNode name="local-ip">
+ <properties>
+ <help>Local IP address for this tunnel</help>
+ <valueHelp>
+ <format>ipv4</format>
+ <description>Local IPv4 address for this tunnel</description>
+ </valueHelp>
+ <valueHelp>
+ <format>ipv6</format>
+ <description>Local IPv6 address for this tunnel</description>
+ </valueHelp>
+ <completionHelp>
+ <script>${vyos_completion_dir}/list_local_ips.sh --both</script>
+ </completionHelp>
+ <constraint>
+ <validator name="ip-address"/>
+ </constraint>
+ </properties>
+</leafNode>
+<leafNode name="remote-ip">
+ <properties>
+ <help>Remote IP address for this tunnel</help>
+ <valueHelp>
+ <format>ipv4</format>
+ <description>Remote IPv4 address for this tunnel</description>
+ </valueHelp>
+ <valueHelp>
+ <format>ipv6</format>
+ <description>Remote IPv6 address for this tunnel</description>
+ </valueHelp>
+ <constraint>
+ <!-- does it need fixing/changing to be more restrictive ? -->
+ <validator name="ip-address"/>
+ </constraint>
+ </properties>
+</leafNode>
diff --git a/interface-definitions/include/vif-s.xml.i b/interface-definitions/include/vif-s.xml.i
index 6ba7e0b99..01cb59efc 100644
--- a/interface-definitions/include/vif-s.xml.i
+++ b/interface-definitions/include/vif-s.xml.i
@@ -61,6 +61,7 @@
#include <include/interface-vrf.xml.i>
</children>
</tagNode>
+ #include <include/interface-vrf.xml.i>
</children>
</tagNode>
<!-- included end -->
diff --git a/interface-definitions/include/vni.xml.i b/interface-definitions/include/vni.xml.i
new file mode 100644
index 000000000..faff4c3c3
--- /dev/null
+++ b/interface-definitions/include/vni.xml.i
@@ -0,0 +1,12 @@
+ <leafNode name="vni">
+ <properties>
+ <help>Virtual Network Identifier</help>
+ <valueHelp>
+ <format>0-16777214</format>
+ <description>VXLAN virtual network identifier</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 0-16777214"/>
+ </constraint>
+ </properties>
+ </leafNode>
diff --git a/interface-definitions/interfaces-erspan.xml.in b/interface-definitions/interfaces-erspan.xml.in
new file mode 100644
index 000000000..e36a64d3a
--- /dev/null
+++ b/interface-definitions/interfaces-erspan.xml.in
@@ -0,0 +1,113 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+ <node name="interfaces">
+ <children>
+ <tagNode name="erspan" owner="${vyos_conf_scripts_dir}/interfaces-erspan.py">
+ <properties>
+ <help>Encapsulated Remote SPAN over GRE and IPv4/IPv6 Tunnel Interface</help>
+ <priority>310</priority>
+ <constraint>
+ <regex>^ersp[0-9]+$</regex>
+ </constraint>
+ <constraintErrorMessage>ERSPAN tunnel interface must be named erspN</constraintErrorMessage>
+ <valueHelp>
+ <format>erspN</format>
+ <description>ERSPAN Tunnel interface name</description>
+ </valueHelp>
+ </properties>
+ <children>
+ #include <include/interface-description.xml.i>
+ #include <include/interface-disable.xml.i>
+ #include <include/interface-disable-link-detect.xml.i>
+ #include <include/interface-mtu-64-8024.xml.i>
+ #include <include/tunnel-local-remote-ip.xml.i>
+ <leafNode name="encapsulation">
+ <properties>
+ <help>Encapsulation of this tunnel interface</help>
+ <completionHelp>
+ <list>erspan ip6erspan</list>
+ </completionHelp>
+ <valueHelp>
+ <format>erspan</format>
+ <description>Generic Routing Encapsulation</description>
+ </valueHelp>
+ <valueHelp>
+ <format>ip6erspan</format>
+ <description>Generic Routing Encapsulation bridge interface</description>
+ </valueHelp>
+ <constraint>
+ <regex>^(erspan|ip6erspan)$</regex>
+ </constraint>
+ <constraintErrorMessage>Invalid encapsulation, must be one of: erspan, ip6erspan</constraintErrorMessage>
+ </properties>
+ </leafNode>
+ <node name="parameters">
+ <properties>
+ <help>ERSPAN Tunnel parameters</help>
+ </properties>
+ <children>
+ <node name="ip">
+ <properties>
+ <help>IPv4 specific tunnel parameters</help>
+ </properties>
+ <children>
+ #include <include/interface-parameters-key.xml.i>
+ #include <include/interface-parameters-tos.xml.i>
+ #include <include/interface-parameters-ttl.xml.i>
+ </children>
+ </node>
+ <leafNode name="version">
+ <properties>
+ <help>ERSPAN version number setting(default:1)</help>
+ <constraint>
+ <validator name="numeric" argument="--range 1-2"/>
+ </constraint>
+ <constraintErrorMessage>The version number of ERSPAN must be 1 or 2</constraintErrorMessage>
+ </properties>
+ <defaultValue>1</defaultValue>
+ </leafNode>
+ <leafNode name="direction">
+ <properties>
+ <help>Specifies mirrored traffic direction</help>
+ <completionHelp>
+ <list>ingress egress</list>
+ </completionHelp>
+ <valueHelp>
+ <format>ingress</format>
+ <description>Mirror ingress direction</description>
+ </valueHelp>
+ <valueHelp>
+ <format>egress</format>
+ <description>Mirror egress direction</description>
+ </valueHelp>
+ <constraint>
+ <regex>^(ingress|egress)$</regex>
+ </constraint>
+ <constraintErrorMessage>The mirror direction of ERSPAN must be ingress or egress</constraintErrorMessage>
+ </properties>
+ </leafNode>
+ <leafNode name="hwid">
+ <properties>
+ <help>an unique identifier of an ERSPAN v2 engine within a system</help>
+ <constraint>
+ <validator name="numeric" argument="--range 1-1048575"/>
+ </constraint>
+ <constraintErrorMessage>ERSPAN hwid must be a number(range:0-1048575)</constraintErrorMessage>
+ </properties>
+ </leafNode>
+ <leafNode name="idx">
+ <properties>
+ <help>specifies the ERSPAN v1 index field</help>
+ <constraint>
+ <validator name="numeric" argument="--range 0-63"/>
+ </constraint>
+ <constraintErrorMessage>ERSPAN idx must be a number(range:0-63)</constraintErrorMessage>
+ </properties>
+ </leafNode>
+ </children>
+ </node>
+ </children>
+ </tagNode>
+ </children>
+ </node>
+</interfaceDefinition>
diff --git a/interface-definitions/interfaces-geneve.xml.in b/interface-definitions/interfaces-geneve.xml.in
index 0c776e3c3..1064b2c18 100644
--- a/interface-definitions/interfaces-geneve.xml.in
+++ b/interface-definitions/interfaces-geneve.xml.in
@@ -35,18 +35,7 @@
</constraint>
</properties>
</leafNode>
- <leafNode name="vni">
- <properties>
- <help>Virtual Network Identifier</help>
- <valueHelp>
- <format>0-16777214</format>
- <description>GENEVE virtual network identifier</description>
- </valueHelp>
- <constraint>
- <validator name="numeric" argument="--range 0-16777214"/>
- </constraint>
- </properties>
- </leafNode>
+ #include <include/vni.xml.i>
</children>
</tagNode>
</children>
diff --git a/interface-definitions/interfaces-tunnel.xml.in b/interface-definitions/interfaces-tunnel.xml.in
index 7fa847ab0..7a97980a2 100644
--- a/interface-definitions/interfaces-tunnel.xml.in
+++ b/interface-definitions/interfaces-tunnel.xml.in
@@ -27,42 +27,7 @@
</leafNode>
#include <include/interface-ipv4-options.xml.i>
#include <include/interface-ipv6-options.xml.i>
- <leafNode name="local-ip">
- <properties>
- <help>Local IP address for this tunnel</help>
- <valueHelp>
- <format>ipv4</format>
- <description>Local IPv4 address for this tunnel</description>
- </valueHelp>
- <valueHelp>
- <format>ipv6</format>
- <description>Local IPv6 address for this tunnel [NOTICE: unavailable for mGRE tunnels]</description>
- </valueHelp>
- <completionHelp>
- <script>${vyos_completion_dir}/list_local_ips.sh --both</script>
- </completionHelp>
- <constraint>
- <validator name="ip-address"/>
- </constraint>
- </properties>
- </leafNode>
- <leafNode name="remote-ip">
- <properties>
- <help>Remote IP address for this tunnel</help>
- <valueHelp>
- <format>ipv4</format>
- <description>Remote IPv4 address for this tunnel</description>
- </valueHelp>
- <valueHelp>
- <format>ipv6</format>
- <description>Remote IPv6 address for this tunnel</description>
- </valueHelp>
- <constraint>
- <!-- does it need fixing/changing to be more restrictive ? -->
- <validator name="ip-address"/>
- </constraint>
- </properties>
- </leafNode>
+ #include <include/tunnel-local-remote-ip.xml.i>
<leafNode name="source-interface">
<properties>
<help>Physical Interface used for underlaying traffic</help>
@@ -186,58 +151,9 @@
<valueless/>
</properties>
</leafNode>
- <leafNode name="ttl">
- <properties>
- <help>Time to live (default: 0)</help>
- <valueHelp>
- <format>0</format>
- <description>Copy value from original IP header</description>
- </valueHelp>
- <valueHelp>
- <format>1-255</format>
- <description>Time to Live</description>
- </valueHelp>
- <constraint>
- <validator name="numeric" argument="--range 0-255"/>
- </constraint>
- <constraintErrorMessage>TTL must be between 0 and 255</constraintErrorMessage>
- </properties>
- <defaultValue>0</defaultValue>
- </leafNode>
- <leafNode name="tos">
- <properties>
- <help>Type of Service (default: 0)</help>
- <completionHelp>
- <list>inherit</list>
- </completionHelp>
- <valueHelp>
- <format>0</format>
- <description>Copy value from original IP header</description>
- </valueHelp>
- <valueHelp>
- <format>1-99</format>
- <description>Type of Service (TOS)</description>
- </valueHelp>
- <constraint>
- <validator name="numeric" argument="--range 0-99"/>
- </constraint>
- <constraintErrorMessage>TOS must be between 0 and 99</constraintErrorMessage>
- </properties>
- <defaultValue>0</defaultValue>
- </leafNode>
- <leafNode name="key">
- <properties>
- <help>Tunnel key</help>
- <valueHelp>
- <format>u32</format>
- <description>Tunnel key</description>
- </valueHelp>
- <constraint>
- <validator name="numeric" argument="--range 0-4294967295"/>
- </constraint>
- <constraintErrorMessage>Key must be in range 0-4294967295</constraintErrorMessage>
- </properties>
- </leafNode>
+ #include <include/interface-parameters-key.xml.i>
+ #include <include/interface-parameters-tos.xml.i>
+ #include <include/interface-parameters-ttl.xml.i>
</children>
</node>
<node name="ipv6">
@@ -259,20 +175,7 @@
</properties>
<defaultValue>4</defaultValue>
</leafNode>
- <leafNode name="flowlabel">
- <properties>
- <help>Flowlabel</help>
- <valueHelp>
- <format>0x0-0x0FFFFF</format>
- <description>Tunnel key, 'inherit' or hex value</description>
- </valueHelp>
- <constraint>
- <regex>(0x){0,1}(0?[0-9A-Fa-f]{1,5})</regex>
- </constraint>
- <constraintErrorMessage>Must be 'inherit' or a number</constraintErrorMessage>
- </properties>
- <defaultValue>inherit</defaultValue>
- </leafNode>
+ #include <include/interface-parameters-flowlabel.xml.i>
<leafNode name="hoplimit">
<properties>
<help>Hoplimit</help>
diff --git a/interface-definitions/interfaces-vxlan.xml.in b/interface-definitions/interfaces-vxlan.xml.in
index f90a86274..234770971 100644
--- a/interface-definitions/interfaces-vxlan.xml.in
+++ b/interface-definitions/interfaces-vxlan.xml.in
@@ -73,18 +73,7 @@
</properties>
<defaultValue>8472</defaultValue>
</leafNode>
- <leafNode name="vni">
- <properties>
- <help>Virtual Network Identifier</help>
- <valueHelp>
- <format>0-16777214</format>
- <description>VXLAN virtual network identifier</description>
- </valueHelp>
- <constraint>
- <validator name="numeric" argument="--range 0-16777214"/>
- </constraint>
- </properties>
- </leafNode>
+ #include <include/vni.xml.i>
</children>
</tagNode>
</children>
diff --git a/interface-definitions/protocols-bfd.xml.in b/interface-definitions/protocols-bfd.xml.in
index 8900e7955..cc3c3bf12 100644
--- a/interface-definitions/protocols-bfd.xml.in
+++ b/interface-definitions/protocols-bfd.xml.in
@@ -11,7 +11,7 @@
<children>
<tagNode name="peer">
<properties>
- <help>Configures a new BFD peer to listen and talk to</help>
+ <help>Configures BFD peer to listen and talk to</help>
<valueHelp>
<format>ipv4</format>
<description>BFD peer IPv4 address</description>
@@ -26,6 +26,18 @@
</constraint>
</properties>
<children>
+ <leafNode name="profile">
+ <properties>
+ <help>Use settings from BFD profile</help>
+ <completionHelp>
+ <path>protocols bfd profile</path>
+ </completionHelp>
+ <valueHelp>
+ <format>txt</format>
+ <description>BFD profile name</description>
+ </valueHelp>
+ </properties>
+ </leafNode>
<node name="source">
<properties>
<help>Bind listener to specified interface/address, mandatory for IPv6</help>
@@ -42,6 +54,9 @@
<leafNode name="address">
<properties>
<help>Local address to bind our peer listener to</help>
+ <completionHelp>
+ <script>${vyos_completion_dir}/list_local_ips.sh --both</script>
+ </completionHelp>
<valueHelp>
<format>ipv4</format>
<description>Local IPv4 address used to connect to the peer</description>
@@ -58,79 +73,28 @@
</leafNode>
</children>
</node>
- <node name="interval">
- <properties>
- <help>Configure timer intervals</help>
- </properties>
- <children>
- <leafNode name="receive">
- <properties>
- <help>Minimum interval of receiving control packets</help>
- <valueHelp>
- <format>10-60000</format>
- <description>Interval in milliseconds</description>
- </valueHelp>
- <constraint>
- <validator name="numeric" argument="--range 10-60000"/>
- </constraint>
- </properties>
- </leafNode>
- <leafNode name="transmit">
- <properties>
- <help>Minimum interval of transmitting control packets</help>
- <valueHelp>
- <format>10-60000</format>
- <description>Interval in milliseconds</description>
- </valueHelp>
- <constraint>
- <validator name="numeric" argument="--range 10-60000"/>
- </constraint>
- </properties>
- </leafNode>
- <leafNode name="multiplier">
- <properties>
- <help>Multiplier to determine packet loss</help>
- <valueHelp>
- <format>2-255</format>
- <description>Remote transmission interval will be multiplied by this value</description>
- </valueHelp>
- <constraint>
- <validator name="numeric" argument="--range 2-255"/>
- </constraint>
- </properties>
- </leafNode>
- <leafNode name="echo-interval">
- <properties>
- <help>Echo receive transmission interval</help>
- <valueHelp>
- <format>10-60000</format>
- <description>The minimal echo receive transmission interval that this system is capable of handling</description>
- </valueHelp>
- <constraint>
- <validator name="numeric" argument="--range 10-60000"/>
- </constraint>
- </properties>
- </leafNode>
- </children>
- </node>
- <leafNode name="shutdown">
- <properties>
- <help>Disable this peer</help>
- <valueless/>
- </properties>
- </leafNode>
+ #include <include/bfd-common.xml.i>
<leafNode name="multihop">
<properties>
<help>Allow this BFD peer to not be directly connected</help>
<valueless/>
</properties>
</leafNode>
- <leafNode name="echo-mode">
- <properties>
- <help>Enables the echo transmission mode</help>
- <valueless/>
- </properties>
- </leafNode>
+ </children>
+ </tagNode>
+ <tagNode name="profile">
+ <properties>
+ <help>Configure BFD profile used by individual peer</help>
+ <valueHelp>
+ <format>txt</format>
+ <description>Name of BFD profile</description>
+ </valueHelp>
+ <constraint>
+ <regex>^[-_a-zA-Z0-9]{1,32}$</regex>
+ </constraint>
+ </properties>
+ <children>
+ #include <include/bfd-common.xml.i>
</children>
</tagNode>
</children>
diff --git a/interface-definitions/protocols-bgp.xml.in b/interface-definitions/protocols-bgp.xml.in
index 3edacb0ca..69f4c2d52 100644
--- a/interface-definitions/protocols-bgp.xml.in
+++ b/interface-definitions/protocols-bgp.xml.in
@@ -75,6 +75,14 @@
#include <include/bgp-afi-redistribute-metric-route-map.xml.i>
</children>
</node>
+ <node name="isis">
+ <properties>
+ <help>Redistribute IS-IS routes into BGP</help>
+ </properties>
+ <children>
+ #include <include/bgp-afi-redistribute-metric-route-map.xml.i>
+ </children>
+ </node>
<node name="kernel">
<properties>
<help>Redistribute kernel routes into BGP</help>
@@ -217,6 +225,127 @@
</node>
</children>
</node>
+ <node name="l2vpn-evpn">
+ <properties>
+ <help>L2VPN EVPN BGP settings</help>
+ </properties>
+ <children>
+ <leafNode name="advertise-all-vni">
+ <properties>
+ <help>Advertise All local VNIs</help>
+ <valueless/>
+ </properties>
+ </leafNode>
+ #include <include/bgp-afi-l2vpn-common.xml.i>
+ <leafNode name="advertise-pip">
+ <properties>
+ <help>EVPN system primary IP</help>
+ <valueHelp>
+ <format>ipv4</format>
+ <description>IP address</description>
+ </valueHelp>
+ <constraint>
+ <validator name="ipv4-address"/>
+ </constraint>
+ </properties>
+ </leafNode>
+ <leafNode name="rt-auto-derive">
+ <properties>
+ <help>Auto derivation of Route Target (RFC8365)</help>
+ <valueless/>
+ </properties>
+ </leafNode>
+ <node name="flooding">
+ <properties>
+ <help>Specify handling for BUM packets</help>
+ </properties>
+ <children>
+ <leafNode name="disable">
+ <properties>
+ <help>Do not flood any BUM packets</help>
+ <valueless/>
+ </properties>
+ </leafNode>
+ <leafNode name="head-end-replication">
+ <properties>
+ <help>Flood BUM packets using head-end replication</help>
+ <valueless/>
+ </properties>
+ </leafNode>
+ </children>
+ </node>
+ <leafNode name="rd">
+ <properties>
+ <help>Route Distinguisher</help>
+ <valueHelp>
+ <format>txt</format>
+ <description>Route Distinguisher, asn:xxx</description>
+ </valueHelp>
+ <constraint>
+ <regex>^[0-9]{1,10}:[0-9]{1,5}$</regex>
+ </constraint>
+ </properties>
+ </leafNode>
+ <node name="route-target">
+ <properties>
+ <help>Route Target</help>
+ </properties>
+ <children>
+ <leafNode name="both">
+ <properties>
+ <help>Route Target both import and export</help>
+ <valueHelp>
+ <format>txt</format>
+ <description>Route target (x.x.x.x:yyy|xxxx:yyyy)</description>
+ </valueHelp>
+ <constraint>
+ <regex>^((25[0-5]|2[0-4][0-9]|[1][0-9][0-9]|[1-9][0-9]|[0-9]?)(\.(25[0-5]|2[0-4][0-9]|[1][0-9][0-9]|[1-9][0-9]|[0-9]?)){3}|[0-9]{1,10}):[0-9]{1,5}$</regex>
+ </constraint>
+ </properties>
+ </leafNode>
+ <leafNode name="export">
+ <properties>
+ <help>Route Target export</help>
+ <valueHelp>
+ <format>txt</format>
+ <description>Route target (x.x.x.x:yyy|xxxx:yyyy)</description>
+ </valueHelp>
+ <constraint>
+ <regex>^((25[0-5]|2[0-4][0-9]|[1][0-9][0-9]|[1-9][0-9]|[0-9]?)(\.(25[0-5]|2[0-4][0-9]|[1][0-9][0-9]|[1-9][0-9]|[0-9]?)){3}|[0-9]{1,10}):[0-9]{1,5}$</regex>
+ </constraint>
+ </properties>
+ </leafNode>
+ <leafNode name="import">
+ <properties>
+ <help>Route Target import</help>
+ <valueHelp>
+ <format>txt</format>
+ <description>Route target (x.x.x.x:yyy|xxxx:yyyy)</description>
+ </valueHelp>
+ <constraint>
+ <regex>^((25[0-5]|2[0-4][0-9]|[1][0-9][0-9]|[1-9][0-9]|[0-9]?)(\.(25[0-5]|2[0-4][0-9]|[1][0-9][0-9]|[1-9][0-9]|[0-9]?)){3}|[0-9]{1,10}):[0-9]{1,5}$</regex>
+ </constraint>
+ </properties>
+ </leafNode>
+ </children>
+ </node>
+ <tagNode name="vni">
+ <properties>
+ <help>VXLAN Network Identifier</help>
+ <valueHelp>
+ <format>u32:1-16777215</format>
+ <description>VNI number</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 1-16777215"/>
+ </constraint>
+ </properties>
+ <children>
+ #include <include/bgp-afi-l2vpn-common.xml.i>
+ </children>
+ </tagNode>
+ </children>
+ </node>
</children>
</node>
<node name="maximum-paths">
@@ -307,7 +436,7 @@
<constraint>
<validator name="ipv4-address"/>
<validator name="ipv6-address"/>
- <regex>^(br|bond|dum|en|eth|gnv|peth|tun|vti|vxlan|wg|wlan)[0-9]+|lo$</regex>
+ <validator name="interface-name"/>
</constraint>
</properties>
<children>
@@ -318,6 +447,7 @@
<children>
#include <include/bgp-neighbor-afi-ipv4-unicast.xml.i>
#include <include/bgp-neighbor-afi-ipv6-unicast.xml.i>
+ #include <include/bgp-neighbor-afi-l2vpn-evpn.xml.i>
</children>
</node>
<leafNode name="advertisement-interval">
@@ -337,25 +467,6 @@
#include <include/bgp-description.xml.i>
#include <include/bgp-disable-capability-negotiation.xml.i>
#include <include/bgp-disable-connected-check.xml.i>
- <node name="disable-send-community">
- <properties>
- <help>Disable sending community attributes to this neighbor (IPv4)</help>
- </properties>
- <children>
- <leafNode name="extended">
- <properties>
- <help>Disable sending extended community attributes to this neighbor (IPv4)</help>
- <valueless/>
- </properties>
- </leafNode>
- <leafNode name="standard">
- <properties>
- <help>Disable sending standard community attributes to this neighbor (IPv4)</help>
- <valueless/>
- </properties>
- </leafNode>
- </children>
- </node>
#include <include/bgp-ebgp-multihop.xml.i>
<node name="interface">
<properties>
@@ -721,6 +832,12 @@
</leafNode>
</children>
</node>
+ <leafNode name="graceful-shutdown">
+ <properties>
+ <help>Graceful shutdown</help>
+ <valueless/>
+ </properties>
+ </leafNode>
<leafNode name="log-neighbor-changes">
<properties>
<help>Log neighbor up/down changes and reset reason</help>
@@ -771,6 +888,7 @@
<children>
#include <include/bgp-neighbor-afi-ipv4-unicast.xml.i>
#include <include/bgp-neighbor-afi-ipv6-unicast.xml.i>
+ #include <include/bgp-neighbor-afi-l2vpn-evpn.xml.i>
</children>
</node>
#include <include/bgp-bfd.xml.i>
diff --git a/interface-definitions/protocols-multicast.xml.in b/interface-definitions/protocols-multicast.xml.in
index a06f2b287..bf0ead78f 100644
--- a/interface-definitions/protocols-multicast.xml.in
+++ b/interface-definitions/protocols-multicast.xml.in
@@ -1,5 +1,4 @@
<?xml version="1.0"?>
-<!-- Multicast static routing configuration -->
<interfaceDefinition>
<node name="protocols">
<children>
diff --git a/interface-definitions/protocols-ospf.xml.in b/interface-definitions/protocols-ospf.xml.in
index 074d0db63..b9c9fcc04 100644
--- a/interface-definitions/protocols-ospf.xml.in
+++ b/interface-definitions/protocols-ospf.xml.in
@@ -39,6 +39,10 @@
<description>Filter connected routes</description>
</valueHelp>
<valueHelp>
+ <format>isis</format>
+ <description>Filter IS-IS routes</description>
+ </valueHelp>
+ <valueHelp>
<format>kernel</format>
<description>Filter Kernel routes</description>
</valueHelp>
@@ -51,7 +55,7 @@
<description>Filter static routes</description>
</valueHelp>
<constraint>
- <regex>^(bgp|connected|kernel|rip|static)$</regex>
+ <regex>^(bgp|connected|isis|kernel|rip|static)$</regex>
</constraint>
<constraintErrorMessage>Must be bgp, connected, kernel, rip, or static</constraintErrorMessage>
<multi/>
@@ -275,101 +279,8 @@
</constraint>
</properties>
<children>
- <node name="authentication">
- <properties>
- <help>Authentication</help>
- </properties>
- <children>
- <node name="md5">
- <properties>
- <help>MD5 key id</help>
- </properties>
- <children>
- <tagNode name="key-id">
- <properties>
- <help>MD5 key id</help>
- <valueHelp>
- <format>u32:1-255</format>
- <description>MD5 key id</description>
- </valueHelp>
- </properties>
- <children>
- <leafNode name="md5-key">
- <properties>
- <help>MD5 authentication type</help>
- <valueHelp>
- <format>txt</format>
- <description>MD5 Key (16 characters or less)</description>
- </valueHelp>
- </properties>
- </leafNode>
- </children>
- </tagNode>
- </children>
- </node>
- <leafNode name="plaintext-password">
- <properties>
- <help>Plain text password</help>
- <valueHelp>
- <format>txt</format>
- <description>Plain text password (8 characters or less)</description>
- </valueHelp>
- </properties>
- </leafNode>
- </children>
- </node>
- <leafNode name="dead-interval">
- <properties>
- <help>Interval after which a neighbor is declared dead (default: 40)</help>
- <valueHelp>
- <format>u32:1-65535</format>
- <description>Neighbor dead interval (seconds)</description>
- </valueHelp>
- <constraint>
- <validator name="numeric" argument="--range 1-65535"/>
- </constraint>
- </properties>
- <defaultValue>40</defaultValue>
- </leafNode>
- <leafNode name="hello-interval">
- <properties>
- <help>Interval between hello packets (default: 10)</help>
- <valueHelp>
- <format>u32:1-65535</format>
- <description>Hello interval (seconds)</description>
- </valueHelp>
- <constraint>
- <validator name="numeric" argument="--range 1-65535"/>
- </constraint>
- </properties>
- <defaultValue>10</defaultValue>
- </leafNode>
- <leafNode name="retransmit-interval">
- <properties>
- <help>Interval between retransmitting lost link state advertisements (default: 5)</help>
- <valueHelp>
- <format>u32:1-65535</format>
- <description>Retransmit interval (seconds)</description>
- </valueHelp>
- <constraint>
- <validator name="numeric" argument="--range 1-65535"/>
- </constraint>
- </properties>
- <defaultValue>5</defaultValue>
- </leafNode>
- <leafNode name="transmit-delay">
- <properties>
- <help>Link state transmit delay (default: 1)</help>
- <valueHelp>
- <format>u32:1-65535</format>
- <description>Link state transmit delay (seconds)</description>
- </valueHelp>
- <constraint>
- <validator name="numeric" argument="--range 1-65535"/>
- </constraint>
- </properties>
- <defaultValue>1</defaultValue>
- </leafNode>
+ #include <include/ospf-authentication.xml.i>
+ #include <include/ospf-intervals.xml.i>
</children>
</tagNode>
</children>
@@ -491,6 +402,78 @@
</node>
</children>
</node>
+ <tagNode name="interface">
+ <properties>
+ <help>Interface related configuration</help>
+ <completionHelp>
+ <script>${vyos_completion_dir}/list_interfaces.py</script>
+ </completionHelp>
+ <valueHelp>
+ <format>txt</format>
+ <description>Interface name</description>
+ </valueHelp>
+ <constraint>
+ <validator name="interface-name"/>
+ </constraint>
+ </properties>
+ <children>
+ #include <include/ospf-authentication.xml.i>
+ #include <include/ospf-intervals.xml.i>
+ #include <include/ospf-interface-common.xml.i>
+ <leafNode name="bandwidth">
+ <properties>
+ <help>Bandwidth of interface (Megabit/sec)</help>
+ <valueHelp>
+ <format>u32:1-100000</format>
+ <description>Bandwidth in Megabit/sec (for calculating OSPF cost)</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 1-100000"/>
+ </constraint>
+ </properties>
+ </leafNode>
+ <leafNode name="hello-multiplier">
+ <properties>
+ <help>Hello multiplier factor</help>
+ <valueHelp>
+ <format>u32:1-10</format>
+ <description>Number of Hellos to send each second</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 1-10"/>
+ </constraint>
+ </properties>
+ </leafNode>
+ <leafNode name="network">
+ <properties>
+ <help>Network type</help>
+ <completionHelp>
+ <list>broadcast non-broadcast point-to-multipoint point-to-point</list>
+ </completionHelp>
+ <valueHelp>
+ <format>broadcast</format>
+ <description>Broadcast network type</description>
+ </valueHelp>
+ <valueHelp>
+ <format>non-broadcast</format>
+ <description>Non-broadcast network type</description>
+ </valueHelp>
+ <valueHelp>
+ <format>point-to-multipoint</format>
+ <description>Point-to-multipoint network type</description>
+ </valueHelp>
+ <valueHelp>
+ <format>point-to-point</format>
+ <description>Point-to-point network type</description>
+ </valueHelp>
+ <constraint>
+ <regex>^(broadcast|non-broadcast|point-to-multipoint|point-to-point)$</regex>
+ </constraint>
+ <constraintErrorMessage>Must be broadcast, non-broadcast, point-to-multipoint or point-to-point</constraintErrorMessage>
+ </properties>
+ </leafNode>
+ </children>
+ </tagNode>
<node name="log-adjacency-changes">
<properties>
<help>Log changes in adjacency state</help>
@@ -673,27 +656,7 @@
</leafNode>
</children>
</node>
- <leafNode name="passive-interface">
- <properties>
- <help>Suppress routing updates on an interface</help>
- <completionHelp>
- <list>default</list>
- <script>${vyos_completion_dir}/list_interfaces.py</script>
- </completionHelp>
- <valueHelp>
- <format>txt</format>
- <description>Interface to be passive (i.e. suppress routing updates)</description>
- </valueHelp>
- <valueHelp>
- <format>default</format>
- <description>Default to suppress routing updates on all interfaces</description>
- </valueHelp>
- <constraint>
- <regex>^(br|bond|dum|en|eth|gnv|peth|tun|vti|vxlan|wg|wlan)[0-9]+|lo|default$</regex>
- </constraint>
- <multi/>
- </properties>
- </leafNode>
+ #include <include/routing-passive-interface-xml.i>
<leafNode name="passive-interface-exclude">
<properties>
<help>Interface to exclude when using 'passive-interface default'</help>
@@ -702,10 +665,15 @@
</completionHelp>
<valueHelp>
<format>txt</format>
- <description>Interface to be passive (i.e. suppress routing updates)</description>
+ <description>Interface to exclude when suppressing routing updates</description>
+ </valueHelp>
+ <valueHelp>
+ <format>vlinkN</format>
+ <description>Virtual-link interface to exclude when suppressing routing updates</description>
</valueHelp>
<constraint>
- <regex>^(br|bond|dum|en|eth|gnv|peth|tun|vti|vxlan|wg|wlan)[0-9]+|lo$</regex>
+ <validator name="interface-name"/>
+ <regex>^(vlink[0-9]+)$</regex>
</constraint>
<multi/>
</properties>
@@ -735,6 +703,16 @@
#include <include/ospf-route-map.xml.i>
</children>
</node>
+ <node name="isis">
+ <properties>
+ <help>Redistribute IS-IS routes</help>
+ </properties>
+ <children>
+ #include <include/ospf-metric.xml.i>
+ #include <include/ospf-metric-type.xml.i>
+ #include <include/ospf-route-map.xml.i>
+ </children>
+ </node>
<node name="kernel">
<properties>
<help>Redistribute kernel routes</help>
diff --git a/interface-definitions/protocols-ospfv3.xml.in b/interface-definitions/protocols-ospfv3.xml.in
index 7f80f9f9d..2559e2b03 100644
--- a/interface-definitions/protocols-ospfv3.xml.in
+++ b/interface-definitions/protocols-ospfv3.xml.in
@@ -52,7 +52,7 @@
<description>Interface used for routing information exchange</description>
</valueHelp>
<constraint>
- <regex>^(br|bond|dum|en|eth|gnv|peth|tun|vti|vxlan|wg|wlan)[0-9]+|lo$</regex>
+ <validator name="interface-name"/>
</constraint>
<multi/>
</properties>
@@ -147,6 +147,76 @@
</node>
</children>
</node>
+ <tagNode name="interface">
+ <properties>
+ <help>Enable routing on an IPv6 interface</help>
+ <completionHelp>
+ <script>${vyos_completion_dir}/list_interfaces.py</script>
+ </completionHelp>
+ <valueHelp>
+ <format>txt</format>
+ <description>Interface used for routing information exchange</description>
+ </valueHelp>
+ <constraint>
+ <validator name="interface-name"/>
+ </constraint>
+ </properties>
+ <children>
+ #include <include/ospf-intervals.xml.i>
+ #include <include/ospf-interface-common.xml.i>
+ <leafNode name="ifmtu">
+ <properties>
+ <help>Interface MTU</help>
+ <valueHelp>
+ <format>u32:1-65535</format>
+ <description>Interface MTU</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 1-65535"/>
+ </constraint>
+ </properties>
+ </leafNode>
+ <leafNode name="instance-id">
+ <properties>
+ <help>Instance Id (default: 0)</help>
+ <valueHelp>
+ <format>u32:0-255</format>
+ <description>Instance Id</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 0-255"/>
+ </constraint>
+ </properties>
+ <defaultValue>0</defaultValue>
+ </leafNode>
+ <leafNode name="network">
+ <properties>
+ <help>Network type</help>
+ <completionHelp>
+ <list>broadcast point-to-point</list>
+ </completionHelp>
+ <valueHelp>
+ <format>broadcast</format>
+ <description>Broadcast network type</description>
+ </valueHelp>
+ <valueHelp>
+ <format>point-to-point</format>
+ <description>Point-to-point network type</description>
+ </valueHelp>
+ <constraint>
+ <regex>^(broadcast|point-to-point)$</regex>
+ </constraint>
+ <constraintErrorMessage>Must be broadcast or point-to-point</constraintErrorMessage>
+ </properties>
+ </leafNode>
+ <leafNode name="passive">
+ <properties>
+ <help>Disable forming of adjacency</help>
+ <valueless/>
+ </properties>
+ </leafNode>
+ </children>
+ </tagNode>
<node name="parameters">
<properties>
<help>OSPFv3 specific parameters</help>
diff --git a/interface-definitions/protocols-rip.xml.in b/interface-definitions/protocols-rip.xml.in
index 34d0a5a10..1ae3bd8f7 100644
--- a/interface-definitions/protocols-rip.xml.in
+++ b/interface-definitions/protocols-rip.xml.in
@@ -1,4 +1,4 @@
-<!-- Routing Information Protocol (RIP) configuration -->
+<?xml version="1.0"?>
<interfaceDefinition>
<node name="protocols">
<children>
@@ -19,73 +19,14 @@
</constraint>
</properties>
</leafNode>
- <node name="default-information">
- <properties>
- <help>Control distribution of default route</help>
- </properties>
- <children>
- <leafNode name="originate">
- <properties>
- <help>Distribute a default route</help>
- <valueless/>
- </properties>
- </leafNode>
- </children>
- </node>
- <leafNode name="default-metric">
- <properties>
- <help>Metric of redistributed routes</help>
- <valueHelp>
- <format>u32:1-16</format>
- <description>Redistributed routes metric</description>
- </valueHelp>
- <constraint>
- <validator name="numeric" argument="--range 1-16"/>
- </constraint>
- </properties>
- </leafNode>
+ #include <include/rip-default-information.xml.i>
+ #include <include/rip-default-metric.xml.i>
<node name="distribute-list">
<properties>
<help>Filter networks in routing updates</help>
</properties>
<children>
- <node name="access-list">
- <properties>
- <help>Access-list</help>
- </properties>
- <children>
- <leafNode name="in">
- <properties>
- <help>Access list to apply to input packets</help>
- <valueHelp>
- <format>u32</format>
- <description>Access list to apply to input packets</description>
- </valueHelp>
- <completionHelp>
- <path>policy access-list</path>
- </completionHelp>
- <constraint>
- <validator name="numeric" argument="--range 0-4294967295"/>
- </constraint>
- </properties>
- </leafNode>
- <leafNode name="out">
- <properties>
- <help>Access list to apply to output packets</help>
- <valueHelp>
- <format>u32</format>
- <description>Access list to apply to output packets</description>
- </valueHelp>
- <completionHelp>
- <path>policy access-list</path>
- </completionHelp>
- <constraint>
- <validator name="numeric" argument="--range 0-4294967295"/>
- </constraint>
- </properties>
- </leafNode>
- </children>
- </node>
+ #include <include/rip-access-list.xml.i>
<tagNode name="interface">
<properties>
<help>Apply filtering to an interface</help>
@@ -96,124 +37,70 @@
<completionHelp>
<script>${vyos_completion_dir}/list_interfaces.py</script>
</completionHelp>
+ <constraint>
+ <validator name="interface-name"/>
+ </constraint>
+ </properties>
+ <children>
+ #include <include/rip-access-list.xml.i>
+ #include <include/rip-prefix-list.xml.i>
+ </children>
+ </tagNode>
+ #include <include/rip-prefix-list.xml.i>
+ </children>
+ </node>
+ #include <include/rip-interface.xml.i>
+ <tagNode name="interface">
+ <children>
+ <node name="authentication">
+ <properties>
+ <help>Authentication</help>
</properties>
<children>
- <node name="access-list">
+ <tagNode name="md5">
<properties>
- <help>Access list</help>
+ <help>MD5 key id</help>
+ <valueHelp>
+ <format>u32:1-255</format>
+ <description>OSPF key id</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 1-255"/>
+ </constraint>
</properties>
<children>
- <leafNode name="in">
+ <leafNode name="password">
<properties>
- <help>Access list to apply to input packets</help>
+ <help>Authentication password</help>
<valueHelp>
- <format>u32</format>
- <description>Access list to apply to input packets</description>
- </valueHelp>
- <completionHelp>
- <path>policy access-list</path>
- </completionHelp>
- <constraint>
- <validator name="numeric" argument="--range 0-4294967295"/>
- </constraint>
- </properties>
- </leafNode>
- <leafNode name="out">
- <properties>
- <help>Access list to apply to output packets</help>
- <valueHelp>
- <format>u32</format>
- <description>Access list to apply to output packets</description>
+ <format>txt</format>
+ <description>MD5 Key (16 characters or less)</description>
</valueHelp>
- <completionHelp>
- <path>policy access-list</path>
- </completionHelp>
<constraint>
- <validator name="numeric" argument="--range 0-4294967295"/>
+ <regex>^[^[:space:]]{1,16}$</regex>
</constraint>
+ <constraintErrorMessage>Password must be 16 characters or less</constraintErrorMessage>
</properties>
</leafNode>
</children>
- </node>
- <node name="prefix-list">
- <properties>
- <help>Prefix-list</help>
- </properties>
- <children>
- <leafNode name="in">
- <properties>
- <help>Prefix-list to apply to input packets</help>
- <valueHelp>
- <format>txt</format>
- <description>Prefix-list to apply to input packets</description>
- </valueHelp>
- <completionHelp>
- <path>policy prefix-list</path>
- </completionHelp>
- </properties>
- </leafNode>
- <leafNode name="out">
- <properties>
- <help>Prefix-list to apply to output packets</help>
- <valueHelp>
- <format>txt</format>
- <description>Prefix-list to apply to output packets</description>
- </valueHelp>
- <completionHelp>
- <path>policy prefix-list</path>
- </completionHelp>
- </properties>
- </leafNode>
- </children>
- </node>
- </children>
- </tagNode>
- <node name="prefix-list">
- <properties>
- <help>Prefix-list</help>
- </properties>
- <children>
- <leafNode name="in">
- <properties>
- <help>Prefix-list to apply to input packets</help>
- <valueHelp>
- <format>txt</format>
- <description>Prefix-list to apply to input packets</description>
- </valueHelp>
- <completionHelp>
- <path>policy prefix-list</path>
- </completionHelp>
- </properties>
- </leafNode>
- <leafNode name="out">
+ </tagNode>
+ <leafNode name="plaintext-password">
<properties>
- <help>Prefix-list to apply to output packets</help>
+ <help>Plain text password</help>
<valueHelp>
<format>txt</format>
- <description>Prefix-list to apply to output packets</description>
+ <description>Plain text password (16 characters or less)</description>
</valueHelp>
- <completionHelp>
- <path>policy prefix-list</path>
- </completionHelp>
+ <constraint>
+ <regex>^[^[:space:]]{1,16}$</regex>
+ </constraint>
+ <constraintErrorMessage>Password must be 16 characters or less</constraintErrorMessage>
</properties>
</leafNode>
</children>
</node>
</children>
- </node>
- <leafNode name="interface">
- <properties>
- <help>Interface name</help>
- <valueHelp>
- <format>txt</format>
- <description>Apply filtering to an interface</description>
- </valueHelp>
- <completionHelp>
- <script>${vyos_completion_dir}/list_interfaces.py</script>
- </completionHelp>
- <multi/>
- </properties>
- </leafNode>
+ </tagNode>
<leafNode name="neighbor">
<properties>
<help>Neighbor router</help>
@@ -264,38 +151,10 @@
</completionHelp>
</properties>
</leafNode>
- <leafNode name="distance">
- <properties>
- <help>Administrative distance for network</help>
- <valueHelp>
- <format>u32:1-255</format>
- <description>Administrative distance</description>
- </valueHelp>
- <constraint>
- <validator name="numeric" argument="--range 1-255"/>
- </constraint>
- </properties>
- </leafNode>
+ #include <include/static-route-distance.xml.i>
</children>
</tagNode>
- <leafNode name="passive-interface">
- <properties>
- <help>Passive interface</help>
- <valueHelp>
- <format>txt</format>
- <description>Suppress routing updates on interface</description>
- </valueHelp>
- <valueHelp>
- <format>default</format>
- <description>Suppress routing updates on all interfaces by default</description>
- </valueHelp>
- <completionHelp>
- <list>default</list>
- <script>${vyos_completion_dir}/list_interfaces.py</script>
- </completionHelp>
- <multi/>
- </properties>
- </leafNode>
+ #include <include/routing-passive-interface-xml.i>
<node name="redistribute">
<properties>
<help>Redistribute information from another routing protocol</help>
@@ -317,6 +176,14 @@
#include <include/rip-redistribute.xml.i>
</children>
</node>
+ <node name="isis">
+ <properties>
+ <help>Redistribute IS-IS routes</help>
+ </properties>
+ <children>
+ #include <include/rip-redistribute.xml.i>
+ </children>
+ </node>
<node name="kernel">
<properties>
<help>Redistribute kernel routes</help>
@@ -356,49 +223,7 @@
<multi/>
</properties>
</leafNode>
- <node name="timers">
- <properties>
- <help>RIP timer values</help>
- </properties>
- <children>
- <leafNode name="garbage-collection">
- <properties>
- <help>Garbage collection timer</help>
- <valueHelp>
- <format>u32:5-2147483647</format>
- <description>Garbage colletion time (default 120)</description>
- </valueHelp>
- <constraint>
- <validator name="numeric" argument="--range 5-2147483647"/>
- </constraint>
- </properties>
- </leafNode>
- <leafNode name="timeout">
- <properties>
- <help>Routing information timeout timer</help>
- <valueHelp>
- <format>u32:5-2147483647</format>
- <description>Routing information timeout timer (default 180)</description>
- </valueHelp>
- <constraint>
- <validator name="numeric" argument="--range 5-2147483647"/>
- </constraint>
- </properties>
- </leafNode>
- <leafNode name="update">
- <properties>
- <help>Routing table update timer</help>
- <valueHelp>
- <format>u32:5-2147483647</format>
- <description>Routing table update timer in seconds (default 30)</description>
- </valueHelp>
- <constraint>
- <validator name="numeric" argument="--range 5-2147483647"/>
- </constraint>
- </properties>
- </leafNode>
- </children>
- </node>
+ #include <include/rip-timers.xml.i>
</children>
</node>
</children>
diff --git a/interface-definitions/protocols-ripng.xml.in b/interface-definitions/protocols-ripng.xml.in
new file mode 100644
index 000000000..e456c3f3b
--- /dev/null
+++ b/interface-definitions/protocols-ripng.xml.in
@@ -0,0 +1,146 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+ <node name="protocols">
+ <children>
+ <node name="ripng" owner="${vyos_conf_scripts_dir}/protocols_ripng.py">
+ <properties>
+ <help>Routing Information Protocol (RIPng) parameters</help>
+ </properties>
+ <children>
+ <leafNode name="aggregate-address">
+ <properties>
+ <help>Aggregate RIPng route announcement</help>
+ <valueHelp>
+ <format>ipv6net</format>
+ <description>Aggregate RIPng route announcement</description>
+ </valueHelp>
+ <constraint>
+ <validator name="ipv6-prefix"/>
+ </constraint>
+ <multi/>
+ </properties>
+ </leafNode>
+ #include <include/rip-default-information.xml.i>
+ #include <include/rip-default-metric.xml.i>
+ <node name="distribute-list">
+ <properties>
+ <help>Filter networks in routing updates</help>
+ </properties>
+ <children>
+ #include <include/rip-access-list6.xml.i>
+ <tagNode name="interface">
+ <properties>
+ <help>Apply filtering to an interface</help>
+ <valueHelp>
+ <format>txt</format>
+ <description>Apply filtering to an interface</description>
+ </valueHelp>
+ <completionHelp>
+ <script>${vyos_completion_dir}/list_interfaces.py</script>
+ </completionHelp>
+ <constraint>
+ <validator name="interface-name"/>
+ </constraint>
+ </properties>
+ <children>
+ #include <include/rip-access-list6.xml.i>
+ #include <include/rip-prefix-list6.xml.i>
+ </children>
+ </tagNode>
+ #include <include/rip-prefix-list6.xml.i>
+ </children>
+ </node>
+ #include <include/rip-interface.xml.i>
+ <leafNode name="network">
+ <properties>
+ <help>RIPng network</help>
+ <valueHelp>
+ <format>ipv6net</format>
+ <description>RIPng network</description>
+ </valueHelp>
+ <constraint>
+ <validator name="ipv6-prefix"/>
+ </constraint>
+ <multi/>
+ </properties>
+ </leafNode>
+ <leafNode name="passive-interface">
+ <properties>
+ <help>Passive interface</help>
+ <valueHelp>
+ <format>txt</format>
+ <description>Suppress routing updates on interface</description>
+ </valueHelp>
+ <completionHelp>
+ <script>${vyos_completion_dir}/list_interfaces.py</script>
+ </completionHelp>
+ <multi/>
+ </properties>
+ </leafNode>
+ <node name="redistribute">
+ <properties>
+ <help>Redistribute information from another routing protocol</help>
+ </properties>
+ <children>
+ <node name="bgp">
+ <properties>
+ <help>Redistribute BGP routes</help>
+ </properties>
+ <children>
+ #include <include/rip-redistribute.xml.i>
+ </children>
+ </node>
+ <node name="connected">
+ <properties>
+ <help>Redistribute connected routes</help>
+ </properties>
+ <children>
+ #include <include/rip-redistribute.xml.i>
+ </children>
+ </node>
+ <node name="kernel">
+ <properties>
+ <help>Redistribute kernel routes</help>
+ </properties>
+ <children>
+ #include <include/rip-redistribute.xml.i>
+ </children>
+ </node>
+ <node name="ospfv3">
+ <properties>
+ <help>Redistribute OSPFv3 routes</help>
+ </properties>
+ <children>
+ #include <include/rip-redistribute.xml.i>
+ </children>
+ </node>
+ <node name="static">
+ <properties>
+ <help>Redistribute static routes</help>
+ </properties>
+ <children>
+ #include <include/rip-redistribute.xml.i>
+ </children>
+ </node>
+ </children>
+ </node>
+ <leafNode name="route">
+ <properties>
+ <help>RIPng static route</help>
+ <valueHelp>
+ <format>ipv6net</format>
+ <description>RIPng static route</description>
+ </valueHelp>
+ <constraint>
+ <validator name="ipv6-prefix"/>
+ </constraint>
+ <multi/>
+ </properties>
+ </leafNode>
+ #include <include/ospf-route-map.xml.i>
+ #include <include/rip-timers.xml.i>
+ </children>
+ </node>
+ </children>
+ </node>
+</interfaceDefinition>
diff --git a/interface-definitions/protocols-rpki.xml.in b/interface-definitions/protocols-rpki.xml.in
index b8db49e36..94fab54a5 100644
--- a/interface-definitions/protocols-rpki.xml.in
+++ b/interface-definitions/protocols-rpki.xml.in
@@ -1,32 +1,44 @@
<?xml version="1.0" encoding="utf-8"?>
-<!-- Protocol RPKI configuration -->
<interfaceDefinition>
<node name="protocols">
<children>
- <node name="nrpki" owner="${vyos_conf_scripts_dir}/protocols_rpki.py">
+ <node name="rpki" owner="${vyos_conf_scripts_dir}/protocols_rpki.py">
<properties>
<help>BGP prefix origin validation</help>
</properties>
<children>
<tagNode name="cache">
<properties>
- <help>RPKI cache server instance</help>
+ <help>RPKI cache server address</help>
+ <valueHelp>
+ <format>ipv4</format>
+ <description>IP address of NTP server</description>
+ </valueHelp>
+ <valueHelp>
+ <format>ipv6</format>
+ <description>IPv6 address of NTP server</description>
+ </valueHelp>
+ <valueHelp>
+ <format>hostname</format>
+ <description>Fully qualified domain name of NTP server</description>
+ </valueHelp>
+ <constraint>
+ <validator name="ipv4-address"/>
+ <validator name="ipv6-address"/>
+ <validator name="fqdn"/>
+ </constraint>
</properties>
<children>
- <leafNode name="address">
+ #include <include/port-number.xml.i>
+ <leafNode name="preference">
<properties>
- <help>RPKI cache server address</help>
- </properties>
- </leafNode>
- <leafNode name="port">
- <properties>
- <help>TCP port number</help>
+ <help>Preference of the cache server</help>
<valueHelp>
- <format>u32:1-65535</format>
- <description>TCP port number</description>
+ <format>u32:1-255</format>
+ <description>Polling period</description>
</valueHelp>
<constraint>
- <validator name="numeric" argument="--range 1-65535"/>
+ <validator name="numeric" argument="--range 1-255"/>
</constraint>
</properties>
</leafNode>
@@ -68,55 +80,20 @@
</node>
</children>
</tagNode>
- <leafNode name="initial-synchronization-timeout">
- <properties>
- <help>Initial RPKI cache synchronization timeout</help>
- <valueHelp>
- <format>u32:0-4294967295</format>
- <description>Initial RPKI cache synchronization timeout</description>
- </valueHelp>
- <constraint>
- <validator name="numeric" argument="--range 0-4294967295"/>
- </constraint>
- </properties>
- </leafNode>
<leafNode name="polling-period">
<properties>
- <help>RPKI cache polling period</help>
- <valueHelp>
- <format>u32:1-1300</format>
- <description>Polling period</description>
- </valueHelp>
- <constraint>
- <validator name="numeric" argument="--range 1-1300"/>
- </constraint>
- </properties>
- </leafNode>
- <leafNode name="preference">
- <properties>
- <help>RPKI cache preference</help>
- <valueHelp>
- <format>u32:0-4294967295</format>
- <description>RPKI cache preference</description>
- </valueHelp>
- <constraint>
- <validator name="numeric" argument="--range 0-4294967295"/>
- </constraint>
- </properties>
- </leafNode>
- <leafNode name="timeout">
- <properties>
- <help>RPKI cache reply timeout</help>
+ <help>RPKI cache polling period (default: 300)</help>
<valueHelp>
- <format>u32:0-4294967295</format>
- <description>RPKI cache reply timeout</description>
+ <format>u32:1-86400</format>
+ <description>Polling period in seconds</description>
</valueHelp>
<constraint>
- <validator name="numeric" argument="--range 0-4294967295"/>
+ <validator name="numeric" argument="--range 1-86400"/>
</constraint>
</properties>
+ <defaultValue>300</defaultValue>
</leafNode>
- </children>
+ </children>
</node>
</children>
</node>
diff --git a/interface-definitions/arp.xml.in b/interface-definitions/protocols-static-arp.xml.in
index 082afe00f..e5e8a9ad9 100644
--- a/interface-definitions/arp.xml.in
+++ b/interface-definitions/protocols-static-arp.xml.in
@@ -18,7 +18,7 @@
<children>
<leafNode name="hwaddr">
<properties>
- <help>mac address to translate to</help>
+ <help>Translation MAC address</help>
<valueHelp>
<format>macaddr</format>
<description>Hardware (MAC) address</description>
diff --git a/interface-definitions/protocols-static.xml.in b/interface-definitions/protocols-static.xml.in
new file mode 100644
index 000000000..59a7927a5
--- /dev/null
+++ b/interface-definitions/protocols-static.xml.in
@@ -0,0 +1,33 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+ <node name="protocols">
+ <children>
+ <node name="static" owner="${vyos_conf_scripts_dir}/protocols_static.py">
+ <properties>
+ <help>Static route parameters</help>
+ </properties>
+ <children>
+ #include <include/static-route-map.xml.i>
+ #include <include/static-route.xml.i>
+ #include <include/static-route6.xml.i>
+ <tagNode name="table">
+ <properties>
+ <help>Policy route table number</help>
+ <valueHelp>
+ <format>u32:1-200</format>
+ <description>Policy route table number</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 1-200"/>
+ </constraint>
+ </properties>
+ <children>
+ #include <include/static-route.xml.i>
+ #include <include/static-route6.xml.i>
+ </children>
+ </tagNode>
+ </children>
+ </node>
+ </children>
+ </node>
+</interfaceDefinition>
diff --git a/interface-definitions/protocols-vrf.xml.in b/interface-definitions/protocols-vrf.xml.in
new file mode 100644
index 000000000..77297938b
--- /dev/null
+++ b/interface-definitions/protocols-vrf.xml.in
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<interfaceDefinition>
+ <node name="protocols">
+ <children>
+ <tagNode name="vrf" owner="${vyos_conf_scripts_dir}/protocols_vrf.py">
+ <properties>
+ <help>Name of VRF to add route for</help>
+ <completionHelp>
+ <path>vrf name</path>
+ </completionHelp>
+ <valueHelp>
+ <format>txt</format>
+ <description>VRF instance name</description>
+ </valueHelp>
+ <constraint>
+ <validator name="vrf-name"/>
+ </constraint>
+ <constraintErrorMessage>VRF instance name must be 15 characters or less and can not\nbe named as regular network interfaces.\n</constraintErrorMessage>
+ </properties>
+ <children>
+ <node name="static">
+ <properties>
+ <help>Static route parameters</help>
+ </properties>
+ <children>
+ #include <include/static-route.xml.i>
+ #include <include/static-route6.xml.i>
+ </children>
+ </node>
+ #include <include/vni.xml.i>
+ </children>
+ </tagNode>
+ </children>
+ </node>
+</interfaceDefinition>
diff --git a/interface-definitions/vpn_l2tp.xml.in b/interface-definitions/vpn_l2tp.xml.in
index 998a8c371..3a6c8a992 100644
--- a/interface-definitions/vpn_l2tp.xml.in
+++ b/interface-definitions/vpn_l2tp.xml.in
@@ -217,7 +217,7 @@
<children>
<tagNode name="server">
<children>
- #include <include/accel-radius-additions-disable-accounting.xlm.in>
+ #include <include/accel-radius-additions-disable-accounting.xml.i>
<leafNode name="fail-time">
<properties>
<help>Mark server unavailable for &lt;n&gt; seconds on failure</help>
diff --git a/interface-definitions/vrf.xml.in b/interface-definitions/vrf.xml.in
index 81c89d94b..eca9e75a7 100644
--- a/interface-definitions/vrf.xml.in
+++ b/interface-definitions/vrf.xml.in
@@ -21,7 +21,7 @@
</constraint>
<constraintErrorMessage>VRF instance name must be 15 characters or less and can not\nbe named as regular network interfaces.\n</constraintErrorMessage>
<valueHelp>
- <format>name</format>
+ <format>txt</format>
<description>Instance name</description>
</valueHelp>
</properties>
diff --git a/interface-definitions/vrrp.xml.in b/interface-definitions/vrrp.xml.in
index caa9f4a33..3c4c9b83c 100644
--- a/interface-definitions/vrrp.xml.in
+++ b/interface-definitions/vrrp.xml.in
@@ -212,6 +212,15 @@
</constraint>
</properties>
</leafNode>
+ <leafNode name="mode-force">
+ <properties>
+ <valueless/>
+ <help>Disable VRRP state checking (deprecated, will be removed in VyOS 1.4)</help>
+ <constraint>
+ <validator name="script"/>
+ </constraint>
+ </properties>
+ </leafNode>
</children>
</node>
<leafNode name="virtual-address">