diff options
author | Stefan Sperling <stsp@cvs.openbsd.org> | 2009-02-19 22:03:00 +0000 |
---|---|---|
committer | Stefan Sperling <stsp@cvs.openbsd.org> | 2009-02-19 22:03:00 +0000 |
commit | 93d9528bcad68f474804bb8619933f4c9d5f2dbe (patch) | |
tree | 6c821e7bf3d48de6ba9fca8854d24717de239a71 /usr.sbin/ospf6d | |
parent | 7c1450003d0892eda34296237e5f7828dc2a9943 (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.c | 9 |
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); |