summaryrefslogtreecommitdiff
path: root/isisd/isis_tlvs.h
diff options
context:
space:
mode:
authorCarmine Scarpitta <carmine.scarpitta@uniroma2.it>2023-02-01 13:41:32 +0100
committerCarmine Scarpitta <carmine.scarpitta@uniroma2.it>2023-08-04 09:29:16 +0200
commit0457d8f16b9bdc575f1dff788919e590754d7751 (patch)
tree1df134313eb9c37352c5a18d109f871335b94f9b /isisd/isis_tlvs.h
parentdc3326004322438a8feb819eb4bb5434b1dc74ca (diff)
isisd: Add SRv6 Cap Sub-TLV to Router Cap TLV
Add SRv6 Capabilities Sub-TLV to the IS-IS Router Capabilities TLV data structure. SRv6 Capabilities Sub-TLV includes SRv6 Flags (RFC 9352 section #2) and Maximum SRv6 SID Depths (RFC 9352 section #4). Signed-off-by: Carmine Scarpitta <carmine.scarpitta@uniroma2.it>
Diffstat (limited to 'isisd/isis_tlvs.h')
-rw-r--r--isisd/isis_tlvs.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/isisd/isis_tlvs.h b/isisd/isis_tlvs.h
index 9375bd53d7..db66d8e586 100644
--- a/isisd/isis_tlvs.h
+++ b/isisd/isis_tlvs.h
@@ -193,6 +193,16 @@ struct isis_router_cap_fad {
};
#endif /* ifndef FABRICD */
+/* SRv6 Capabilities as per RFC 9352 section #2 */
+struct isis_srv6_cap {
+ bool is_srv6_capable;
+
+ uint16_t flags;
+#define ISIS_SUBTLV_SRV6_FLAG_O 0x4000
+#define SUPPORTS_SRV6_OAM(srv6) \
+ (CHECK_FLAG((srv6)->flags, ISIS_SUBTLV_SRV6_FLAG_O))
+};
+
struct isis_router_cap {
struct in_addr router_id;
uint8_t flags;
@@ -208,6 +218,9 @@ struct isis_router_cap {
/* RFC9350 Flex-Algorithm */
struct isis_router_cap_fad *fads[SR_ALGORITHM_COUNT];
#endif /* ifndef FABRICD */
+
+ /* RFC 9352 section #2 */
+ struct isis_srv6_cap srv6_cap;
};
struct isis_item {