From 2b16b40fc78a72f9f9d9bdebed4a29de50a045b8 Mon Sep 17 00:00:00 2001 From: sarita patra Date: Mon, 28 Feb 2022 18:26:43 -0800 Subject: [PATCH] pim6d: Adding "ipv6 pim sm" cli This cli used to enable PIMV6 on interface. Signed-off-by: sarita patra --- pimd/pim6_cmd.c | 23 +++++++++++++++++++++++ pimd/pim6_cmd.h | 1 + pimd/pim_cmd.c | 42 ++---------------------------------------- 3 files changed, 26 insertions(+), 40 deletions(-) diff --git a/pimd/pim6_cmd.c b/pimd/pim6_cmd.c index dab151f8c4..a689e384b3 100644 --- a/pimd/pim6_cmd.c +++ b/pimd/pim6_cmd.c @@ -319,6 +319,27 @@ DEFPY_HIDDEN (interface_no_ipv6_pim_ssm, return pim_process_no_ip_pim_cmd(vty); } +DEFPY_HIDDEN (interface_ipv6_pim_sm, + interface_ipv6_pim_sm_cmd, + "ipv6 pim sm", + IPV6_STR + PIM_STR + IFACE_PIM_SM_STR) +{ + return pim_process_ip_pim_cmd(vty); +} + +DEFPY_HIDDEN (interface_no_ipv6_pim_sm, + interface_no_ipv6_pim_sm_cmd, + "no ipv6 pim sm", + NO_STR + IPV6_STR + PIM_STR + IFACE_PIM_SM_STR) +{ + return pim_process_no_ip_pim_cmd(vty); +} + void pim_cmd_init(void) { if_cmd_init(pim_interface_config_write); @@ -346,4 +367,6 @@ void pim_cmd_init(void) install_element(INTERFACE_NODE, &interface_ipv6_pim_activeactive_cmd); install_element(INTERFACE_NODE, &interface_ipv6_pim_ssm_cmd); install_element(INTERFACE_NODE, &interface_no_ipv6_pim_ssm_cmd); + install_element(INTERFACE_NODE, &interface_ipv6_pim_sm_cmd); + install_element(INTERFACE_NODE, &interface_no_ipv6_pim_sm_cmd); } diff --git a/pimd/pim6_cmd.h b/pimd/pim6_cmd.h index 15e8f17341..ac5eb3f9bf 100644 --- a/pimd/pim6_cmd.h +++ b/pimd/pim6_cmd.h @@ -34,6 +34,7 @@ "MLD last member query interval\n" #define IFACE_MLD_LAST_MEMBER_QUERY_COUNT_STR "MLD last member query count\n" #define IFACE_PIM_STR "Enable PIM SSM operation\n" +#define IFACE_PIM_SM_STR "Enable PIM SM operation\n" #define IFACE_PIM_HELLO_STR "Hello Interval\n" #define IFACE_PIM_HELLO_TIME_STR "Time in seconds for Hello Interval\n" #define IFACE_PIM_HELLO_HOLD_STR "Time in seconds for Hold Interval\n" diff --git a/pimd/pim_cmd.c b/pimd/pim_cmd.c index ab0f1d790b..fcbae5aa47 100644 --- a/pimd/pim_cmd.c +++ b/pimd/pim_cmd.c @@ -8092,11 +8092,7 @@ DEFUN_HIDDEN (interface_ip_pim_sm, PIM_STR IFACE_PIM_SM_STR) { - nb_cli_enqueue_change(vty, "./pim-enable", NB_OP_MODIFY, "true"); - - return nb_cli_apply_changes(vty, - FRR_PIM_INTERFACE_XPATH, - "frr-routing:ipv4"); + return pim_process_ip_pim_cmd(vty); } DEFUN (interface_ip_pim, @@ -8127,41 +8123,7 @@ DEFUN_HIDDEN (interface_no_ip_pim_sm, PIM_STR IFACE_PIM_SM_STR) { - const struct lyd_node *igmp_enable_dnode; - char igmp_if_xpath[XPATH_MAXLEN]; - - int printed = - snprintf(igmp_if_xpath, sizeof(igmp_if_xpath), - "%s/frr-gmp:gmp/address-family[address-family='%s']", - VTY_CURR_XPATH, "frr-routing:ipv4"); - - if (printed >= (int)(sizeof(igmp_if_xpath))) { - vty_out(vty, "Xpath too long (%d > %u)", printed + 1, - XPATH_MAXLEN); - return CMD_WARNING_CONFIG_FAILED; - } - - igmp_enable_dnode = - yang_dnode_getf(vty->candidate_config->dnode, - FRR_GMP_ENABLE_XPATH, VTY_CURR_XPATH, - "frr-routing:ipv4"); - - if (!igmp_enable_dnode) { - nb_cli_enqueue_change(vty, igmp_if_xpath, NB_OP_DESTROY, NULL); - nb_cli_enqueue_change(vty, ".", NB_OP_DESTROY, NULL); - } else { - if (!yang_dnode_get_bool(igmp_enable_dnode, ".")) { - nb_cli_enqueue_change(vty, igmp_if_xpath, NB_OP_DESTROY, - NULL); - nb_cli_enqueue_change(vty, ".", NB_OP_DESTROY, NULL); - } else - nb_cli_enqueue_change(vty, "./pim-enable", NB_OP_MODIFY, - "false"); - } - - return nb_cli_apply_changes(vty, - FRR_PIM_INTERFACE_XPATH, - "frr-routing:ipv4"); + return pim_process_no_ip_pim_cmd(vty); } DEFUN (interface_no_ip_pim, -- 2.39.5