diff options
author | Thomas Mangin <thomas.mangin@exa.net.uk> | 2020-03-03 20:01:56 +0100 |
---|---|---|
committer | Christian Poessinger <christian@poessinger.com> | 2020-03-04 21:43:59 +0100 |
commit | 665d1c5bdb24aa0aef79405dc2f2962b930fb9b3 (patch) | |
tree | 467499a4ce63308ca6d1e349b13f1e807ba4703e /interface-definitions | |
parent | dac5ad318b00853591121078bce5c849db23c810 (diff) | |
download | vyos-1x-665d1c5bdb24aa0aef79405dc2f2962b930fb9b3.tar.gz vyos-1x-665d1c5bdb24aa0aef79405dc2f2962b930fb9b3.zip |
vrf: T31: initial support for a VRF backend in XML/Python
This is a work in progress to complete T31 whoever thought it was less than
1 hour of work was ..... optimistic.
Only VRF vreation and show is supported right now. No interface can be bound
to any one VRF.
Diffstat (limited to 'interface-definitions')
-rw-r--r-- | interface-definitions/include/interface-vrf.xml.i | 12 | ||||
-rw-r--r-- | interface-definitions/vrf.xml.in | 58 |
2 files changed, 70 insertions, 0 deletions
diff --git a/interface-definitions/include/interface-vrf.xml.i b/interface-definitions/include/interface-vrf.xml.i new file mode 100644 index 000000000..7e880e6ee --- /dev/null +++ b/interface-definitions/include/interface-vrf.xml.i @@ -0,0 +1,12 @@ +<leafNode name="vrf"> + <properties> + <help>VRF instance name</help> + <completionHelp> + <path>vrf name</path> + </completionHelp> + <constraint> + <validator name="interface-name"/> + </constraint> + <constraintErrorMessage>VRF name not allowed or to long</constraintErrorMessage> + </properties> +</leafNode> diff --git a/interface-definitions/vrf.xml.in b/interface-definitions/vrf.xml.in new file mode 100644 index 000000000..e270e8b90 --- /dev/null +++ b/interface-definitions/vrf.xml.in @@ -0,0 +1,58 @@ +<?xml version="1.0"?> +<interfaceDefinition> + <node name="vrf" owner="${vyos_conf_scripts_dir}/vrf.py"> + <properties> + <help>VRF configuration</help> + <!-- must be before any interface creation --> + <priority>210</priority> + </properties> + <children> + <node name="disable-bind-to-all"> + <properties> + <help>Disable services running on the default VRF from other VRF (ssh, bgp, ...)</help> + </properties> + <children> + <leafNode name="ipv4"> + <properties> + <valueless/> + <help>Enable binding across all VRF domains for IPv4</help> + </properties> + </leafNode> + </children> + </node> + <tagNode name="name"> + <properties> + <help>Virtual Routing and Forwarding</help> + <constraint> + <validator name="interface-name"/> + </constraint> + <constraintErrorMessage>VRF name not allowed or to long</constraintErrorMessage> + <valueHelp> + <format>name</format> + <description>the vrf name must not contain '/' and be 16 characters or less</description> + </valueHelp> + </properties> + <children> + <leafNode name="table"> + <properties> + <help>The routing table to associate to this VRF</help> + <constraint> + <validator name="numeric" argument="--range 1-2147483647"/> + </constraint> + <constraintErrorMessage>Invalid kernel table number</constraintErrorMessage> + <valueHelp> + <format>number</format> + <description>the VRF must be a number between 1 and 2^31-1</description> + </valueHelp> + </properties> + </leafNode> + <leafNode name="description"> + <properties> + <help>Description of the VRF role</help> + </properties> + </leafNode> + </children> + </tagNode> + </children> + </node> +</interfaceDefinition>
\ No newline at end of file |