diff options
author | Lou Berger <lberger@labn.net> | 2018-06-05 18:09:41 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-06-05 18:09:41 +0200 |
commit | ba89f1597a27c68aa246cb460c1f84488ae0f2e9 (patch) | |
tree | 62f7f8bcbd25744dbf5e34e129558c0545f55e12 | |
parent | Merge pull request #2351 from donaldsharp/bgp_deprecation (diff) | |
parent | doc: document 'show cli graph' (diff) | |
download | frr-ba89f1597a27c68aa246cb460c1f84488ae0f2e9.tar.xz frr-ba89f1597a27c68aa246cb460c1f84488ae0f2e9.zip |
Merge pull request #2367 from qlyoung/docuser
doc: document 'show cli graph'
-rw-r--r-- | doc/developer/cli.rst | 44 |
1 files changed, 35 insertions, 9 deletions
diff --git a/doc/developer/cli.rst b/doc/developer/cli.rst index 291860d96..20391c47b 100644 --- a/doc/developer/cli.rst +++ b/doc/developer/cli.rst @@ -756,27 +756,30 @@ Consider also: :: - show <ip|ipv6> foo + show <ip|ipv6> foo User input: :: - show ip foo + show ip foo ``ip`` partially matches ``ipv6`` but exactly matches ``ip``, so ``ip`` will win. +Inspection & Debugging +---------------------- + Permutations ------------- -Finally, it is sometimes useful to check all the possible combinations of input -that would match an arbitrary definition string. There is a tool in +^^^^^^^^^^^^ +It is sometimes useful to check all the possible combinations of input that +would match an arbitrary definition string. There is a tool in :file:`tools/permutations` that reads CLI definition strings on ``stdin`` and prints out all matching input permutations. It also dumps a text representation of the graph, which is more useful for debugging than anything else. It looks like this: -:: +.. code-block:: shell $ ./permutations "show [ip] bgp [<view|vrf> WORD]" @@ -787,6 +790,29 @@ like this: show bgp vrf WORD show bgp -This functionality is also built into VTY/VTYSH; the ``list permutations`` -command will list all possible matching input permutations in the current CLI -node. +This functionality is also built into VTY/VTYSH; :clicmd:`list permutations` +will list all possible matching input permutations in the current CLI node. + +Graph Inspection +^^^^^^^^^^^^^^^^ +When in the Telnet or VTYSH console, :clicmd:`show cli graph` will dump the +entire command space of the current mode in the DOT graph language. This can be +fed into one of the various GraphViz layout engines, such as ``dot``, +``neato``, etc. + +For example, to generate an image of the entire command space for the top-level +mode (``ENABLE_NODE``): + +.. code-block:: shell + + sudo vtysh -c 'show cli graph' | dot -Tjpg -Grankdir=LR > graph.jpg + +To do the same for the BGP mode: + +.. code-block:: shell + + sudo vtysh -c 'conf t' -c 'router bgp' -c 'show cli graph' | dot -Tjpg -Grankdir=LR > bgpgraph.jpg + +This information is very helpful when debugging command resolution, tracking +down duplicate / ambiguous commands, and debugging patches to the CLI graph +builder. |