]> git.puffer.fish Git - mirror/frr.git/commitdiff
isisd: Add func to build Sub-Sub-TLV from End SID
authorCarmine Scarpitta <carmine.scarpitta@uniroma2.it>
Wed, 15 Feb 2023 11:00:24 +0000 (12:00 +0100)
committerCarmine Scarpitta <carmine.scarpitta@uniroma2.it>
Mon, 11 Sep 2023 20:11:39 +0000 (22:11 +0200)
Add a function to build an SRv6 SID Structure Sub-Sub-TLV (RFC 9352
section #9) to advertise the structure of a specific SRv6 End SID passed
as an argument.

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

index 3f56f83367805c871d4b3a9148b51e9b326d2ce5..11a3f67cc1396b54e66d4c056b4bc4e4afb71d03 100644 (file)
@@ -7732,6 +7732,18 @@ void isis_tlvs_set_purge_originator(struct isis_tlvs *tlvs,
        }
 }
 
+/* Set SRv6 SID Structure Sub-Sub-TLV parameters */
+void isis_subsubtlvs_set_srv6_sid_structure(struct isis_subsubtlvs *subsubtlvs,
+                                           struct isis_srv6_sid *sid)
+{
+       assert(!subsubtlvs->srv6_sid_structure);
+
+       subsubtlvs->srv6_sid_structure = XCALLOC(
+               MTYPE_ISIS_SUBSUBTLV, sizeof(*subsubtlvs->srv6_sid_structure));
+
+       isis_srv6_sid_structure2subsubtlv(sid, subsubtlvs->srv6_sid_structure);
+}
+
 /* Add an SRv6 End SID to the SRv6 End SID Sub-TLV */
 void isis_subtlvs_add_srv6_end_sid(struct isis_subtlvs *subtlvs,
                                   struct isis_srv6_sid *sid)
index a03f9285c111462c1c58e3388b3983994539c265..8a64fd378b92160df6a1f3506c6245dee47ebeb0 100644 (file)
@@ -835,6 +835,8 @@ void isis_tlvs_set_purge_originator(struct isis_tlvs *tlvs,
                                    const uint8_t *generator,
                                    const uint8_t *sender);
 
+void isis_subsubtlvs_set_srv6_sid_structure(struct isis_subsubtlvs *subsubtlvs,
+                                           struct isis_srv6_sid *sid);
 void isis_subtlvs_add_srv6_end_sid(struct isis_subtlvs *subtlvs,
                                   struct isis_srv6_sid *sid);
 void isis_tlvs_add_srv6_locator(struct isis_tlvs *tlvs, uint16_t mtid,