mirror of
https://gitlab.nic.cz/labs/bird.git
synced 2024-12-22 17:51:53 +00:00
FIB_WALK and friends are now slightly more friendly.
This commit is contained in:
parent
66e53309ac
commit
236d4eb8ce
18
nest/route.h
18
nest/route.h
@ -51,15 +51,13 @@ void *fib_get(struct fib *, ip_addr *, int); /* Find or create new if nonexiste
|
|||||||
void fib_delete(struct fib *, void *); /* Remove fib entry */
|
void fib_delete(struct fib *, void *); /* Remove fib entry */
|
||||||
void fib_free(struct fib *); /* Destroy the fib */
|
void fib_free(struct fib *); /* Destroy the fib */
|
||||||
|
|
||||||
#define FIB_WALK(fib, z, op) do { \
|
#define FIB_WALK(fib, z) do { \
|
||||||
struct fib_node *z, **ff = (fib)->hash_table; \
|
struct fib_node *z, **ff = (fib)->hash_table; \
|
||||||
unsigned int count = (fib)->hash_size; \
|
unsigned int count = (fib)->hash_size; \
|
||||||
while (count--) \
|
while (count--) \
|
||||||
for(z = *ff++; z; z=z->next) \
|
for(z = *ff++; z; z=z->next)
|
||||||
{ \
|
|
||||||
op; \
|
#define FIB_WALK_END } while (0)
|
||||||
} \
|
|
||||||
} while (0)
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Master Routing Tables. Generally speaking, each of them is a list
|
* Master Routing Tables. Generally speaking, each of them is a list
|
||||||
@ -120,12 +118,12 @@ extern rtable master_table;
|
|||||||
|
|
||||||
void rt_init(void);
|
void rt_init(void);
|
||||||
void rt_setup(rtable *, char *);
|
void rt_setup(rtable *, char *);
|
||||||
net *net_find(rtable *tab, unsigned tos, ip_addr mask, unsigned len);
|
net *net_find(rtable *tab, unsigned tos, ip_addr addr, unsigned len);
|
||||||
net *net_get(rtable *tab, unsigned tos, ip_addr mask, unsigned len);
|
net *net_get(rtable *tab, unsigned tos, ip_addr addr, unsigned len);
|
||||||
rte *rte_find(net *net, struct proto *p);
|
rte *rte_find(net *net, struct proto *p);
|
||||||
rte *rte_get_temp(struct rtattr *);
|
rte *rte_get_temp(struct rtattr *);
|
||||||
void rte_update(net *net, rte *new);
|
void rte_update(net *net, struct proto *p, rte *new);
|
||||||
void rte_dump(rte *);
|
void rte_dump(net *, rte *);
|
||||||
void rt_dump(rtable *);
|
void rt_dump(rtable *);
|
||||||
void rt_dump_all(void);
|
void rt_dump_all(void);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user