From 52c52d78066e4099cc5d906839f08b32d7b426e0 Mon Sep 17 00:00:00 2001 From: sarita patra Date: Mon, 28 Feb 2022 18:27:52 -0800 Subject: [PATCH] pim6d: Adding "ipv6 multicast boundary oil WORD" cli This cli is used to define multicast boundary on interface. Signed-off-by: sarita patra --- pimd/pim6_cmd.c | 30 ++++++++++++++++++++++++++++++ pimd/pim_cmd.c | 15 ++------------- pimd/pim_cmd_common.c | 18 ++++++++++++++++++ pimd/pim_cmd_common.h | 2 ++ 4 files changed, 52 insertions(+), 13 deletions(-) diff --git a/pimd/pim6_cmd.c b/pimd/pim6_cmd.c index a689e384b3..350574fe58 100644 --- a/pimd/pim6_cmd.c +++ b/pimd/pim6_cmd.c @@ -340,6 +340,32 @@ DEFPY_HIDDEN (interface_no_ipv6_pim_sm, return pim_process_no_ip_pim_cmd(vty); } +/* boundaries */ +DEFPY (interface_ipv6_pim_boundary_oil, + interface_ipv6_pim_boundary_oil_cmd, + "ipv6 multicast boundary oil WORD", + IPV6_STR + "Generic multicast configuration options\n" + "Define multicast boundary\n" + "Filter OIL by group using prefix list\n" + "Prefix list to filter OIL with\n") +{ + return pim_process_ip_pim_boundary_oil_cmd(vty, oil); +} + +DEFPY (interface_no_ipv6_pim_boundary_oil, + interface_no_ipv6_pim_boundary_oil_cmd, + "no ipv6 multicast boundary oil [WORD]", + NO_STR + IPV6_STR + "Generic multicast configuration options\n" + "Define multicast boundary\n" + "Filter OIL by group using prefix list\n" + "Prefix list to filter OIL with\n") +{ + return pim_process_no_ip_pim_boundary_oil_cmd(vty); +} + void pim_cmd_init(void) { if_cmd_init(pim_interface_config_write); @@ -369,4 +395,8 @@ void pim_cmd_init(void) 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); + install_element(INTERFACE_NODE, + &interface_ipv6_pim_boundary_oil_cmd); + install_element(INTERFACE_NODE, + &interface_no_ipv6_pim_boundary_oil_cmd); } diff --git a/pimd/pim_cmd.c b/pimd/pim_cmd.c index fcbae5aa47..622606e922 100644 --- a/pimd/pim_cmd.c +++ b/pimd/pim_cmd.c @@ -8146,13 +8146,7 @@ DEFUN(interface_ip_pim_boundary_oil, "Filter OIL by group using prefix list\n" "Prefix list to filter OIL with\n") { - nb_cli_enqueue_change(vty, "./multicast-boundary-oil", NB_OP_MODIFY, - argv[4]->arg); - - return nb_cli_apply_changes(vty, - FRR_PIM_INTERFACE_XPATH, - "frr-routing:ipv4"); - + return pim_process_ip_pim_boundary_oil_cmd(vty, argv[4]->arg); } DEFUN(interface_no_ip_pim_boundary_oil, @@ -8165,12 +8159,7 @@ DEFUN(interface_no_ip_pim_boundary_oil, "Filter OIL by group using prefix list\n" "Prefix list to filter OIL with\n") { - nb_cli_enqueue_change(vty, "./multicast-boundary-oil", NB_OP_DESTROY, - NULL); - - return nb_cli_apply_changes(vty, - FRR_PIM_INTERFACE_XPATH, - "frr-routing:ipv4"); + return pim_process_no_ip_pim_boundary_oil_cmd(vty); } DEFUN (interface_ip_mroute, diff --git a/pimd/pim_cmd_common.c b/pimd/pim_cmd_common.c index 40a59fce83..22272fada8 100644 --- a/pimd/pim_cmd_common.c +++ b/pimd/pim_cmd_common.c @@ -442,3 +442,21 @@ int pim_process_ip_pim_activeactive_cmd(struct vty *vty, const char *no) return nb_cli_apply_changes(vty, FRR_PIM_INTERFACE_XPATH, FRR_PIM_AF_XPATH_VAL); } + +int pim_process_ip_pim_boundary_oil_cmd(struct vty *vty, const char *oil) +{ + nb_cli_enqueue_change(vty, "./multicast-boundary-oil", NB_OP_MODIFY, + oil); + + return nb_cli_apply_changes(vty, FRR_PIM_INTERFACE_XPATH, + FRR_PIM_AF_XPATH_VAL); +} + +int pim_process_no_ip_pim_boundary_oil_cmd(struct vty *vty) +{ + nb_cli_enqueue_change(vty, "./multicast-boundary-oil", 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 26e771b1da..1513f49a1a 100644 --- a/pimd/pim_cmd_common.h +++ b/pimd/pim_cmd_common.h @@ -44,5 +44,7 @@ int pim_process_ip_pim_hello_cmd(struct vty *vty, const char *hello_str, const char *hold_str); int pim_process_no_ip_pim_hello_cmd(struct vty *vty); int pim_process_ip_pim_activeactive_cmd(struct vty *vty, const char *no); +int pim_process_ip_pim_boundary_oil_cmd(struct vty *vty, const char *oil); +int pim_process_no_ip_pim_boundary_oil_cmd(struct vty *vty); #endif /* PIM_CMD_COMMON_H */ -- 2.39.5