summaryrefslogtreecommitdiff
path: root/pimd/pim_cmd.c
diff options
context:
space:
mode:
Diffstat (limited to 'pimd/pim_cmd.c')
-rw-r--r--pimd/pim_cmd.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/pimd/pim_cmd.c b/pimd/pim_cmd.c
index 6624974c96..e7e0573968 100644
--- a/pimd/pim_cmd.c
+++ b/pimd/pim_cmd.c
@@ -6341,6 +6341,7 @@ static int pim_ssm_cmd_worker(struct pim_instance *pim, struct vty *vty,
const char *plist)
{
int result = pim_ssm_range_set(pim, pim->vrf_id, plist);
+ int ret = CMD_WARNING_CONFIG_FAILED;
if (result == PIM_SSM_ERR_NONE)
return CMD_SUCCESS;
@@ -6351,12 +6352,13 @@ static int pim_ssm_cmd_worker(struct pim_instance *pim, struct vty *vty,
break;
case PIM_SSM_ERR_DUP:
vty_out(vty, "%% duplicate config\n");
+ ret = CMD_WARNING;
break;
default:
vty_out(vty, "%% ssm range config failed\n");
}
- return CMD_WARNING_CONFIG_FAILED;
+ return ret;
}
DEFUN (ip_pim_ssm_prefix_list,
@@ -7379,12 +7381,14 @@ static int pim_cmd_interface_add(struct interface *ifp)
struct pim_interface *pim_ifp = ifp->info;
if (!pim_ifp)
- (void)pim_if_new(ifp, false, true, false, false);
+ pim_ifp = pim_if_new(ifp, false, true, false, false);
else
PIM_IF_DO_PIM(pim_ifp->options);
pim_if_addr_add_all(ifp);
pim_if_membership_refresh(ifp);
+
+ pim_if_create_pimreg(pim_ifp->pim);
return 1;
}