Nest: Forbid adding channels during reconfiguration
When a new channel is found during reconfiguration, do force restart of the protocol, like with any other un-reconfigurable change. The old behavior was that the new channel was added but remained in down state, even if the protocol was up, so a manual protocol restart was often necessary. In the future this should be improved such that a reconfigurable channel addition (e.g. direct) is accepted and channel is started, while an un-reconfigurable addition forces protocol restart.
This commit is contained in:
parent
baeacdcfd3
commit
d506263da7
2 changed files with 8 additions and 2 deletions
|
@ -602,7 +602,11 @@ proto_configure_channel(struct proto *p, struct channel **pc, struct channel_con
|
||||||
|
|
||||||
if (!c && cf)
|
if (!c && cf)
|
||||||
{
|
{
|
||||||
*pc = proto_add_channel(p, cf);
|
/* We could add the channel, but currently it would just stay in down state
|
||||||
|
until protocol is restarted, so it is better to force restart anyways. */
|
||||||
|
log(L_INFO "Cannot add channel %s.%s", p->name, cf->name);
|
||||||
|
return 0;
|
||||||
|
// *pc = proto_add_channel(p, cf);
|
||||||
}
|
}
|
||||||
else if (c && !cf)
|
else if (c && !cf)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1878,6 +1878,8 @@ bgp_reconfigure(struct proto *P, struct proto_config *CF)
|
||||||
{
|
{
|
||||||
C = (struct channel *) bgp_find_channel(p, cc->afi);
|
C = (struct channel *) bgp_find_channel(p, cc->afi);
|
||||||
same = proto_configure_channel(P, &C, &cc->c) && same;
|
same = proto_configure_channel(P, &C, &cc->c) && same;
|
||||||
|
|
||||||
|
if (C)
|
||||||
C->stale = 0;
|
C->stale = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue