int rte_better(rte *new, rte *old)
{ DUMMY; }
-/**
- * rte_same - compare two routes
- * @e1: route
- * @e2: route
- *
- * The rte_same() hook tests whether the routes @e1 and @e2 belonging
- * to the same protocol instance have identical contents. Contents of
- * &rta, all the extended attributes and &rte preference are checked
- * by the core code, no need to take care of them here.
- *
- * Result: 1 if @e1 is identical to @e2, 0 otherwise.
- */
-int rte_same(rte *e1, rte *e2)
-{ DUMMY; }
-
/**
* rte_insert - notify instance about route insertion
* @n: network
*
* 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_same)(struct rte *, struct rte *);
int (*rte_mergable)(struct rte *, struct rte *);
struct rte * (*rte_modify)(struct rte *, struct linpool *);
void (*rte_insert)(struct network *, struct rte *);
/* rte.flags are not checked, as they are mostly internal to rtable */
return
x->attrs == y->attrs &&
- x->pflags == y->pflags &&
- (!x->attrs->src->proto->rte_same || x->attrs->src->proto->rte_same(x, y)) &&
rte_is_filtered(x) == rte_is_filtered(y);
}