mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-06 09:00:55 +00:00
ospf6d: fix FreeBSD IPv6 multicast group join race
Avoid a IPv6 multicast group join race by delaying the group install before processing all event queue. Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
This commit is contained in:
parent
f80003b0e1
commit
bc482dc0ca
@ -729,6 +729,22 @@ int interface_up(struct thread *thread)
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifdef __FreeBSD__
|
||||
/*
|
||||
* XXX: Schedule IPv6 group join for later, otherwise we might
|
||||
* lose the multicast group registration caused by IPv6 group
|
||||
* leave race.
|
||||
*/
|
||||
if (oi->sso_try_cnt == 0) {
|
||||
oi->sso_try_cnt++;
|
||||
zlog_info("Scheduling %s for sso", oi->interface->name);
|
||||
thread_add_timer(master, interface_up, oi,
|
||||
OSPF6_INTERFACE_SSO_RETRY_INT,
|
||||
&oi->thread_sso);
|
||||
return 0;
|
||||
}
|
||||
#endif /* __FreeBSD__ */
|
||||
|
||||
/* Join AllSPFRouters */
|
||||
if (ospf6_sso(oi->interface->ifindex, &allspfrouters6, IPV6_JOIN_GROUP)
|
||||
< 0) {
|
||||
|
Loading…
Reference in New Issue
Block a user