]> git.puffer.fish Git - mirror/frr.git/commitdiff
isisd: Add copy function for SRv6 End SID Sub-TLV
authorCarmine Scarpitta <carmine.scarpitta@uniroma2.it>
Tue, 14 Feb 2023 12:30:37 +0000 (13:30 +0100)
committerCarmine Scarpitta <carmine.scarpitta@uniroma2.it>
Mon, 11 Sep 2023 15:35:18 +0000 (17:35 +0200)
Add a function to copy 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 e0671312b4d5237a21a440d990f26541f6b28a29..cd20c976232aa6b0c251d9e94d6824ea40ab2503 100644 (file)
@@ -2056,6 +2056,20 @@ static int unpack_tlvs(enum isis_tlv_context context, size_t avail_len,
                       struct stream *stream, struct sbuf *log, void *dest,
                       int indent, bool *unpacked_known_tlvs);
 
+/* Functions for Sub-TLV 5 SRv6 End SID as per RFC 9352 section #7.2 */
+static struct isis_item *copy_item_srv6_end_sid(struct isis_item *i)
+{
+       struct isis_srv6_end_sid_subtlv *sid =
+               (struct isis_srv6_end_sid_subtlv *)i;
+       struct isis_srv6_end_sid_subtlv *rv =
+               XCALLOC(MTYPE_ISIS_SUBTLV, sizeof(*rv));
+
+       rv->behavior = sid->behavior;
+       rv->sid = sid->sid;
+
+       return (struct isis_item *)rv;
+}
+
 /* Functions related to TLVs 1 Area Addresses */
 
 static struct isis_item *copy_item_area_address(struct isis_item *i)