mirror of
https://gitlab.nic.cz/labs/bird.git
synced 2024-11-17 08:38:42 +00:00
BFD: Fix superfluous reconfiguration of sessions
This commit is contained in:
parent
9d3fc3062b
commit
99ad208dd7
@ -607,12 +607,20 @@ bfd_free_iface(struct bfd_iface *ifa)
|
||||
static void
|
||||
bfd_reconfigure_iface(struct bfd_proto *p, struct bfd_iface *ifa, struct bfd_config *nc)
|
||||
{
|
||||
struct bfd_iface_config *nic = bfd_find_iface_config(nc, ifa->iface);
|
||||
ifa->changed = !!memcmp(nic, ifa->cf, sizeof(struct bfd_iface_config));
|
||||
struct bfd_iface_config *new = bfd_find_iface_config(nc, ifa->iface);
|
||||
struct bfd_iface_config *old = ifa->cf;
|
||||
|
||||
/* Check options that are handled in bfd_reconfigure_session() */
|
||||
ifa->changed =
|
||||
(new->min_rx_int != old->min_rx_int) ||
|
||||
(new->min_tx_int != old->min_tx_int) ||
|
||||
(new->idle_tx_int != old->idle_tx_int) ||
|
||||
(new->multiplier != old->multiplier) ||
|
||||
(new->passive != old->passive);
|
||||
|
||||
/* This should be probably changed to not access ifa->cf from the BFD thread */
|
||||
birdloop_enter(p->loop);
|
||||
ifa->cf = nic;
|
||||
ifa->cf = new;
|
||||
birdloop_leave(p->loop);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user