summaryrefslogtreecommitdiffstats
path: root/isisd/isis_adjacency.c
diff options
context:
space:
mode:
authorOlivier Dugeon <olivier.dugeon@orange.com>2021-06-30 17:23:56 +0200
committerOlivier Dugeon <olivier.dugeon@orange.com>2021-11-30 15:22:28 +0100
commit173f8887cc3716985bfe4b84bdf2228194716f7d (patch)
tree6bf71295b47e814980e8620feba04e6950d7ed18 /isisd/isis_adjacency.c
parentMerge pull request #10146 from ton31337/fix/acl_bmp (diff)
downloadfrr-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.c23
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);
}