]> git.proxmox.com Git - mirror_frr.git/commitdiff
isisd: The RFC states that v6 addresses are limited to 16 in a hello packet
authorDonald Sharp <sharpd@cumulusnetworks.com>
Wed, 5 Jun 2019 01:15:43 +0000 (21:15 -0400)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Thu, 6 Jun 2019 13:24:24 +0000 (09:24 -0400)
The RFC states we can send only up to 16 v6 addresses in a hello packet
and cannot send sub tlv's of that type.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
isisd/isis_tlvs.c

index 7e16b89fdfd1c69606f4e314be1c86a3fac868b7..c31b9ff975f7dabc9a7f9eba6b74952ab82b46d7 100644 (file)
@@ -3266,13 +3266,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++;
        }
 }