Skip to content

Commit

Permalink
BGP: Fix reconfiguration with import table
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
Ondrej Zajicek (work) committed Oct 10, 2019
1 parent eeb2c61 commit 6c9cda6
Showing 1 changed file with 7 additions and 0 deletions.
7 changes: 7 additions & 0 deletions proto/bgp/bgp.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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) ||
Expand Down

0 comments on commit 6c9cda6

Please sign in to comment.