From e2b530aa729f9c5973e498b45dd6f55ab669d1ac Mon Sep 17 00:00:00 2001 From: "Ondrej Zajicek (work)" Date: Tue, 6 Aug 2019 15:29:06 +0200 Subject: BGP: Improve reconfiguration Several BGP channel options (including 'next hop self') could be reconfigured without session reset, with just route refeed/refresh. The patch improves reconfiguration code to do it that way. --- nest/proto.c | 2 +- nest/protocol.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'nest') diff --git a/nest/proto.c b/nest/proto.c index 2fb4e96f..18cf214b 100644 --- a/nest/proto.c +++ b/nest/proto.c @@ -619,7 +619,7 @@ channel_reconfigure(struct channel *c, struct channel_config *cf) c->last_tx_filter_change = current_time(); /* Execute channel-specific reconfigure hook */ - if (c->channel->reconfigure && !c->channel->reconfigure(c, cf)) + if (c->channel->reconfigure && !c->channel->reconfigure(c, cf, &import_changed, &export_changed)) return 0; /* If the channel is not open, it has no routes and we cannot reload it anyways */ diff --git a/nest/protocol.h b/nest/protocol.h index da12c771..297afba7 100644 --- a/nest/protocol.h +++ b/nest/protocol.h @@ -451,7 +451,7 @@ struct channel_class { uint config_size; /* Size of channel config data structure */ void (*init)(struct channel *, struct channel_config *); /* Create new instance */ - int (*reconfigure)(struct channel *, struct channel_config *); /* Try to reconfigure instance, returns success */ + int (*reconfigure)(struct channel *, struct channel_config *, int *import_changed, int *export_changed); /* Try to reconfigure instance, returns success */ int (*start)(struct channel *); /* Start the instance */ void (*shutdown)(struct channel *); /* Stop the instance */ void (*cleanup)(struct channel *); /* Channel finished flush */ -- cgit v1.2.3