summaryrefslogtreecommitdiff
path: root/nest/route.h
diff options
context:
space:
mode:
authorMaria Matejka <mq@ucw.cz>2020-05-01 22:26:24 +0200
committerMaria Matejka <mq@ucw.cz>2021-11-09 19:20:41 +0100
commit56c8f2f03a8631417dc3b730625c08ffca42ead2 (patch)
tree665f5a2c3e0acfe8872c741a69c2485ced3e2700 /nest/route.h
parent1c2f66f2bd9b2996c8cba0604e7ac38738399000 (diff)
Nest: Route generations and explicit tracking route propagion through pipes
Diffstat (limited to 'nest/route.h')
-rw-r--r--nest/route.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/nest/route.h b/nest/route.h
index 98d605c8..9baaeda0 100644
--- a/nest/route.h
+++ b/nest/route.h
@@ -162,7 +162,6 @@ typedef struct rtable {
char *name; /* Name of this table */
list channels; /* List of attached channels (struct channel) */
uint addr_type; /* Type of address data stored in table (NET_*) */
- int pipe_busy; /* Pipe loop detection */
int use_count; /* Number of protocols using this table */
u32 rt_count; /* Number of routes in the table */
@@ -185,6 +184,7 @@ typedef struct rtable {
byte nhu_state; /* Next Hop Update state */
struct fib_iterator prune_fit; /* Rtable prune FIB iterator */
struct fib_iterator nhu_fit; /* Next Hop Update FIB iterator */
+ struct tbf rl_pipe; /* Rate limiting token buffer for pipe collisions */
list subscribers; /* Subscribers for notifications */
struct timer *settle_timer; /* Settle time for notifications */
@@ -243,6 +243,9 @@ typedef struct rte {
u32 id; /* Table specific route id */
byte flags; /* Table-specific flags */
byte pflags; /* Protocol-specific flags */
+ u8 generation; /* If this route import is based on other previously exported route,
+ this value should be 1 + MAX(generation of the parent routes).
+ Otherwise the route is independent and this value is zero. */
} rte;
struct rte_storage {