pathd: fix 'no msd' command not possible under pcc node

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: efba0985fc ("pathd: Add optional support for PCEP to pathd")

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
This commit is contained in:
Philippe Guibert 2023-11-09 14:49:18 +01:00
parent 4730aeb5e5
commit d6d2527448
2 changed files with 17 additions and 3 deletions

View 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)]

View 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);