summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsever-sever <v.gletenko@vyos.io>2021-03-26 09:14:02 +0000
committersever-sever <v.gletenko@vyos.io>2021-03-26 09:14:02 +0000
commit3d8a84781500ee193564fc7ef1e173d0270ad5c9 (patch)
treea368939c4149edcd5af1ee59297a6d5732dfe8e2
parent46a3920aba397924b404ecd2c1284af0b9f8379b (diff)
downloadvyos-1x-3d8a84781500ee193564fc7ef1e173d0270ad5c9.tar.gz
vyos-1x-3d8a84781500ee193564fc7ef1e173d0270ad5c9.zip
bgp: T3434: op-mode CLI refactoring for support vrf
-rw-r--r--op-mode-definitions/include/bgp-common.xml.i170
-rw-r--r--op-mode-definitions/show-ip-bgp.xml.in169
2 files changed, 177 insertions, 162 deletions
diff --git a/op-mode-definitions/include/bgp-common.xml.i b/op-mode-definitions/include/bgp-common.xml.i
new file mode 100644
index 000000000..a1154d965
--- /dev/null
+++ b/op-mode-definitions/include/bgp-common.xml.i
@@ -0,0 +1,170 @@
+<!-- included start from bgp-common.xml.i -->
+<leafNode name="attribute-info">
+ <properties>
+ <help>Show BGP attribute information</help>
+ </properties>
+ <command>${vyos_op_scripts_dir}/vtysh_wrapper.sh $@</command>
+</leafNode>
+<leafNode name="cidr-only">
+ <properties>
+ <help>Display only routes with non-natural netmasks</help>
+ </properties>
+ <command>${vyos_op_scripts_dir}/vtysh_wrapper.sh $@</command>
+</leafNode>
+<leafNode name="community-info">
+ <properties>
+ <help>List all bgp community information</help>
+ </properties>
+ <command>${vyos_op_scripts_dir}/vtysh_wrapper.sh $@</command>
+</leafNode>
+#include <include/bgp-afi-common.xml.i>
+#include <include/bgp-afi-ipv4-ipv6-common.xml.i>
+<tagNode name="prefix-list">
+ <properties>
+ <completionHelp>
+ <path>policy prefix-list</path>
+ </completionHelp>
+ </properties>
+</tagNode>
+<node name="ipv4">
+ <properties>
+ <help>Show BGP IPv4 information</help>
+ </properties>
+ <children>
+ <node name="unicast">
+ <properties>
+ <help>Show BGP IPv4 unicast information</help>
+ </properties>
+ <children>
+ <leafNode name="cidr-only">
+ <properties>
+ <help>Display only routes with non-natural netmasks</help>
+ </properties>
+ <command>${vyos_op_scripts_dir}/vtysh_wrapper.sh $@</command>
+ </leafNode>
+ <node name="community">
+ <properties>
+ <help>Show BGP routes matching the communities</help>
+ </properties>
+ <command>${vyos_op_scripts_dir}/vtysh_wrapper.sh $@</command>
+ </node>
+ <tagNode name="community">
+ <properties>
+ <help>Display routes matching the specified communities</help>
+ <completionHelp>
+<list>&lt;AA:NN&gt; local-AS no-advertise no-export</list>
+ </completionHelp>
+ </properties>
+ <command>${vyos_op_scripts_dir}/vtysh_wrapper.sh $@</command>
+ </tagNode>
+ <tagNode name="community-list">
+ <properties>
+ <help>Show BGP routes matching specified community list</help>
+ </properties>
+ <command>${vyos_op_scripts_dir}/vtysh_wrapper.sh $@</command>
+ <children>
+ <leafNode name="exact-match">
+<properties>
+ <help>Show BGP routes exactly matching specified community list</help>
+</properties>
+<command>${vyos_op_scripts_dir}/vtysh_wrapper.sh $@</command>
+ </leafNode>
+ </children>
+ </tagNode>
+ <tagNode name="neighbors">
+ <properties>
+ <help>Show detailed BGP IPv4 unicast neighbor information</help>
+ <completionHelp>
+<script>vtysh -c "show ip bgp ipv4 unicast summary" | awk '{print $1}' | grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b"</script>
+ </completionHelp>
+ </properties>
+ <command>${vyos_op_scripts_dir}/vtysh_wrapper.sh $@</command>
+ <children>
+ <leafNode name="advertised-routes">
+<properties>
+ <help>Show routes advertised to a BGP neighbor</help>
+</properties>
+<command>${vyos_op_scripts_dir}/vtysh_wrapper.sh $@</command>
+ </leafNode>
+ <leafNode name="prefix-counts">
+<properties>
+ <help>Show detailed prefix count information</help>
+</properties>
+<command>${vyos_op_scripts_dir}/vtysh_wrapper.sh $@</command>
+ </leafNode>
+ <leafNode name="received-routes">
+<properties>
+ <help>Show the received routes from neighbor</help>
+</properties>
+<command>${vyos_op_scripts_dir}/vtysh_wrapper.sh $@</command>
+ </leafNode>
+ <leafNode name="routes">
+<properties>
+ <help>Show routes learned from neighbor</help>
+</properties>
+<command>${vyos_op_scripts_dir}/vtysh_wrapper.sh $@</command>
+ </leafNode>
+ </children>
+ </tagNode>
+ <leafNode name="paths">
+ <properties>
+ <help>Show BGP path information</help>
+ </properties>
+ <command>${vyos_op_scripts_dir}/vtysh_wrapper.sh $@</command>
+ </leafNode>
+ <tagNode name="prefix-list">
+ <properties>
+ <help>Show BGP routes matching the specified prefix list</help>
+ </properties>
+ <command>${vyos_op_scripts_dir}/vtysh_wrapper.sh $@</command>
+ </tagNode>
+ <tagNode name="regexp">
+ <properties>
+ <help>Show BGP routes matching the specified AS path regular expression</help>
+ </properties>
+ <command>${vyos_op_scripts_dir}/vtysh_wrapper.sh $@</command>
+ </tagNode>
+ <tagNode name="route-map">
+ <properties>
+ <help>Show BGP routes matching the specified route map</help>
+ </properties>
+ <command>${vyos_op_scripts_dir}/vtysh_wrapper.sh $@</command>
+ </tagNode>
+ <leafNode name="summary">
+ <properties>
+ <help>Show summary of BGP information</help>
+ </properties>
+ <command>${vyos_op_scripts_dir}/vtysh_wrapper.sh $@</command>
+ </leafNode>
+ </children>
+ </node>
+ <tagNode name="unicast">
+ <properties>
+ <help>Show BGP information for specified IP address or prefix</help>
+ <completionHelp>
+ <list>&lt;x.x.x.x&gt; &lt;x.x.x.x/x&gt;</list>
+ </completionHelp>
+ </properties>
+ <command>${vyos_op_scripts_dir}/vtysh_wrapper.sh $@</command>
+ </tagNode>
+ </children>
+</node>
+<leafNode name="large-community-info">
+ <properties>
+ <help>Show BGP large-community information</help>
+ </properties>
+ <command>${vyos_op_scripts_dir}/vtysh_wrapper.sh $@</command>
+</leafNode>
+<leafNode name="memory">
+ <properties>
+ <help>Show BGP memory usage</help>
+ </properties>
+ <command>${vyos_op_scripts_dir}/vtysh_wrapper.sh $@</command>
+</leafNode>
+<leafNode name="paths">
+ <properties>
+ <help>Show BGP path information</help>
+ </properties>
+ <command>${vyos_op_scripts_dir}/vtysh_wrapper.sh $@</command>
+</leafNode>
+<!-- included end -->
diff --git a/op-mode-definitions/show-ip-bgp.xml.in b/op-mode-definitions/show-ip-bgp.xml.in
index 690de0a1d..9a271b4a5 100644
--- a/op-mode-definitions/show-ip-bgp.xml.in
+++ b/op-mode-definitions/show-ip-bgp.xml.in
@@ -10,174 +10,19 @@
</properties>
<command>vtysh -c "show ip bgp"</command>
<children>
- <leafNode name="attribute-info">
- <properties>
- <help>Show BGP attribute information</help>
- </properties>
- <command>vtysh -c "show ip bgp attribute-info"</command>
- </leafNode>
- <leafNode name="cidr-only">
- <properties>
- <help>Display only routes with non-natural netmasks</help>
- </properties>
- <command>vtysh -c "show ip bgp cidr-only"</command>
- </leafNode>
- <leafNode name="community-info">
- <properties>
- <help>List all bgp community information</help>
- </properties>
- <command>vtysh -c "show ip bgp community-info"</command>
- </leafNode>
- #include <include/bgp-afi-common.xml.i>
- #include <include/bgp-afi-ipv4-ipv6-common.xml.i>
- <tagNode name="prefix-list">
+ #include <include/bgp-common.xml.i>
+ <tagNode name="vrf">
<properties>
+ <help>Show bgp routing protocol for given VRF</help>
<completionHelp>
- <path>policy prefix-list</path>
+ <path>vrf name</path>
+ <list>all</list>
</completionHelp>
</properties>
- </tagNode>
- <node name="ipv4">
- <properties>
- <help>Show BGP IPv4 information</help>
- </properties>
<children>
- <node name="unicast">
- <properties>
- <help>Show BGP IPv4 unicast information</help>
- </properties>
- <children>
- <leafNode name="cidr-only">
- <properties>
- <help>Display only routes with non-natural netmasks</help>
- </properties>
- <command>vtysh -c "show ip bgp ipv4 unicast cidr-only"</command>
- </leafNode>
- <node name="community"> <!-- START new code -->
- <properties>
- <help>Show BGP routes matching the communities</help>
- </properties>
- <command>vtysh -c "show ip bgp ipv4 unicast community"</command>
- </node>
- <tagNode name="community">
- <properties>
- <help>Display routes matching the specified communities</help>
- <completionHelp>
- <list>&lt;AA:NN&gt; local-AS no-advertise no-export</list>
- </completionHelp>
- </properties>
- <command>vtysh -c "show ip bgp ipv4 unicast community $7"</command>
- </tagNode>
- <tagNode name="community-list">
- <properties>
- <help>Show BGP routes matching specified community list</help>
- </properties>
- <command>vtysh -c "show ip bgp ipv4 unicast community-list $7"</command>
- <children>
- <leafNode name="exact-match">
- <properties>
- <help>Show BGP routes exactly matching specified community list</help>
- </properties>
- <command>vtysh -c "show ip bgp ipv4 unicast community-list $7 exact-match"</command>
- </leafNode>
- </children>
- </tagNode>
- <tagNode name="neighbors">
- <properties>
- <help>Show detailed BGP IPv4 unicast neighbor information</help>
- <completionHelp>
- <script>vtysh -c "show ip bgp ipv4 unicast summary" | awk '{print $1}' | grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b"</script>
- </completionHelp>
- </properties>
- <command>vtysh -c "show ip bgp ipv4 unicast neighbors $7"</command>
- <children>
- <leafNode name="advertised-routes">
- <properties>
- <help>Show routes advertised to a BGP neighbor</help>
- </properties>
- <command>vtysh -c "show ip bgp ipv4 unicast neighbor $7 advertised-routes"</command>
- </leafNode>
- <leafNode name="prefix-counts">
- <properties>
- <help>Show detailed prefix count information</help>
- </properties>
- <command>vtysh -c "show ip bgp ipv4 unicast neighbor $7 prefix-counts"</command>
- </leafNode>
- <leafNode name="received-routes">
- <properties>
- <help>Show the received routes from neighbor</help>
- </properties>
- <command>vtysh -c "show ip bgp ipv4 unicast neighbor $7 received-routes"</command>
- </leafNode>
- <leafNode name="routes">
- <properties>
- <help>Show routes learned from neighbor</help>
- </properties>
- <command>vtysh -c "show ip bgp ipv4 unicast neighbor $7 routes"</command>
- </leafNode>
- </children>
- </tagNode>
- <leafNode name="paths">
- <properties>
- <help>Show BGP path information</help>
- </properties>
- <command>vtysh -c "show ip bgp ipv4 unicast paths"</command>
- </leafNode>
- <tagNode name="prefix-list">
- <properties>
- <help>Show BGP routes matching the specified prefix list</help>
- </properties>
- <command>vtysh -c "show ip bgp ipv4 unicast prefix-list $7"</command>
- </tagNode>
- <tagNode name="regexp">
- <properties>
- <help>Show BGP routes matching the specified AS path regular expression</help>
- </properties>
- <command>vtysh -c "show ip bgp ipv4 unicast regexp $5"</command>
- </tagNode>
- <tagNode name="route-map">
- <properties>
- <help>Show BGP routes matching the specified route map</help>
- </properties>
- <command>vtysh -c "show ip bgp route-map $5"</command>
- </tagNode>
- <leafNode name="summary">
- <properties>
- <help>Show summary of BGP information</help>
- </properties>
- <command>vtysh -c "show ip bgp summary"</command>
- </leafNode>
- </children>
- </node>
- <tagNode name="unicast">
- <properties>
- <help>Show BGP information for specified IP address or prefix</help>
- <completionHelp>
- <list>&lt;x.x.x.x&gt; &lt;x.x.x.x/x&gt;</list>
- </completionHelp>
- </properties>
- <command>vtysh -c "show ip bgp $6"</command>
- </tagNode>
+ #include <include/bgp-common.xml.i>
</children>
- </node>
- <leafNode name="large-community-info">
- <properties>
- <help>Show BGP large-community information</help>
- </properties>
- <command>vtysh -c "show ip bgp large-community-info"</command>
- </leafNode>
- <leafNode name="memory">
- <properties>
- <help>Show BGP memory usage</help>
- </properties>
- <command>vtysh -c "show ip bgp memory"</command>
- </leafNode>
- <leafNode name="paths">
- <properties>
- <help>Show BGP path information</help>
- </properties>
- <command>vtysh -c "show ip bgp paths"</command>
- </leafNode>
+ </tagNode>
</children>
</node>
</children>