]> git.puffer.fish Git - mirror/frr.git/commitdiff
isisd: Add format func for SRv6 End SID Sub-TLV
authorCarmine Scarpitta <carmine.scarpitta@uniroma2.it>
Tue, 14 Feb 2023 12:51:28 +0000 (13:51 +0100)
committerCarmine Scarpitta <carmine.scarpitta@uniroma2.it>
Mon, 11 Sep 2023 15:35:18 +0000 (17:35 +0200)
Add a function to return information about an SRv6 End SID Sub-TLV
(RFC 9352 section #7.2).

Signed-off-by: Carmine Scarpitta <carmine.scarpitta@uniroma2.it>
isisd/isis_tlvs.c

index cd20c976232aa6b0c251d9e94d6824ea40ab2503..37fdf6aa6fae28b5c80ba8be4bdf09b23ef6766a 100644 (file)
@@ -2070,6 +2070,29 @@ static struct isis_item *copy_item_srv6_end_sid(struct isis_item *i)
        return (struct isis_item *)rv;
 }
 
+static void format_item_srv6_end_sid(uint16_t mtid, struct isis_item *i,
+                                    struct sbuf *buf, struct json_object *json,
+                                    int indent)
+{
+       struct isis_srv6_end_sid_subtlv *sid =
+               (struct isis_srv6_end_sid_subtlv *)i;
+
+       if (json) {
+               struct json_object *sid_json;
+               sid_json = json_object_new_object();
+               json_object_object_add(json, "srv6-end-sid", sid_json);
+               json_object_string_add(sid_json, "endpoint-behavior",
+                                      seg6local_action2str(sid->behavior));
+               json_object_string_addf(sid_json, "sid-value", "%pI6",
+                                       &sid->sid);
+       } else {
+               sbuf_push(buf, indent, "SRv6 End SID ");
+               sbuf_push(buf, 0, "Endpoint Behavior: %s, ",
+                         seg6local_action2str(sid->behavior));
+               sbuf_push(buf, 0, "SID value: %pI6\n", &sid->sid);
+       }
+}
+
 /* Functions related to TLVs 1 Area Addresses */
 
 static struct isis_item *copy_item_area_address(struct isis_item *i)