Browse Source

[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>
tags/v1.20.1
Michael Brown 6 years ago
parent
commit
342ff967cc
1 changed files with 4 additions and 4 deletions
  1. 4
    4
      src/net/eth_slow.c

+ 4
- 4
src/net/eth_slow.c View File

157
 	 * then block the link until after the next expected LACP
157
 	 * then block the link until after the next expected LACP
158
 	 * packet.
158
 	 * packet.
159
 	 */
159
 	 */
160
-	if ( ~lacp->partner.state & ( LACP_STATE_IN_SYNC |
161
-				      LACP_STATE_COLLECTING |
162
-				      LACP_STATE_DISTRIBUTING ) ) {
160
+	if ( ~lacp->actor.state & ( LACP_STATE_IN_SYNC |
161
+				    LACP_STATE_COLLECTING |
162
+				    LACP_STATE_DISTRIBUTING ) ) {
163
 		DBGC ( netdev, "SLOW %s LACP partner is down\n", netdev->name );
163
 		DBGC ( netdev, "SLOW %s LACP partner is down\n", netdev->name );
164
-		interval = ( ( lacp->partner.state & LACP_STATE_FAST ) ?
164
+		interval = ( ( lacp->actor.state & LACP_STATE_FAST ) ?
165
 			     ( ( LACP_INTERVAL_FAST + 1 ) * TICKS_PER_SEC ) :
165
 			     ( ( LACP_INTERVAL_FAST + 1 ) * TICKS_PER_SEC ) :
166
 			     ( ( LACP_INTERVAL_SLOW + 1 ) * TICKS_PER_SEC ) );
166
 			     ( ( LACP_INTERVAL_SLOW + 1 ) * TICKS_PER_SEC ) );
167
 		netdev_link_block ( netdev, interval );
167
 		netdev_link_block ( netdev, interval );

Loading…
Cancel
Save