diff options
Diffstat (limited to 'pimd/pim_cmd_common.c')
| -rw-r--r-- | pimd/pim_cmd_common.c | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/pimd/pim_cmd_common.c b/pimd/pim_cmd_common.c index 35344ef6a0..dfba369e5b 100644 --- a/pimd/pim_cmd_common.c +++ b/pimd/pim_cmd_common.c @@ -1164,7 +1164,7 @@ void pim_show_state(struct pim_instance *pim, struct vty *vty, out_ifname, (c_oil->oif_flags [oif_vif_index] & - PIM_OIF_FLAG_PROTO_IGMP) + PIM_OIF_FLAG_PROTO_GM) ? 'I' : ' ', (c_oil->oif_flags @@ -1192,7 +1192,7 @@ void pim_show_state(struct pim_instance *pim, struct vty *vty, out_ifname, (c_oil->oif_flags [oif_vif_index] & - PIM_OIF_FLAG_PROTO_IGMP) + PIM_OIF_FLAG_PROTO_GM) ? 'I' : ' ', (c_oil->oif_flags @@ -2836,3 +2836,25 @@ int gm_process_no_last_member_query_interval_cmd(struct vty *vty) return nb_cli_apply_changes(vty, FRR_GMP_INTERFACE_XPATH, FRR_PIM_AF_XPATH_VAL); } + + +int pim_process_ssmpingd_cmd(struct vty *vty, enum nb_operation operation, + const char *src_str) +{ + const char *vrfname; + char ssmpingd_ip_xpath[XPATH_MAXLEN]; + + vrfname = pim_cli_get_vrf_name(vty); + if (vrfname == NULL) + return CMD_WARNING_CONFIG_FAILED; + + snprintf(ssmpingd_ip_xpath, sizeof(ssmpingd_ip_xpath), + FRR_PIM_VRF_XPATH, "frr-pim:pimd", "pim", vrfname, + FRR_PIM_AF_XPATH_VAL); + strlcat(ssmpingd_ip_xpath, "/ssm-pingd-source-ip", + sizeof(ssmpingd_ip_xpath)); + + nb_cli_enqueue_change(vty, ssmpingd_ip_xpath, operation, src_str); + + return nb_cli_apply_changes(vty, NULL); +} |
