mirror of
https://github.com/FRRouting/frr.git
synced 2025-04-30 13:37:17 +02:00
bfdd: Only apply increased transmission interval after Poll Sequence
If bfd.DesiredMinTxInterval is increased and bfd.SessionState is Up, the actual transmission interval used MUST NOT change until the Poll Sequence described above has terminated. Signed-off-by: zmw12306 <zmw12306@gmail.com>
This commit is contained in:
parent
44c4743e08
commit
27292c0dc1
|
@ -1458,6 +1458,8 @@ void bs_echo_timer_handler(struct bfd_session *bs)
|
|||
*/
|
||||
void bs_final_handler(struct bfd_session *bs)
|
||||
{
|
||||
uint64_t old_xmt_TO = bs->xmt_TO;
|
||||
|
||||
/* Start using our new timers. */
|
||||
bs->cur_timers.desired_min_tx = bs->timers.desired_min_tx;
|
||||
bs->cur_timers.required_min_rx = bs->timers.required_min_rx;
|
||||
|
@ -1485,6 +1487,12 @@ void bs_final_handler(struct bfd_session *bs)
|
|||
bs->xmt_TO = bs->timers.desired_min_tx;
|
||||
else
|
||||
bs->xmt_TO = bs->remote_timers.required_min_rx;
|
||||
|
||||
/* Only apply increased transmission interval after Poll Sequence */
|
||||
if (bs->ses_state == PTM_BFD_UP && bs->xmt_TO > old_xmt_TO) {
|
||||
bs->xmt_TO = old_xmt_TO; /* Keep old timing until Poll Sequence done */
|
||||
return;
|
||||
}
|
||||
|
||||
/* Apply new transmission timer immediately. */
|
||||
ptm_bfd_start_xmt_timer(bs, false);
|
||||
|
|
Loading…
Reference in a new issue