return pim_process_ip_pim_cmd(vty);
}
-DEFUN (interface_ip_pim,
+DEFPY (interface_ip_pim,
interface_ip_pim_cmd,
- "ip pim",
+ "ip pim [passive$passive]",
IP_STR
- PIM_STR)
+ PIM_STR
+ "Disable exchange of protocol packets\n")
{
- return pim_process_ip_pim_cmd(vty);
+ VTY_DECLVAR_CONTEXT(interface, ifp);
+ struct pim_interface *pim_ifp;
+ int ret;
+
+ ret = pim_process_ip_pim_cmd(vty);
+
+ if (ret != NB_OK)
+ return ret;
+
+ pim_ifp = ifp->info;
+ if (!pim_ifp)
+ return CMD_WARNING_CONFIG_FAILED;
+
+ if (passive)
+ pim_ifp->pim_passive_enable = true;
+
+ return CMD_SUCCESS;
}
DEFUN_HIDDEN (interface_no_ip_pim_ssm,
return pim_process_no_ip_pim_cmd(vty);
}
-DEFUN (interface_no_ip_pim,
+DEFPY (interface_no_ip_pim,
interface_no_ip_pim_cmd,
- "no ip pim",
+ "no ip pim [passive$passive]",
NO_STR
IP_STR
- PIM_STR)
+ PIM_STR
+ "Disable exchange of protocol packets\n")
{
- return pim_process_no_ip_pim_cmd(vty);
+ int ret;
+ VTY_DECLVAR_CONTEXT(interface, ifp);
+ struct pim_interface *pim_ifp;
+
+ ret = pim_process_no_ip_pim_cmd(vty);
+
+ if (ret != NB_OK)
+ return ret;
+
+ pim_ifp = ifp->info;
+ if (!pim_ifp)
+ return CMD_WARNING_CONFIG_FAILED;
+
+ if (passive)
+ pim_ifp->pim_passive_enable = false;
+
+ return CMD_SUCCESS;
}
/* boundaries */