diff options
| author | Carmine Scarpitta <carmine.scarpitta@uniroma2.it> | 2023-02-01 13:41:32 +0100 | 
|---|---|---|
| committer | Carmine Scarpitta <carmine.scarpitta@uniroma2.it> | 2023-08-04 09:29:16 +0200 | 
| commit | 0457d8f16b9bdc575f1dff788919e590754d7751 (patch) | |
| tree | 1df134313eb9c37352c5a18d109f871335b94f9b /isisd/isis_tlvs.h | |
| parent | dc3326004322438a8feb819eb4bb5434b1dc74ca (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.h | 13 | 
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 {  | 
