diff options
author | Sven Ulland <sveniu@ifi.uio.no> | 2014-07-21 15:41:25 +0200 |
---|---|---|
committer | Michael Brown <mcb30@ipxe.org> | 2014-07-23 11:56:04 +0100 |
commit | de65a240b98b69e125fd8014ccff2c666d64361d (patch) | |
tree | 41b0f7c7bba8e6f2a52a208cf0fa718b735519eb /src/net/eth_slow.c | |
parent | 5888c887a4adbbb6d98c7fba6e469ac5ad9f129c (diff) | |
download | ipxe-de65a240b98b69e125fd8014ccff2c666d64361d.tar.gz |
[lacp] Set "aggregatable" flag in response LACPDU
Some switches do not allow an individual link (as defined in IEEE Std
802.3ad-2000 section 43.3.5) to work alone in a link aggregation group
as described in section 43.3.6. This is verified on Dell's
PowerConnect M6220, based on the Broadcom Strata XGS-IV chipset.
Set the LACP_STATE_AGGREGATABLE flag in the actor.state field to
announce link aggregation in the response LACPDU, which will have the
switch enable the link aggregation group and allow frames to pass.
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/net/eth_slow.c')
-rw-r--r-- | src/net/eth_slow.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/net/eth_slow.c b/src/net/eth_slow.c index 69c38f30a..db54b55a4 100644 --- a/src/net/eth_slow.c +++ b/src/net/eth_slow.c @@ -167,7 +167,8 @@ static int eth_slow_lacp_rx ( struct io_buffer *iobuf, lacp->actor.key = htons ( 1 ); lacp->actor.port_priority = htons ( LACP_PORT_PRIORITY_MAX ); lacp->actor.port = htons ( 1 ); - lacp->actor.state = ( LACP_STATE_IN_SYNC | + lacp->actor.state = ( LACP_STATE_AGGREGATABLE | + LACP_STATE_IN_SYNC | LACP_STATE_COLLECTING | LACP_STATE_DISTRIBUTING | ( lacp->partner.state & LACP_STATE_FAST ) ); |