diff options
Diffstat (limited to 'proto/ospf')
-rw-r--r-- | proto/ospf/iface.c | 3 | ||||
-rw-r--r-- | proto/ospf/lsupd.c | 2 | ||||
-rw-r--r-- | proto/ospf/ospf.c | 1 |
3 files changed, 4 insertions, 2 deletions
diff --git a/proto/ospf/iface.c b/proto/ospf/iface.c index e98414f2..8db086ec 100644 --- a/proto/ospf/iface.c +++ b/proto/ospf/iface.c @@ -263,6 +263,7 @@ ospf_iface_sm(struct ospf_iface *ifa, int event) hello_timer_hook(ifa->hello_timer); } + schedule_link_lsa(ifa); schedule_rt_lsa(ifa->oa); break; case ISM_BACKS: @@ -283,6 +284,7 @@ ospf_iface_sm(struct ospf_iface *ifa, int event) case ISM_DOWN: ospf_iface_chstate(ifa, OSPF_IS_DOWN); ospf_iface_down(ifa); + schedule_link_lsa(ifa); schedule_rt_lsa(oa); break; case ISM_LOOP: /* Useless? */ @@ -387,7 +389,6 @@ ospf_iface_add(struct object_lock *lock) ifa->state = OSPF_IS_DOWN; ospf_iface_sm(ifa, ISM_UP); - schedule_link_lsa(ifa); } void diff --git a/proto/ospf/lsupd.c b/proto/ospf/lsupd.c index 75c67024..a0133855 100644 --- a/proto/ospf/lsupd.c +++ b/proto/ospf/lsupd.c @@ -639,7 +639,7 @@ ospf_lsupd_receive(struct ospf_packet *ps_i, struct ospf_iface *ifa, DBG("New LSA installed in DB\n"); #ifdef OSPFv3 - /* Events 6,7 from 4.4.3. */ + /* Events 6,7 from RFC5340 4.4.3. */ if ((lsatmp.type == LSA_T_LINK) && (ifa->state == OSPF_IS_DR)) schedule_net_lsa(ifa); diff --git a/proto/ospf/ospf.c b/proto/ospf/ospf.c index 78fa5ee9..1befb7d2 100644 --- a/proto/ospf/ospf.c +++ b/proto/ospf/ospf.c @@ -493,6 +493,7 @@ ospf_ifa_notify(struct proto *p, unsigned flags, struct ifa *a) if (ifa->iface == a->iface) { schedule_rt_lsa(ifa->oa); + /* Event 5 from RFC5340 4.4.3. */ schedule_link_lsa(ifa); return; } |