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;
+				}
 			}
 		}
 	}