summaryrefslogtreecommitdiffstats
path: root/proto/ospf
diff options
context:
space:
mode:
Diffstat (limited to 'proto/ospf')
-rw-r--r--proto/ospf/iface.c3
-rw-r--r--proto/ospf/lsupd.c2
-rw-r--r--proto/ospf/ospf.c1
3 files changed, 4 insertions, 2 deletions
diff --git a/proto/ospf/iface.c b/proto/ospf/iface.c
index e98414f..8db086e 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 75c6702..a013385 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 78fa5ee..1befb7d 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;
}