summaryrefslogtreecommitdiff
path: root/usr.sbin/ospf6d
diff options
context:
space:
mode:
authorStefan Sperling <stsp@cvs.openbsd.org>2009-02-19 22:03:00 +0000
committerStefan Sperling <stsp@cvs.openbsd.org>2009-02-19 22:03:00 +0000
commit93d9528bcad68f474804bb8619933f4c9d5f2dbe (patch)
tree6c821e7bf3d48de6ba9fca8854d24717de239a71 /usr.sbin/ospf6d
parent7c1450003d0892eda34296237e5f7828dc2a9943 (diff)
In ospfe, originate new Router and Network LSAs before informing RDE
about nbr state change. Intra-Area-Prefix LSAs refer to these LSAs. While not strictly necessary, it makes sense for these LSAs to be up-to-date in the LSDB before new Intra-Area-Prefix LSAs are originated. This change has no effect yet because Intra-Area-Prefix LSAs are currently originated during updates of LSA types it depends on, but origination will soon be synced to state changes in the iface and nbr state machines instead. ok claudio@
Diffstat (limited to 'usr.sbin/ospf6d')
-rw-r--r--usr.sbin/ospf6d/neighbor.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/usr.sbin/ospf6d/neighbor.c b/usr.sbin/ospf6d/neighbor.c
index 8407c02887c..3ab2126052f 100644
--- a/usr.sbin/ospf6d/neighbor.c
+++ b/usr.sbin/ospf6d/neighbor.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: neighbor.c,v 1.9 2009/02/19 22:00:31 stsp Exp $ */
+/* $OpenBSD: neighbor.c,v 1.10 2009/02/19 22:02:59 stsp Exp $ */
/*
* Copyright (c) 2005 Claudio Jeker <claudio@openbsd.org>
@@ -195,9 +195,6 @@ nbr_fsm(struct nbr *nbr, enum nbr_event event)
if (old_state != nbr->state) {
nbr->stats.sta_chng++;
- /* state change inform RDE */
- ospfe_imsg_compose_rde(IMSG_NEIGHBOR_CHANGE,
- nbr->peerid, 0, &nbr->state, sizeof(nbr->state));
if (old_state & NBR_STA_FULL || nbr->state & NBR_STA_FULL) {
extern struct ospfd_conf *oeconf; /* XXX */
@@ -215,6 +212,10 @@ nbr_fsm(struct nbr *nbr, enum nbr_event event)
nbr->uptime = now.tv_sec;
}
+ /* state change inform RDE */
+ ospfe_imsg_compose_rde(IMSG_NEIGHBOR_CHANGE,
+ nbr->peerid, 0, &nbr->state, sizeof(nbr->state));
+
/* bidirectional communication lost */
if (old_state & ~NBR_STA_PRELIM && nbr->state & NBR_STA_PRELIM)
if_fsm(nbr->iface, IF_EVT_NBR_CHNG);