From bb387611c69b1455ea10bc9159d018bc65023f09 Mon Sep 17 00:00:00 2001 From: sarita patra Date: Mon, 28 Feb 2022 18:16:32 -0800 Subject: [PATCH] pim6d: Adding "ipv6 pim dr-priority" CLI This cli used to configure PIMV6 dr-priority on interface. Signed-off-by: sarita patra --- pimd/pim6_cmd.c | 25 +++++++++++++++++++++++++ pimd/pim_cmd.c | 11 ++--------- pimd/pim_cmd_common.c | 17 +++++++++++++++++ pimd/pim_cmd_common.h | 2 ++ 4 files changed, 46 insertions(+), 9 deletions(-) diff --git a/pimd/pim6_cmd.c b/pimd/pim6_cmd.c index 8718f0da46..3c796930de 100644 --- a/pimd/pim6_cmd.c +++ b/pimd/pim6_cmd.c @@ -229,6 +229,29 @@ DEFPY (interface_no_ipv6_pim, return pim_process_no_ip_pim_cmd(vty); } +DEFPY (interface_ipv6_pim_drprio, + interface_ipv6_pim_drprio_cmd, + "ipv6 pim drpriority (1-4294967295)", + IPV6_STR + PIM_STR + "Set the Designated Router Election Priority\n" + "Value of the new DR Priority\n") +{ + return pim_process_ip_pim_drprio_cmd(vty, drpriority_str); +} + +DEFPY (interface_no_ipv6_pim_drprio, + interface_no_ipv6_pim_drprio_cmd, + "no ip pim drpriority [(1-4294967295)]", + NO_STR + IPV6_STR + PIM_STR + "Revert the Designated Router Priority to default\n" + "Old Value of the Priority\n") +{ + return pim_process_no_ip_pim_drprio_cmd(vty); +} + void pim_cmd_init(void) { if_cmd_init(pim_interface_config_write); @@ -249,4 +272,6 @@ void pim_cmd_init(void) install_element(CONFIG_NODE, &no_ipv6_pim_register_suppress_cmd); install_element(INTERFACE_NODE, &interface_ipv6_pim_cmd); install_element(INTERFACE_NODE, &interface_no_ipv6_pim_cmd); + install_element(INTERFACE_NODE, &interface_ipv6_pim_drprio_cmd); + install_element(INTERFACE_NODE, &interface_no_ipv6_pim_drprio_cmd); } diff --git a/pimd/pim_cmd.c b/pimd/pim_cmd.c index 21bb15b74b..5aa1797223 100644 --- a/pimd/pim_cmd.c +++ b/pimd/pim_cmd.c @@ -7959,11 +7959,7 @@ DEFUN (interface_ip_pim_drprio, { int idx_number = 3; - nb_cli_enqueue_change(vty, "./dr-priority", NB_OP_MODIFY, - argv[idx_number]->arg); - - return nb_cli_apply_changes(vty, FRR_PIM_INTERFACE_XPATH, - "frr-routing:ipv4"); + return pim_process_ip_pim_drprio_cmd(vty, argv[idx_number]->arg); } DEFUN (interface_no_ip_pim_drprio, @@ -7975,10 +7971,7 @@ DEFUN (interface_no_ip_pim_drprio, "Revert the Designated Router Priority to default\n" "Old Value of the Priority\n") { - nb_cli_enqueue_change(vty, "./dr-priority", NB_OP_DESTROY, NULL); - - return nb_cli_apply_changes(vty, FRR_PIM_INTERFACE_XPATH, - "frr-routing:ipv4"); + return pim_process_no_ip_pim_drprio_cmd(vty); } DEFPY_HIDDEN (interface_ip_igmp_query_generate, diff --git a/pimd/pim_cmd_common.c b/pimd/pim_cmd_common.c index b00085dcca..2355a5cd0e 100644 --- a/pimd/pim_cmd_common.c +++ b/pimd/pim_cmd_common.c @@ -371,3 +371,20 @@ int pim_process_no_ip_pim_cmd(struct vty *vty) return nb_cli_apply_changes(vty, FRR_PIM_INTERFACE_XPATH, FRR_PIM_AF_XPATH_VAL); } + +int pim_process_ip_pim_drprio_cmd(struct vty *vty, const char *drpriority_str) +{ + nb_cli_enqueue_change(vty, "./dr-priority", NB_OP_MODIFY, + drpriority_str); + + return nb_cli_apply_changes(vty, FRR_PIM_INTERFACE_XPATH, + FRR_PIM_AF_XPATH_VAL); +} + +int pim_process_no_ip_pim_drprio_cmd(struct vty *vty) +{ + nb_cli_enqueue_change(vty, "./dr-priority", NB_OP_DESTROY, NULL); + + return nb_cli_apply_changes(vty, FRR_PIM_INTERFACE_XPATH, + FRR_PIM_AF_XPATH_VAL); +} diff --git a/pimd/pim_cmd_common.h b/pimd/pim_cmd_common.h index 16a026d60e..aaf10734f5 100644 --- a/pimd/pim_cmd_common.h +++ b/pimd/pim_cmd_common.h @@ -38,5 +38,7 @@ int pim_process_no_register_suppress_cmd(struct vty *vty); int pim_process_ip_pim_cmd(struct vty *vty); int pim_process_no_ip_pim_cmd(struct vty *vty); +int pim_process_ip_pim_drprio_cmd(struct vty *vty, const char *drpriority_str); +int pim_process_no_ip_pim_drprio_cmd(struct vty *vty); #endif /* PIM_CMD_COMMON_H */