diff options
author | fmihoub6WIND <farid.mihoub@yandex.com> | 2022-12-02 11:10:19 +0100 |
---|---|---|
committer | Farid Mihoub <farid.mihoub@6wind.com> | 2023-09-29 08:24:18 +0200 |
commit | 2b8e22f264cc0529847ad640e8df90d62e751ee4 (patch) | |
tree | 87fb4147451963b3b4381e35c911a30993f68c78 | |
parent | Merge pull request #14507 from qlyoung/fix-doc-more-doc-more (diff) | |
download | frr-2b8e22f264cc0529847ad640e8df90d62e751ee4.tar.xz frr-2b8e22f264cc0529847ad640e8df90d62e751ee4.zip |
zebra: dump label table information
Add the new command "show debugging labeltable" to show allocated label
chunks in the label table managed with label_manager.c
Signed-off-by: Farid Mihoub <farid.mihoub@6wind.com>
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
-rw-r--r-- | doc/user/zebra.rst | 13 | ||||
-rw-r--r-- | zebra/label_manager.c | 20 | ||||
-rw-r--r-- | zebra/subdir.am | 1 |
3 files changed, 34 insertions, 0 deletions
diff --git a/doc/user/zebra.rst b/doc/user/zebra.rst index 7918fbd9d..ba6e3bf37 100644 --- a/doc/user/zebra.rst +++ b/doc/user/zebra.rst @@ -783,6 +783,19 @@ presence of the entry. 21 Static 10.125.0.2 IPv4 Explicit Null +Allocated label chunks table can be dumped using the command + +.. clicmd:: show debugging label-table + +:: + + zebra# show debugging label-table + Proto ospf: [300/350] + Proto srte: [500/500] + Proto isis: [1200/1300] + Proto ospf: [20000/21000] + Proto isis: [22000/23000] + .. _zebra-srv6: Segment-Routing IPv6 diff --git a/zebra/label_manager.c b/zebra/label_manager.c index c77470a70..bd0b53738 100644 --- a/zebra/label_manager.c +++ b/zebra/label_manager.c @@ -28,6 +28,8 @@ #include "zebra/zapi_msg.h" #include "zebra/debug.h" +#include "zebra/label_manager_clippy.c" + #define CONNECTION_DELAY 5 struct label_manager lbl_mgr; @@ -145,6 +147,22 @@ void lm_hooks_unregister(void) hook_unregister(lm_release_chunk, label_manager_release_label_chunk); } +DEFPY(show_label_table, show_label_table_cmd, "show debugging label-table", + SHOW_STR + DEBUG_STR + "Display allocated label chunks\n") +{ + struct label_manager_chunk *lmc; + struct listnode *node; + + for (ALL_LIST_ELEMENTS_RO(lbl_mgr.lc_list, node, lmc)) { + vty_out(vty, "Proto %s: [%u/%u]\n", + zebra_route_string(lmc->proto), lmc->start, lmc->end); + } + + return CMD_SUCCESS; +} + /** * Init label manager (or proxy to an external one) */ @@ -159,6 +177,8 @@ void label_manager_init(void) /* notify any external module that we are done */ hook_call(lm_cbs_inited); + + install_element(VIEW_NODE, &show_label_table_cmd); } /* alloc and fill a label chunk */ diff --git a/zebra/subdir.am b/zebra/subdir.am index 1060e3878..b3bd9be9c 100644 --- a/zebra/subdir.am +++ b/zebra/subdir.am @@ -124,6 +124,7 @@ clippy_scan += \ zebra/zebra_srv6_vty.c \ zebra/zebra_vrf.c \ zebra/dpdk/zebra_dplane_dpdk_vty.c \ + zebra/label_manager.c \ # end noinst_HEADERS += \ |