mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-15 11:15:47 +00:00
Merge pull request #4536 from pguibert6WIND/bfd_startup_does_not_work
bfdd: avoid double socket initialisation on same netns
This commit is contained in:
commit
574fa9a597
68
bfdd/bfd.c
68
bfdd/bfd.c
@ -1555,41 +1555,41 @@ static int bfd_vrf_enable(struct vrf *vrf)
|
|||||||
} else
|
} else
|
||||||
bvrf = vrf->info;
|
bvrf = vrf->info;
|
||||||
log_debug("VRF enable add %s id %u", vrf->name, vrf->vrf_id);
|
log_debug("VRF enable add %s id %u", vrf->name, vrf->vrf_id);
|
||||||
|
if (vrf->vrf_id == VRF_DEFAULT ||
|
||||||
|
vrf_get_backend() == VRF_BACKEND_NETNS) {
|
||||||
|
if (!bvrf->bg_shop)
|
||||||
|
bvrf->bg_shop = bp_udp_shop(vrf->vrf_id);
|
||||||
|
if (!bvrf->bg_mhop)
|
||||||
|
bvrf->bg_mhop = bp_udp_mhop(vrf->vrf_id);
|
||||||
|
if (!bvrf->bg_shop6)
|
||||||
|
bvrf->bg_shop6 = bp_udp6_shop(vrf->vrf_id);
|
||||||
|
if (!bvrf->bg_mhop6)
|
||||||
|
bvrf->bg_mhop6 = bp_udp6_mhop(vrf->vrf_id);
|
||||||
|
if (!bvrf->bg_echo)
|
||||||
|
bvrf->bg_echo = bp_echo_socket(vrf->vrf_id);
|
||||||
|
if (!bvrf->bg_echov6)
|
||||||
|
bvrf->bg_echov6 = bp_echov6_socket(vrf->vrf_id);
|
||||||
|
|
||||||
/* create sockets if needed */
|
/* Add descriptors to the event loop. */
|
||||||
if (!bvrf->bg_shop)
|
if (!bvrf->bg_ev[0])
|
||||||
bvrf->bg_shop = bp_udp_shop(vrf->vrf_id);
|
thread_add_read(master, bfd_recv_cb, bvrf, bvrf->bg_shop,
|
||||||
if (!bvrf->bg_mhop)
|
&bvrf->bg_ev[0]);
|
||||||
bvrf->bg_mhop = bp_udp_mhop(vrf->vrf_id);
|
if (!bvrf->bg_ev[1])
|
||||||
if (!bvrf->bg_shop6)
|
thread_add_read(master, bfd_recv_cb, bvrf, bvrf->bg_mhop,
|
||||||
bvrf->bg_shop6 = bp_udp6_shop(vrf->vrf_id);
|
&bvrf->bg_ev[1]);
|
||||||
if (!bvrf->bg_mhop6)
|
if (!bvrf->bg_ev[2])
|
||||||
bvrf->bg_mhop6 = bp_udp6_mhop(vrf->vrf_id);
|
thread_add_read(master, bfd_recv_cb, bvrf, bvrf->bg_shop6,
|
||||||
if (!bvrf->bg_echo)
|
&bvrf->bg_ev[2]);
|
||||||
bvrf->bg_echo = bp_echo_socket(vrf->vrf_id);
|
if (!bvrf->bg_ev[3])
|
||||||
if (!bvrf->bg_echov6)
|
thread_add_read(master, bfd_recv_cb, bvrf, bvrf->bg_mhop6,
|
||||||
bvrf->bg_echov6 = bp_echov6_socket(vrf->vrf_id);
|
&bvrf->bg_ev[3]);
|
||||||
|
if (!bvrf->bg_ev[4])
|
||||||
/* Add descriptors to the event loop. */
|
thread_add_read(master, bfd_recv_cb, bvrf, bvrf->bg_echo,
|
||||||
if (!bvrf->bg_ev[0])
|
&bvrf->bg_ev[4]);
|
||||||
thread_add_read(master, bfd_recv_cb, bvrf, bvrf->bg_shop,
|
if (!bvrf->bg_ev[5])
|
||||||
&bvrf->bg_ev[0]);
|
thread_add_read(master, bfd_recv_cb, bvrf, bvrf->bg_echov6,
|
||||||
if (!bvrf->bg_ev[1])
|
&bvrf->bg_ev[5]);
|
||||||
thread_add_read(master, bfd_recv_cb, bvrf, bvrf->bg_mhop,
|
}
|
||||||
&bvrf->bg_ev[1]);
|
|
||||||
if (!bvrf->bg_ev[2])
|
|
||||||
thread_add_read(master, bfd_recv_cb, bvrf, bvrf->bg_shop6,
|
|
||||||
&bvrf->bg_ev[2]);
|
|
||||||
if (!bvrf->bg_ev[3])
|
|
||||||
thread_add_read(master, bfd_recv_cb, bvrf, bvrf->bg_mhop6,
|
|
||||||
&bvrf->bg_ev[3]);
|
|
||||||
if (!bvrf->bg_ev[4])
|
|
||||||
thread_add_read(master, bfd_recv_cb, bvrf, bvrf->bg_echo,
|
|
||||||
&bvrf->bg_ev[4]);
|
|
||||||
if (!bvrf->bg_ev[5])
|
|
||||||
thread_add_read(master, bfd_recv_cb, bvrf, bvrf->bg_echov6,
|
|
||||||
&bvrf->bg_ev[5]);
|
|
||||||
|
|
||||||
if (vrf->vrf_id != VRF_DEFAULT) {
|
if (vrf->vrf_id != VRF_DEFAULT) {
|
||||||
bfdd_zclient_register(vrf->vrf_id);
|
bfdd_zclient_register(vrf->vrf_id);
|
||||||
bfdd_sessions_enable_vrf(vrf);
|
bfdd_sessions_enable_vrf(vrf);
|
||||||
|
Loading…
Reference in New Issue
Block a user