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_circuit.c | |
| 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_circuit.c')
| -rw-r--r-- | isisd/isis_circuit.c | 10 | 
1 files changed, 9 insertions, 1 deletions
diff --git a/isisd/isis_circuit.c b/isisd/isis_circuit.c index a91bbd0b95..0ad6190ba4 100644 --- a/isisd/isis_circuit.c +++ b/isisd/isis_circuit.c @@ -335,8 +335,16 @@ void isis_circuit_add_addr(struct isis_circuit *circuit,  		if (IN6_IS_ADDR_LINKLOCAL(&ipv6->prefix))  			listnode_add(circuit->ipv6_link, ipv6); -		else +		else {  			listnode_add(circuit->ipv6_non_link, ipv6); +			/* Update Local IPv6 address param. if MPLS TE is on */ +			if (circuit->ext && circuit->area +			    && IS_MPLS_TE(circuit->area->mta)) { +				IPV6_ADDR_COPY(&circuit->ext->local_addr6, +					       &ipv6->prefix); +				SET_SUBTLV(circuit->ext, EXT_LOCAL_ADDR6); +			} +		}  		if (circuit->area)  			lsp_regenerate_schedule(circuit->area, circuit->is_type,  						0);  | 
