summaryrefslogtreecommitdiffstats
path: root/proto/ospf/rt.c
diff options
context:
space:
mode:
authorOndrej Zajicek <santiago@crfreenet.org>2010-04-24 15:18:21 +0200
committerOndrej Zajicek <santiago@crfreenet.org>2010-04-24 15:18:21 +0200
commit0ea8fb4abe5acad0b8f470bbdc5cc929b6a58ced (patch)
tree5d8d0538e2ce7e138df1936b8cf64aadbc063bce /proto/ospf/rt.c
parent1d44ddf20f3ecef864d4bd20355251839fcd10ee (diff)
downloadbird-0ea8fb4abe5acad0b8f470bbdc5cc929b6a58ced.tar
bird-0ea8fb4abe5acad0b8f470bbdc5cc929b6a58ced.zip
Fixes and enhancements in 'show ospf state' command.
Now it shows a distance, option to change showing reachable/all network nodes and better handling of AS-external LSAs in multiple areas. The command 'show ospf topology' was changed to not show stubnets in both OSPFv2 and OSPFv3 (previously it displayed stubnets in OSPFv2).
Diffstat (limited to 'proto/ospf/rt.c')
-rw-r--r--proto/ospf/rt.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/proto/ospf/rt.c b/proto/ospf/rt.c
index d685961..9e63d2c 100644
--- a/proto/ospf/rt.c
+++ b/proto/ospf/rt.c
@@ -681,6 +681,10 @@ ospf_rt_sum(struct ospf_area *oa)
if (!(abr->n.options & ORTA_ABR))
continue;
+ /* This check is not mentioned in RFC 2328 */
+ if (abr->n.type != RTS_OSPF)
+ continue;
+
/* 16.2. (5) */
orta nf = {
.type = RTS_OSPF_IA,
@@ -966,6 +970,9 @@ ospf_ext_spf(struct proto_ospf *po)
nfa.metric2 = LSINFINITY;
}
+ /* Mark the LSA as reachable */
+ en->color = INSPF;
+
/* Whether the route is preferred in route selection according to 16.4.1 */
nfa.options = epath_preferred(&nf2->n) ? ORTA_PREF : 0;
@@ -1046,8 +1053,6 @@ ospf_rt_spf(struct proto_ospf *po)
if (po->areano == 0) return;
- po->cleanup = 1;
-
OSPF_TRACE(D_EVENTS, "Starting routing table calculation");
/* 16. (1) - Invalidate old routing table */