0
0
mirror of https://gitlab.nic.cz/labs/bird.git synced 2024-11-09 20:58:44 +00:00

Nest: No automatic ROA reload on non-reloadable channels

This commit is contained in:
Ondrej Zajicek (work) 2021-03-08 20:45:22 +01:00
parent d3782c72b9
commit 211fe69c98

View File

@ -62,6 +62,9 @@ static inline int proto_is_done(struct proto *p)
static inline int channel_is_active(struct channel *c) static inline int channel_is_active(struct channel *c)
{ return (c->channel_state == CS_START) || (c->channel_state == CS_UP); } { return (c->channel_state == CS_START) || (c->channel_state == CS_UP); }
static inline int channel_reloadable(struct channel *c)
{ return c->proto->reload_routes && c->reloadable; }
static inline void static inline void
channel_log_state_change(struct channel *c) channel_log_state_change(struct channel *c)
{ {
@ -389,6 +392,10 @@ channel_roa_subscribe_filter(struct channel *c, int dir)
if ((f == FILTER_ACCEPT) || (f == FILTER_REJECT)) if ((f == FILTER_ACCEPT) || (f == FILTER_REJECT))
return; return;
/* No automatic reload for non-reloadable channels */
if (dir && !channel_reloadable(c))
valid = 0;
/* No automatic reload for BGP channels without in_table / out_table */ /* No automatic reload for BGP channels without in_table / out_table */
if (c->channel == &channel_bgp) if (c->channel == &channel_bgp)
valid = dir ? !!c->in_table : !!c->out_table; valid = dir ? !!c->in_table : !!c->out_table;
@ -717,12 +724,6 @@ channel_request_feeding(struct channel *c)
channel_log_state_change(c); channel_log_state_change(c);
} }
static inline int
channel_reloadable(struct channel *c)
{
return c->proto->reload_routes && c->reloadable;
}
static void static void
channel_request_reload(struct channel *c) channel_request_reload(struct channel *c)
{ {