diff options
| author | Olivier Dugeon <olivier.dugeon@orange.com> | 2021-06-30 17:23:56 +0200 | 
|---|---|---|
| committer | Olivier Dugeon <olivier.dugeon@orange.com> | 2021-11-30 15:22:28 +0100 | 
| commit | 173f8887cc3716985bfe4b84bdf2228194716f7d (patch) | |
| tree | 6bf71295b47e814980e8620feba04e6950d7ed18 /isisd/isis_adjacency.h | |
| parent | 0536fea8d24baf569f20f1848d4764237b7ac542 (diff) | |
isisd: Add support for RFC6119 (IPv6 TE in IS-IS)
 - Add advertisement of Global IPv6 address in IIH pdu
 - Add new CLI to set IPv6 Router ID
 - Add advertisement of IPv6 Router ID
 - Correctly advertise IPv6 local and neighbor addresses in Extended IS and MT
   Reachability TLVs
 - Correct output of Neighbor IPv6 address in 'show isis database detail'
 - Manage IPv6 addresses advertisement and corresponiding Adjacency SID when
   IS-IS is not using Multi-Topology by introducing a new ISIS_MT_DISABLE
   value for mtid (== 4096 i.e. first reserved flag set to 1)
Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
Diffstat (limited to 'isisd/isis_adjacency.h')
| -rw-r--r-- | isisd/isis_adjacency.h | 12 | 
1 files changed, 8 insertions, 4 deletions
diff --git a/isisd/isis_adjacency.h b/isisd/isis_adjacency.h index 4aa553e303..af70775a87 100644 --- a/isisd/isis_adjacency.h +++ b/isisd/isis_adjacency.h @@ -88,8 +88,10 @@ struct isis_adjacency {  	struct in_addr *ipv4_addresses;  	unsigned int ipv4_address_count;  	struct in_addr router_address; -	struct in6_addr *ipv6_addresses; -	unsigned int ipv6_address_count; +	struct in6_addr *ll_ipv6_addrs; /* Link local IPv6 neighbor address */ +	unsigned int ll_ipv6_count; +	struct in6_addr *global_ipv6_addrs; /* Global IPv6 neighbor address */ +	unsigned int global_ipv6_count;  	struct in6_addr router_address6;  	uint8_t prio[ISIS_LEVELS];      /* priorityOfNeighbour for DIS */  	int circuit_t;			/* from hello PDU hdr */ @@ -127,9 +129,11 @@ void isis_adj_process_threeway(struct isis_adjacency *adj,  			       enum isis_adj_usage adj_usage);  DECLARE_HOOK(isis_adj_state_change_hook, (struct isis_adjacency *adj), (adj));  DECLARE_HOOK(isis_adj_ip_enabled_hook, -	     (struct isis_adjacency *adj, int family), (adj, family)); +	     (struct isis_adjacency * adj, int family, bool global), +	     (adj, family, global));  DECLARE_HOOK(isis_adj_ip_disabled_hook, -	     (struct isis_adjacency *adj, int family), (adj, family)); +	     (struct isis_adjacency * adj, int family, bool global), +	     (adj, family, global));  void isis_log_adj_change(struct isis_adjacency *adj,  			 enum isis_adj_state old_state,  			 enum isis_adj_state new_state, const char *reason);  | 
