]> git.puffer.fish Git - mirror/frr.git/commitdiff
isisd: Pack SRv6 Capabilities Sub-TLV
authorCarmine Scarpitta <carmine.scarpitta@uniroma2.it>
Thu, 2 Feb 2023 09:13:42 +0000 (10:13 +0100)
committerCarmine Scarpitta <carmine.scarpitta@uniroma2.it>
Fri, 4 Aug 2023 07:29:16 +0000 (09:29 +0200)
Extend Router Capabilities TLV pack function to pack Router Capabilies
Sub-TLV (RFC 9352 section #2).

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

index e871ae8c4f99404e81566dbce520b6b6c9515495..823ddbd0a9a78debffac6afd56718360a30e88f8 100644 (file)
@@ -4366,6 +4366,13 @@ static int pack_tlv_router_cap(const struct isis_router_cap *router_cap,
        }
 #endif /* ifndef FABRICD */
 
+       /* Add SRv6 capabilities if set as per RFC 9352 section #2 */
+       if (router_cap->srv6_cap.is_srv6_capable) {
+               stream_putc(s, ISIS_SUBTLV_SRV6_CAPABILITIES);
+               stream_putc(s, ISIS_SUBTLV_SRV6_CAPABILITIES_SIZE);
+               stream_putw(s, router_cap->srv6_cap.flags);
+       }
+
        /* Adjust TLV length which depends on subTLVs presence */
        tlv_len = stream_get_endp(s) - len_pos - 1;
        stream_putc_at(s, len_pos, tlv_len);