diff options
author | Ondrej Zajicek (work) <santiago@crfreenet.org> | 2019-08-13 18:22:07 +0200 |
---|---|---|
committer | Ondrej Zajicek (work) <santiago@crfreenet.org> | 2019-08-14 06:02:33 +0200 |
commit | b7d7599ce3576f28310af18b403fed49a0840b67 (patch) | |
tree | 7d7dc8f052d564c3fdbc49eea529f22850ab44ff /nest/protocol.h | |
parent | dfe63ed84d42178a53b01071c64f23250e74d6d9 (diff) |
BGP: implement Adj-RIB-Out
The patch implements optional internal export table to a channel and
hooks it to BGP so it can be used as Adj-RIB-Out. When enabled, all
exported (post-filtered) routes are stored there. An export table can be
examined using e.g. 'show route export table bgp1.ipv4'.
Diffstat (limited to 'nest/protocol.h')
-rw-r--r-- | nest/protocol.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/nest/protocol.h b/nest/protocol.h index 297afba7..17af2e17 100644 --- a/nest/protocol.h +++ b/nest/protocol.h @@ -539,6 +539,8 @@ struct channel { struct event *reload_event; /* Event responsible for reloading from in_table */ struct fib_iterator reload_fit; /* Iterator in in_table used during reloading */ u8 reload_active; /* Iterator reload_fit is linked */ + + struct rtable *out_table; /* Internal table for exported routes */ }; @@ -607,6 +609,7 @@ int proto_configure_channel(struct proto *p, struct channel **c, struct channel_ void channel_set_state(struct channel *c, uint state); void channel_setup_in_table(struct channel *c); +void channel_setup_out_table(struct channel *c); void channel_schedule_reload(struct channel *c); static inline void channel_init(struct channel *c) { channel_set_state(c, CS_START); } |