]> git.puffer.fish Git - mirror/frr.git/commitdiff
isisd: fix show database json format
authorLouis Scalbert <louis.scalbert@6wind.com>
Tue, 21 May 2024 12:48:44 +0000 (14:48 +0200)
committerLouis Scalbert <louis.scalbert@6wind.com>
Thu, 23 May 2024 12:43:21 +0000 (14:43 +0200)
"show isis database [detail] json" returns invalid or incorrect JSON
that is difficult to parse.

Fix key with '-' characters, add booleans and null data when possible.
Deprecate the old format.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
isisd/isis_lsp.c
isisd/isis_tlvs.c
tests/topotests/isis_topo1/test_isis_topo1.py

index 9d671137e945ed32d72963916013d8120257079f..1ce57747ffc91266220dc658e99e5b0321851d85 100644 (file)
@@ -746,6 +746,10 @@ void lsp_print_common(struct isis_lsp *lsp, struct vty *vty, struct json_object
        }
 }
 
+#if CONFDATE > 20240916
+CPP_NOTICE("Remove JSON in '-' format")
+#endif
+
 void lsp_print_json(struct isis_lsp *lsp, struct json_object *json,
               char dynhost, struct isis *isis)
 {
@@ -759,10 +763,20 @@ void lsp_print_json(struct isis_lsp *lsp, struct json_object *json,
        own_json = json_object_new_object();
        json_object_object_add(json, "lsp", own_json);
        json_object_string_add(own_json, "id", LSPid);
+#if CONFDATE > 20240916
+       CPP_NOTICE("remove own key")
+#endif
        json_object_string_add(own_json, "own", lsp->own_lsp ? "*" : " ");
+       if (lsp->own_lsp)
+               json_object_boolean_add(own_json, "ownLSP", true);
        json_object_int_add(json, "pdu-len", lsp->hdr.pdu_len);
+       json_object_int_add(json, "pduLen", lsp->hdr.pdu_len);
        snprintfrr(buf, sizeof(buf), "0x%08x", lsp->hdr.seqno);
+#if CONFDATE > 20240916
+       CPP_NOTICE("remove seq-number key")
+#endif
        json_object_string_add(json, "seq-number", buf);
+       json_object_string_add(json, "seqNumber", buf);
        snprintfrr(buf, sizeof(buf), "0x%04hx", lsp->hdr.checksum);
        json_object_string_add(json, "chksum", buf);
        if (lsp->hdr.rem_lifetime == 0) {
@@ -772,8 +786,13 @@ void lsp_print_json(struct isis_lsp *lsp, struct json_object *json,
        } else {
                json_object_int_add(json, "holdtime", lsp->hdr.rem_lifetime);
        }
+#if CONFDATE > 20240916
+       CPP_NOTICE("remove att-p-ol key")
+#endif
        json_object_string_add(
                json, "att-p-ol", lsp_bits2string(lsp->hdr.lsp_bits, b, sizeof(b)));
+       json_object_string_add(json, "attPOl",
+                              lsp_bits2string(lsp->hdr.lsp_bits, b, sizeof(b)));
 }
 
 void lsp_print_vty(struct isis_lsp *lsp, struct vty *vty,
index b2e19401e760ad97c3b60848be325d902a1f9d5e..c20b1d81297157c7acd4ae31e5bd58eeee11358b 100644 (file)
@@ -454,6 +454,10 @@ static void format_item_asla_subtlvs(struct isis_asla_subtlvs *asla,
                          asla->use_bw);
 }
 
+#if CONFDATE > 20240916
+CPP_NOTICE("Remove JSON in '-' format")
+#endif
+
 /* mtid parameter is used to manage multi-topology i.e. IPv4 / IPv6 */
 static void format_item_ext_subtlvs(struct isis_ext_subtlvs *exts,
                                    struct sbuf *buf, struct json_object *json,
@@ -470,7 +474,11 @@ static void format_item_ext_subtlvs(struct isis_ext_subtlvs *exts,
                if (json) {
                        snprintfrr(aux_buf, sizeof(aux_buf), "0x%x",
                                   exts->adm_group);
+#if CONFDATE > 20240916
+                       CPP_NOTICE("remove deprecated key format with -")
+#endif
                        json_object_string_add(json, "adm-group", aux_buf);
+                       json_object_string_add(json, "admGroup", aux_buf);
                } else {
                        sbuf_push(buf, indent, "Admin Group: 0x%08x\n",
                                  exts->adm_group);
@@ -505,10 +513,17 @@ static void format_item_ext_subtlvs(struct isis_ext_subtlvs *exts,
        }
        if (IS_SUBTLV(exts, EXT_LLRI)) {
                if (json) {
+#if CONFDATE > 20240916
+                       CPP_NOTICE("remove deprecated key format with -")
+#endif
                        json_object_int_add(json, "link-local-id",
                                            exts->local_llri);
                        json_object_int_add(json, "link-remote-id",
                                            exts->remote_llri);
+                       json_object_int_add(json, "linkLocalId",
+                                           exts->local_llri);
+                       json_object_int_add(json, "linkRemoteId",
+                                           exts->remote_llri);
                } else {
                        sbuf_push(buf, indent, "Link Local  ID: %u\n",
                                  exts->local_llri);
@@ -520,7 +535,11 @@ static void format_item_ext_subtlvs(struct isis_ext_subtlvs *exts,
                if (json) {
                        inet_ntop(AF_INET, &exts->local_addr, aux_buf,
                                  sizeof(aux_buf));
+#if CONFDATE > 20240916
+                       CPP_NOTICE("remove deprecated key format with -")
+#endif
                        json_object_string_add(json, "local-iface-ip", aux_buf);
+                       json_object_string_add(json, "localIfaceIp", aux_buf);
                } else
                        sbuf_push(buf, indent,
                                  "Local Interface IP Address(es): %pI4\n",
@@ -530,8 +549,12 @@ static void format_item_ext_subtlvs(struct isis_ext_subtlvs *exts,
                if (json) {
                        inet_ntop(AF_INET, &exts->neigh_addr, aux_buf,
                                  sizeof(aux_buf));
+#if CONFDATE > 20240916
+                       CPP_NOTICE("remove deprecated key format with -")
+#endif
                        json_object_string_add(json, "remote-iface-ip",
                                               aux_buf);
+                       json_object_string_add(json, "remoteIfaceIp", aux_buf);
                } else
                        sbuf_push(buf, indent,
                                  "Remote Interface IP Address(es): %pI4\n",
@@ -541,8 +564,12 @@ static void format_item_ext_subtlvs(struct isis_ext_subtlvs *exts,
                if (json) {
                        inet_ntop(AF_INET6, &exts->local_addr6, aux_buf,
                                  sizeof(aux_buf));
+#if CONFDATE > 20240916
+                       CPP_NOTICE("remove deprecated key format with -")
+#endif
                        json_object_string_add(json, "local-iface-ipv6",
                                               aux_buf);
+                       json_object_string_add(json, "localIfaceIpv6", aux_buf);
                } else
                        sbuf_push(buf, indent,
                                  "Local Interface IPv6 Address(es): %pI6\n",
@@ -552,8 +579,12 @@ static void format_item_ext_subtlvs(struct isis_ext_subtlvs *exts,
                if (json) {
                        inet_ntop(AF_INET6, &exts->neigh_addr6, aux_buf,
                                  sizeof(aux_buf));
+#if CONFDATE > 20240916
+                       CPP_NOTICE("remove deprecated key format with -")
+#endif
                        json_object_string_add(json, "remote-iface-ipv6",
                                               aux_buf);
+                       json_object_string_add(json, "remoteIfaceIpv6", aux_buf);
                } else
                        sbuf_push(buf, indent,
                                  "Remote Interface IPv6 Address(es): %pI6\n",
@@ -563,8 +594,13 @@ static void format_item_ext_subtlvs(struct isis_ext_subtlvs *exts,
                if (json) {
                        snprintfrr(aux_buf, sizeof(aux_buf), "%g",
                                   exts->max_bw);
+#if CONFDATE > 20240916
+                       CPP_NOTICE("remove deprecated key format with -")
+#endif
                        json_object_string_add(json, "max-bandwith-bytes-sec",
                                               aux_buf);
+                       json_object_string_add(json, "maxBandwithBytesSec",
+                                              aux_buf);
                } else
                        sbuf_push(buf, indent,
                                  "Maximum Bandwidth: %g (Bytes/sec)\n",
@@ -574,8 +610,13 @@ static void format_item_ext_subtlvs(struct isis_ext_subtlvs *exts,
                if (json) {
                        snprintfrr(aux_buf, sizeof(aux_buf), "%g",
                                   exts->max_rsv_bw);
+#if CONFDATE > 20240916
+                       CPP_NOTICE("remove deprecated key format with -")
+#endif
                        json_object_string_add(
                                json, "max-res-bandwith-bytes-sec", aux_buf);
+                       json_object_string_add(json, "maxResBandwithBytesSec",
+                                              aux_buf);
                } else
                        sbuf_push(
                                buf, indent,
@@ -585,6 +626,22 @@ static void format_item_ext_subtlvs(struct isis_ext_subtlvs *exts,
        if (IS_SUBTLV(exts, EXT_UNRSV_BW)) {
                if (json) {
                        struct json_object *unrsv_json;
+
+                       unrsv_json = json_object_new_object();
+                       json_object_object_add(json, "unrsvBandwithBytesSec",
+                                              unrsv_json);
+                       for (int j = 0; j < MAX_CLASS_TYPE; j += 1) {
+                               snprintfrr(cnt_buf, sizeof(cnt_buf), "%d", j);
+                               snprintfrr(aux_buf, sizeof(aux_buf), "%g",
+                                          exts->unrsv_bw[j]);
+                               json_object_string_add(unrsv_json, cnt_buf,
+                                                      aux_buf);
+                       }
+
+#if CONFDATE > 20240916
+                       CPP_NOTICE("remove deprecated key format with -")
+#endif
+                       /* old deprecated key format */
                        unrsv_json = json_object_new_object();
                        json_object_object_add(json, "unrsv-bandwith-bytes-sec",
                                               unrsv_json);
@@ -595,6 +652,7 @@ static void format_item_ext_subtlvs(struct isis_ext_subtlvs *exts,
                                json_object_string_add(unrsv_json, cnt_buf,
                                                       aux_buf);
                        }
+                       /* end old deprecated key format */
                } else {
                        sbuf_push(buf, indent, "Unreserved Bandwidth:\n");
                        for (int j = 0; j < MAX_CLASS_TYPE; j += 2) {
@@ -608,7 +666,11 @@ static void format_item_ext_subtlvs(struct isis_ext_subtlvs *exts,
        }
        if (IS_SUBTLV(exts, EXT_TE_METRIC)) {
                if (json) {
+#if CONFDATE > 20240916
+                       CPP_NOTICE("remove deprecated key format with -")
+#endif
                        json_object_int_add(json, "te-metric", exts->te_metric);
+                       json_object_int_add(json, "teMetric", exts->te_metric);
                } else
                        sbuf_push(buf, indent,
                                  "Traffic Engineering Metric: %u\n",
@@ -616,8 +678,13 @@ static void format_item_ext_subtlvs(struct isis_ext_subtlvs *exts,
        }
        if (IS_SUBTLV(exts, EXT_RMT_AS)) {
                if (json) {
+#if CONFDATE > 20240916
+                       CPP_NOTICE("remove deprecated key format with -")
+#endif
                        json_object_int_add(json, "inter-as-te-remote-as",
                                            exts->remote_as);
+                       json_object_int_add(json, "interAsTeRemoteAs",
+                                           exts->remote_as);
                } else
                        sbuf_push(buf, indent,
                                  "Inter-AS TE Remote AS number: %u\n",
@@ -627,8 +694,13 @@ static void format_item_ext_subtlvs(struct isis_ext_subtlvs *exts,
                if (json) {
                        inet_ntop(AF_INET6, &exts->remote_ip, aux_buf,
                                  sizeof(aux_buf));
+#if CONFDATE > 20240916
+                       CPP_NOTICE("remove deprecated key format with -")
+#endif
                        json_object_string_add(
                                json, "inter-as-te-remote-asbr-ip", aux_buf);
+                       json_object_string_add(json, "interAsTeRemoteAsbrIp",
+                                              aux_buf);
                } else
                        sbuf_push(buf, indent,
                                  "Inter-AS TE Remote ASBR IP address: %pI4\n",
@@ -639,12 +711,23 @@ static void format_item_ext_subtlvs(struct isis_ext_subtlvs *exts,
                if (json) {
                        struct json_object *avg_json;
                        avg_json = json_object_new_object();
+#if CONFDATE > 20240916
+                       CPP_NOTICE("remove deprecated key format with -")
+#endif
                        json_object_object_add(json, "avg-delay", avg_json);
                        json_object_string_add(avg_json, "delay",
                                               IS_ANORMAL(exts->delay)
                                                       ? "Anomalous"
                                                       : "Normal");
                        json_object_int_add(avg_json, "micro-sec", exts->delay);
+
+                       avg_json = json_object_new_object();
+                       json_object_object_add(json, "avgDelay", avg_json);
+                       json_object_string_add(avg_json, "delay",
+                                              IS_ANORMAL(exts->delay)
+                                                      ? "Anomalous"
+                                                      : "Normal");
+                       json_object_int_add(avg_json, "microSec", exts->delay);
                } else
                        sbuf_push(buf, indent,
                                  "%s Average Link Delay: %u (micro-sec)\n",
@@ -656,6 +739,9 @@ static void format_item_ext_subtlvs(struct isis_ext_subtlvs *exts,
                if (json) {
                        struct json_object *avg_json;
                        avg_json = json_object_new_object();
+#if CONFDATE > 20240916
+                       CPP_NOTICE("remove deprecated key format with -")
+#endif
                        json_object_object_add(json, "max-min-delay", avg_json);
                        json_object_string_add(avg_json, "delay",
                                               IS_ANORMAL(exts->min_delay)
@@ -666,6 +752,17 @@ static void format_item_ext_subtlvs(struct isis_ext_subtlvs *exts,
                                   exts->max_delay & TE_EXT_MASK);
                        json_object_string_add(avg_json, "micro-sec", aux_buf);
 
+                       avg_json = json_object_new_object();
+                       json_object_object_add(json, "maxMinDelay", avg_json);
+                       json_object_string_add(avg_json, "delay",
+                                              IS_ANORMAL(exts->min_delay)
+                                                      ? "Anomalous"
+                                                      : "Normal");
+                       snprintfrr(aux_buf, sizeof(aux_buf), "%u / %u",
+                                  exts->min_delay & TE_EXT_MASK,
+                                  exts->max_delay & TE_EXT_MASK);
+                       json_object_string_add(avg_json, "microSec", aux_buf);
+
                } else
                        sbuf_push(
                                buf, indent,
@@ -677,8 +774,13 @@ static void format_item_ext_subtlvs(struct isis_ext_subtlvs *exts,
        }
        if (IS_SUBTLV(exts, EXT_DELAY_VAR)) {
                if (json) {
+#if CONFDATE > 20240916
+                       CPP_NOTICE("remove deprecated key format with -")
+#endif
                        json_object_int_add(json, "delay-variation-micro-sec",
                                            exts->delay_var & TE_EXT_MASK);
+                       json_object_int_add(json, "delayVariationMicroSec",
+                                           exts->delay_var & TE_EXT_MASK);
                } else
                        sbuf_push(buf, indent,
                                  "Delay Variation: %u (micro-sec)\n",
@@ -690,6 +792,10 @@ static void format_item_ext_subtlvs(struct isis_ext_subtlvs *exts,
                                   (float)((exts->pkt_loss & TE_EXT_MASK) *
                                           LOSS_PRECISION));
                        struct json_object *link_json;
+
+#if CONFDATE > 20240916
+                       CPP_NOTICE("remove deprecated key format with -")
+#endif
                        link_json = json_object_new_object();
                        json_object_object_add(json, "link-packet-loss",
                                               link_json);
@@ -697,8 +803,18 @@ static void format_item_ext_subtlvs(struct isis_ext_subtlvs *exts,
                                               IS_ANORMAL(exts->pkt_loss)
                                                       ? "Anomalous"
                                                       : "Normal");
+                       /* typo */
                        json_object_string_add(link_json, "percentaje",
                                               aux_buf);
+
+                       link_json = json_object_new_object();
+                       json_object_object_add(json, "linkPacketLoss",
+                                              link_json);
+                       json_object_string_add(link_json, "loss",
+                                              IS_ANORMAL(exts->pkt_loss)
+                                                      ? "Anomalous"
+                                                      : "Normal");
+                       json_object_string_add(link_json, "percentage", aux_buf);
                } else
                        sbuf_push(buf, indent, "%s Link Packet Loss: %g (%%)\n",
                                  IS_ANORMAL(exts->pkt_loss) ? "Anomalous"
@@ -710,9 +826,15 @@ static void format_item_ext_subtlvs(struct isis_ext_subtlvs *exts,
                if (json) {
                        snprintfrr(aux_buf, sizeof(aux_buf), "%g",
                                   (exts->res_bw));
+#if CONFDATE > 20240916
+                       CPP_NOTICE("remove deprecated key format with -")
+#endif
                        json_object_string_add(json,
                                               "unidir-residual-band-bytes-sec",
                                               aux_buf);
+                       json_object_string_add(json,
+                                              "unidirResidualBandBytesSec",
+                                              aux_buf);
                } else
                        sbuf_push(
                                buf, indent,
@@ -723,9 +845,15 @@ static void format_item_ext_subtlvs(struct isis_ext_subtlvs *exts,
                if (json) {
                        snprintfrr(aux_buf, sizeof(aux_buf), "%g",
                                   (exts->ava_bw));
+#if CONFDATE > 20240916
+                       CPP_NOTICE("remove deprecated key format with -")
+#endif
                        json_object_string_add(
                                json, "unidir-available-band-bytes-sec",
                                aux_buf);
+                       json_object_string_add(json,
+                                              "unidirAvailableBandBytesSec",
+                                              aux_buf);
                } else
                        sbuf_push(
                                buf, indent,
@@ -739,6 +867,12 @@ static void format_item_ext_subtlvs(struct isis_ext_subtlvs *exts,
                        json_object_string_add(json,
                                               "unidir-utilized-band-bytes-sec",
                                               aux_buf);
+#if CONFDATE > 20240916
+                       CPP_NOTICE("remove deprecated key format with -")
+#endif
+                       json_object_string_add(json,
+                                              "unidirUtilizedBandBytesSec",
+                                              aux_buf);
                } else
                        sbuf_push(
                                buf, indent,
@@ -751,6 +885,11 @@ static void format_item_ext_subtlvs(struct isis_ext_subtlvs *exts,
 
                if (json) {
                        struct json_object *arr_adj_json, *flags_json;
+
+#if CONFDATE > 20240916
+                       CPP_NOTICE("remove deprecated key format with -")
+#endif
+                       /* old deprecated key format */
                        arr_adj_json = json_object_new_array();
                        json_object_object_add(json, "adj-sid", arr_adj_json);
                        for (adj = (struct isis_adj_sid *)exts->adj_sid.head;
@@ -794,6 +933,44 @@ static void format_item_ext_subtlvs(struct isis_ext_subtlvs *exts,
                                                : "0");
                                json_object_array_add(arr_adj_json, flags_json);
                        }
+                       /* end old deprecated key format */
+
+                       arr_adj_json = json_object_new_array();
+                       json_object_object_add(json, "adjSid", arr_adj_json);
+                       for (adj = (struct isis_adj_sid *)exts->adj_sid.head;
+                            adj; adj = adj->next) {
+                               snprintfrr(cnt_buf, sizeof(cnt_buf), "%d",
+                                          adj->sid);
+                               flags_json = json_object_new_object();
+                               json_object_int_add(flags_json, "sid", adj->sid);
+                               json_object_int_add(flags_json, "weight",
+                                                   adj->weight);
+                               json_object_boolean_add(flags_json, "flagF",
+                                                       adj->flags & EXT_SUBTLV_LINK_ADJ_SID_FFLG
+                                                               ? true
+                                                               : false);
+                               json_object_boolean_add(flags_json, "flagB",
+                                                       adj->flags & EXT_SUBTLV_LINK_ADJ_SID_BFLG
+                                                               ? true
+                                                               : false);
+                               json_object_boolean_add(flags_json, "flagV",
+                                                       adj->flags & EXT_SUBTLV_LINK_ADJ_SID_VFLG
+                                                               ? true
+                                                               : false);
+                               json_object_boolean_add(flags_json, "flagL",
+                                                       adj->flags & EXT_SUBTLV_LINK_ADJ_SID_LFLG
+                                                               ? true
+                                                               : false);
+                               json_object_boolean_add(flags_json, "flagS",
+                                                       adj->flags & EXT_SUBTLV_LINK_ADJ_SID_SFLG
+                                                               ? true
+                                                               : false);
+                               json_object_boolean_add(flags_json, "flagP",
+                                                       adj->flags & EXT_SUBTLV_LINK_ADJ_SID_PFLG
+                                                               ? true
+                                                               : false);
+                               json_object_array_add(arr_adj_json, flags_json);
+                       }
                } else
                        for (adj = (struct isis_adj_sid *)exts->adj_sid.head;
                             adj; adj = adj->next) {
@@ -826,6 +1003,11 @@ static void format_item_ext_subtlvs(struct isis_ext_subtlvs *exts,
                struct isis_lan_adj_sid *lan;
                if (json) {
                        struct json_object *arr_adj_json, *flags_json;
+
+#if CONFDATE > 20240916
+                       CPP_NOTICE("remove deprecated key format with -")
+#endif
+                       /* old deprecated key format */
                        arr_adj_json = json_object_new_array();
                        json_object_object_add(json, "lan-adj-sid",
                                               arr_adj_json);
@@ -876,6 +1058,49 @@ static void format_item_ext_subtlvs(struct isis_ext_subtlvs *exts,
                                                : "0");
                                json_object_array_add(arr_adj_json, flags_json);
                        }
+                       /* end old deprecated key format */
+
+                       arr_adj_json = json_object_new_array();
+                       json_object_object_add(json, "lanAdjSid", arr_adj_json);
+                       for (lan = (struct isis_lan_adj_sid *)exts->adj_sid.head;
+                            lan; lan = lan->next) {
+                               if (((mtid == ISIS_MT_IPV4_UNICAST) &&
+                                    (lan->family != AF_INET)) ||
+                                   ((mtid == ISIS_MT_IPV6_UNICAST) &&
+                                    (lan->family != AF_INET6)))
+                                       continue;
+                               snprintfrr(cnt_buf, sizeof(cnt_buf), "%d",
+                                          lan->sid);
+                               flags_json = json_object_new_object();
+                               json_object_int_add(flags_json, "sid", lan->sid);
+                               json_object_int_add(flags_json, "weight",
+                                                   lan->weight);
+                               json_object_boolean_add(flags_json, "flagF",
+                                                       lan->flags & EXT_SUBTLV_LINK_ADJ_SID_FFLG
+                                                               ? true
+                                                               : false);
+                               json_object_boolean_add(flags_json, "flagB",
+                                                       lan->flags & EXT_SUBTLV_LINK_ADJ_SID_BFLG
+                                                               ? true
+                                                               : false);
+                               json_object_boolean_add(flags_json, "flagV",
+                                                       lan->flags & EXT_SUBTLV_LINK_ADJ_SID_VFLG
+                                                               ? true
+                                                               : false);
+                               json_object_boolean_add(flags_json, "flagL",
+                                                       lan->flags & EXT_SUBTLV_LINK_ADJ_SID_LFLG
+                                                               ? true
+                                                               : false);
+                               json_object_boolean_add(flags_json, "flagS",
+                                                       lan->flags & EXT_SUBTLV_LINK_ADJ_SID_SFLG
+                                                               ? true
+                                                               : false);
+                               json_object_boolean_add(flags_json, "flagP",
+                                                       lan->flags & EXT_SUBTLV_LINK_ADJ_SID_PFLG
+                                                               ? true
+                                                               : false);
+                               json_object_array_add(arr_adj_json, flags_json);
+                       }
                } else
 
                        for (lan = (struct isis_lan_adj_sid *)
@@ -918,6 +1143,11 @@ static void format_item_ext_subtlvs(struct isis_ext_subtlvs *exts,
 
                if (json) {
                        struct json_object *arr_adj_json, *flags_json;
+
+#if CONFDATE > 20240916
+                       CPP_NOTICE("remove deprecated key format with -")
+#endif
+                       /* old deprecated key format */
                        arr_adj_json = json_object_new_array();
                        json_object_object_add(json, "srv6-endx-sid",
                                               arr_adj_json);
@@ -959,6 +1189,45 @@ static void format_item_ext_subtlvs(struct isis_ext_subtlvs *exts,
                                                               arr_adj_json,
                                                               indent + 4);
                        }
+                       /* end old deprecated key format */
+
+                       arr_adj_json = json_object_new_array();
+                       json_object_object_add(json, "srv6EndSID", arr_adj_json);
+                       for (adj = (struct isis_srv6_endx_sid_subtlv *)
+                                          exts->srv6_endx_sid.head;
+                            adj; adj = adj->next) {
+                               snprintfrr(cnt_buf, sizeof(cnt_buf), "%pI6",
+                                          &adj->sid);
+                               flags_json = json_object_new_object();
+                               json_object_string_addf(flags_json, "sid",
+                                                       "%pI6", &adj->sid);
+                               json_object_string_add(flags_json, "algorithm",
+                                                      sr_algorithm_string(
+                                                              adj->algorithm));
+                               json_object_int_add(flags_json, "weight",
+                                                   adj->weight);
+                               json_object_string_add(flags_json, "behavior",
+                                                      seg6local_action2str(
+                                                              adj->behavior));
+                               json_object_boolean_add(
+                                       flags_json, "flagB",
+                                       !!(adj->flags &
+                                          EXT_SUBTLV_LINK_SRV6_ENDX_SID_BFLG));
+                               json_object_boolean_add(
+                                       flags_json, "flagS",
+                                       !!(adj->flags &
+                                          EXT_SUBTLV_LINK_SRV6_ENDX_SID_SFLG));
+                               json_object_boolean_add(
+                                       flags_json, "flagP",
+                                       !!(adj->flags &
+                                          EXT_SUBTLV_LINK_SRV6_ENDX_SID_PFLG));
+                               json_object_array_add(arr_adj_json, flags_json);
+                               if (adj->subsubtlvs)
+                                       isis_format_subsubtlvs(adj->subsubtlvs,
+                                                              NULL,
+                                                              arr_adj_json,
+                                                              indent + 4);
+                       }
                } else
                        for (adj = (struct isis_srv6_endx_sid_subtlv *)
                                           exts->srv6_endx_sid.head;
@@ -990,6 +1259,11 @@ static void format_item_ext_subtlvs(struct isis_ext_subtlvs *exts,
                struct isis_srv6_lan_endx_sid_subtlv *lan;
                if (json) {
                        struct json_object *arr_adj_json, *flags_json;
+
+#if CONFDATE > 20240916
+                       CPP_NOTICE("remove deprecated key format with -")
+#endif
+                       /* old deprecated key format */
                        arr_adj_json = json_object_new_array();
                        json_object_object_add(json, "srv6-lan-endx-sid",
                                               arr_adj_json);
@@ -1036,6 +1310,51 @@ static void format_item_ext_subtlvs(struct isis_ext_subtlvs *exts,
                                                               arr_adj_json,
                                                               indent + 4);
                        }
+                       /* end old deprecated key format */
+
+                       arr_adj_json = json_object_new_array();
+                       json_object_object_add(json, "srv6LanEndxSID",
+                                              arr_adj_json);
+                       for (lan = (struct isis_srv6_lan_endx_sid_subtlv *)
+                                          exts->srv6_lan_endx_sid.head;
+                            lan; lan = lan->next) {
+                               snprintfrr(cnt_buf, sizeof(cnt_buf), "%pI6",
+                                          &lan->sid);
+                               flags_json = json_object_new_object();
+                               json_object_string_addf(flags_json, "sid",
+                                                       "%pI6", &lan->sid);
+                               json_object_int_add(flags_json, "weight",
+                                                   lan->weight);
+                               json_object_string_add(flags_json, "algorithm",
+                                                      sr_algorithm_string(
+                                                              lan->algorithm));
+                               json_object_int_add(flags_json, "weight",
+                                                   lan->weight);
+                               json_object_string_add(flags_json, "behavior",
+                                                      seg6local_action2str(
+                                                              lan->behavior));
+                               json_object_boolean_add(
+                                       flags_json, "flagB",
+                                       !!(lan->flags &
+                                          EXT_SUBTLV_LINK_SRV6_ENDX_SID_BFLG));
+                               json_object_boolean_add(
+                                       flags_json, "flagS",
+                                       !!(lan->flags &
+                                          EXT_SUBTLV_LINK_SRV6_ENDX_SID_SFLG));
+                               json_object_boolean_add(
+                                       flags_json, "flagP",
+                                       !!(lan->flags &
+                                          EXT_SUBTLV_LINK_SRV6_ENDX_SID_PFLG));
+                               json_object_string_addf(flags_json,
+                                                       "neighbor-id", "%pSY",
+                                                       lan->neighbor_id);
+                               json_object_array_add(arr_adj_json, flags_json);
+                               if (lan->subsubtlvs)
+                                       isis_format_subsubtlvs(lan->subsubtlvs,
+                                                              NULL,
+                                                              arr_adj_json,
+                                                              indent + 4);
+                       }
                } else
                        for (lan = (struct isis_srv6_lan_endx_sid_subtlv *)
                                           exts->srv6_lan_endx_sid.head;
@@ -2130,6 +2449,7 @@ static void format_item_prefix_sid(uint16_t mtid, struct isis_item *i,
 
        if (json) {
                struct json_object *sr_json, *array_json;
+
                sr_json = json_object_new_object();
                json_object_object_get_ex(json, "sr", &array_json);
                if (!array_json) {
@@ -2143,6 +2463,11 @@ static void format_item_prefix_sid(uint16_t mtid, struct isis_item *i,
                        json_object_int_add(sr_json, "index", sid->value);
                }
                json_object_int_add(sr_json, "alg", sid->algorithm);
+
+#if CONFDATE > 20240916
+               CPP_NOTICE("remove deprecated non boolean json")
+#endif
+               /* old deprecated keys (no booleans) */
                json_object_string_add(
                        sr_json, "readvertised",
                        ((sid->flags & ISIS_PREFIX_SID_READVERTISED) ? "yes"
@@ -2164,6 +2489,27 @@ static void format_item_prefix_sid(uint16_t mtid, struct isis_item *i,
                json_object_string_add(
                        sr_json, "local",
                        ((sid->flags & ISIS_PREFIX_SID_LOCAL) ? "yes" : ""));
+               /* end deprecated keys (no booleans) */
+
+               struct json_object *flags_json;
+
+               flags_json = json_object_new_object();
+               json_object_object_add(sr_json, "flags", flags_json);
+
+               json_object_boolean_add(flags_json, "readvertised",
+                                       !!(sid->flags &
+                                          ISIS_PREFIX_SID_READVERTISED));
+               json_object_boolean_add(flags_json, "node",
+                                       !!(sid->flags & ISIS_PREFIX_SID_NODE));
+               json_object_boolean_add(flags_json, "noPHP",
+                                       !!(sid->flags & ISIS_PREFIX_SID_NO_PHP));
+               json_object_boolean_add(flags_json, "explicitNull",
+                                       !!(sid->flags &
+                                          ISIS_PREFIX_SID_EXPLICIT_NULL));
+               json_object_boolean_add(flags_json, "value",
+                                       !!(sid->flags & ISIS_PREFIX_SID_VALUE));
+               json_object_boolean_add(flags_json, "local",
+                                       !!(sid->flags & ISIS_PREFIX_SID_LOCAL));
 
        } else {
                sbuf_push(buf, indent, "SR Prefix-SID ");
@@ -2293,7 +2639,11 @@ static void format_subtlv_ipv6_source_prefix(struct prefix_ipv6 *p,
        char prefixbuf[PREFIX2STR_BUFFER];
        if (json) {
                prefix2str(p, prefixbuf, sizeof(prefixbuf));
+#if CONFDATE > 20240916
+               CPP_NOTICE("remove deprecated key format with -")
+#endif
                json_object_string_add(json, "ipv6-src-prefix", prefixbuf);
+               json_object_string_add(json, "ipv6SrcPrefix", prefixbuf);
        } else {
                sbuf_push(buf, indent, "IPv6 Source Prefix: %s\n",
                          prefix2str(p, prefixbuf, sizeof(prefixbuf)));
@@ -2395,6 +2745,11 @@ static void format_subsubtlv_srv6_sid_structure(
 
        if (json) {
                struct json_object *sid_struct_json;
+
+#if CONFDATE > 20240916
+               CPP_NOTICE("remove deprecated key format with -")
+#endif
+               /* old deprecated key format */
                sid_struct_json = json_object_new_object();
                json_object_object_add(json, "srv6-sid-structure",
                                       sid_struct_json);
@@ -2406,6 +2761,19 @@ static void format_subsubtlv_srv6_sid_structure(
                                    sid_struct->func_len);
                json_object_int_add(sid_struct_json, "arg-len",
                                    sid_struct->arg_len);
+               /* end old deprecated key format */
+
+               sid_struct_json = json_object_new_object();
+               json_object_object_add(json, "srv6SidStructure",
+                                      sid_struct_json);
+               json_object_int_add(sid_struct_json, "locBlockLen",
+                                   sid_struct->loc_block_len);
+               json_object_int_add(sid_struct_json, "locNodeLen",
+                                   sid_struct->loc_node_len);
+               json_object_int_add(sid_struct_json, "funcLen",
+                                   sid_struct->func_len);
+               json_object_int_add(sid_struct_json, "argLen",
+                                   sid_struct->arg_len);
        } else {
                sbuf_push(buf, indent, "SRv6 SID Structure ");
                sbuf_push(buf, 0, "Locator Block length: %hhu, ",
@@ -2687,6 +3055,11 @@ static void format_item_srv6_end_sid(uint16_t mtid, struct isis_item *i,
 
        if (json) {
                struct json_object *sid_json;
+
+#if CONFDATE > 20240916
+               CPP_NOTICE("remove deprecated key format with -")
+#endif
+               /* old deprecated key format */
                sid_json = json_object_new_object();
                json_object_object_add(json, "srv6-end-sid", sid_json);
                json_object_string_add(sid_json, "endpoint-behavior",
@@ -2701,6 +3074,21 @@ static void format_item_srv6_end_sid(uint16_t mtid, struct isis_item *i,
                        isis_format_subsubtlvs(sid->subsubtlvs, NULL,
                                               subtlvs_json, 0);
                }
+               /* end old deprecated key format */
+
+               sid_json = json_object_new_object();
+               json_object_object_add(json, "srv6EndSid", sid_json);
+               json_object_string_add(sid_json, "endpointBehavior",
+                                      seg6local_action2str(sid->behavior));
+               json_object_string_addf(sid_json, "sidValue", "%pI6", &sid->sid);
+               if (sid->subsubtlvs) {
+                       struct json_object *subtlvs_json;
+                       subtlvs_json = json_object_new_object();
+                       json_object_object_add(sid_json, "subsubtlvs",
+                                              subtlvs_json);
+                       isis_format_subsubtlvs(sid->subsubtlvs, NULL,
+                                              subtlvs_json, 0);
+               }
        } else {
                sbuf_push(buf, indent, "SRv6 End SID ");
                sbuf_push(buf, 0, "Endpoint Behavior: %s, ",
@@ -2848,9 +3236,13 @@ static void format_item_area_address(uint16_t mtid, struct isis_item *i,
 
        memcpy(iso_addr.area_addr, addr->addr, ISO_ADDR_SIZE);
        iso_addr.addr_len = addr->len;
-       if (json)
+       if (json) {
+#if CONFDATE > 20240916
+               CPP_NOTICE("remove deprecated key format with -")
+#endif
                json_object_string_addf(json, "area-addr", "%pIS", &iso_addr);
-       else
+               json_object_string_addf(json, "areaAddr", "%pIS", &iso_addr);
+       } else
                sbuf_push(buf, indent, "Area Address: %pIS\n", &iso_addr);
 }
 
@@ -2937,6 +3329,11 @@ static void format_item_oldstyle_reach(uint16_t mtid, struct isis_item *i,
        snprintfrr(sys_id, ISO_SYSID_STRLEN, "%pPN", r->id);
        if (json) {
                struct json_object *old_json, *array_json;
+
+#if CONFDATE > 20240916
+               CPP_NOTICE("remove deprecated key format with -")
+#endif
+               /* old deprecated key format */
                old_json = json_object_new_object();
                json_object_object_get_ex(json, "old-reach-style", &array_json);
                if (!array_json) {
@@ -2947,6 +3344,18 @@ static void format_item_oldstyle_reach(uint16_t mtid, struct isis_item *i,
                json_object_array_add(array_json, old_json);
                json_object_string_add(old_json, "is-reach", sys_id);
                json_object_int_add(old_json, "metric", r->metric);
+               /* end old deprecated key format */
+
+               old_json = json_object_new_object();
+               json_object_object_get_ex(json, "oldReachStyle", &array_json);
+               if (!array_json) {
+                       array_json = json_object_new_array();
+                       json_object_object_add(json, "oldReachStyle",
+                                              array_json);
+               }
+               json_object_array_add(array_json, old_json);
+               json_object_string_add(old_json, "isReach", sys_id);
+               json_object_int_add(old_json, "metric", r->metric);
        } else
                sbuf_push(buf, indent, "IS Reachability: %s (Metric: %hhu)\n",
                          sys_id, r->metric);
@@ -3024,9 +3433,13 @@ static void format_item_lan_neighbor(uint16_t mtid, struct isis_item *i,
        char sys_id[ISO_SYSID_STRLEN];
 
        snprintfrr(sys_id, ISO_SYSID_STRLEN, "%pSY", n->mac);
-       if (json)
+       if (json) {
+#if CONFDATE > 20240916
+               CPP_NOTICE("remove deprecated key format with -")
+#endif
                json_object_string_add(json, "lan-neighbor", sys_id);
-       else
+               json_object_string_add(json, "lanNeighbor", sys_id);
+       } else
                sbuf_push(buf, indent, "LAN Neighbor: %s\n", sys_id);
 }
 
@@ -3099,6 +3512,9 @@ static void format_item_lsp_entry(uint16_t mtid, struct isis_item *i,
                char buf[255];
                struct json_object *lsp_json;
                lsp_json = json_object_new_object();
+#if CONFDATE > 20240916
+               CPP_NOTICE("remove deprecated key format with -")
+#endif
                json_object_object_add(json, "lsp-entry", lsp_json);
                json_object_string_add(lsp_json, "id", sys_id);
                snprintfrr(buf,sizeof(buf),"0x%08x",e->seqno);
@@ -3106,6 +3522,15 @@ static void format_item_lsp_entry(uint16_t mtid, struct isis_item *i,
                snprintfrr(buf,sizeof(buf),"0x%04hx",e->checksum);
                json_object_string_add(lsp_json, "chksum", buf);
                json_object_int_add(lsp_json, "lifetime", e->checksum);
+
+               lsp_json = json_object_new_object();
+               json_object_object_add(json, "lspEntry", lsp_json);
+               json_object_string_add(lsp_json, "id", sys_id);
+               snprintfrr(buf, sizeof(buf), "0x%08x", e->seqno);
+               json_object_string_add(lsp_json, "seq", buf);
+               snprintfrr(buf, sizeof(buf), "0x%04hx", e->checksum);
+               json_object_string_add(lsp_json, "chksum", buf);
+               json_object_int_add(lsp_json, "lifetime", e->checksum);
        } else
                sbuf_push(
                        buf, indent,
@@ -3187,6 +3612,11 @@ static void format_item_extended_reach(uint16_t mtid, struct isis_item *i,
        snprintfrr(sys_id, ISO_SYSID_STRLEN, "%pPN", r->id);
        if (json) {
                struct json_object *reach_json, *array_json;
+
+#if CONFDATE > 20240916
+               CPP_NOTICE("remove deprecated key format with -")
+#endif
+               /* old deprecated key format */
                reach_json = json_object_new_object();
                json_object_object_get_ex(json, "ext-reach", &array_json);
                if (!array_json) {
@@ -3203,6 +3633,28 @@ static void format_item_extended_reach(uint16_t mtid, struct isis_item *i,
                        json_object_string_add(reach_json, "mt-name",
                                               isis_mtid2str(mtid));
 
+               if (r->subtlvs)
+                       format_item_ext_subtlvs(r->subtlvs, NULL, reach_json,
+                                               indent + 2, mtid);
+               /* end old deprecated key format */
+
+               reach_json = json_object_new_object();
+               json_object_object_get_ex(json, "extReach", &array_json);
+               if (!array_json) {
+                       array_json = json_object_new_array();
+                       json_object_object_add(json, "extReach", array_json);
+               }
+               json_object_array_add(array_json, reach_json);
+               json_object_string_add(reach_json, "mtId",
+                                      (mtid == ISIS_MT_IPV4_UNICAST)
+                                              ? "Extended"
+                                              : "MT");
+               json_object_string_add(reach_json, "id", sys_id);
+               json_object_int_add(reach_json, "metric", r->metric);
+               if (mtid != ISIS_MT_IPV4_UNICAST)
+                       json_object_string_add(reach_json, "mtName",
+                                              isis_mtid2str(mtid));
+
                if (r->subtlvs)
                        format_item_ext_subtlvs(r->subtlvs, NULL, reach_json,
                                                indent + 2, mtid);
@@ -3333,6 +3785,11 @@ static void format_item_oldstyle_ip_reach(uint16_t mtid, struct isis_item *i,
 
        if (json) {
                struct json_object *old_json, *array_json;
+
+#if CONFDATE > 20240916
+               CPP_NOTICE("remove deprecated key format with -")
+#endif
+               /* old deprecated key format */
                old_json = json_object_new_object();
                json_object_object_get_ex(json, "old-ip-reach-style",
                                          &array_json);
@@ -3345,6 +3802,20 @@ static void format_item_oldstyle_ip_reach(uint16_t mtid, struct isis_item *i,
                json_object_string_add(old_json, "prefix",
                                       prefix2str(&r->prefix, prefixbuf, sizeof(prefixbuf)));
                json_object_int_add(old_json, "metric", r->metric);
+               /* end old deprecated key format */
+
+               old_json = json_object_new_object();
+               json_object_object_get_ex(json, "oldIpReachStyle", &array_json);
+               if (!array_json) {
+                       array_json = json_object_new_array();
+                       json_object_object_add(json, "oldIpReachStyle",
+                                              old_json);
+               }
+               json_object_array_add(array_json, old_json);
+               json_object_string_add(old_json, "prefix",
+                                      prefix2str(&r->prefix, prefixbuf,
+                                                 sizeof(prefixbuf)));
+               json_object_int_add(old_json, "metric", r->metric);
                return;
        }
        sbuf_push(buf, indent, "IP Reachability: %s (Metric: %hhu)\n",
@@ -3438,6 +3909,10 @@ static void format_tlv_protocols_supported(struct isis_protocols_supported *p,
                struct json_object *protocol_json;
                char buf[255];
 
+#if CONFDATE > 20240916
+               CPP_NOTICE("remove deprecated key format with -")
+#endif
+               /* old deprecated key format */
                protocol_json = json_object_new_object();
                json_object_object_add(json, "protocols-supported",
                                       protocol_json);
@@ -3446,6 +3921,16 @@ static void format_tlv_protocols_supported(struct isis_protocols_supported *p,
                        json_object_string_add(protocol_json, buf,
                                               nlpid2str(p->protocols[i]));
                }
+
+               protocol_json = json_object_new_object();
+               json_object_object_add(json, "supportedProtocols",
+                                      protocol_json);
+               for (uint8_t i = 0; i < p->count; i++) {
+                       snprintfrr(buf, sizeof(buf), "%d", i);
+                       json_object_string_add(protocol_json, buf,
+                                              nlpid2str(p->protocols[i]));
+               }
+               /* end old deprecated key format */
        } else {
                sbuf_push(buf, indent, "Protocols Supported: ");
                for (uint8_t i = 0; i < p->count; i++) {
@@ -3661,9 +4146,13 @@ static void format_item_global_ipv6_address(uint16_t mtid, struct isis_item *i,
        char addrbuf[INET6_ADDRSTRLEN];
 
        inet_ntop(AF_INET6, &a->addr, addrbuf, sizeof(addrbuf));
-       if (json)
+       if (json) {
+#if CONFDATE > 20240916
+               CPP_NOTICE("remove deprecated key format with -")
+#endif
                json_object_string_add(json, "global-ipv6", addrbuf);
-       else
+               json_object_string_add(json, "globalIpv6", addrbuf);
+       } else
                sbuf_push(buf, indent, "Global IPv6 Interface Address: %s\n",
                          addrbuf);
 }
@@ -3742,8 +4231,19 @@ static void format_item_mt_router_info(uint16_t mtid, struct isis_item *i,
                json_object_int_add(mt_json, "mtid", info->mtid);
                json_object_string_add(mt_json, "mt-description",
                                       isis_mtid2str_fake(info->mtid));
+               json_object_string_add(mt_json, "mtDescription",
+                                      isis_mtid2str(mtid));
+
+#if CONFDATE > 20240916
+               CPP_NOTICE("remove deprecated non boolean format")
+#endif
                json_object_string_add(mt_json, "overload", info->overload?"true":"false");
                json_object_string_add(mt_json, "attached", info->attached?"true":"false");
+
+               json_object_boolean_add(mt_json, "overloadBit",
+                                       !!info->overload);
+               json_object_boolean_add(mt_json, "attachedbit",
+                                       !!info->attached);
        } else
                sbuf_push(buf, indent, "MT Router Info: %s%s%s\n",
                          isis_mtid2str_fake(info->mtid),
@@ -3826,9 +4326,13 @@ static void format_tlv_te_router_id(const struct in_addr *id, struct sbuf *buf,
 
        char addrbuf[INET_ADDRSTRLEN];
        inet_ntop(AF_INET, id, addrbuf, sizeof(addrbuf));
-       if (json)
+       if (json) {
+#if CONFDATE > 20240916
+               CPP_NOTICE("remove deprecated key format with -")
+#endif
                json_object_string_add(json, "te-router-id", addrbuf);
-       else
+               json_object_string_add(json, "teRouterId", addrbuf);
+       } else
                sbuf_push(buf, indent, "TE Router ID: %s\n", addrbuf);
 }
 
@@ -3903,6 +4407,10 @@ static void format_item_extended_ip_reach(uint16_t mtid, struct isis_item *i,
        char prefixbuf[PREFIX2STR_BUFFER];
 
        if (json) {
+#if CONFDATE > 20240916
+               CPP_NOTICE("remove deprecated key format with -")
+#endif
+               /* old deprecated key format */
                ext_json = json_object_new_object();
                json_object_object_get_ex(json, "ext-ip-reach", &array_json);
                if (!array_json) {
@@ -3928,6 +4436,33 @@ static void format_item_extended_ip_reach(uint16_t mtid, struct isis_item *i,
                        json_object_object_add(ext_json, "subtlvs", subtlv_json);
                        format_subtlvs(r->subtlvs, NULL, subtlv_json, 0);
                }
+               /* end old deprecated key format */
+
+               ext_json = json_object_new_object();
+               json_object_object_get_ex(json, "extIpReach", &array_json);
+               if (!array_json) {
+                       array_json = json_object_new_array();
+                       json_object_object_add(json, "extIpReach", array_json);
+               }
+               json_object_array_add(array_json, ext_json);
+               json_object_string_add(ext_json, "mtId",
+                                      (mtid == ISIS_MT_IPV4_UNICAST)
+                                              ? "Extended"
+                                              : "MT");
+               json_object_string_add(ext_json, "ipReach",
+                                      prefix2str(&r->prefix, prefixbuf,
+                                                 sizeof(prefixbuf)));
+               json_object_int_add(ext_json, "ipReachMetric", r->metric);
+               json_object_boolean_add(ext_json, "down", !!r->down);
+               if (mtid != ISIS_MT_IPV4_UNICAST)
+                       json_object_string_add(ext_json, "mtName",
+                                              isis_mtid2str(mtid));
+               if (r->subtlvs) {
+                       struct json_object *subtlv_json;
+                       subtlv_json = json_object_new_object();
+                       json_object_object_add(ext_json, "subtlvs", subtlv_json);
+                       format_subtlvs(r->subtlvs, NULL, subtlv_json, 0);
+               }
        } else {
                sbuf_push(buf, indent, "%s IP Reachability: %s (Metric: %u)%s",
                          (mtid == ISIS_MT_IPV4_UNICAST) ? "Extended" : "MT",
@@ -4185,9 +4720,13 @@ static void format_tlv_te_router_id_ipv6(const struct in6_addr *id,
 
        char addrbuf[INET6_ADDRSTRLEN];
        inet_ntop(AF_INET6, id, addrbuf, sizeof(addrbuf));
-       if (json)
+       if (json) {
+#if CONFDATE > 20240916
+               CPP_NOTICE("remove deprecated key format with -")
+#endif
                json_object_string_add(json, "ipv6-te-router-id", addrbuf);
-       else
+               json_object_string_add(json, "ipv6TeRouterId", addrbuf);
+       } else
                sbuf_push(buf, indent, "IPv6 TE Router ID: %s\n", addrbuf);
 }
 
@@ -4264,6 +4803,11 @@ static void format_tlv_spine_leaf(const struct isis_spine_leaf *spine_leaf,
 
        if (json) {
                struct json_object *spine_json;
+
+#if CONFDATE > 20240916
+               CPP_NOTICE("remove deprecated key format with -")
+#endif
+               /* old deprecated format */
                spine_json = json_object_new_object();
                json_object_object_add(json, "spine-leaf-extension",
                                       spine_json);
@@ -4282,6 +4826,25 @@ static void format_tlv_spine_leaf(const struct isis_spine_leaf *spine_leaf,
                                       spine_leaf->is_spine ? "yes" : "");
                json_object_string_add(spine_json, "flag-backup",
                                       spine_leaf->is_backup ? "yes" : "");
+               /* end old deprecated format */
+
+               spine_json = json_object_new_object();
+               json_object_object_add(json, "spineLeafExtension", spine_json);
+               if (spine_leaf->has_tier) {
+                       snprintfrr(aux_buf, sizeof(aux_buf), "%hhu",
+                                  spine_leaf->tier);
+                       json_object_string_add(spine_json, "tier",
+                                              (spine_leaf->tier ==
+                                               ISIS_TIER_UNDEFINED)
+                                                      ? "undefined"
+                                                      : aux_buf);
+               }
+               json_object_boolean_add(spine_json, "flagLeaf",
+                                       spine_leaf->is_leaf ? true : false);
+               json_object_boolean_add(spine_json, "flagSpine",
+                                       spine_leaf->is_spine ? true : false);
+               json_object_boolean_add(spine_json, "flagBackup",
+                                       spine_leaf->is_backup ? true : false);
        } else {
                sbuf_push(buf, indent, "Spine-Leaf-Extension:\n");
                if (spine_leaf->has_tier) {
@@ -4423,6 +4986,11 @@ format_tlv_threeway_adj(const struct isis_threeway_adj *threeway_adj,
        snprintfrr(sys_id, ISO_SYSID_STRLEN, "%pSY", threeway_adj->neighbor_id);
        if (json) {
                struct json_object *three_json;
+
+#if CONFDATE > 20240916
+               CPP_NOTICE("remove deprecated key format with -")
+#endif
+               /* old deprecated key format */
                three_json = json_object_new_object();
                json_object_object_add(json, "p2p-three-way-adj", three_json);
                json_object_string_add(
@@ -4431,11 +4999,28 @@ format_tlv_threeway_adj(const struct isis_threeway_adj *threeway_adj,
                json_object_int_add(three_json, "state", threeway_adj->state);
                json_object_int_add(three_json, "ext-local-circuit-id",
                                    threeway_adj->local_circuit_id);
-               if (!threeway_adj->neighbor_set)
-                       return;
-               json_object_string_add(three_json, "neigh-system-id", sys_id);
-               json_object_int_add(three_json, "neigh-ext-circuit-id",
-                                   threeway_adj->neighbor_circuit_id);
+               if (threeway_adj->neighbor_set) {
+                       json_object_string_add(three_json, "neigh-system-id",
+                                              sys_id);
+                       json_object_int_add(three_json, "neigh-ext-circuit-id",
+                                           threeway_adj->neighbor_circuit_id);
+               }
+               /* end old deprecated key format */
+
+               three_json = json_object_new_object();
+               json_object_object_add(json, "p2pThreeWayAdj", three_json);
+               json_object_string_add(three_json, "stateName",
+                                      isis_threeway_state_name(
+                                              threeway_adj->state));
+               json_object_int_add(three_json, "state", threeway_adj->state);
+               json_object_int_add(three_json, "extLocalCircuitId",
+                                   threeway_adj->local_circuit_id);
+               if (threeway_adj->neighbor_set) {
+                       json_object_string_add(three_json, "neighSystemId",
+                                              sys_id);
+                       json_object_int_add(three_json, "neighExtCircuitId",
+                                           threeway_adj->neighbor_circuit_id);
+               }
        } else {
                sbuf_push(buf, indent, "P2P Three-Way Adjacency:\n");
                sbuf_push(buf, indent, "  State: %s (%d)\n",
@@ -4540,6 +5125,43 @@ static void format_item_ipv6_reach(uint16_t mtid, struct isis_item *i,
 
        if (json) {
                struct json_object *reach_json, *array_json;
+
+               reach_json = json_object_new_object();
+               json_object_object_get_ex(json, "ipv6Reach", &array_json);
+               if (!array_json) {
+                       array_json = json_object_new_array();
+                       json_object_object_add(json, "ipv6Reach", array_json);
+               }
+               json_object_array_add(array_json, reach_json);
+               json_object_string_add(reach_json, "mtId",
+                                      (mtid == ISIS_MT_IPV4_UNICAST) ? ""
+                                                                     : "mt");
+               json_object_string_add(reach_json, "prefix",
+                                      prefix2str(&r->prefix, prefixbuf,
+                                                 sizeof(prefixbuf)));
+               json_object_int_add(reach_json, "metric", r->metric);
+               json_object_boolean_add(reach_json, "down",
+                                       r->down ? true : false);
+               json_object_boolean_add(reach_json, "external",
+                                       r->external ? true : false);
+               if (mtid != ISIS_MT_IPV4_UNICAST) {
+                       json_object_string_add(reach_json, "mt-name",
+                                              isis_mtid2str(mtid));
+                       json_object_string_add(reach_json, "mtName",
+                                              isis_mtid2str(mtid));
+               }
+               if (r->subtlvs) {
+                       struct json_object *subtlvs_json;
+                       subtlvs_json = json_object_new_object();
+                       json_object_object_add(reach_json, "subtlvs",
+                                              subtlvs_json);
+                       format_subtlvs(r->subtlvs, NULL, subtlvs_json, 0);
+               }
+
+#if CONFDATE > 20240916
+               CPP_NOTICE("remove deprecated key format with -")
+#endif
+               /* old deprecated JSON key format */
                reach_json = json_object_new_object();
                json_object_object_get_ex(json, "ipv6-reach", &array_json);
                if (!array_json) {
@@ -4568,6 +5190,7 @@ static void format_item_ipv6_reach(uint16_t mtid, struct isis_item *i,
                                               subtlvs_json);
                        format_subtlvs(r->subtlvs, NULL, subtlvs_json, 0);
                }
+               /* end deprecated key format */
        } else {
                sbuf_push(buf, indent,
                          "%sIPv6 Reachability: %s (Metric: %u)%s%s",
@@ -4779,6 +5402,11 @@ static void format_tlv_router_cap_json(const struct isis_router_cap *router_cap,
 
        /* Router ID and Flags */
        struct json_object *cap_json;
+
+#if CONFDATE > 20240916
+       CPP_NOTICE("remove deprecated key format with -")
+#endif
+       /* deprecated JSON key format */
        cap_json = json_object_new_object();
        json_object_object_add(json, "router-capability", cap_json);
        inet_ntop(AF_INET, &router_cap->router_id, addrbuf, sizeof(addrbuf));
@@ -4789,10 +5417,26 @@ static void format_tlv_router_cap_json(const struct isis_router_cap *router_cap,
        json_object_string_add(
                cap_json, "flag-s",
                router_cap->flags & ISIS_ROUTER_CAP_FLAG_S ? "1" : "0");
+       /* end deprecated JSON key format */
+
+       cap_json = json_object_new_object();
+       json_object_object_add(json, "routerCapability", cap_json);
+       inet_ntop(AF_INET, &router_cap->router_id, addrbuf, sizeof(addrbuf));
+       json_object_string_add(cap_json, "id", addrbuf);
+       json_object_boolean_add(cap_json, "flagD",
+                               !!(router_cap->flags & ISIS_ROUTER_CAP_FLAG_D));
+       json_object_boolean_add(cap_json, "flagS",
+                               !!(router_cap->flags & ISIS_ROUTER_CAP_FLAG_S));
+
 
        /* Segment Routing Global Block as per RFC8667 section #3.1 */
        if (router_cap->srgb.range_size != 0) {
                struct json_object *gb_json;
+
+#if CONFDATE > 20240916
+               CPP_NOTICE("remove deprecated key format with -")
+#endif
+               /* deprecated old key format */
                gb_json = json_object_new_object();
                json_object_object_add(json, "segment-routing-gb", gb_json);
                json_object_string_add(gb_json, "ipv4",
@@ -4805,23 +5449,52 @@ static void format_tlv_router_cap_json(const struct isis_router_cap *router_cap,
                                    router_cap->srgb.lower_bound);
                json_object_int_add(gb_json, "global-block-range",
                                    router_cap->srgb.range_size);
+
+               gb_json = json_object_new_object();
+               json_object_object_add(json, "segmentRoutingGb", gb_json);
+               json_object_boolean_add(gb_json, "ipv4",
+                                       !!IS_SR_IPV4(&router_cap->srgb));
+               json_object_boolean_add(gb_json, "ipv6",
+                                       !!IS_SR_IPV6(&router_cap->srgb));
+               json_object_int_add(gb_json, "globalBlockBase",
+                                   router_cap->srgb.lower_bound);
+               json_object_int_add(gb_json, "globalBlockRange",
+                                   router_cap->srgb.range_size);
        }
 
        /* Segment Routing Local Block as per RFC8667 section #3.3 */
        if (router_cap->srlb.range_size != 0) {
                struct json_object *lb_json;
+
+#if CONFDATE > 20240916
+               CPP_NOTICE("remove deprecated key format with -")
+#endif
+               /* old deprecated key format */
                lb_json = json_object_new_object();
                json_object_object_add(json, "segment-routing-lb", lb_json);
                json_object_int_add(lb_json, "global-block-base",
                                    router_cap->srlb.lower_bound);
                json_object_int_add(lb_json, "global-block-range",
                                    router_cap->srlb.range_size);
+               /* end old deprecated key format */
+
+               lb_json = json_object_new_object();
+               json_object_object_add(json, "segmentRoutingLb", lb_json);
+               json_object_int_add(lb_json, "globalBlockBase",
+                                   router_cap->srlb.lower_bound);
+               json_object_int_add(lb_json, "globalBlockRange",
+                                   router_cap->srlb.range_size);
        }
 
        /* Segment Routing Algorithms as per RFC8667 section #3.2 */
        if (router_cap->algo[0] != SR_ALGORITHM_UNSET) {
                char buf[255];
                struct json_object *alg_json;
+
+#if CONFDATE > 20240916
+               CPP_NOTICE("remove deprecated key format with -")
+#endif
+               /* old deprecated key format */
                alg_json = json_object_new_object();
                json_object_object_add(json, "segment-routing-algorithm",
                                       alg_json);
@@ -4833,6 +5506,20 @@ static void format_tlv_router_cap_json(const struct isis_router_cap *router_cap,
                                                               ? "SPF"
                                                               : "Strict SPF");
                        }
+               /* end old deprecated key format */
+
+               alg_json = json_object_new_object();
+               json_object_object_add(json, "segmentRoutingAlgorithm",
+                                      alg_json);
+               for (int i = 0; i < SR_ALGORITHM_COUNT; i++) {
+                       if (router_cap->algo[i] != SR_ALGORITHM_UNSET) {
+                               snprintfrr(buf, sizeof(buf), "%d", i);
+                               json_object_string_add(alg_json, buf,
+                                                      router_cap->algo[i] == 0
+                                                              ? "SPF"
+                                                              : "Strict SPF");
+                       }
+               }
        }
 
        /* Segment Routing Node MSD as per RFC8491 section #2 */
@@ -5676,16 +6363,24 @@ static void format_item_auth(uint16_t mtid, struct isis_item *i,
        struct isis_auth *auth = (struct isis_auth *)i;
        char obuf[768];
 
-       if (json)
+       if (json) {
+#if CONFDATE > 20240916
+               CPP_NOTICE("remove deprecated key format with -")
+#endif
                json_object_string_add(json, "test-auth", "ok");
-       else
+               json_object_string_add(json, "testAuth", "ok");
+       } else
                sbuf_push(buf, indent, "Authentication:\n");
        switch (auth->type) {
        case ISIS_PASSWD_TYPE_CLEARTXT:
                zlog_sanitize(obuf, sizeof(obuf), auth->value, auth->length);
-               if (json)
+               if (json) {
+#if CONFDATE > 20240916
+                       CPP_NOTICE("remove deprecated key format with -")
+#endif
                        json_object_string_add(json, "auth-pass", obuf);
-               else
+                       json_object_string_add(json, "authPass", obuf);
+               } else
                        sbuf_push(buf, indent, "  Password: %s\n", obuf);
                break;
        case ISIS_PASSWD_TYPE_HMAC_MD5:
@@ -5693,15 +6388,23 @@ static void format_item_auth(uint16_t mtid, struct isis_item *i,
                        snprintf(obuf + 2 * j, sizeof(obuf) - 2 * j, "%02hhx",
                                 auth->value[j]);
                }
-               if (json)
+               if (json) {
+#if CONFDATE > 20240916
+                       CPP_NOTICE("remove deprecated key format with -")
+#endif
                        json_object_string_add(json, "auth-hmac-md5", obuf);
-               else
+                       json_object_string_add(json, "authHmacMd5", obuf);
+               } else
                        sbuf_push(buf, indent, "  HMAC-MD5: %s\n", obuf);
                break;
        default:
-               if (json)
+               if (json) {
+#if CONFDATE > 20240916
+                       CPP_NOTICE("remove deprecated key format with -")
+#endif
                        json_object_int_add(json, "auth-unknown", auth->type);
-               else
+                       json_object_int_add(json, "authUnknown", auth->type);
+               } else
                        sbuf_push(buf, indent, "  Unknown (%hhu)\n",
                                  auth->type);
                break;
@@ -5816,12 +6519,25 @@ static void format_tlv_purge_originator(struct isis_purge_originator *poi,
 
        if (json) {
                struct json_object *purge_json;
+
+#if CONFDATE > 20240916
+               CPP_NOTICE("remove deprecated key format with -")
+#endif
+               /* old deprecated key format */
                purge_json = json_object_new_object();
                json_object_object_add(json, "purge_originator", purge_json);
 
                json_object_string_add(purge_json, "id", gen_id);
                if (poi->sender_set)
                        json_object_string_add(purge_json, "rec-from", sen_id);
+               /* end old deprecated key format */
+
+               purge_json = json_object_new_object();
+               json_object_object_add(json, "purgeOriginator", purge_json);
+
+               json_object_string_add(purge_json, "id", gen_id);
+               if (poi->sender_set)
+                       json_object_string_add(purge_json, "recFrom", sen_id);
        } else {
                sbuf_push(buf, indent, "Purge Originator Identification:\n");
                sbuf_push(buf, indent, "  Generator: %s\n", gen_id);
@@ -6364,6 +7080,11 @@ static void format_item_srv6_locator(uint16_t mtid, struct isis_item *i,
 
        if (json) {
                struct json_object *loc_json;
+
+#if CONFDATE > 20240916
+               CPP_NOTICE("remove deprecated key format with -")
+#endif
+               /* old json key format */
                loc_json = json_object_new_object();
                json_object_object_add(json, "srv6-locator", loc_json);
                json_object_int_add(loc_json, "mt-id", mtid);
@@ -6385,6 +7106,26 @@ static void format_item_srv6_locator(uint16_t mtid, struct isis_item *i,
                                               subtlvs_json);
                        format_subtlvs(loc->subtlvs, NULL, subtlvs_json, 0);
                }
+               /* old deprecated key format */
+
+               loc_json = json_object_new_object();
+               json_object_object_add(json, "srv6Locator", loc_json);
+               json_object_int_add(loc_json, "mtId", mtid);
+               json_object_string_addf(loc_json, "prefix", "%pFX",
+                                       &loc->prefix);
+               json_object_int_add(loc_json, "metric", loc->metric);
+               json_object_boolean_add(loc_json, "flagD",
+                                       !!CHECK_FLAG(loc->flags,
+                                                    ISIS_TLV_SRV6_LOCATOR_FLAG_D));
+               json_object_int_add(loc_json, "algorithm", loc->algorithm);
+               json_object_string_add(loc_json, "MTName", isis_mtid2str(mtid));
+               if (loc->subtlvs) {
+                       struct json_object *subtlvs_json;
+                       subtlvs_json = json_object_new_object();
+                       json_object_object_add(loc_json, "subtlvs",
+                                              subtlvs_json);
+                       format_subtlvs(loc->subtlvs, NULL, subtlvs_json, 0);
+               }
        } else {
                sbuf_push(buf, indent, "SRv6 Locator: %pFX (Metric: %u)%s",
                          &loc->prefix, loc->metric,
@@ -6668,9 +7409,13 @@ static void format_tlvs(struct isis_tlvs *tlvs, struct sbuf *buf, struct json_ob
                     &tlvs->area_addresses, buf, json, indent);
 
        if (tlvs->mt_router_info_empty) {
-               if (json)
+               if (json) {
+#if CONFDATE > 20240916
+                       CPP_NOTICE("remove deprecated key format with -")
+#endif
                        json_object_string_add(json, "mt-router-info", "none");
-               else
+                       json_object_object_add(json, "mtRouterInfo", NULL);
+               } else
                        sbuf_push(buf, indent, "MT Router Info: None\n");
        } else {
                format_items(ISIS_CONTEXT_LSP, ISIS_TLV_MT_ROUTER_INFO,
index 532e70859c34cfec2abe7ccb77feee94d5676c2a..b388f52bd9bd283015786ea43cf4674666081a9f 100644 (file)
@@ -685,7 +685,7 @@ def _check_lsp_overload_bit(router, overloaded_router_lsp, att_p_ol_expected):
     )
 
     database_json = json.loads(isis_database_output)
-    att_p_ol = database_json["areas"][0]["levels"][1]["att-p-ol"]
+    att_p_ol = database_json["areas"][0]["levels"][1]["lsps"][0]["attPOl"]
     if att_p_ol == att_p_ol_expected:
         return True
     return "{} peer with expected att_p_ol {} got {} ".format(