]> git.puffer.fish Git - matthieu/frr.git/commitdiff
zebra: dump label table information
authorfmihoub6WIND <farid.mihoub@yandex.com>
Fri, 2 Dec 2022 10:10:19 +0000 (11:10 +0100)
committerFarid Mihoub <farid.mihoub@6wind.com>
Fri, 29 Sep 2023 06:24:18 +0000 (08:24 +0200)
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>
doc/user/zebra.rst
zebra/label_manager.c
zebra/subdir.am

index 7918fbd9d978d584a0bd181ec52795d4b2cb3c0b..ba6e3bf37fa9fb3a9c0d9cedb1d4007fea8c1bef 100644 (file)
@@ -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
index c77470a70109271812e9b9ea131f1ead7a37e842..bd0b53738c381b8bd84f7529a77dbe99e3799855 100644 (file)
@@ -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 */
index 1060e38785326aa911a1815fcfa4d5a6917f5134..b3bd9be9c274ef1abbde4fba69a988e2c2c8e0fe 100644 (file)
@@ -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 += \