]> git.proxmox.com Git - mirror_frr.git/blobdiff - pimd/pim_cmd.c
Merge pull request #984 from donaldsharp/debugging
[mirror_frr.git] / pimd / pim_cmd.c
index b65eeaba0119954660ff17059c1b45fcc4068875..db24aef423648c769fb5b47279c97b26b6c14861 100644 (file)
@@ -7329,8 +7329,14 @@ DEFUN (ip_pim_bfd,
        struct pim_interface *pim_ifp = ifp->info;
        struct bfd_info *bfd_info = NULL;
 
-       if (!pim_ifp)
-               return CMD_SUCCESS;
+       if (!pim_ifp) {
+               if (!pim_cmd_interface_add(ifp)) {
+                       vty_out(vty, "Could not enable PIM SM on interface\n");
+                       return CMD_WARNING;
+               }
+       }
+       pim_ifp = ifp->info;
+
        bfd_info = pim_ifp->bfd_info;
 
        if (!bfd_info || !CHECK_FLAG(bfd_info->flags, BFD_FLAG_PARAM_CFG))
@@ -7351,8 +7357,10 @@ DEFUN (no_ip_pim_bfd,
        VTY_DECLVAR_CONTEXT(interface, ifp);
        struct pim_interface *pim_ifp = ifp->info;
 
-       if (!pim_ifp)
-               return CMD_SUCCESS;
+       if (!pim_ifp) {
+               vty_out(vty, "Pim not enabled on this interface\n");
+               return CMD_WARNING;
+       }
 
        if (pim_ifp->bfd_info) {
                pim_bfd_reg_dereg_all_nbr(ifp, ZEBRA_BFD_DEST_DEREGISTER);
@@ -7380,7 +7388,14 @@ DEFUN (ip_pim_bfd_param,
        u_int32_t tx_val;
        u_int8_t dm_val;
        int ret;
+       struct pim_interface *pim_ifp = ifp->info;
 
+       if (!pim_ifp) {
+               if (!pim_cmd_interface_add(ifp)) {
+                       vty_out(vty, "Could not enable PIM SM on interface\n");
+                       return CMD_WARNING;
+               }
+       }
 
        if ((ret = bfd_validate_param(
                     vty, argv[idx_number]->arg, argv[idx_number_2]->arg,