Skip to content

Commit

Permalink
[lacp] Check the partner's own state when checking for blocked links
Browse files Browse the repository at this point in the history
The blocked link test in eth_slow_lacp_rx() is performed before the
actor TLV is copied to the partner TLV, and so must test the actor
state field rather than the partner state field.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
  • Loading branch information
mcb30 committed Mar 19, 2018
1 parent 9759860 commit 342ff96
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions src/net/eth_slow.c
Expand Up @@ -157,11 +157,11 @@ static int eth_slow_lacp_rx ( struct io_buffer *iobuf,
* then block the link until after the next expected LACP
* packet.
*/
if ( ~lacp->partner.state & ( LACP_STATE_IN_SYNC |
LACP_STATE_COLLECTING |
LACP_STATE_DISTRIBUTING ) ) {
if ( ~lacp->actor.state & ( LACP_STATE_IN_SYNC |
LACP_STATE_COLLECTING |
LACP_STATE_DISTRIBUTING ) ) {
DBGC ( netdev, "SLOW %s LACP partner is down\n", netdev->name );
interval = ( ( lacp->partner.state & LACP_STATE_FAST ) ?
interval = ( ( lacp->actor.state & LACP_STATE_FAST ) ?
( ( LACP_INTERVAL_FAST + 1 ) * TICKS_PER_SEC ) :
( ( LACP_INTERVAL_SLOW + 1 ) * TICKS_PER_SEC ) );
netdev_link_block ( netdev, interval );
Expand Down

0 comments on commit 342ff96

Please sign in to comment.