From 462f20d50c8f86c26904f1c7316d910c2b83ae41 Mon Sep 17 00:00:00 2001 From: hasso Date: Wed, 23 Feb 2005 11:29:02 +0000 Subject: * ospf_lsa.h: New flag to the LSA structure for the SPF calculation. * ospf_lsdb.h: Export ospf_lsdb_clean_stat() function. * ospf_spf.h: Add link to the LSA stat structure into vertex. * ospf_spf.c: New functions cmp() and update_stat() to manage candidates. Remove ospf_spf_has_vertex(), ospf_vertex_lookup(), ospf_install_candidate() and ospf_spf_register() functions not needed any more. Update ospf_vertex_new(), ospf_spf_next() and ospf_spf_calculate() functions to use pqueue instead of linked list. --- ospfd/ospf_lsdb.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'ospfd/ospf_lsdb.c') diff --git a/ospfd/ospf_lsdb.c b/ospfd/ospf_lsdb.c index 94d839f2..56ab9e2a 100644 --- a/ospfd/ospf_lsdb.c +++ b/ospfd/ospf_lsdb.c @@ -180,6 +180,23 @@ ospf_lsdb_delete_all (struct ospf_lsdb *lsdb) } } +void +ospf_lsdb_clean_stat (struct ospf_lsdb *lsdb) +{ + struct route_table *table; + struct route_node *rn; + struct ospf_lsa *lsa; + int i; + + for (i = OSPF_MIN_LSA; i < OSPF_MAX_LSA; i++) + { + table = lsdb->type[i].db; + for (rn = route_top (table); rn; rn = route_next (rn)) + if ((lsa = (rn->info)) != NULL) + lsa->stat = LSA_SPF_NOT_EXPLORED; + } +} + struct ospf_lsa * ospf_lsdb_lookup (struct ospf_lsdb *lsdb, struct ospf_lsa *lsa) { -- cgit v1.2.1