summaryrefslogtreecommitdiff
path: root/nest
diff options
context:
space:
mode:
authorOndrej Zajicek (work) <santiago@crfreenet.org>2019-08-06 15:29:06 +0200
committerOndrej Zajicek (work) <santiago@crfreenet.org>2019-08-06 15:29:06 +0200
commite2b530aa729f9c5973e498b45dd6f55ab669d1ac (patch)
treea82e256afe93d3fe242d17838c4accd4ccf7e81b /nest
parentf6a6a77640a9749c79a91300d130ba6b5941d408 (diff)
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.
Diffstat (limited to 'nest')
-rw-r--r--nest/proto.c2
-rw-r--r--nest/protocol.h2
2 files changed, 2 insertions, 2 deletions
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 */