summaryrefslogtreecommitdiff
path: root/pathd/path_pcep_cli.c
diff options
context:
space:
mode:
authorFarid Mihoub <farid.mihoub@6wind.com>2023-10-31 11:35:29 +0100
committerFarid Mihoub <farid.mihoub@6wind.com>2023-10-31 12:02:42 +0100
commit465130ac2a8ae48fbe5197676e54dfb681b327ad (patch)
tree15a5ad601f41311fdacfe31084f5e95908db53a7 /pathd/path_pcep_cli.c
parent444b08d16afa192c4a9d7209f1328ac95f7b289b (diff)
pathd: add no pcep command
Add "no pcep" command in segment-routing/traffic-engineering context to deconfigure the whole pcep configuration (pce-config, pce and pcc). Signed-off-by: Farid Mihoub <farid.mihoub@6wind.com>
Diffstat (limited to 'pathd/path_pcep_cli.c')
-rw-r--r--pathd/path_pcep_cli.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/pathd/path_pcep_cli.c b/pathd/path_pcep_cli.c
index 2da321c02c..c46649b0db 100644
--- a/pathd/path_pcep_cli.c
+++ b/pathd/path_pcep_cli.c
@@ -1822,6 +1822,35 @@ DEFPY_NOSH(
return CMD_SUCCESS;
}
+DEFPY(
+ pcep_cli_no_pcep,
+ pcep_cli_no_pcep_cmd,
+ "no pcep",
+ NO_STR
+ "PCEP configuration\n")
+{
+ /* Delete PCCs */
+ path_pcep_cli_pcc_delete(vty);
+
+ for (int i = 0; i < MAX_PCE; i++) {
+ /* Delete PCEs */
+ if (pcep_g->pce_opts_cli[i] != NULL) {
+ XFREE(MTYPE_PCEP, pcep_g->pce_opts_cli[i]);
+ pcep_g->pce_opts_cli[i] = NULL;
+ pcep_g->num_pce_opts_cli--;
+ }
+
+ /* Delete PCE-CONFIGs */
+ if (pcep_g->config_group_opts[i] != NULL) {
+ XFREE(MTYPE_PCEP, pcep_g->config_group_opts[i]);
+ pcep_g->config_group_opts[i] = NULL;
+ pcep_g->num_config_group_opts--;
+ }
+ }
+
+ return CMD_SUCCESS;
+}
+
DEFPY_NOSH(
pcep_cli_pcep_pce_config,
pcep_cli_pcep_pce_config_cmd,
@@ -2092,6 +2121,7 @@ void pcep_cli_init(void)
install_default(PCEP_NODE);
install_element(SR_TRAFFIC_ENG_NODE, &pcep_cli_pcep_cmd);
+ install_element(SR_TRAFFIC_ENG_NODE, &pcep_cli_no_pcep_cmd);
/* PCEP configuration group related configuration commands */
install_element(PCEP_NODE, &pcep_cli_pcep_pce_config_cmd);