mirror of
https://gitlab.labs.nic.cz/labs/bird.git
synced 2024-05-11 16:54:54 +00:00
Major RIP redesign
The new RIP implementation fixes plenty of old bugs and also adds support for many new features: ECMP support, link state support, BFD support, configurable split horizon and more. Most options are now per-interface.
This commit is contained in:
12
nest/route.h
12
nest/route.h
@@ -75,6 +75,8 @@ void fib_check(struct fib *); /* Consistency check for debugging */
|
||||
void fit_init(struct fib_iterator *, struct fib *); /* Internal functions, don't call */
|
||||
struct fib_node *fit_get(struct fib *, struct fib_iterator *);
|
||||
void fit_put(struct fib_iterator *, struct fib_node *);
|
||||
void fit_put_next(struct fib *f, struct fib_iterator *i, struct fib_node *n, uint hpos);
|
||||
|
||||
|
||||
#define FIB_WALK(fib, z) do { \
|
||||
struct fib_node *z, **ff = (fib)->hash_table; \
|
||||
@@ -103,6 +105,11 @@ void fit_put(struct fib_iterator *, struct fib_node *);
|
||||
|
||||
#define FIB_ITERATE_PUT(it, z) fit_put(it, z)
|
||||
|
||||
#define FIB_ITERATE_PUT_NEXT(it, fib, z) fit_put_next(fib, it, z, hpos)
|
||||
|
||||
#define FIB_ITERATE_UNLINK(it, fib) fit_get(fib, it)
|
||||
|
||||
|
||||
/*
|
||||
* Master Routing Tables. Generally speaking, each of them contains a FIB
|
||||
* with each entry pointing to a list of route entries representing routes
|
||||
@@ -196,10 +203,9 @@ typedef struct rte {
|
||||
union { /* Protocol-dependent data (metrics etc.) */
|
||||
#ifdef CONFIG_RIP
|
||||
struct {
|
||||
node garbage; /* List for garbage collection */
|
||||
byte metric; /* RIP metric */
|
||||
struct iface *from; /* Incoming iface */
|
||||
u8 metric; /* RIP metric */
|
||||
u16 tag; /* External route tag */
|
||||
struct rip_entry *entry;
|
||||
} rip;
|
||||
#endif
|
||||
#ifdef CONFIG_OSPF
|
||||
|
Reference in New Issue
Block a user