summaryrefslogtreecommitdiffstats
path: root/bfdd
diff options
context:
space:
mode:
authorRafael Zalamena <rzalamena@opensourcerouting.org>2020-12-01 12:01:37 +0100
committerRafael Zalamena <rzalamena@opensourcerouting.org>2020-12-01 12:01:37 +0100
commit7d2de131ce99187a49095687c33afc6ce97e8f46 (patch)
tree3262c71067d403173c6c7999073460e0eb609377 /bfdd
parentMerge pull request #7621 from idryzhov/fix-cisco-access-list (diff)
downloadfrr-7d2de131ce99187a49095687c33afc6ce97e8f46.tar.xz
frr-7d2de131ce99187a49095687c33afc6ce97e8f46.zip
bfdd: session specific command type checks
Replace the unclear error message: ``` % Failed to edit configuration. YANG error(s): Schema node not found. YANG path: /frr-bfdd:bfdd/bfd/sessions/single-hop[dest-addr='192.168.253.6'][interface=''][vrf='default']/minimum-ttl ``` With: ``` frr(config-bfd-peer)# minimum-ttl 250 % Minimum TTL is only available for multi hop sessions. ! or frr(config-bfd-peer)# echo % Echo mode is only available for single hop sessions. frr(config-bfd-peer)# echo-interval 300 % Echo mode is only available for single hop sessions. ``` Reported-by: Trae Santiago Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
Diffstat (limited to 'bfdd')
-rw-r--r--bfdd/bfdd_cli.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/bfdd/bfdd_cli.c b/bfdd/bfdd_cli.c
index ddec83397..b9e790361 100644
--- a/bfdd/bfdd_cli.c
+++ b/bfdd/bfdd_cli.c
@@ -51,6 +51,11 @@
/*
* Prototypes.
*/
+static bool
+bfd_cli_is_single_hop(struct vty *vty)
+{
+ return strstr(VTY_CURR_XPATH, "/single-hop") != NULL;
+}
/*
* Functions.
@@ -293,6 +298,11 @@ DEFPY_YANG(
"Expect packets with at least this TTL\n"
"Minimum TTL expected\n")
{
+ if (bfd_cli_is_single_hop(vty)) {
+ vty_out(vty, "%% Minimum TTL is only available for multi hop sessions.\n");
+ return CMD_WARNING_CONFIG_FAILED;
+ }
+
if (no)
nb_cli_enqueue_change(vty, "./minimum-ttl", NB_OP_DESTROY,
NULL);
@@ -408,6 +418,11 @@ DEFPY_YANG(
NO_STR
"Configure echo mode\n")
{
+ if (!bfd_cli_is_single_hop(vty)) {
+ vty_out(vty, "%% Echo mode is only available for single hop sessions.\n");
+ return CMD_WARNING_CONFIG_FAILED;
+ }
+
nb_cli_enqueue_change(vty, "./echo-mode", NB_OP_MODIFY,
no ? "false" : "true");
return nb_cli_apply_changes(vty, NULL);
@@ -431,6 +446,11 @@ DEFPY_YANG(
{
char value[32];
+ if (!bfd_cli_is_single_hop(vty)) {
+ vty_out(vty, "%% Echo mode is only available for single hop sessions.\n");
+ return CMD_WARNING_CONFIG_FAILED;
+ }
+
snprintf(value, sizeof(value), "%ld", interval * 1000);
nb_cli_enqueue_change(vty, "./desired-echo-transmission-interval",
NB_OP_MODIFY, value);