#include "memory.h"
DECLARE_MTYPE(ROUTE_TABLE)
+DECLARE_MTYPE(ROUTE_NODE)
/*
* Forward declarations.
* Delegate that performs certain functions for this table.
*/
route_table_delegate_t *delegate;
+ void (*cleanup)(struct route_table *, struct route_node *);
unsigned long count;
const struct prefix *);
extern struct route_node *route_node_lookup (const struct route_table *,
const struct prefix *);
+extern struct route_node *route_node_lookup_maynull (const struct route_table *,
+ const struct prefix *);
extern struct route_node *route_lock_node (struct route_node *node);
extern struct route_node *route_node_match (const struct route_table *,
const struct prefix *);
extern struct route_node *route_node_match_ipv4 (const struct route_table *,
const struct in_addr *);
-#ifdef HAVE_IPV6
extern struct route_node *route_node_match_ipv6 (const struct route_table *,
const struct in6_addr *);
-#endif /* HAVE_IPV6 */
extern unsigned long route_table_count (const struct route_table *);
+extern struct route_node *route_node_create (route_table_delegate_t *,
+ struct route_table *);
+extern void route_node_destroy (route_table_delegate_t *,
+ struct route_table *, struct route_node *);
+
extern struct route_node *
route_table_get_next (const struct route_table *table, struct prefix *p);
extern int