Commit 6c9cda6f authored by Ondřej Zajíček's avatar Ondřej Zajíček
Browse files

BGP: Fix reconfiguration with import table

Change of some options requires route refresh, but when import table is
active, channel reload is done from it instead of doing full route
refresh. So in this case we request it internally.
parent eeb2c616
Pipeline #54043 passed with stages
in 5 minutes and 49 seconds
......@@ -2073,6 +2073,7 @@ bgp_reconfigure(struct proto *P, struct proto_config *CF)
static int
bgp_channel_reconfigure(struct channel *C, struct channel_config *CC, int *import_changed, int *export_changed)
{
struct bgp_proto *p = (void *) C->proto;
struct bgp_channel *c = (void *) C;
struct bgp_channel_config *new = (void *) CC;
struct bgp_channel_config *old = c->cf;
......@@ -2095,7 +2096,13 @@ bgp_channel_reconfigure(struct channel *C, struct channel_config *CC, int *impor
if ((new->gw_mode != old->gw_mode) ||
(new->aigp != old->aigp) ||
(new->cost != old->cost))
{
/* import_changed itself does not force ROUTE_REFRESH when import_table is active */
if (c->c.in_table && (c->c.channel_state == CS_UP))
bgp_schedule_packet(p->conn, c, PKT_ROUTE_REFRESH);
*import_changed = 1;
}
if (!ipa_equal(new->next_hop_addr, old->next_hop_addr) ||
(new->next_hop_self != old->next_hop_self) ||
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment