Mercurial > illumos > illumos-gate
changeset 11197:731a4b79a7f8
6813620 LACP link aggregation fails to recover if only one link restored after both initially fail
author | Ramesh Kumar Katla <Ramesh.K@Sun.COM> |
---|---|
date | Wed, 25 Nov 2009 11:03:19 -0800 |
parents | e5a90c51ae9c |
children | 89fba0494d11 |
files | usr/src/uts/common/io/aggr/aggr_lacp.c |
diffstat | 1 files changed, 7 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/usr/src/uts/common/io/aggr/aggr_lacp.c Wed Nov 25 09:35:02 2009 -0800 +++ b/usr/src/uts/common/io/aggr/aggr_lacp.c Wed Nov 25 11:03:19 2009 -0800 @@ -19,7 +19,7 @@ * CDDL HEADER END */ /* - * Copyright 2008 Sun Microsystems, Inc. All rights reserved. + * Copyright 2009 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -45,6 +45,7 @@ #include <sys/byteorder.h> #include <sys/strsun.h> #include <sys/isa_defs.h> +#include <sys/sdt.h> #include <sys/aggr.h> #include <sys/aggr_impl.h> @@ -1438,11 +1439,14 @@ for (tpp = aggrp->lg_ports; tpp; tpp = tpp->lp_next) { if (((tpp->lp_lacp.sm.mux_state == LACP_WAITING) || tpp->lp_lacp.sm.begin) && - !pl->PartnerOperPortState.bit.sync) { + !tpp->lp_lacp.PartnerOperPortState.bit.sync) { /* Add up ports uninitialized or waiting */ ports_waiting++; - if (!tpp->lp_lacp.sm.ready_n) + if (!tpp->lp_lacp.sm.ready_n) { + DTRACE_PROBE1(port___not__ready, + aggr_port_t *, tpp); return; + } } } }