return CMD_SUCCESS;
}
+DEFUN (ospf_proactive_arp,
+ ospf_proactive_arp_cmd,
+ "proactive-arp",
+ "Allow sending ARP requests proactively\n")
+{
+ VTY_DECLVAR_INSTANCE_CONTEXT(ospf, ospf);
+
+ ospf->proactive_arp = true;
+
+ return CMD_SUCCESS;
+}
+
+DEFUN (no_ospf_proactive_arp,
+ no_ospf_proactive_arp_cmd,
+ "no proactive-arp",
+ NO_STR
+ "Disallow sending ARP requests proactively\n")
+{
+ VTY_DECLVAR_INSTANCE_CONTEXT(ospf, ospf);
+
+ ospf->proactive_arp = false;
+
+ return CMD_SUCCESS;
+}
+
static void config_write_stub_router(struct vty *vty, struct ospf *ospf)
{
struct listnode *ln;
if (ospf->passive_interface_default == OSPF_IF_PASSIVE)
vty_out(vty, " passive-interface default\n");
+ /* proactive-arp print. */
+ if (ospf->proactive_arp != OSPF_PROACTIVE_ARP_DEFAULT) {
+ if (ospf->proactive_arp)
+ vty_out(vty, " proactive-arp\n");
+ else
+ vty_out(vty, " no proactive-arp\n");
+ }
+
FOR_ALL_INTERFACES (vrf, ifp)
if (OSPF_IF_PARAM_CONFIGURED(IF_DEF_PARAMS(ifp),
passive_interface)
install_element(OSPF_NODE, &no_ospf_write_multiplier_cmd);
install_element(OSPF_NODE, &no_write_multiplier_cmd);
+ /* "proactive-arp" commands. */
+ install_element(OSPF_NODE, &ospf_proactive_arp_cmd);
+ install_element(OSPF_NODE, &no_ospf_proactive_arp_cmd);
+
/* Init interface related vty commands. */
ospf_vty_if_init();
* update to neighbors immediatly */
uint8_t inst_shutdown;
+ /* Enable or disable sending proactive ARP requests. */
+ bool proactive_arp;
+#define OSPF_PROACTIVE_ARP_DEFAULT true
+
/* Redistributed external information. */
struct list *external[ZEBRA_ROUTE_MAX + 1];
#define EXTERNAL_INFO(E) (E->external_info)