mirror of
https://github.com/ipxe/ipxe
synced 2025-12-16 09:32:33 +03:00
[lacp] Check the partner's own state when checking for blocked links
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>
This commit is contained in:
@@ -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 );
|
||||
|
||||
Reference in New Issue
Block a user