Пример #1
0
int mrp_lvtimer_start(struct mrp_database *mrp_db)
{
	int ret;
	/* leavetimer has expired (10.7.5.21)
	 * controls how long the Registrar state machine stays in the
	 * LV state before transitioning to the MT state.
	 */
#if LOG_TIMERS
	if (mrp_db->lv_timer_running)
		mrpd_log_printf("MRP start leave timer *ALREADY RUNNING*\n");
	else
		mrpd_log_printf("MRP start leave timer\n");
#endif
	ret = mrpd_timer_start(mrp_db->lv_timer, MRP_LVTIMER_VAL);
	if (ret >= 0)
		mrp_db->lv_timer_running = 1;
	return ret;
}
Пример #2
0
int mrp_jointimer_start(struct mrp_database *mrp_db)
{
	int ret = 0;
	/* 10.7.4.1 - interval between transmit opportunities
	 * for applicant state machine
	 */
#if LOG_TIMERS
	if (mrp_db->join_timer_running)
		mrpd_log_printf("MRP join timer running\n");
	else
		mrpd_log_printf("MRP join timer start \n");
#endif
	if (!mrp_db->join_timer_running) {
		ret = mrpd_timer_start(mrp_db->join_timer, MRP_JOINTIMER_VAL);
	}
	if (ret >= 0)
		mrp_db->join_timer_running = 1;
	return ret;
}
Пример #3
0
int mrp_lvatimer_start(struct mrp_database *mrp_db)
{
	int ret = 0;
	int timeout = 0;
	/* leavealltimer has expired. (10.7.5.22)
	 * on expire, sends a LEAVEALL message
	 * value is RANDOM in range (LeaveAllTime , 1.5xLeaveAllTime)
	 * timer is for all attributes of a given application and port, but
	 * expires each listed attribute individually (per application)
	 */
	timeout = MRP_LVATIMER_VAL + (random() % (MRP_LVATIMER_VAL / 2));
#if LOG_TIMERS
	if (mrp_db->lva_timer_running)
		mrpd_log_printf("MRP leaveAll timer already running \n", timeout);
	else
		mrpd_log_printf("MRP start leaveAll timer (%d ms)\n", timeout);
#endif
	if (!mrp_db->lva_timer_running)
		ret =  mrpd_timer_start(mrp_db->lva_timer, timeout);
	if (ret >= 0)
		mrp_db->lva_timer_running = 1;
	return ret;
}
Пример #4
0
int gctimer_start()
{
    /* reclaim memory every 30 minutes */
    return mrpd_timer_start(gc_timer, 30 * 60 * 1000);
}