diff options
author | Steven Luong <sluong@cisco.com> | 2019-03-05 09:38:33 -0800 |
---|---|---|
committer | Damjan Marion <dmarion@me.com> | 2019-04-03 16:32:37 +0000 |
commit | 82c5dda455ce56ffaf8813b7fbee661e6dbb7cea (patch) | |
tree | 0a4b607e46396ac28fe7f573b6b237de4ed8c16d /src/plugins/lacp/ptx_machine.h | |
parent | 5ae793ac4e5b3fa288ed5838d8d92ce15eb950bd (diff) |
lacp: passive mode support [VPP-1551]
By definition, passive mode means the node does not start sending lacp pdu until
it first hears from the partner or remote.
- Rename ptx machine's BEGIN state to NO_PERIODIC state.
- Put periodic machine in NO_PERIDOIC state when the interface is enabled for
lacp. ptx machine will transition out of NO_PERIODIC state when the local node
hears from the remote or when the local node is configured for active mode.
- Also add send and receive statistics for debugging.
Change-Id: I747953b9595ed31328b2f4f3e7a8d15d01e04d7f
Signed-off-by: Steven Luong <sluong@cisco.com>
Diffstat (limited to 'src/plugins/lacp/ptx_machine.h')
-rw-r--r-- | src/plugins/lacp/ptx_machine.h | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/plugins/lacp/ptx_machine.h b/src/plugins/lacp/ptx_machine.h index 9b4f2805ee4..4b4f4134254 100644 --- a/src/plugins/lacp/ptx_machine.h +++ b/src/plugins/lacp/ptx_machine.h @@ -20,7 +20,7 @@ #include <lacp/machine.h> #define foreach_lacp_ptx_event \ - _(0, BEGIN, "begin") \ + _(0, NO_PERIODIC, "no periodic") \ _(1, LONG_TIMEOUT, "long tiemout") \ _(2, TIMER_EXPIRED, "timer expired") \ _(3, SHORT_TIMEOUT, "short timeout") @@ -86,6 +86,16 @@ lacp_schedule_periodic_timer (vlib_main_t * vm, slave_if_t * sif) lacp_start_periodic_timer (vm, sif, LACP_SLOW_PERIODIC_TIMER); } +static inline void +lacp_ptx_post_short_timeout_event (vlib_main_t * vm, slave_if_t * sif) +{ + if (sif->lacp_enabled && sif->port_enabled && + ((sif->partner.state & LACP_STATE_LACP_ACTIVITY) || + (sif->actor.state & LACP_STATE_LACP_ACTIVITY))) + lacp_machine_dispatch (&lacp_ptx_machine, vm, sif, + LACP_PTX_EVENT_SHORT_TIMEOUT, &sif->ptx_state); +} + #endif /* __LACP_PTX_MACHINE_H__ */ /* |