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 | Merge pull request #10146 from ton31337/fix/acl_bmp (diff) | |
download | frr-173f8887cc3716985bfe4b84bdf2228194716f7d.tar.xz frr-173f8887cc3716985bfe4b84bdf2228194716f7d.zip |
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 4aa553e30..af70775a8 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); |