BFD: Fix superfluous reconfiguration of sessions
This commit is contained in:
parent
9d3fc3062b
commit
99ad208dd7
1 changed files with 11 additions and 3 deletions
|
@ -607,12 +607,20 @@ bfd_free_iface(struct bfd_iface *ifa)
|
||||||
static void
|
static void
|
||||||
bfd_reconfigure_iface(struct bfd_proto *p, struct bfd_iface *ifa, struct bfd_config *nc)
|
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);
|
struct bfd_iface_config *new = bfd_find_iface_config(nc, ifa->iface);
|
||||||
ifa->changed = !!memcmp(nic, ifa->cf, sizeof(struct bfd_iface_config));
|
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 */
|
/* This should be probably changed to not access ifa->cf from the BFD thread */
|
||||||
birdloop_enter(p->loop);
|
birdloop_enter(p->loop);
|
||||||
ifa->cf = nic;
|
ifa->cf = new;
|
||||||
birdloop_leave(p->loop);
|
birdloop_leave(p->loop);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue