From patchwork Fri Jan 16 15:57:27 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jonathan Toppins X-Patchwork-Id: 429913 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 72E8F140273 for ; Sat, 17 Jan 2015 02:57:53 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756554AbbAPP5q (ORCPT ); Fri, 16 Jan 2015 10:57:46 -0500 Received: from mail-qg0-f50.google.com ([209.85.192.50]:54737 "EHLO mail-qg0-f50.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755289AbbAPP5p (ORCPT ); Fri, 16 Jan 2015 10:57:45 -0500 Received: by mail-qg0-f50.google.com with SMTP id z60so16868449qgd.9 for ; Fri, 16 Jan 2015 07:57:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cumulusnetworks.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=VtT/x9GfCu94RK6sQKGgpCqpnradgdJp4e5i7ZHyB9Y=; b=U4FWnfuS9FWkDP+Q3KKK8mjOgU+IurWliZ+suQeu3e4wMEprfeyqQpLTky0DhH+1hm nbRPPHeK4WGj95la6nIRprr8cvycJhmxQp4bSl++bqDl6mdghmUefX1XCGNzzQupZdlW xDyW3OiYxCeplNoK12yDHkYEPc035d0AadhSU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=VtT/x9GfCu94RK6sQKGgpCqpnradgdJp4e5i7ZHyB9Y=; b=VuLktZOalmYouv703/dqSXdrcb6aiKgw61l97ZG1NJiGPtfOCQjt+VbPs/77k2Qdea 0gpXIgEckmfkBwVyyiDM/OGaSSTU+rah8cRA/oIKwtYJ6kNP04h8CSSbLxESvDi9vZ8i SeQM0r76x1DTElwcTfmAXFYvBxtyLvoT1r9HO/ogrQg6MEOlNaqMB3Ir4IJn0HyjMFm0 IZRXmw7nEb6RTb5AXBBnDf2FCR41QqOj1t3fGEsG3PyQNwUOeHTv5sfjSNltawSpXw4r 4ejR1X4VtPynzBUigK9mU0DvVkYls7oclzQxJhNd5eQGC26c9MYP80UiLRKpOVJ+XXYo ZwLA== X-Gm-Message-State: ALoCoQmZc1hdH4fJhfx0GD/DBFWYkOwJMtQ7Rpf1iA04DrIP0eqd4djJL3OGtWtTytEelsUpN2xI X-Received: by 10.140.92.33 with SMTP id a30mr24716229qge.30.1421423864555; Fri, 16 Jan 2015 07:57:44 -0800 (PST) Received: from debian-devel.rtplab.test (rrcs-24-171-185-114.midsouth.biz.rr.com. [24.171.185.114]) by mx.google.com with ESMTPSA id y95sm4475377qgy.14.2015.01.16.07.57.43 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 16 Jan 2015 07:57:43 -0800 (PST) From: Jonathan Toppins To: netdev@vger.kernel.org Cc: Andy Gospodarek , Satish Ashok , Jonathan Toppins Subject: [PATCH net-next 4/5] bonding: fix LACP PDU not sent on slave port sometimes Date: Fri, 16 Jan 2015 10:57:27 -0500 Message-Id: <1421423848-414-5-git-send-email-jtoppins@cumulusnetworks.com> X-Mailer: git-send-email 1.7.10.4 In-Reply-To: <1421423848-414-1-git-send-email-jtoppins@cumulusnetworks.com> References: <1421423848-414-1-git-send-email-jtoppins@cumulusnetworks.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Satish Ashok When a slave is added to a bond and it is not in full duplex mode, AD_PORT_LACP_ENABLED flag is cleared, due to this LACP PDU is not sent on slave. When the duplex is changed to full, the flag needs to be set to send LACP PDU. Cc: Andy Gospodarek Signed-off-by: Satish Ashok Signed-off-by: Jonathan Toppins --- drivers/net/bonding/bond_3ad.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/drivers/net/bonding/bond_3ad.c b/drivers/net/bonding/bond_3ad.c index 52a8772..43bb0b0 100644 --- a/drivers/net/bonding/bond_3ad.c +++ b/drivers/net/bonding/bond_3ad.c @@ -2224,8 +2224,10 @@ static int bond_3ad_rx_indication(struct lacpdu *lacpdu, struct slave *slave, switch (lacpdu->subtype) { case AD_TYPE_LACPDU: ret = RX_HANDLER_CONSUMED; - netdev_dbg(slave->bond->dev, "Received LACPDU on port %d\n", - port->actor_port_number); + netdev_dbg(slave->bond->dev, + "Received LACPDU on port %d slave %s\n", + port->actor_port_number, + slave->dev->name); /* Protect against concurrent state machines */ spin_lock(&slave->bond->mode_lock); ad_rx_machine(lacpdu, port); @@ -2317,7 +2319,10 @@ void bond_3ad_adapter_duplex_changed(struct slave *slave) port->actor_admin_port_key &= ~AD_DUPLEX_KEY_MASKS; port->actor_oper_port_key = port->actor_admin_port_key |= __get_duplex(port); - netdev_dbg(slave->bond->dev, "Port %d changed duplex\n", port->actor_port_number); + netdev_dbg(slave->bond->dev, "Port %d slave %s changed duplex\n", + port->actor_port_number, slave->dev->name); + if (port->actor_oper_port_key & AD_DUPLEX_KEY_MASKS) + port->sm_vars |= AD_PORT_LACP_ENABLED; /* there is no need to reselect a new aggregator, just signal the * state machines to reinitialize */