From 0caeda5a380f80a57af7bb4f1a706c346f1b7430 Mon Sep 17 00:00:00 2001 From: Carmine Scarpitta Date: Wed, 22 Feb 2023 00:35:07 +0100 Subject: [PATCH] isisd: Add SRv6 End SID Sub-TLV data structure Add a data structure to represent an SRv6 End SID Sub-TLV as per RFC 9352 section #7.2. Signed-off-by: Carmine Scarpitta --- isisd/isis_tlvs.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/isisd/isis_tlvs.h b/isisd/isis_tlvs.h index a42522adfc..ec3f5897a2 100644 --- a/isisd/isis_tlvs.h +++ b/isisd/isis_tlvs.h @@ -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 {