Gee, I just sent you a private email about exactly that :) I fully support that. Otherwise the workflow includes a piece of "did it really come back up? Oh I better check. Oh it didn't, I have to down it then up it"
And then, between the check and forcing it down, it may in fact have come up! Claudio Jeker <cje...@diehard.n-r-g.com> wrote: > I just changed the way IdleHold time is reset to the default values. > Another place I think it makes sense to reset these backoff values is > when an admin issues a bgpctl nei 192.0.2.2 clear or up. > > This should help bringing sessions up between systems after instabilities > (or in my case when testing too much and therefor reseting the session > over and over again). > > OK? > -- > :wq Claudio > > Index: control.c > =================================================================== > RCS file: /cvs/src/usr.sbin/bgpd/control.c,v > retrieving revision 1.98 > diff -u -p -r1.98 control.c > --- control.c 8 Aug 2019 20:06:29 -0000 1.98 > +++ control.c 12 Aug 2019 14:11:12 -0000 > @@ -376,6 +376,9 @@ control_dispatch_msg(struct pollfd *pfd, > bgp_fsm(p, EVNT_START); > p->conf.down = 0; > p->conf.shutcomm[0] = '\0'; > + p->IdleHoldTime = > + INTERVAL_IDLE_HOLD_INITIAL; > + p->errcnt = 0; > control_result(c, CTL_RES_OK); > break; > case IMSG_CTL_NEIGHBOR_DOWN: > @@ -390,6 +393,9 @@ control_dispatch_msg(struct pollfd *pfd, > strlcpy(p->conf.shutcomm, > neighbor->shutcomm, > sizeof(neighbor->shutcomm)); > + p->IdleHoldTime = > + INTERVAL_IDLE_HOLD_INITIAL; > + p->errcnt = 0; > if (!p->conf.down) { > session_stop(p, > ERR_CEASE_ADMIN_RESET); >