]> git.puffer.fish Git - mirror/frr.git/commitdiff
isisd: Add SRv6 End SID Sub-TLV data structure
authorCarmine Scarpitta <carmine.scarpitta@uniroma2.it>
Tue, 21 Feb 2023 23:35:07 +0000 (00:35 +0100)
committerCarmine Scarpitta <carmine.scarpitta@uniroma2.it>
Mon, 11 Sep 2023 15:35:16 +0000 (17:35 +0200)
Add a data structure to represent an SRv6 End SID Sub-TLV as per
RFC 9352 section #7.2.

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

index a42522adfc5797bea502e696b6a80f695c49bb1a..ec3f5897a29a670153d0a5c40b3e6c0b3df535f2 100644 (file)
@@ -16,6 +16,8 @@
 #include "affinitymap.h"
 
 
+#include "lib/srv6.h"
+
 DECLARE_MTYPE(ISIS_SUBTLV);
 
 struct lspdb_head;
@@ -193,6 +195,17 @@ struct isis_router_cap_fad {
 };
 #endif /* ifndef FABRICD */
 
+/* SRv6 End SID Sub-TLV as per RFC 9352 section #7.2 */
+struct isis_srv6_end_sid_subtlv {
+       struct isis_srv6_end_sid_subtlv *next;
+
+       uint8_t flags;
+       enum srv6_endpoint_behavior_codepoint behavior;
+       struct in6_addr sid;
+
+       struct isis_subsubtlvs *subsubtlvs;
+};
+
 /* RFC 9352 section 7.1 */
 struct isis_srv6_locator_tlv {
        struct isis_srv6_locator_tlv *next;
@@ -374,6 +387,9 @@ struct isis_subtlvs {
        struct prefix_ipv6 *source_prefix;
        /* RFC 8667 section #2.4 */
        struct isis_item_list prefix_sids;
+
+       /* RFC 9352 section #7.2 */
+       struct isis_item_list srv6_end_sids;
 };
 
 enum isis_tlv_type {