diff options
| author | Carmine Scarpitta <carmine.scarpitta@uniroma2.it> | 2023-02-22 00:03:49 +0100 | 
|---|---|---|
| committer | Carmine Scarpitta <carmine.scarpitta@uniroma2.it> | 2023-09-11 17:35:07 +0200 | 
| commit | 911ec6b474ea48d9097af07a76a7b6a4d33fc39b (patch) | |
| tree | 98cc91463f4de85f3d2725ba59f4587673b88f00 /isisd/isis_tlvs.h | |
| parent | 150d3d3a025bc7adc285859bd6c6d9532676887f (diff) | |
isisd: Add SRv6 Locator TLV data structure
Add a data structure to represent an SRv6 Locator TLV as per RFC 9352
section #7.1.
Signed-off-by: Carmine Scarpitta <carmine.scarpitta@uniroma2.it>
Diffstat (limited to 'isisd/isis_tlvs.h')
| -rw-r--r-- | isisd/isis_tlvs.h | 18 | 
1 files changed, 18 insertions, 0 deletions
diff --git a/isisd/isis_tlvs.h b/isisd/isis_tlvs.h index fd7a0306ac..4fa0fe81d7 100644 --- a/isisd/isis_tlvs.h +++ b/isisd/isis_tlvs.h @@ -193,6 +193,23 @@ struct isis_router_cap_fad {  };  #endif /* ifndef FABRICD */ +/* RFC 9352 section 7.1 */ +struct isis_srv6_locator_tlv { +	struct isis_srv6_locator_tlv *next; + +	uint32_t metric; + +	uint8_t flags; +#define ISIS_TLV_SRV6_LOCATOR_FLAG_D 1 << 7 + +	uint8_t algorithm; +	struct prefix_ipv6 prefix; + +	struct isis_subtlvs *subtlvs; +}; + +#define ISIS_SRV6_LOCATOR_HDR_SIZE 22 +  /* Maximum SRv6 SID Depths (MSD) as per RFC 9352 section #4 */  struct isis_srv6_msd {  	/* RFC 9352 section #4.1 */ @@ -338,6 +355,7 @@ struct isis_tlvs {  	struct isis_threeway_adj *threeway_adj;  	struct isis_router_cap *router_cap;  	struct isis_spine_leaf *spine_leaf; +	struct isis_mt_item_list srv6_locator;  };  enum isis_tlv_context {  | 
