summaryrefslogtreecommitdiff
path: root/op-mode-definitions
diff options
context:
space:
mode:
author3roin <e.khudiyev@live.com>2022-05-05 12:28:28 +0000
committerChristian Poessinger <christian@poessinger.com>2022-05-05 19:15:21 +0200
commit55d2ee80dcddfbaae8600f6389088f1d718965a8 (patch)
treeff9287ceed59685f83996104c20ab9bf8fba1905 /op-mode-definitions
parentc1757b0f420b9407213233ecba67e99333c38143 (diff)
downloadvyos-1x-55d2ee80dcddfbaae8600f6389088f1d718965a8.tar.gz
vyos-1x-55d2ee80dcddfbaae8600f6389088f1d718965a8.zip
op-mode: T4416: Rewrite 'traceroute' op-command and expand available options using python
Diffstat (limited to 'op-mode-definitions')
-rw-r--r--op-mode-definitions/traceroute.xml.in220
1 files changed, 8 insertions, 212 deletions
diff --git a/op-mode-definitions/traceroute.xml.in b/op-mode-definitions/traceroute.xml.in
index e3217235c..aba0f45e3 100644
--- a/op-mode-definitions/traceroute.xml.in
+++ b/op-mode-definitions/traceroute.xml.in
@@ -2,226 +2,22 @@
<interfaceDefinition>
<tagNode name="traceroute">
<properties>
- <help>Track network path to node</help>
- <completionHelp>
- <list>&lt;hostname&gt; &lt;x.x.x.x&gt; &lt;h:h:h:h:h:h:h:h&gt;</list>
- </completionHelp>
- </properties>
- <command>/usr/bin/traceroute "$2"</command>
- </tagNode>
- <node name="traceroute">
- <properties>
- <help>Track network path to node</help>
+ <help>Trace network path to node</help>
<completionHelp>
<list>&lt;hostname&gt; &lt;x.x.x.x&gt; &lt;h:h:h:h:h:h:h:h&gt;</list>
</completionHelp>
</properties>
+ <command>${vyos_op_scripts_dir}/traceroute.py ${@:2}</command>
<children>
- <tagNode name="ipv4">
+ <leafNode name="node.tag">
<properties>
- <help>Explicitly use IPv4 when tracing the path</help>
+ <help>Traceroute options</help>
<completionHelp>
- <list>&lt;hostname&gt; &lt;x.x.x.x&gt;</list>
+ <script>${vyos_op_scripts_dir}/traceroute.py --get-options "${COMP_WORDS[@]}"</script>
</completionHelp>
</properties>
- <command>/usr/bin/traceroute -4 "$3"</command>
- <children>
- <node name="tcp">
- <properties>
- <help>Route tracing and port detection using TCP</help>
- </properties>
- <command>sudo /usr/bin/tcptraceroute "$3" </command>
- <children>
- <tagNode name="port">
- <properties>
- <help>TCP port to connect to for path tracing</help>
- <completionHelp>
- <list>0-65535</list>
- </completionHelp>
- </properties>
- <command>sudo /usr/bin/tcptraceroute "$3" $6</command>
- </tagNode>
- </children>
- </node>
- </children>
- </tagNode>
- <tagNode name="ipv6">
- <properties>
- <help>Explicitly use IPv6 when tracing the path</help>
- <completionHelp>
- <list>&lt;hostname&gt; &lt;h:h:h:h:h:h:h:h&gt;</list>
- </completionHelp>
- </properties>
- <command>/usr/bin/traceroute -6 "$3"</command>
- <children>
- <node name="tcp">
- <properties>
- <help>Use TCP/IPv6 packets to perform a traceroute</help>
- </properties>
- <command>sudo /usr/bin/tcptraceroute6 "$3" </command>
- <children>
- <tagNode name="port">
- <properties>
- <help>TCP port to connect to for path tracing</help>
- <completionHelp>
- <list>0-65535</list>
- </completionHelp>
- </properties>
- <command>sudo /usr/bin/tcptraceroute6 "$3" $6</command>
- </tagNode>
- </children>
- </node>
- </children>
- </tagNode>
- <tagNode name="vrf">
- <properties>
- <help>Track network path to specified node via given VRF</help>
- <completionHelp>
- <path>vrf name</path>
- </completionHelp>
- </properties>
- <children>
- <!-- we need an empty tagNode to pass in a plain fqdn/ip address and
- let traceroute decide how to handle this parameter -->
- <tagNode name="">
- <properties>
- <help>Track network path to specified node via given VRF</help>
- <completionHelp>
- <list>&lt;hostname&gt; &lt;x.x.x.x&gt; &lt;h:h:h:h:h:h:h:h&gt;</list>
- </completionHelp>
- </properties>
- <command>sudo ip vrf exec "$3" /usr/bin/traceroute "$4"</command>
- </tagNode>
- <tagNode name="ipv4">
- <properties>
- <help>Explicitly use IPv4 when tracing the path via given VRF</help>
- <completionHelp>
- <list>&lt;hostname&gt; &lt;x.x.x.x&gt;</list>
- </completionHelp>
- </properties>
- <command>sudo ip vrf exec "$3" /usr/bin/traceroute -4 "$5"</command>
- <children>
- <node name="tcp">
- <properties>
- <help>Route tracing and port detection using TCP</help>
- </properties>
- <command>sudo ip vrf exec "$3" /usr/bin/tcptraceroute "$5" </command>
- <children>
- <tagNode name="port">
- <properties>
- <help>TCP port to connect to for path tracing</help>
- <completionHelp>
- <list>0-65535</list>
- </completionHelp>
- </properties>
- <command>sudo ip vrf exec "$3" /usr/bin/tcptraceroute "$5" $8</command>
- </tagNode>
- </children>
- </node>
- </children>
- </tagNode>
- <tagNode name="ipv6">
- <properties>
- <help>Explicitly use IPv6 when tracing the path via given VRF</help>
- <completionHelp>
- <list>&lt;hostname&gt; &lt;h:h:h:h:h:h:h:h&gt;</list>
- </completionHelp>
- </properties>
- <command>sudo ip vrf exec "$3" /usr/bin/traceroute -6 "$5"</command>
- <children>
- <node name="tcp">
- <properties>
- <help>Use TCP/IPv6 packets to perform a traceroute</help>
- </properties>
- <command>sudo ip vrf exec "$3" /usr/bin/tcptraceroute6 "$5" </command>
- <children>
- <tagNode name="port">
- <properties>
- <help>TCP port to connect to for path tracing</help>
- <completionHelp>
- <list>0-65535</list>
- </completionHelp>
- </properties>
- <command>sudo ip vrf exec "$3" /usr/bin/tcptraceroute6 "$5" $8</command>
- </tagNode>
- </children>
- </node>
- </children>
- </tagNode>
- </children>
- </tagNode>
- </children>
- </node>
- <node name="monitor">
- <children>
- <tagNode name="traceroute">
- <properties>
- <help>Monitor path to destination in realtime</help>
- <completionHelp>
- <list>&lt;hostname&gt; &lt;x.x.x.x&gt; &lt;h:h:h:h:h:h:h:h&gt;</list>
- </completionHelp>
- </properties>
- <command>/usr/bin/mtr "$3"</command>
- </tagNode>
- <node name="traceroute">
- <children>
- <tagNode name="ipv4">
- <properties>
- <help>IPv4 fully qualified domain name (FQDN)</help>
- <completionHelp>
- <list>&lt;fqdn&gt;</list>
- </completionHelp>
- </properties>
- <command>/usr/bin/mtr -4 "$4"</command>
- </tagNode>
- <tagNode name="ipv6">
- <properties>
- <help>IPv6 fully qualified domain name (FQDN)</help>
- <completionHelp>
- <list>&lt;fqdn&gt;</list>
- </completionHelp>
- </properties>
- <command>/usr/bin/mtr -6 "$4"</command>
- </tagNode>
- <tagNode name="vrf">
- <properties>
- <help>Monitor path to destination in realtime via given VRF</help>
- <completionHelp>
- <path>vrf name</path>
- </completionHelp>
- </properties>
- <children>
- <tagNode name="ipv4">
- <properties>
- <help>IPv4 fully qualified domain name (FQDN)</help>
- <completionHelp>
- <list>&lt;fqdn&gt;</list>
- </completionHelp>
- </properties>
- <command>sudo ip vrf exec "$4" /usr/bin/mtr -4 "$6"</command>
- </tagNode>
- <tagNode name="ipv6">
- <properties>
- <help>IPv6 fully qualified domain name (FQDN)</help>
- <completionHelp>
- <list>&lt;fqdn&gt;</list>
- </completionHelp>
- </properties>
- <command>sudo ip vrf exec "$4" /usr/bin/mtr -6 "$6"</command>
- </tagNode>
- <tagNode name="">
- <properties>
- <help>Track network path to specified node via given VRF</help>
- <completionHelp>
- <list>&lt;hostname&gt; &lt;x.x.x.x&gt; &lt;h:h:h:h:h:h:h:h&gt;</list>
- </completionHelp>
- </properties>
- <command>sudo ip vrf exec "$4" /usr/bin/mtr "$5"</command>
- </tagNode>
- </children>
- </tagNode>
- </children>
- </node>
+ <command>${vyos_op_scripts_dir}/traceroute.py ${@:2}</command>
+ </leafNode>
</children>
- </node>
+ </tagNode>
</interfaceDefinition>