diff options
| author | Philippe Guibert <philippe.guibert@6wind.com> | 2023-11-19 09:38:26 +0100 | 
|---|---|---|
| committer | Philippe Guibert <philippe.guibert@6wind.com> | 2024-04-23 14:27:01 +0200 | 
| commit | 196f0d69fa26065943088eeb25e12103817cd96f (patch) | |
| tree | 3e704da946c0140fd535abf2260d01ced756b7ba /lib/link_state.h | |
| parent | a4e60f3399f8df87b5c106a53b4d8102d008b473 (diff) | |
isisd, lib: add link state support for srv6 adjacencies
Add support for endx_lan and endx adjacency.
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
Diffstat (limited to 'lib/link_state.h')
| -rw-r--r-- | lib/link_state.h | 14 | 
1 files changed, 14 insertions, 0 deletions
diff --git a/lib/link_state.h b/lib/link_state.h index d3a0ce39da..aaf97a28b9 100644 --- a/lib/link_state.h +++ b/lib/link_state.h @@ -161,6 +161,8 @@ struct ls_node {  #define LS_ATTR_BCK_ADJ_SID6	0x08000000  #define LS_ATTR_SRLG		0x10000000  #define LS_ATTR_EXT_ADM_GRP 0x20000000 +#define LS_ATTR_ADJ_SRV6SID	0x40000000 +#define LS_ATTR_BCK_ADJ_SRV6SID 0x80000000  /* Link State Attributes */  struct ls_attributes { @@ -209,6 +211,18 @@ struct ls_attributes {  			uint8_t sysid[ISO_SYS_ID_LEN]; /* or Sys-ID for ISIS */  		} neighbor;  	} adj_sid[4];		/* IPv4/IPv6 & Primary/Backup (LAN)-Adj. SID */ +#define ADJ_SRV6_PRI_IPV6 0 +#define ADJ_SRV6_BCK_IPV6 1 +#define ADJ_SRV6_MAX	  2 +	struct ls_srv6_adjacency {	    /* Adjacency SID for IS-IS */ +		struct in6_addr sid;	    /* SID as IPv6 address */ +		uint8_t flags;		    /* Flags */ +		uint8_t weight;		    /* Administrative weight */ +		uint16_t endpoint_behavior; /* Endpoint Behavior */ +		union { +			uint8_t sysid[ISO_SYS_ID_LEN]; /* Sys-ID for ISIS */ +		} neighbor; +	} adj_srv6_sid[2];  	uint32_t *srlgs;	/* List of Shared Risk Link Group */  	uint8_t srlg_len;	/* number of SRLG in the list */  };  | 
