mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-11-02 11:01:16 +00:00
zebra: delete ipv6 RA prefix entries when zebra is killed
Memory leak found where ipv6 global prefixes added to the router advertisement prefix lists were not deleted when the process was killed. Signed-off-by: Don Slice <dslice@cumulusnetworks.com>
This commit is contained in:
parent
e14175b8a1
commit
5a7aea851d
@ -1118,18 +1118,31 @@ void rtadv_stop_ra(struct interface *ifp)
|
||||
}
|
||||
|
||||
/*
|
||||
* send router lifetime value of zero in RAs on all interfaces since we're
|
||||
* Send router lifetime value of zero in RAs on all interfaces since we're
|
||||
* ceasing to advertise globally and want to let all of our neighbors know
|
||||
* RFC 4861 secion 6.2.5
|
||||
*
|
||||
* Delete all ipv6 global prefixes added to the router advertisement prefix
|
||||
* lists prior to ceasing.
|
||||
*/
|
||||
void rtadv_stop_ra_all(void)
|
||||
{
|
||||
struct vrf *vrf;
|
||||
struct interface *ifp;
|
||||
struct listnode *node, *nnode;
|
||||
struct zebra_if *zif;
|
||||
struct rtadv_prefix *rprefix;
|
||||
|
||||
RB_FOREACH (vrf, vrf_name_head, &vrfs_by_name)
|
||||
FOR_ALL_INTERFACES (vrf, ifp)
|
||||
FOR_ALL_INTERFACES (vrf, ifp) {
|
||||
zif = ifp->info;
|
||||
|
||||
for (ALL_LIST_ELEMENTS(zif->rtadv.AdvPrefixList,
|
||||
node, nnode, rprefix))
|
||||
rtadv_prefix_reset(zif, rprefix);
|
||||
|
||||
rtadv_stop_ra(ifp);
|
||||
}
|
||||
}
|
||||
|
||||
void zebra_interface_radv_disable(ZAPI_HANDLER_ARGS)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user