mirror of
https://gitlab.nic.cz/labs/bird.git
synced 2024-12-22 01:31:55 +00:00
Kill remaining master_table relics in KRT code.
Make all protocols pass routing table to rte_update and rte_discard.
This commit is contained in:
parent
0e02abfd57
commit
4f1a6d27b9
@ -36,7 +36,7 @@ dev_ifa_notify(struct proto *p, unsigned c, struct ifa *ad)
|
|||||||
debug("dev_if_notify: device shutdown: prefix not found\n");
|
debug("dev_if_notify: device shutdown: prefix not found\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
rte_update(n, p, NULL);
|
rte_update(p->table, n, p, NULL);
|
||||||
}
|
}
|
||||||
else if (c & IF_CHANGE_UP)
|
else if (c & IF_CHANGE_UP)
|
||||||
{
|
{
|
||||||
@ -61,7 +61,7 @@ dev_ifa_notify(struct proto *p, unsigned c, struct ifa *ad)
|
|||||||
e = rte_get_temp(a);
|
e = rte_get_temp(a);
|
||||||
e->net = n;
|
e->net = n;
|
||||||
e->pflags = 0;
|
e->pflags = 0;
|
||||||
rte_update(n, p, e);
|
rte_update(p->table, n, p, e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -223,7 +223,7 @@ advertise_entry( struct proto *p, struct rip_block *b, ip_addr whotoldme )
|
|||||||
r->u.rip.tag = ntohl(b->tag);
|
r->u.rip.tag = ntohl(b->tag);
|
||||||
r->net = n;
|
r->net = n;
|
||||||
r->pflags = 0; /* Here go my flags */
|
r->pflags = 0; /* Here go my flags */
|
||||||
rte_update( n, p, r );
|
rte_update( p->table, n, p, r );
|
||||||
DBG( "done\n" );
|
DBG( "done\n" );
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -356,7 +356,7 @@ rip_timer(timer *t)
|
|||||||
|
|
||||||
if (now - rte->lastmod > P_CF->garbage_time) {
|
if (now - rte->lastmod > P_CF->garbage_time) {
|
||||||
debug( "RIP: entry is too old: " ); rte_dump( rte );
|
debug( "RIP: entry is too old: " ); rte_dump( rte );
|
||||||
rte_discard(rte);
|
rte_discard(p->table, rte);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -40,7 +40,7 @@ static_install(struct proto *p, struct static_route *r, struct iface *ifa)
|
|||||||
e = rte_get_temp(aa);
|
e = rte_get_temp(aa);
|
||||||
e->net = n;
|
e->net = n;
|
||||||
e->pflags = 0;
|
e->pflags = 0;
|
||||||
rte_update(n, p, e);
|
rte_update(p->table, n, p, e);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -51,7 +51,7 @@ static_remove(struct proto *p, struct static_route *r)
|
|||||||
DBG("Removing static route %I/%d\n", r->net, r->masklen);
|
DBG("Removing static route %I/%d\n", r->net, r->masklen);
|
||||||
n = net_find(p->table, r->net, r->masklen);
|
n = net_find(p->table, r->net, r->masklen);
|
||||||
if (n)
|
if (n)
|
||||||
rte_update(n, p, NULL);
|
rte_update(p->table, n, p, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
|
@ -86,7 +86,7 @@ krt_parse_entry(byte *ent, struct krt_proto *p)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
net = net_get(&master_table, dest, masklen);
|
net = net_get(p->p.table, dest, masklen);
|
||||||
|
|
||||||
a.proto = &p->p;
|
a.proto = &p->p;
|
||||||
a.source = RTS_INHERIT;
|
a.source = RTS_INHERIT;
|
||||||
|
@ -594,7 +594,7 @@ nl_parse_route(struct krt_proto *p, struct nlmsghdr *h, int scan)
|
|||||||
src = KRT_SRC_ALIEN;
|
src = KRT_SRC_ALIEN;
|
||||||
}
|
}
|
||||||
|
|
||||||
net = net_get(&master_table, dst, i->rtm_dst_len);
|
net = net_get(p->p.table, dst, i->rtm_dst_len);
|
||||||
ra.proto = &p->p;
|
ra.proto = &p->p;
|
||||||
ra.source = RTS_INHERIT;
|
ra.source = RTS_INHERIT;
|
||||||
ra.scope = SCOPE_UNIVERSE;
|
ra.scope = SCOPE_UNIVERSE;
|
||||||
|
@ -132,7 +132,7 @@ krt_learn_announce_update(struct krt_proto *p, rte *e)
|
|||||||
ee->net = nn;
|
ee->net = nn;
|
||||||
ee->pflags = 0;
|
ee->pflags = 0;
|
||||||
ee->u.krt = e->u.krt;
|
ee->u.krt = e->u.krt;
|
||||||
rte_update(nn, &p->p, ee);
|
rte_update(p->p.table, nn, &p->p, ee);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -140,7 +140,7 @@ krt_learn_announce_delete(struct krt_proto *p, net *n)
|
|||||||
{
|
{
|
||||||
n = net_find(p->p.table, n->n.prefix, n->n.pxlen);
|
n = net_find(p->p.table, n->n.prefix, n->n.pxlen);
|
||||||
if (n)
|
if (n)
|
||||||
rte_update(n, &p->p, NULL);
|
rte_update(p->p.table, n, &p->p, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -356,7 +356,7 @@ krt_dump_attrs(rte *e)
|
|||||||
static void
|
static void
|
||||||
krt_flush_routes(struct krt_proto *p)
|
krt_flush_routes(struct krt_proto *p)
|
||||||
{
|
{
|
||||||
struct rtable *t = &master_table;
|
struct rtable *t = p->p.table;
|
||||||
|
|
||||||
DBG("Flushing kernel routes...\n");
|
DBG("Flushing kernel routes...\n");
|
||||||
FIB_WALK(&t->fib, f)
|
FIB_WALK(&t->fib, f)
|
||||||
@ -466,7 +466,7 @@ static void
|
|||||||
krt_prune(struct krt_proto *p)
|
krt_prune(struct krt_proto *p)
|
||||||
{
|
{
|
||||||
struct proto *pp = &p->p;
|
struct proto *pp = &p->p;
|
||||||
struct rtable *t = &master_table;
|
struct rtable *t = p->p.table;
|
||||||
struct fib_node *f;
|
struct fib_node *f;
|
||||||
|
|
||||||
DBG("Pruning routes...\n");
|
DBG("Pruning routes...\n");
|
||||||
@ -547,7 +547,7 @@ krt_got_route_async(struct krt_proto *p, rte *e, int new)
|
|||||||
/* Fall-thru */
|
/* Fall-thru */
|
||||||
default:
|
default:
|
||||||
DBG("Discarding\n");
|
DBG("Discarding\n");
|
||||||
rte_update(net, &p->p, NULL);
|
rte_update(p->p.table, net, &p->p, NULL);
|
||||||
}
|
}
|
||||||
rte_free(e);
|
rte_free(e);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user