Fixes BGP subcode during global shutdown.
This commit is contained in:
parent
bbcfd5a048
commit
5400c0e7f9
4 changed files with 12 additions and 8 deletions
|
@ -477,7 +477,7 @@ to zero to disable it. An empty <cf><m/switch/</cf> is equivalent to <cf/on/
|
|||
problems in details of its behavior -- the number of exported
|
||||
routes can temporarily exceed the limit without triggering it
|
||||
during protocol reload, exported routes counter ignores route
|
||||
blocking and block action also blocks route updates of alread
|
||||
blocking and block action also blocks route updates of already
|
||||
accepted routes -- and these details will probably change in
|
||||
the future. Default: <cf/none/.
|
||||
|
||||
|
|
12
nest/proto.c
12
nest/proto.c
|
@ -512,20 +512,22 @@ protos_commit(struct config *new, struct config *old, int force_reconfig, int ty
|
|||
else if (!p->disabled && nc->disabled)
|
||||
log(L_INFO "Disabling protocol %s", p->name);
|
||||
|
||||
PD(p, "Restarting");
|
||||
p->down_code = nc->disabled ? PDC_CF_DISABLE : PDC_CF_RESTART;
|
||||
p->cf_new = nc;
|
||||
}
|
||||
else
|
||||
else if (!shutting_down)
|
||||
{
|
||||
if (!shutting_down)
|
||||
log(L_INFO "Removing protocol %s", p->name);
|
||||
PD(p, "Unconfigured");
|
||||
p->down_code = PDC_CF_REMOVE;
|
||||
p->cf_new = NULL;
|
||||
}
|
||||
p->reconfiguring = 1;
|
||||
else /* global shutdown */
|
||||
{
|
||||
p->down_code = PDC_CMD_SHUTDOWN;
|
||||
p->cf_new = NULL;
|
||||
}
|
||||
|
||||
p->reconfiguring = 1;
|
||||
config_add_obstacle(old);
|
||||
proto_rethink_goal(p);
|
||||
}
|
||||
|
|
|
@ -222,8 +222,9 @@ struct proto_spec {
|
|||
#define PDC_CF_RESTART 0x03 /* Restart due to reconfiguration */
|
||||
#define PDC_CMD_DISABLE 0x11 /* Result of disable command */
|
||||
#define PDC_CMD_RESTART 0x12 /* Result of restart command */
|
||||
#define PDC_CMD_SHUTDOWN 0x13 /* Result of global shutdown */
|
||||
#define PDC_IN_LIMIT_HIT 0x21 /* Route import limit reached */
|
||||
#define PDC_OUT_LIMIT_HIT 0x22 /* Route export limit reached - not implemented */
|
||||
#define PDC_OUT_LIMIT_HIT 0x22 /* Route export limit reached */
|
||||
|
||||
|
||||
void *proto_new(struct proto_config *, unsigned size);
|
||||
|
|
|
@ -870,6 +870,7 @@ bgp_shutdown(struct proto *P)
|
|||
break;
|
||||
|
||||
case PDC_CMD_DISABLE:
|
||||
case PDC_CMD_SHUTDOWN:
|
||||
subcode = 2; // Errcode 6, 2 - administrative shutdown
|
||||
break;
|
||||
|
||||
|
|
Loading…
Reference in a new issue