/* Should we allow non Quagga processes to delete our routes */
extern int allow_delete;
-/* Hold time for RIB process, should be very minimal.
- * it is useful to able to set it otherwise for testing, hence exported
- * as global here for test-rig code.
- */
-int rib_process_hold_time = 10;
-
/* Each route type's string and default distance value. */
static const struct {
int key;
zebra->ribq->spec.completion_func = &meta_queue_process_complete;
/* XXX: TODO: These should be runtime configurable via vty */
zebra->ribq->spec.max_retries = 3;
- zebra->ribq->spec.hold = rib_process_hold_time;
+ zebra->ribq->spec.hold = ZEBRA_RIB_PROCESS_HOLD_TIME;
if (!(zebra->mq = meta_queue_new())) {
zlog_err("%s: could not initialise meta queue!", __func__);
#include "lib/json.h"
#include "zebra/zebra_vxlan.h"
#include "zebra/zebra_vty_clippy.c"
+#include "zebra/zserv.h"
extern int allow_delete;
return ret;
}
+DEFUN_HIDDEN (zebra_workqueue_timer,
+ zebra_workqueue_timer_cmd,
+ "zebra work-queue (0-10000)",
+ ZEBRA_STR
+ "Work Queue\n"
+ "Time in milliseconds\n")
+{
+ uint32_t timer = strtoul(argv[2]->arg, NULL, 10);
+ zebrad.ribq->spec.hold = timer;
+
+ return CMD_SUCCESS;
+}
+
+DEFUN_HIDDEN (no_zebra_workqueue_timer,
+ no_zebra_workqueue_timer_cmd,
+ "no zebra work-queue [(0-10000)]",
+ NO_STR
+ ZEBRA_STR
+ "Work Queue\n"
+ "Time in milliseconds\n")
+{
+ zebrad.ribq->spec.hold = ZEBRA_RIB_PROCESS_HOLD_TIME;
+
+ return CMD_SUCCESS;
+}
+
DEFUN (no_ip_zebra_import_table,
no_ip_zebra_import_table_cmd,
"no ip import-table (1-252) [distance (1-255)] [route-map NAME]",
if (zebra_rnh_ipv6_default_route)
vty_out(vty, "ipv6 nht resolve-via-default\n");
+ if (zebrad.ribq->spec.hold != ZEBRA_RIB_PROCESS_HOLD_TIME)
+ vty_out(vty, "zebra work-queue %u\n", zebrad.ribq->spec.hold);
+
enum multicast_mode ipv4_multicast_mode = multicast_mode_ipv4_get();
if (ipv4_multicast_mode != MCAST_NO_CONFIG)
install_element(CONFIG_NODE, &ip_route_cmd);
install_element(CONFIG_NODE, &ip_zebra_import_table_distance_cmd);
install_element(CONFIG_NODE, &no_ip_zebra_import_table_cmd);
+ install_element(CONFIG_NODE, &zebra_workqueue_timer_cmd);
+ install_element(CONFIG_NODE, &no_zebra_workqueue_timer_cmd);
install_element(VIEW_NODE, &show_vrf_cmd);
install_element(VIEW_NODE, &show_ip_route_cmd);