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.c | |
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.c')
-rw-r--r-- | isisd/isis_adjacency.c | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/isisd/isis_adjacency.c b/isisd/isis_adjacency.c index f5e8a790b..ea05824f0 100644 --- a/isisd/isis_adjacency.c +++ b/isisd/isis_adjacency.c @@ -168,7 +168,7 @@ void isis_delete_adj(void *arg) XFREE(MTYPE_ISIS_ADJACENCY_INFO, adj->area_addresses); XFREE(MTYPE_ISIS_ADJACENCY_INFO, adj->ipv4_addresses); - XFREE(MTYPE_ISIS_ADJACENCY_INFO, adj->ipv6_addresses); + XFREE(MTYPE_ISIS_ADJACENCY_INFO, adj->ll_ipv6_addrs); adj_mt_finish(adj); list_delete(&adj->adj_sids); @@ -414,11 +414,11 @@ void isis_adj_print(struct isis_adjacency *adj) zlog_debug("%pI4", &adj->ipv4_addresses[i]); } - if (adj->ipv6_address_count) { + if (adj->ll_ipv6_count) { zlog_debug("IPv6 Address(es):"); - for (unsigned int i = 0; i < adj->ipv6_address_count; i++) { + for (unsigned int i = 0; i < adj->ll_ipv6_count; i++) { char buf[INET6_ADDRSTRLEN]; - inet_ntop(AF_INET6, &adj->ipv6_addresses[i], buf, + inet_ntop(AF_INET6, &adj->ll_ipv6_addrs[i], buf, sizeof(buf)); zlog_debug("%s", buf); } @@ -577,12 +577,21 @@ void isis_adj_print_vty(struct isis_adjacency *adj, struct vty *vty, vty_out(vty, " %pI4\n", &adj->ipv4_addresses[i]); } - if (adj->ipv6_address_count) { + if (adj->ll_ipv6_count) { vty_out(vty, " IPv6 Address(es):\n"); - for (unsigned int i = 0; i < adj->ipv6_address_count; + for (unsigned int i = 0; i < adj->ll_ipv6_count; i++) { + char buf[INET6_ADDRSTRLEN]; + inet_ntop(AF_INET6, &adj->ll_ipv6_addrs[i], + buf, sizeof(buf)); + vty_out(vty, " %s\n", buf); + } + } + if (adj->global_ipv6_count) { + vty_out(vty, " Global IPv6 Address(es):\n"); + for (unsigned int i = 0; i < adj->global_ipv6_count; i++) { char buf[INET6_ADDRSTRLEN]; - inet_ntop(AF_INET6, &adj->ipv6_addresses[i], + inet_ntop(AF_INET6, &adj->global_ipv6_addrs[i], buf, sizeof(buf)); vty_out(vty, " %s\n", buf); } |