From patchwork Wed Dec 20 12:24:13 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peng, Yuan" X-Patchwork-Id: 32537 X-Patchwork-Delegate: helin.zhang@intel.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 91DDB1B1BD; Wed, 20 Dec 2017 13:24:18 +0100 (CET) Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by dpdk.org (Postfix) with ESMTP id 025411B1B7 for ; Wed, 20 Dec 2017 13:24:16 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 20 Dec 2017 04:24:15 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.45,431,1508828400"; d="scan'208";a="19822013" Received: from fmsmsx108.amr.corp.intel.com ([10.18.124.206]) by orsmga002.jf.intel.com with ESMTP; 20 Dec 2017 04:24:15 -0800 Received: from fmsmsx115.amr.corp.intel.com (10.18.116.19) by FMSMSX108.amr.corp.intel.com (10.18.124.206) with Microsoft SMTP Server (TLS) id 14.3.319.2; Wed, 20 Dec 2017 04:24:15 -0800 Received: from shsmsx101.ccr.corp.intel.com (10.239.4.153) by fmsmsx115.amr.corp.intel.com (10.18.116.19) with Microsoft SMTP Server (TLS) id 14.3.319.2; Wed, 20 Dec 2017 04:24:14 -0800 Received: from shsmsx103.ccr.corp.intel.com ([169.254.4.213]) by SHSMSX101.ccr.corp.intel.com ([169.254.1.159]) with mapi id 14.03.0319.002; Wed, 20 Dec 2017 20:24:13 +0800 From: "Peng, Yuan" To: "Wu, Yanglong" , "dev@dpdk.org" CC: "Xing, Beilei" , "Zhang, Helin" Thread-Topic: [PATCH v2] net/i40e: support mac loopback Thread-Index: AQHTeWRk6hoJAfLxjkmByt/WUZe9DKNMJw7g Date: Wed, 20 Dec 2017 12:24:13 +0000 Message-ID: <67D543A150B29E4CAAE53918F64EDAEA374662F0@SHSMSX103.ccr.corp.intel.com> References: <20171120040531.152695-1-yanglong.wu@intel.com> <20171220072915.118907-1-yanglong.wu@intel.com> In-Reply-To: <20171220072915.118907-1-yanglong.wu@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.0.0.116 dlp-reaction: no-action x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH v2] net/i40e: support mac loopback 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" Tested-by: Peng,Yuan - Tested Branch: dpdk master - Tested Commit: e976052a1106153c93c802e5ffd2f6c8a29f239f - OS: 4.4.0-62-generic - GCC: gcc (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609 - CPU: Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz - NIC: Intel Corporation Ethernet Controller XL710 for 40GbE QSFP+ [8086:1583] - Default x86_64-native-linuxapp-gcc configuration - Prerequisites: - Total 2cases, 2passed, 0 failed - Prerequisites command / instruction: Two 40Gb Ethernet ports of the DUT are directly connected and link is up. - Case: Case1: loopback mode enable loopback mode: In dpdk/test/test/test_pmd_perf.c set:: .lpbk_mode=1 #define MAX_TRAFFIC_BURST 32 then make test ./usertools/dpdk-devbind.py -b igb_uio 05:00.0 start test:: ./test/test/test -c f -n 4 -- -i RTE>>pmd_perf_autotest The final output of the test will be matrix of average cycles of IO used per packet, and "Test OK" is printed out. the peer port can't receive any packet. case2: physical link mode disable lookback mode: In dpdk/test/test/test_pmd_perf.c set:: .lpbk_mode=0 #define MAX_TRAFFIC_BURST 32 then make test start test:: ./test/test/test -c f -n 4 -- -i RTE>>pmd_perf_autotest there is not "Test OK" presented. the peer port can receive all the 32 packets. When run the two test cases on XXV710 with same dpdk version, the cases passed too. -----Original Message----- From: Wu, Yanglong Sent: Wednesday, December 20, 2017 3:29 PM To: dev@dpdk.org Cc: Xing, Beilei ; Zhang, Helin ; Peng, Yuan ; Wu, Yanglong Subject: [PATCH v2] net/i40e: support mac loopback According to loopback mode, setup loopback link or not. If loopback link is setted, packets in tx will be sent to rx directly. Loopback mode can be used to support testing task Signed-off-by: Yanglong Wu --- v2: fix coding style issue --- drivers/net/i40e/i40e_ethdev.c | 10 ++++++++++ drivers/net/i40e/i40e_ethdev.h | 3 ++- 2 files changed, 12 insertions(+), 1 deletion(-) -- 2.11.0 diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c index 0739f65a8..e8bdb335a 100644 --- a/drivers/net/i40e/i40e_ethdev.c +++ b/drivers/net/i40e/i40e_ethdev.c @@ -2047,6 +2047,16 @@ i40e_dev_start(struct rte_eth_dev *dev) true, NULL); } } + + /* Enable mac loopback mode */ + if (dev->data->dev_conf.lpbk_mode == I40E_AQ_LB_MODE_NONE || + dev->data->dev_conf.lpbk_mode == I40E_AQ_LB_PHY_LOCAL) { + ret = i40e_aq_set_lb_modes(hw, dev->data->dev_conf.lpbk_mode, NULL); + if (ret != I40E_SUCCESS) { + PMD_DRV_LOG(ERR, "fail to set loopback link"); + goto err_up; + } + } /* Apply link configure */ if (dev->data->dev_conf.link_speeds & ~(ETH_LINK_SPEED_100M | diff --git a/drivers/net/i40e/i40e_ethdev.h b/drivers/net/i40e/i40e_ethdev.h index cd67453d1..2ad9858e4 100644 --- a/drivers/net/i40e/i40e_ethdev.h +++ b/drivers/net/i40e/i40e_ethdev.h @@ -61,7 +61,8 @@ #define I40E_NUM_MACADDR_MAX 64 /* Maximum number of VFs */ #define I40E_MAX_VF 128 - +/*flag of no loopback*/ +#define I40E_AQ_LB_MODE_NONE 0x0 /* * vlan_id is a 12 bit number. * The VFTA array is actually a 4096 bit array, 128 of 32bit elements.