* Routing entry hooks (called only for routes belonging to this protocol):
*
* rte_recalculate Called at the beginning of the best route selection
-- * rte_better Compare two rte's and decide which one is better (1=first, 0=second).
-- * rte_same Compare two rte's and decide whether they are identical (1=yes, 0=no).
* rte_mergable Compare two rte's and decide whether they could be merged (1=yes, 0=no).
* rte_insert Called whenever a rte is inserted to a routing table.
* rte_remove Called whenever a rte is removed from the routing table.
*/
int (*rte_recalculate)(struct rtable *, struct network *, struct rte *, struct rte *, struct rte *);
-- int (*rte_better)(struct rte *, struct rte *);
int (*rte_mergable)(struct rte *, struct rte *);
void (*rte_insert)(struct network *, struct rte *);
void (*rte_remove)(struct network *, struct rte *);
krt_sys_postconfig(cf);
}
++struct rte_owner_class krt_rte_owner_class = {
++ .rte_better = krt_rte_better,
++};
++
static struct proto *
krt_init(struct proto_config *CF)
{
p->p.if_notify = krt_if_notify;
p->p.reload_routes = krt_reload_routes;
p->p.feed_end = krt_feed_end;
- p->p.rte_better = krt_rte_better;
+
++ p->p.sources.class = &krt_rte_owner_class;
+
krt_sys_init(p);
return &p->p;
}