]> git.puffer.fish Git - matthieu/frr.git/commitdiff
zebra: dump the dynamic-block bounds on vty command
authorPhilippe Guibert <philippe.guibert@6wind.com>
Thu, 5 Oct 2023 14:08:32 +0000 (16:08 +0200)
committerPhilippe Guibert <philippe.guibert@6wind.com>
Wed, 18 Oct 2023 15:46:25 +0000 (17:46 +0200)
The 'show debugging label-table' needs to dump
dynamic block information.
Display the lower and upper values for the dynamic
block.

> # show debugging label-table json
> {
>     "dynamicBlock":{
>     "lowerBound":16,
>     "upperBound":1048575
>   },
> [..]
> # show debugging label-table
> Dynamic block: lower-bound 16, upper-bound 1048575
> [..]

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
zebra/label_manager.c

index c0564d65402775a941411d5af835949d409a3c10..57a58af6bc9eaec4981c34d193fb43c3d7994feb 100644 (file)
@@ -183,10 +183,21 @@ DEFPY(show_label_table, show_label_table_cmd, "show debugging label-table [json$
 {
        struct label_manager_chunk *lmc;
        struct listnode *node;
-       json_object *json_array = NULL;
+       json_object *json_array = NULL, *json_global = NULL, *json_dyn_block;
 
-       if (uj)
+       if (uj) {
                json_array = json_object_new_array();
+               json_global = json_object_new_object();
+               json_dyn_block = json_object_new_object();
+               json_object_int_add(json_dyn_block, "lowerBound",
+                                   lbl_mgr.dynamic_block_start);
+               json_object_int_add(json_dyn_block, "upperBound",
+                                   lbl_mgr.dynamic_block_end);
+               json_object_object_add(json_global, "dynamicBlock",
+                                      json_dyn_block);
+       } else
+               vty_out(vty, "Dynamic block: lower-bound %u, upper-bound %u\n",
+                       lbl_mgr.dynamic_block_start, lbl_mgr.dynamic_block_end);
 
        for (ALL_LIST_ELEMENTS_RO(lbl_mgr.lc_list, node, lmc)) {
                if (uj) {
@@ -196,8 +207,10 @@ DEFPY(show_label_table, show_label_table_cmd, "show debugging label-table [json$
                vty_out(vty, "Proto %s: [%u/%u]\n",
                        zebra_route_string(lmc->proto), lmc->start, lmc->end);
        }
-       if (uj)
-               vty_json(vty, json_array);
+       if (uj) {
+               json_object_object_add(json_global, "chunks", json_array);
+               vty_json(vty, json_global);
+       }
        return CMD_SUCCESS;
 }