summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdriano Marto Reis <adrianomarto@gmail.com>2021-12-06 00:37:51 +0100
committerAdriano Marto Reis <adrianomarto@gmail.com>2021-12-22 22:31:58 +0100
commitaa3ba071f611816afebdd2af531f449af548852f (patch)
tree4a1ca10c11447ed378353a2a21c9f0290536fd15
parentMerge pull request #8494 from donaldsharp/wfi_failures (diff)
downloadfrr-aa3ba071f611816afebdd2af531f449af548852f.tar.xz
frr-aa3ba071f611816afebdd2af531f449af548852f.zip
babeld: Presenting interface configuration parameters
* Presenting the configuration parameters enable-timestamps, max-rtt-penalty, rtt-min, and rtt-max. * Using #defines for the default configuration values instead of magic numbers. * rtt-max and rtt-min are entered and presented in milliseconds, but stored and internally used in microseconds. Signed-off-by: Adriano Marto Reis <adrianomarto@gmail.com>
-rw-r--r--babeld/babel_interface.c40
-rw-r--r--babeld/babeld.h6
2 files changed, 39 insertions, 7 deletions
diff --git a/babeld/babel_interface.c b/babeld/babel_interface.c
index 615ed9fee..1dae93b0e 100644
--- a/babeld/babel_interface.c
+++ b/babeld/babel_interface.c
@@ -484,7 +484,9 @@ DEFUN (babel_set_rtt_min,
babel_ifp = babel_get_if_nfo(ifp);
assert (babel_ifp != NULL);
- babel_ifp->rtt_min = rtt;
+ babel_ifp->rtt_min =
+ rtt
+ * 1000; // value entered in milliseconds and stored as microseconds
return CMD_SUCCESS;
}
@@ -504,7 +506,9 @@ DEFUN (babel_set_rtt_max,
babel_ifp = babel_get_if_nfo(ifp);
assert (babel_ifp != NULL);
- babel_ifp->rtt_max = rtt;
+ babel_ifp->rtt_max =
+ rtt
+ * 1000; // value entered in milliseconds and stored as microseconds
return CMD_SUCCESS;
}
@@ -1328,8 +1332,29 @@ interface_config_write (struct vty *vty)
babel_ifp->update_interval);
write++;
}
- /* Some parameters have different defaults for wired/wireless. */
- if (CHECK_FLAG (babel_ifp->flags, BABEL_IF_WIRED)) {
+ if (CHECK_FLAG(babel_ifp->flags, BABEL_IF_TIMESTAMPS)) {
+ vty_out(vty, " babel enable-timestamps\n");
+ write++;
+ }
+ if (babel_ifp->max_rtt_penalty != BABEL_DEFAULT_MAX_RTT_PENALTY) {
+ vty_out(vty, " babel max-rtt-penalty %u\n",
+ babel_ifp->max_rtt_penalty);
+ write++;
+ }
+ if (babel_ifp->rtt_decay != BABEL_DEFAULT_RTT_DECAY) {
+ vty_out(vty, " babel rtt-decay %u\n", babel_ifp->rtt_decay);
+ write++;
+ }
+ if (babel_ifp->rtt_min != BABEL_DEFAULT_RTT_MIN) {
+ vty_out(vty, " babel rtt-min %u\n", babel_ifp->rtt_min / 1000);
+ write++;
+ }
+ if (babel_ifp->rtt_max != BABEL_DEFAULT_RTT_MAX) {
+ vty_out(vty, " babel rtt-max %u\n", babel_ifp->rtt_max / 1000);
+ write++;
+ }
+ /* Some parameters have different defaults for wired/wireless. */
+ if (CHECK_FLAG (babel_ifp->flags, BABEL_IF_WIRED)) {
if (!CHECK_FLAG (babel_ifp->flags, BABEL_IF_SPLIT_HORIZON)) {
vty_out (vty, " no babel split-horizon\n");
write++;
@@ -1395,9 +1420,10 @@ babel_interface_allocate (void)
babel_ifp->bucket_time = babel_now.tv_sec;
babel_ifp->bucket = BUCKET_TOKENS_MAX;
babel_ifp->hello_seqno = (frr_weak_random() & 0xFFFF);
- babel_ifp->rtt_min = 10000;
- babel_ifp->rtt_max = 120000;
- babel_ifp->max_rtt_penalty = 150;
+ babel_ifp->rtt_decay = BABEL_DEFAULT_RTT_DECAY;
+ babel_ifp->rtt_min = BABEL_DEFAULT_RTT_MIN;
+ babel_ifp->rtt_max = BABEL_DEFAULT_RTT_MAX;
+ babel_ifp->max_rtt_penalty = BABEL_DEFAULT_MAX_RTT_PENALTY;
babel_ifp->hello_interval = BABEL_DEFAULT_HELLO_INTERVAL;
babel_ifp->update_interval = BABEL_DEFAULT_UPDATE_INTERVAL;
babel_ifp->channel = BABEL_IF_CHANNEL_INTERFERING;
diff --git a/babeld/babeld.h b/babeld/babeld.h
index 4487aae99..38859f54d 100644
--- a/babeld/babeld.h
+++ b/babeld/babeld.h
@@ -81,6 +81,11 @@ THE SOFTWARE.
#define BABEL_DEFAULT_HELLO_INTERVAL 4000
#define BABEL_DEFAULT_UPDATE_INTERVAL 16000
#define BABEL_DEFAULT_RESEND_DELAY 2000
+#define BABEL_DEFAULT_RTT_DECAY 42
+
+/* Values in microseconds */
+#define BABEL_DEFAULT_RTT_MIN 10000
+#define BABEL_DEFAULT_RTT_MAX 120000
/* In units of seconds */
#define BABEL_DEFAULT_SMOOTHING_HALF_LIFE 4
@@ -90,6 +95,7 @@ THE SOFTWARE.
#define BABEL_DEFAULT_RXCOST_WIRED 96
#define BABEL_DEFAULT_RXCOST_WIRELESS 256
+#define BABEL_DEFAULT_MAX_RTT_PENALTY 150
/* Babel structure. */
struct babel