vlib_put_frame_to_node (vm, hw->output_node_index, f);
- sif->last_lacpdu_time = vlib_time_now (lm->vlib_main);
+ sif->last_lacpdu_sent_time = vlib_time_now (lm->vlib_main);
+ sif->pdu_sent++;
}
/*
/* Create the ethernet lacp packet template */
- memset (&h, 0, sizeof (h));
+ clib_memset (&h, 0, sizeof (h));
memcpy (h.ethernet.dst_address, dst, sizeof (h.ethernet.dst_address));
/* Create the ethernet marker protocol packet template */
- memset (&m, 0, sizeof (m));
+ clib_memset (&m, 0, sizeof (m));
memcpy (m.ethernet.dst_address, dst, sizeof (m.ethernet.dst_address));
lacp_stop_timer (&sif->actor_churn_timer);
lacp_stop_timer (&sif->partner_churn_timer);
lacp_stop_timer (&sif->periodic_timer);
- lacp_stop_timer (&sif->last_lacpdu_time);
+ lacp_stop_timer (&sif->last_lacpdu_sent_time);
+ lacp_stop_timer (&sif->last_lacpdu_recd_time);
+ lacp_stop_timer (&sif->last_marker_pdu_sent_time);
+ lacp_stop_timer (&sif->last_marker_pdu_recd_time);
sif->lacp_enabled = 1;
sif->loopback_port = 0;
sif->ready = 0;
sif->partner.port_number = htons (port_number);
sif->partner.port_priority = htons (LACP_DEFAULT_PORT_PRIORITY);
sif->partner.key = htons (group);
- sif->partner.state = LACP_STATE_LACP_ACTIVITY;
+ sif->partner.state = 0;
sif->actor_admin = sif->actor;
sif->partner_admin = sif->partner;
{
if (sif->lacp_enabled)
{
- lacp_init_state_machines (vm, sif);
lacp_init_neighbor (sif, sif->actor_admin.system,
ntohs (sif->actor_admin.port_number),
ntohs (sif->actor_admin.key));
+ lacp_init_state_machines (vm, sif);
}
}
}
{
if (sif->lacp_enabled)
{
- lacp_init_state_machines (vm, sif);
lacp_init_neighbor (sif, sif->actor_admin.system,
ntohs (sif->actor_admin.port_number),
ntohs (sif->actor_admin.key));
+ lacp_init_state_machines (vm, sif);
}
}
}
/* *INDENT-OFF* */
VLIB_PLUGIN_REGISTER () = {
.version = VPP_BUILD_VER,
- .description = "Link Aggregation Control Protocol",
+ .description = "Link Aggregation Control Protocol (LACP)",
};
/* *INDENT-ON* */