From patchwork Wed Nov 19 08:48:59 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jianhua Xie X-Patchwork-Id: 412304 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 2607714014D for ; Wed, 19 Nov 2014 19:50:40 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754201AbaKSIuf (ORCPT ); Wed, 19 Nov 2014 03:50:35 -0500 Received: from mail-bn1bon0144.outbound.protection.outlook.com ([157.56.111.144]:48160 "EHLO na01-bn1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1753871AbaKSIue (ORCPT ); Wed, 19 Nov 2014 03:50:34 -0500 Received: from BN3PR0301CA0030.namprd03.prod.outlook.com (25.160.180.168) by CY1PR0301MB0857.namprd03.prod.outlook.com (25.160.163.151) with Microsoft SMTP Server (TLS) id 15.1.16.15; Wed, 19 Nov 2014 08:50:31 +0000 Received: from BY2FFO11FD040.protection.gbl (2a01:111:f400:7c0c::114) by BN3PR0301CA0030.outlook.office365.com (2a01:111:e400:4000::40) with Microsoft SMTP Server (TLS) id 15.1.16.15 via Frontend Transport; Wed, 19 Nov 2014 08:50:30 +0000 Received: from tx30smr01.am.freescale.net (192.88.168.50) by BY2FFO11FD040.mail.protection.outlook.com (10.1.14.225) with Microsoft SMTP Server (TLS) id 15.1.6.13 via Frontend Transport; Wed, 19 Nov 2014 08:50:29 +0000 Received: from titan.ap.freescale.net ([10.192.208.233]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id sAJ8oIkT029780; Wed, 19 Nov 2014 01:50:26 -0700 From: Xie Jianhua To: CC: Eric Dumazet , Jay Vosburgh , Veaceslav Falico , Andy Gospodarek , "David S. Miller" , Jianhua Xie , Jianhua Xie Subject: [PATCH 2/2] bonding: Introduce 4 AD link speed to fix agg_bandwidth Date: Wed, 19 Nov 2014 16:48:59 +0800 Message-ID: <1416386939-24591-3-git-send-email-Jianhua.Xie@freescale.com> X-Mailer: git-send-email 2.1.0.27.g96db324 In-Reply-To: <1416386939-24591-1-git-send-email-Jianhua.Xie@freescale.com> References: <1416386939-24591-1-git-send-email-Jianhua.Xie@freescale.com> X-EOPAttributedMessage: 0 Received-SPF: Fail (protection.outlook.com: domain of freescale.com does not designate 192.88.168.50 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.168.50; helo=tx30smr01.am.freescale.net; Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=Jianhua.Xie@freescale.com; X-Forefront-Antispam-Report: CIP:192.88.168.50; CTRY:US; IPV:NLI; EFV:NLI; SFV:NSPM; SFS:(10019020)(6009001)(189002)(199003)(107046002)(21056001)(88136002)(46102003)(64706001)(86362001)(229853001)(47776003)(93916002)(2351001)(87286001)(102836001)(85426001)(20776003)(77156002)(104016003)(50986999)(76176999)(62966003)(110136001)(19580395003)(87936001)(36756003)(95666004)(84676001)(6806004)(19580405001)(44976005)(99396003)(68736004)(92566001)(120916001)(50466002)(89996001)(106466001)(31966008)(92726001)(50226001)(4396001)(105606002)(48376002)(97736003)(104166001); DIR:OUT; SFP:1102; SCL:1; SRVR:CY1PR0301MB0857; H:tx30smr01.am.freescale.net; FPR:; MLV:sfv; PTR:InfoDomainNonexistent; MX:1; A:1; LANG:en; MIME-Version: 1.0 X-Microsoft-Antispam: UriScan:; X-Microsoft-Antispam: BCL:0;PCL:0;RULEID:;SRVR:CY1PR0301MB0857; X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:; SRVR:CY1PR0301MB0857; X-Forefront-PRVS: 04004D94E2 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:; SRVR:CY1PR0301MB0857; X-OriginatorOrg: freescale.com Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Jianhua Xie This patch adds [2.5|20|40|56] Gbps enum definition, and fixes aggregated bandwidth calculation based on above slave links. CC: Jay Vosburgh CC: Veaceslav Falico CC: Andy Gospodarek CC: David S. Miller Signed-off-by: Jianhua Xie --- drivers/net/bonding/bond_3ad.c | 38 +++++++++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/drivers/net/bonding/bond_3ad.c b/drivers/net/bonding/bond_3ad.c index 6bc27d9..8baa87d 100644 --- a/drivers/net/bonding/bond_3ad.c +++ b/drivers/net/bonding/bond_3ad.c @@ -88,7 +88,11 @@ enum ad_link_speed_type { AD_LINK_SPEED_10MBPS, AD_LINK_SPEED_100MBPS, AD_LINK_SPEED_1000MBPS, - AD_LINK_SPEED_10000MBPS + AD_LINK_SPEED_2500MBPS, + AD_LINK_SPEED_10000MBPS, + AD_LINK_SPEED_20000MBPS, + AD_LINK_SPEED_40000MBPS, + AD_LINK_SPEED_56000MBPS }; /* compare MAC addresses */ @@ -247,7 +251,11 @@ static inline int __check_agg_selection_timer(struct port *port) * %AD_LINK_SPEED_10MBPS, * %AD_LINK_SPEED_100MBPS, * %AD_LINK_SPEED_1000MBPS, + * %AD_LINK_SPEED_2500MBPS, * %AD_LINK_SPEED_10000MBPS + * %AD_LINK_SPEED_20000MBPS + * %AD_LINK_SPEED_40000MBPS + * %AD_LINK_SPEED_56000MBPS */ static u16 __get_link_speed(struct port *port) { @@ -275,10 +283,26 @@ static u16 __get_link_speed(struct port *port) speed = AD_LINK_SPEED_1000MBPS; break; + case SPEED_2500: + speed = AD_LINK_SPEED_2500MBPS; + break; + case SPEED_10000: speed = AD_LINK_SPEED_10000MBPS; break; + case SPEED_20000: + speed = AD_LINK_SPEED_20000MBPS; + break; + + case SPEED_40000: + speed = AD_LINK_SPEED_40000MBPS; + break; + + case SPEED_56000: + speed = AD_LINK_SPEED_56000MBPS; + break; + default: /* unknown speed value from ethtool. shouldn't happen */ speed = 0; @@ -639,9 +663,21 @@ static u32 __get_agg_bandwidth(struct aggregator *aggregator) case AD_LINK_SPEED_1000MBPS: bandwidth = aggregator->num_of_ports * 1000; break; + case AD_LINK_SPEED_2500MBPS: + bandwidth = aggregator->num_of_ports * 2500; + break; case AD_LINK_SPEED_10000MBPS: bandwidth = aggregator->num_of_ports * 10000; break; + case AD_LINK_SPEED_20000MBPS: + bandwidth = aggregator->num_of_ports * 20000; + break; + case AD_LINK_SPEED_40000MBPS: + bandwidth = aggregator->num_of_ports * 40000; + break; + case AD_LINK_SPEED_56000MBPS: + bandwidth = aggregator->num_of_ports * 56000; + break; default: bandwidth = 0; /* to silence the compiler */ }