summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Lamparter <equinox@diac24.net>2019-06-06 15:18:20 +0200
committerGitHub <noreply@github.com>2019-06-06 15:18:20 +0200
commit55c5b65a993f3bc14e944039ec52a0a89d817cfe (patch)
tree8c20eb4ef6ba8a550334c0727503d1fb518fa7d9
parent695a52fd5e918906098f863829b5ca91dbfce08f (diff)
parent1f8286c99b54248d02926d666a25a9208c543da1 (diff)
Merge pull request #4468 from donaldsharp/isis_v6_addr_count
isisd: The RFC states that v6 addresses are limited to 16 in a hello …
-rw-r--r--isisd/isis_tlvs.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/isisd/isis_tlvs.c b/isisd/isis_tlvs.c
index 6b8e74f07b..6edfeb4c97 100644
--- a/isisd/isis_tlvs.c
+++ b/isisd/isis_tlvs.c
@@ -3271,13 +3271,18 @@ void isis_tlvs_add_ipv6_addresses(struct isis_tlvs *tlvs,
{
struct listnode *node;
struct prefix_ipv6 *ip_addr;
+ unsigned int addr_count = 0;
for (ALL_LIST_ELEMENTS_RO(addresses, node, ip_addr)) {
+ if (addr_count >= 15)
+ break;
+
struct isis_ipv6_address *a =
XCALLOC(MTYPE_ISIS_TLV, sizeof(*a));
a->addr = ip_addr->prefix;
append_item(&tlvs->ipv6_address, (struct isis_item *)a);
+ addr_count++;
}
}