]> git.puffer.fish Git - matthieu/frr.git/commitdiff
pathd: fix 'no msd' command not possible under pcc node
authorPhilippe Guibert <philippe.guibert@6wind.com>
Thu, 9 Nov 2023 13:49:18 +0000 (14:49 +0100)
committerPhilippe Guibert <philippe.guibert@6wind.com>
Tue, 21 Nov 2023 17:02:10 +0000 (18:02 +0100)
It should be possible to reset the configured msd value,
and not mentioning the previous msd value.

> ubuntu2204(config-sr-te-pcep-pcc)# no msd
> % Command incomplete: no msd
> ubuntu2204(config-sr-te-pcep-pcc)#

Fix this by defining the msd parameter optional, and
separating the 'no msd' command from the 'msd' command.

Fixe: efba0985fcdd ("pathd: Add optional support for PCEP to pathd")

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
doc/user/pathd.rst
pathd/path_pcep_cli.c

index ec107fbe47253356dbe7519141db441c04720fdf..fb238100a1395770e3e524356c0f357a60a92e1b 100644 (file)
@@ -475,6 +475,9 @@ Configuration Commands
 
    Specify the maximum SID depth in a PCC definition.
 
+.. clicmd:: no msd [(1-32)]
+
+   Default the maximum SID depth to 4.
 
 .. clicmd:: peer WORD [precedence (1-255)]
 
index 298dd74d23e9dcdcc0195bb5ffa2ebcb041ce0be..f0c145c5d6cd26a38f0786dcd0f0564c771ab53a 100644 (file)
@@ -1026,7 +1026,7 @@ static int path_pcep_cli_pcc_pcc_msd(struct vty *vty, const char *msd_str,
 {
        if (reset)
                pcc_msd_configured_g = false;
-       else {
+       else if (msd_str) {
                pcc_msd_configured_g = true;
                PCEP_VTYSH_INT_ARG_CHECK(msd_str, msd, pcc_msd_g, 0, 33);
        }
@@ -2043,12 +2043,22 @@ DEFPY(pcep_cli_no_pcc,
 
 DEFPY(pcep_cli_pcc_pcc_msd,
       pcep_cli_pcc_pcc_msd_cmd,
-      "[no] msd (1-32)",
+      "msd (1-32)",
       NO_STR
       "PCC maximum SID depth \n"
       "PCC maximum SID depth value\n")
 {
-       return path_pcep_cli_pcc_pcc_msd(vty, msd_str, msd, no);
+       return path_pcep_cli_pcc_pcc_msd(vty, msd_str, msd, false);
+}
+
+DEFPY(no_pcep_cli_pcc_pcc_msd,
+      no_pcep_cli_pcc_pcc_msd_cmd,
+      "no msd [(1-32)]",
+      NO_STR
+      "PCC maximum SID depth \n"
+      "PCC maximum SID depth value\n")
+{
+       return path_pcep_cli_pcc_pcc_msd(vty, msd_str, msd, true);
 }
 
 DEFPY(pcep_cli_pcc_pcc_peer,
@@ -2153,6 +2163,7 @@ void pcep_cli_init(void)
        install_element(PCEP_NODE, &pcep_cli_no_pcc_cmd);
        install_element(PCEP_PCC_NODE, &pcep_cli_pcc_pcc_peer_cmd);
        install_element(PCEP_PCC_NODE, &pcep_cli_pcc_pcc_msd_cmd);
+       install_element(PCEP_PCC_NODE, &no_pcep_cli_pcc_pcc_msd_cmd);
 
        /* Top commands */
        install_element(CONFIG_NODE, &pcep_cli_debug_cmd);