aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/lacp/ptx_machine.h
diff options
context:
space:
mode:
authorSteven <sluong@cisco.com>2018-04-19 21:59:09 -0700
committerChris Luke <chris_luke@comcast.com>2018-04-23 18:33:59 +0000
commitb2ffc697570f17f413fb4f2748760c44f8f21661 (patch)
treeed685d9d8be0a735625d102ffe1502f6c02be511 /src/plugins/lacp/ptx_machine.h
parent62166004a9f0861e9ea50101b2194881ef1a35aa (diff)
lacp: partner may time us out if fast-rate is configured [VPP-1247]
We should be sending LACP PDU every second if the partner has LACP_TIMEOUT flag set which means it will time us out in 3 seconds. Add interface name for lacp trace Change-Id: If7d816c062d03e80cc0dd7d10dba0b76ace0664a Signed-off-by: Steven <sluong@cisco.com>
Diffstat (limited to 'src/plugins/lacp/ptx_machine.h')
-rw-r--r--src/plugins/lacp/ptx_machine.h16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/plugins/lacp/ptx_machine.h b/src/plugins/lacp/ptx_machine.h
index 6183b633ae1..9b4f2805ee4 100644
--- a/src/plugins/lacp/ptx_machine.h
+++ b/src/plugins/lacp/ptx_machine.h
@@ -72,13 +72,15 @@ lacp_start_periodic_timer (vlib_main_t * vm, slave_if_t * sif, u8 expiration)
static inline void
lacp_schedule_periodic_timer (vlib_main_t * vm, slave_if_t * sif)
{
- // do fast rate if we are not yet synchronized
- if (((sif->actor.state & (LACP_STATE_SYNCHRONIZATION |
- LACP_STATE_COLLECTING |
- LACP_STATE_DISTRIBUTING)) !=
- (LACP_STATE_SYNCHRONIZATION | LACP_STATE_COLLECTING |
- LACP_STATE_DISTRIBUTING))
- && (sif->partner.state & LACP_STATE_AGGREGATION))
+ // do fast rate if partner is in short timeout or
+ // we are not yet synchronized
+ if ((sif->partner.state & LACP_STATE_LACP_TIMEOUT) ||
+ (((sif->actor.state & (LACP_STATE_SYNCHRONIZATION |
+ LACP_STATE_COLLECTING |
+ LACP_STATE_DISTRIBUTING)) !=
+ (LACP_STATE_SYNCHRONIZATION | LACP_STATE_COLLECTING |
+ LACP_STATE_DISTRIBUTING))
+ && (sif->partner.state & LACP_STATE_AGGREGATION)))
lacp_start_periodic_timer (vm, sif, LACP_FAST_PERIODIC_TIMER);
else
lacp_start_periodic_timer (vm, sif, LACP_SLOW_PERIODIC_TIMER);