File 0003-teamd-LACP-runner-does-not-set-Agg-bit-on-first-slav.patch of Package libteam.29679

From 14684953b1e50a9359d2cc38c5e35d5c36796ac8 Mon Sep 17 00:00:00 2001
From: Jamie Bainbridge <jamie.bainbridge@gmail.com>
Date: Sat, 18 Jun 2016 08:59:59 +1000
Subject: [PATCH] teamd: LACP runner does not set Agg bit on first slave

teamd's LACP runner does not set the INFO_STATE_AGGREGATION bit when
there is only one slave in a team. This results in LACPDUs not being
sent with this flag set, and the team never negotiates. A Cisco Nexus
5500 switch will report the switchport in "(s)uspended" state.

This can be reproduced on some systems by booting with a LACP team with
more than one port, or by slowly adding ports to a new team on the
commandline.

Change the check from "more than 1 port" to "more than zero ports" so
that all LACP runner slaves have this bit set.

Resolves https://github.com/jpirko/libteam/issues/15

Tested-by: Customer
Signed-off-by: Jamie Bainbridge <jamie.bainbridge@gmail.com>
Signed-off-by: Jiri Pirko <jiri@mellanox.com>
---
 teamd/teamd_runner_lacp.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/teamd/teamd_runner_lacp.c b/teamd/teamd_runner_lacp.c
index dc03996..e959cb3 100644
--- a/teamd/teamd_runner_lacp.c
+++ b/teamd/teamd_runner_lacp.c
@@ -905,7 +905,7 @@ static void lacp_port_actor_update(struct lacp_port *lacp_port)
 		state |= INFO_STATE_EXPIRED;
 	if (lacp_port->state == PORT_STATE_DEFAULTED)
 		state |= INFO_STATE_DEFAULTED;
-	if (teamd_port_count(lacp_port->ctx) > 1)
+	if (teamd_port_count(lacp_port->ctx) > 0)
 		state |= INFO_STATE_AGGREGATION;
 	teamd_log_dbg("%s: lacp info state: 0x%02X.", lacp_port->tdport->ifname,
 						      state);
-- 
2.21.0

openSUSE Build Service is sponsored by