Merge pull request #11155 from LabNConsulting/ziemba/link-delay-min-max

zebra bugfix interface link-param: allow delay min <= avg <= max (was: min<avg<max)
This commit is contained in:
Mark Stapp 2022-05-10 11:31:52 -04:00 committed by GitHub
commit 00358e444e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -3557,12 +3557,20 @@ DEFUN (link_params_delay,
uint8_t update = 0; uint8_t update = 0;
if (argc == 2) { if (argc == 2) {
/* Check new delay value against old Min and Max delays if set /*
* Check new delay value against old Min and Max delays if set
*
* RFC 7471 Section 4.2.7:
* It is possible for min delay and max delay to be
* the same value.
*
* Therefore, it is also allowed that the average
* delay be equal to the min delay or max delay.
*/ */
if (IS_PARAM_SET(iflp, LP_MM_DELAY) if (IS_PARAM_SET(iflp, LP_MM_DELAY)
&& (delay <= iflp->min_delay || delay >= iflp->max_delay)) { && (delay < iflp->min_delay || delay > iflp->max_delay)) {
vty_out(vty, vty_out(vty,
"Average delay should be comprise between Min (%d) and Max (%d) delay\n", "Average delay should be in range Min (%d) - Max (%d) delay\n",
iflp->min_delay, iflp->max_delay); iflp->min_delay, iflp->max_delay);
return CMD_WARNING_CONFIG_FAILED; return CMD_WARNING_CONFIG_FAILED;
} }
@ -3580,10 +3588,13 @@ DEFUN (link_params_delay,
update = 1; update = 1;
} }
} else { } else {
/* Check new delays value coherency */ /*
if (delay <= low || delay >= high) { * Check new delays value coherency. See above note
* regarding average delay equal to min/max allowed
*/
if (delay < low || delay > high) {
vty_out(vty, vty_out(vty,
"Average delay should be comprise between Min (%d) and Max (%d) delay\n", "Average delay should be in range Min (%d) - Max (%d) delay\n",
low, high); low, high);
return CMD_WARNING_CONFIG_FAILED; return CMD_WARNING_CONFIG_FAILED;
} }