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.
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)
{
{
C = (struct channel *) bgp_find_channel(p, cc->afi);
same = proto_configure_channel(P, &C, &cc->c) && same;
- C->stale = 0;
+
+ if (C)
+ C->stale = 0;
}
WALK_LIST_DELSAFE(C, C2, p->p.channels)