From patchwork Sat Oct 10 10:20:09 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kiran KN X-Patchwork-Id: 80275 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 24931A04B1; Sat, 10 Oct 2020 12:20:19 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id D364E1D8CE; Sat, 10 Oct 2020 12:20:16 +0200 (CEST) Received: from mx0b-00273201.pphosted.com (mx0a-00273201.pphosted.com [208.84.65.16]) by dpdk.org (Postfix) with ESMTP id 44F511D6E2 for ; Sat, 10 Oct 2020 12:20:15 +0200 (CEST) Received: from pps.filterd (m0108157.ppops.net [127.0.0.1]) by mx0a-00273201.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 09AAKBAP009669; Sat, 10 Oct 2020 03:20:11 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=juniper.net; h=from : to : cc : subject : date : message-id : content-type : content-id : content-transfer-encoding : mime-version; s=PPS1017; bh=EfehTwwQxzzp1Bkq/wAQa9ZuFwKzM9HKQKycusgECSg=; b=LS8JKnCK6zle38cFoKzy51/CTbJQaWt58MFJwaza2LOYlcpAayHMdr/P5ObxRaZv62pw 4qzAwPK4fS8FaOA6nHetFDsO4MoCPwzia5PDBIbZIwhX5zYZX+mv8FaW+EeWF0OJ4/87 B80R0GCvw7jdkQ0MALlfGl8O8ZUcrTSp4EwhyCiEaj4tBM93eMPrliLA+mcWyhLBSalY em6/6Jf/W2z70bRL/5fjm9bs+qXM9/xFM3HjJ9fYnkuLj6X7tqSjpvzhjWi40oAzT6DW Zu48hc0Sv0s3FyZccgJgZinttfm1Op7AQnjNHcEFcfEffVRNIWiExAMc3sJMxTLscn5y cQ== Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2103.outbound.protection.outlook.com [104.47.55.103]) by mx0a-00273201.pphosted.com with ESMTP id 34355ug8xr-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Sat, 10 Oct 2020 03:20:11 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CL9YaGlKZJRssVJrJV24HcF2qOUoZp9iQs5408xetY7CLNT9oTRS9StaXRwX6HsdSmkOjr812IpqQMjQCicYXhTfoR2T5rTPj/st50Pg/AwfoZq5ZHFvWBiA4OcZxdvucXe4daoJvm/tafSFxaU2/P0zACflM1T7AqDBi3MWjJOE8VcuSbngXTAkW8FWxudAKEqd7dEtNA3ukpP2NKeWBo47AgHGDzze8A4D5tZpNNzapvItzbseo3kw+SqmmaahPakXE4108N+ScVQJ4EOSyyBvtrCPG3RqG6AnOjpkEVUhvfuMPAMUdPlx88MY4VTwjRYsrEoKqKOvOszeKuqINQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=EfehTwwQxzzp1Bkq/wAQa9ZuFwKzM9HKQKycusgECSg=; b=VF/iAlGa0Oa5qM6pNmosbUB3IbtP5ouhEXL34s/paP47scxvmsYwjkxqbW+380Lx2xEMkzr+BXOw13pbibRD07NY4O48g8BG4qER2iN17MlJkaTTw4FUJ6SxwktrLGaQDVVcmYy6pTAdmfLHe85PutydD80Ya/lUHwhfodnbf2brT/OnwmixhUCJVgGEQvxTfQC66qfYKB+nAc8B80Nt0Wlw47qjLti5iTQjBz/5DRT2JZ9c5kpGwgFAocISqCcUVAU02j0QhAuaNxVe6YRN3/OAm2f0uScYZZBY2doAavXybprQiQFUt6JtESFK/Hoxj0IeFAXjxsj9xD8CVTvKYw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=juniper.net; dmarc=pass action=none header.from=juniper.net; dkim=pass header.d=juniper.net; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=juniper.net; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=EfehTwwQxzzp1Bkq/wAQa9ZuFwKzM9HKQKycusgECSg=; b=jYd+d/NJmcx96j86hLjSdXIvLUooX59UU1VcjEYD9g1USE0mkScnyio13ozJo1KXncLDjxPMsE+bb8vR4aDhwj+jrgLooCjQIesYy8gx6nGwhxsJn8ShPr/FjuyU6E7oPgupswd94+S+wBYD7b1BemcFk4QLRaEaJ7BHaSMhcjs= Received: from MWHPR0501MB3755.namprd05.prod.outlook.com (2603:10b6:301:7d::23) by MWHPR0501MB3756.namprd05.prod.outlook.com (2603:10b6:301:7a::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3477.11; Sat, 10 Oct 2020 10:20:10 +0000 Received: from MWHPR0501MB3755.namprd05.prod.outlook.com ([fe80::8104:6667:3757:e1f]) by MWHPR0501MB3755.namprd05.prod.outlook.com ([fe80::8104:6667:3757:e1f%6]) with mapi id 15.20.3477.014; Sat, 10 Oct 2020 10:20:10 +0000 From: Kiran KN To: "dev@dpdk.org" CC: "chas3@att.com" , David Marchand , Thomas Monjalon Thread-Topic: [PATCH] net/bonding: LACP Packet statistics support Thread-Index: AQHWnu7u/qkHDC6FoUq9fev5YlPRmQ== Date: Sat, 10 Oct 2020 10:20:09 +0000 Message-ID: <96073106-5E60-4CBC-8885-B2A6CDDD40B8@juniper.net> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Microsoft-MacOutlook/16.41.20091302 msip_labels: MSIP_Label_0633b888-ae0d-4341-a75f-06e04137d755_Enabled=true; MSIP_Label_0633b888-ae0d-4341-a75f-06e04137d755_ContentBits=0; MSIP_Label_0633b888-ae0d-4341-a75f-06e04137d755_SiteId=bea78b3c-4cdb-4130-854a-1d193232e5f4; MSIP_Label_0633b888-ae0d-4341-a75f-06e04137d755_ActionId=abec7c70-7bf9-4709-9c42-52e47e3c57cb; MSIP_Label_0633b888-ae0d-4341-a75f-06e04137d755_SetDate=2020-10-10T10:17:25Z; MSIP_Label_0633b888-ae0d-4341-a75f-06e04137d755_Method=Standard; MSIP_Label_0633b888-ae0d-4341-a75f-06e04137d755_Name=Juniper Business Use Only;MSIP_Label_0633b888-ae0d-4341-a75f-06e04137d755_Enabled=true; authentication-results: dpdk.org; dkim=none (message not signed) header.d=none;dpdk.org; dmarc=none action=none header.from=juniper.net; x-originating-ip: [116.197.184.11] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: 6cbdf3e1-38da-491f-d72c-08d86d06115e x-ms-traffictypediagnostic: MWHPR0501MB3756: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:2958; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: pO5Jp5af/i2m4o1zHzGxZt5XdDDo49z3kw9FfhXroptNTClEAgqjtrmDse4r7RRGs/D0QxZTzoKLe2NHo+UO4MzRkOFaVytprtwqoRm9bzBKzCNFEgogJxdDpkM+WnBpVzl2HcCk2sT8CELdT/244QsR9HbO09YJPuil1nJvxqScy9iS6IFLMtRqol2Co2dDD2b+0je93H4wLSEsnrVJupSW/MCDKYlSp2+c61Cgsh30iY6Xbx61UC8MhlgfwSb8sHVsrwgTPdkJnJhw8mTR6st3HxyRCzYed4LXInAWD6QjQLBndIKIeWiKqlohVqASzz7FI8OQpg1z+o2sdWG/MA== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MWHPR0501MB3755.namprd05.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(346002)(136003)(376002)(366004)(39860400002)(396003)(76116006)(91956017)(66476007)(6916009)(8936002)(26005)(64756008)(186003)(66446008)(478600001)(66556008)(36756003)(66946007)(83380400001)(6506007)(6486002)(4326008)(33656002)(5660300002)(2616005)(8676002)(54906003)(86362001)(316002)(6512007)(71200400001)(2906002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: T/LCwaeqO2KzQnp4YOBoz5OcOadI9G6vAtUJeYwwIcv7zNOfEudzKucdbNWMfScZrMMiYWuR7Unqae3CydtOaw7Z5YOmxLpSyjTlAjoVEOhA2X4q1u8ly+PuZmEkV8k64QeFgi0C7vlBDY4qK9m97wrQ2hkA/CHKXX64OjCA/v6rG30G943MIo7mvQRD0pNPAIvGO6aJBEUseBrKObBSZSumzQOjkfLCJ8cbfyAMhiYQCdC+eeLlJ/f1yBhllyyGUsLrBpZvRNIIJlNXhY0obTiP4Iog0LArWAGLBlKwA/Ruq0HEM4CdUh1DAz0pWLPPqUonFWvp/nXgnVim1c5RLHlTOm2LE2pytJGQJNbqYh5BxVnMm/TPFbhw5rPaKUBQLXU14K6KYAvyR0uh2mn/R/cR/AWvznP53/bMtra935gBQmKvNJP2KqwvLrcBABQOpe9quBt2UwapFoEvaHC7WpcULZXfBFmS7wIJqyVxCgCuwxysPLPshcrka3G85EFs3INyMs0FKX9v/QGPK7oVI0raER97ra/WN0R9ohKnA30EmXVLEsNkLkNEaxsP8AC1Q6nyNmkmOKtYiRj/BdPt09aMCG9IouDn6BT35bbYAjQF1Y5Vrb473v70pbR7MEZMwdPKWJXQ/w+G4HHCJk+M1w== x-ms-exchange-transport-forked: True Content-ID: MIME-Version: 1.0 X-OriginatorOrg: juniper.net X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MWHPR0501MB3755.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6cbdf3e1-38da-491f-d72c-08d86d06115e X-MS-Exchange-CrossTenant-originalarrivaltime: 10 Oct 2020 10:20:10.0415 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: bea78b3c-4cdb-4130-854a-1d193232e5f4 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 2Fexxi+KF3ShODx0EOYpuwmuOiWUyYBmXJzJl/fqpxuy1XqusVNeM4TMYPb4nvKhXva/2HvzD+Af3y5xnkOxwQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR0501MB3756 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.235, 18.0.687 definitions=2020-10-10_04:2020-10-09, 2020-10-10 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_spam_notspam policy=outbound_spam score=0 mlxlogscore=999 mlxscore=0 suspectscore=0 adultscore=0 spamscore=0 malwarescore=0 impostorscore=0 clxscore=1011 bulkscore=0 phishscore=0 lowpriorityscore=0 priorityscore=1501 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2010100096 Subject: [dpdk-dev] [PATCH] net/bonding: LACP Packet statistics support X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" net/bonding: LACP Packet statistics support Store the LACP packets sent and received for each slave. This can be used for debug purposes from any DPDK application. Signed-Off-By: Kiran K N Change-Id: Iae82bd7d0879a4c4333a292c96d431798c56e301 --- drivers/net/bonding/eth_bond_8023ad_private.h | 2 ++ drivers/net/bonding/rte_eth_bond_8023ad.c | 39 +++++++++++++++++++++++++++ drivers/net/bonding/rte_eth_bond_8023ad.h | 20 ++++++++++++++ 3 files changed, 61 insertions(+) -- 2.16.6 Juniper Business Use Only diff --git a/drivers/net/bonding/eth_bond_8023ad_private.h b/drivers/net/bonding/eth_bond_8023ad_private.h index ef0b56850..500640b28 100644 --- a/drivers/net/bonding/eth_bond_8023ad_private.h +++ b/drivers/net/bonding/eth_bond_8023ad_private.h @@ -19,6 +19,8 @@ #define BOND_MODE_8023AX_SLAVE_RX_PKTS 3 /** Maximum number of LACP packets from one slave queued in TX ring. */ #define BOND_MODE_8023AX_SLAVE_TX_PKTS 1 +/** maximum number of slaves for each port */ +#define BOND_MODE_8023AD_MAX_SLAVES 6 /** * Timeouts deffinitions (5.4.4 in 802.1AX documentation). */ diff --git a/drivers/net/bonding/rte_eth_bond_8023ad.c b/drivers/net/bonding/rte_eth_bond_8023ad.c index ea79a1344..37eb29847 100644 --- a/drivers/net/bonding/rte_eth_bond_8023ad.c +++ b/drivers/net/bonding/rte_eth_bond_8023ad.c @@ -132,6 +132,9 @@ static const struct rte_ether_addr lacp_mac_addr = { struct port bond_mode_8023ad_ports[RTE_MAX_ETHPORTS]; +static uint64_t lacpdu_tx_count[BOND_MODE_8023AD_MAX_SLAVES]; +static uint64_t lacpdu_rx_count[BOND_MODE_8023AD_MAX_SLAVES]; + static void timer_cancel(uint64_t *timer) { @@ -629,6 +632,7 @@ tx_machine(struct bond_dev_private *internals, uint16_t slave_id) set_warning_flags(port, WRN_TX_QUEUE_FULL); return; } +lacpdu_tx_count[slave_id]++; } else { uint16_t pkts_sent = rte_eth_tx_burst(slave_id, internals->mode4.dedicated_queues.tx_qid, @@ -638,6 +642,7 @@ tx_machine(struct bond_dev_private *internals, uint16_t slave_id) set_warning_flags(port, WRN_TX_QUEUE_FULL); return; } +lacpdu_tx_count[slave_id] += pkts_sent; } @@ -896,6 +901,10 @@ bond_mode_8023ad_periodic_cb(void *arg) lacp_pkt = NULL; rx_machine_update(internals, slave_id, lacp_pkt); + +if (retval == 0) { + lacpdu_rx_count[slave_id]++; + } } else { uint16_t rx_count = rte_eth_rx_burst(slave_id, internals->mode4.dedicated_queues.rx_qid, @@ -906,6 +915,8 @@ bond_mode_8023ad_periodic_cb(void *arg) slave_id, lacp_pkt); else rx_machine_update(internals, slave_id, NULL); + +lacpdu_rx_count[slave_id] += rx_count; } periodic_machine(internals, slave_id); @@ -1715,3 +1726,31 @@ rte_eth_bond_8023ad_dedicated_queues_disable(uint16_t port) return retval; } + +uint64_t +rte_eth_bond_8023ad_lacp_tx_count(uint16_t port_id, uint8_t clear) +{ +if(port_id > BOND_MODE_8023AD_MAX_SLAVES) +return -1; + +if(clear) { +lacpdu_tx_count[port_id] = 0; +return 0; +} + + return lacpdu_tx_count[port_id]; +} + +uint64_t +rte_eth_bond_8023ad_lacp_rx_count(uint16_t port_id, uint8_t clear) +{ +if(port_id > BOND_MODE_8023AD_MAX_SLAVES) +return -1; + +if(clear) { +lacpdu_rx_count[port_id] = 0; +return 0; +} + +return lacpdu_rx_count[port_id]; +} diff --git a/drivers/net/bonding/rte_eth_bond_8023ad.h b/drivers/net/bonding/rte_eth_bond_8023ad.h index 5623e1424..7163de381 100644 --- a/drivers/net/bonding/rte_eth_bond_8023ad.h +++ b/drivers/net/bonding/rte_eth_bond_8023ad.h @@ -340,4 +340,24 @@ rte_eth_bond_8023ad_agg_selection_set(uint16_t port_id, */ int rte_eth_bond_8023ad_ext_set_fast(uint16_t port_id, uint16_t slave_id); + +/** + * Get Lacp statistics counter for slaves + * @param port_id Bonding slave device id + * @param clear, reset statistics + * @return + * 0 on success, negative value otherwise + */ +uint64_t +rte_eth_bond_8023ad_lacp_tx_count(uint16_t port_id, uint8_t clear); + +/** + * Get Lacp statistics counter for slaves + * @param port_id Bonding slave device id + * @param clear, reset statistics + * @return + * 0 on success, negative value otherwise + */ +uint64_t +rte_eth_bond_8023ad_lacp_rx_count(uint16_t port_id, uint8_t clear); #endif /* RTE_ETH_BOND_8023AD_H_ */