+2007-07-06 Atis Elsts <atis@mikrotik.com>
+
+ * pqueue.{c,h}: Export trickle_up
+
2007-07-26 Paul Jakma <paul.jakma@sun.com>
* log.c: (mes_lookup) warning about code not being in same-number
#define RIGHT_OF(x) (2 * x + 2)
#define HAVE_CHILD(x,q) (x < (q)->size / 2)
-static void
+void
trickle_up (int index, struct pqueue *queue)
{
void *tmp;
extern void *pqueue_dequeue (struct pqueue *queue);
extern void trickle_down (int index, struct pqueue *queue);
+extern void trickle_up (int index, struct pqueue *queue);
#endif /* _ZEBRA_PQUEUE_H */
+2007-08-07 Atis Elsts <atis@mikrotik.com>
+
+ * ospf_spf.c: (ospf_spf_next) Sort heap in correct direction
+ after vertex cost is changed, thus fixing incorrect SPF
+ calculation on certain topologies.
+
2007-08-06 Paul Jakma <paul.jakma@sun.com>
* ospf_lsa.c: (router_lsa_flags) Bug #331, NSSA regression caused
* will flush the old parents
*/
if (ospf_nexthop_calculation (area, v, w, l, distance))
- /* Decrease the key of the node in the heap,
- * re-sort the heap. */
- trickle_down (w_lsa->stat, candidate);
+ /* Decrease the key of the node in the heap.
+ * trickle-sort it up towards root, just in case this
+ * node should now be the new root due the cost change.
+ * (pqueu_{de,en}queue
+ */
+ trickle_up (w_lsa->stat, candidate);
}
} /* end W is already on the candidate list */
} /* end loop over the links in V's LSA */