From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by dpdk.org (Postfix) with ESMTP id 155AC8E7C for ; Tue, 24 Nov 2015 04:05:26 +0100 (CET) Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga103.fm.intel.com with ESMTP; 23 Nov 2015 19:05:26 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.20,338,1444719600"; d="scan'208";a="858378679" Received: from fmsmsx107.amr.corp.intel.com ([10.18.124.205]) by fmsmga002.fm.intel.com with ESMTP; 23 Nov 2015 19:05:25 -0800 Received: from fmsmsx113.amr.corp.intel.com (10.18.116.7) by fmsmsx107.amr.corp.intel.com (10.18.124.205) with Microsoft SMTP Server (TLS) id 14.3.248.2; Mon, 23 Nov 2015 19:05:25 -0800 Received: from shsmsx101.ccr.corp.intel.com (10.239.4.153) by FMSMSX113.amr.corp.intel.com (10.18.116.7) with Microsoft SMTP Server (TLS) id 14.3.248.2; Mon, 23 Nov 2015 19:05:24 -0800 Received: from shsmsx103.ccr.corp.intel.com ([169.254.4.138]) by SHSMSX101.ccr.corp.intel.com ([169.254.1.83]) with mapi id 14.03.0248.002; Tue, 24 Nov 2015 11:05:23 +0800 From: "Liu, Yong" To: "Horton, Remy" , "dev@dpdk.org" Thread-Topic: [dpdk-dev] [PATCH v9 0/3] User-space ethtool sample application Thread-Index: AQHRI6kezsvtFfys5ky3I89FKraLfJ6qglMA Date: Tue, 24 Nov 2015 03:05:22 +0000 Message-ID: <86228AFD5BCD8E4EBFD2B90117B5E81E10F6D38E@SHSMSX103.ccr.corp.intel.com> References: <1447681329-31351-1-git-send-email-remy.horton@intel.com> <1448033697-32613-1-git-send-email-remy.horton@intel.com> In-Reply-To: <1448033697-32613-1-git-send-email-remy.horton@intel.com> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH v9 0/3] User-space ethtool sample application X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Nov 2015 03:05:27 -0000 Tested-by: Yong Liu - Tested Commit: 4522eca1352d8ed7c0823e328e2a68c2ba6459ab - OS: Fedora20 3.11.10-301.fc20.x86_64 - GCC: gcc version 4.8.3 20140911 - CPU: Intel(R) Xeon(R) CPU E5-2699 v3 @ 2.30GHz - NIC: Intel Corporation Device 82599ES [8086:10fb] - Default x86_64-native-linuxapp-gcc configuration - Prerequisites: - Total 9 cases, 9 passed, 0 failed - Prerequisites command / instruction: Build userspace ethtool sample make -C examples/ethtool =20 - Case: ethtool_dump_driver_info Description: check userspace sample can dump driver information and port statistics Command / instruction: Start userspace ethtool sample with two ports bound ethtool -c f -n 4 Wait for the sample start up and shown prompt EthApp> Use "drvinfo" command to dump driver information and check it's correct= . EthApp> drvinfo Port 0 driver: rte_ixgbe_pmd (ver: RTE 2.2.0-rc1) Port 1 driver: rte_ixgbe_pmd (ver: RTE 2.2.0-rc1) Change tester port link down and check link status can be detected. EthApp> link Port 0: Down Port 1: Down Send packets to port0 and port1 and check port statistic correct. EthApp> Port 0 stats In: 1 (64 bytes) Out: 1 (64 bytes) Err: 0 =20 - Case: ethtool_vlan Description: check userspace sample can configure port vlan setting Command / instruction: Enable port vlan filer in main file cfg_port.rxmode.hw_vlan_filter=3D1 Rebuild sample and start userspace ethtool sample with two ports bound ethtool -c f -n 4 Add random vlan on port and send packet with same vlan EthApp> vlan 0 add 2997 Check packet normally forwarded and port statistic correct EthApp> Port 0 stats In: 1 (64 bytes) Out: 1 (64 bytes) Err: 0 Send packet with wrong vlan and check packet not forwarded EthApp> Port 0 stats In: 1 (64 bytes) Out: 1 (64 bytes) Err: 0 Remove the random vlan on port and send packet with same vlan EthApp> vlan 0 remove 2997 Check packet not forwarded EthApp> Port 0 stats In: 1 (64 bytes) Out: 1 (64 bytes) Err: 0 =20 - Case: ethtool_mac_address Description: check userspace sample can configure port mac address Command / instruction: Start userspace ethtool sample with two ports bound ethtool -c f -n 4 Add random vlan on port and send packet with same vlan EthApp> vlan 0 add 2997 Changed port mac address and "macaddr" command can dump new mac EthApp> macaddr 0 00:10:00:00:00:00 EthApp> macaddr 0 Port 0 MAC Address: 00:10:00:00:00:00 Send packet and check forwarded packet source mac changed - Case: ethtool_port_config Description: check userspace sample can start/stop port Command / instruction: Start userspace ethtool sample with two ports bound ethtool -c f -n 4 Stop port and check forwarding cannot work EthApp> stop 0 Restart port and check packet can be normally forwarded =20 - Case: ethtool_retrieve_eeprom Description: check userspace sample can retrieve port eerprom file Command / instruction: Start userspace ethtool sample with two ports bound ethtool -c f -n 4 Retrieve port eeprom file and saved for later compare EthApp> eeprom 0 eeprom_0.bin Bound port back to default kernel driver and dump eeprom by ethtool ethtool --eeprom-dump p1p3 raw on > ethtool_eeprom_0.bin Check userspace ethool and linux ethtool dumped file md5 are the same md5sum eeprom_0.bin md5sum ethtool_eeprom_0.bin - Case: ethtool_retrieve_register Description: check userspace sample can retrieve port register file Command / instruction: Start userspace ethtool sample with two ports bound ethtool -c f -n 4 Retrieve port register file EthApp> regs 0 regs_0.bin User linux ethtool dump this file and check information correct ethtool -d p1p3 raw off file regs_0.bin =20 - Case: ethtool_ring_parameter Description: check userspace sample can configure pending entries of Rx/T= x ring Command / instruction: Start userspace ethtool sample with two ports bound ethtool -c f -n 4 Use command "ringparam" dump port pending entries EthApp> ringparam 0 Port 0 ring parameters Rx Pending: 128 (4096 max) Tx Pending: 256 (4096 max) Changed pending entries of Rx/Tx ring to max value EthApp> ringparam 0 4096 4096 Check that packet can be normally forwarded EthApp> portstats 0 Port 0 stats In: 1 (64 bytes) Out: 1 (64 bytes) Err: 0 - Case: ethtool_rx_pause Description: check userspace sample can configure port rx pause setting Command / instruction: Start userspace ethtool sample with two ports bound ethtool -c f -n 4 Enable port 0 handle rx pause frame=20 EthApp> pause 0 rx Based on 50% line rate, calculate how many packets hanged per pause fra= me Configure transmit number of packets and then one pause frame from test port Check forwarded rate just 50% and difference smaller than 0.1% - Case: ethtool_tx_pause Description: check userspace sample can configure port tx pause setting Command / instruction: After receive burst of packets, sleep a while for slow down usleep(10); Rebuild sample and start userspace ethtool sample with two ports bound ethtool -c f -n 4 Enable port 0 wiht transmit pause frame=20 EthApp> pause 0 tx Send packets with line rate from tester port Enable tester port link control, transmit speed will also dropped After few seconds stop transmit, check tester port received packets mor= e than transmitted. > -----Original Message----- > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Remy Horton > Sent: Friday, November 20, 2015 11:35 PM > To: dev@dpdk.org > Subject: [dpdk-dev] [PATCH v9 0/3] User-space ethtool sample application >=20 > Further enhancements to the userspace ethtool implementation that was > submitted in 2.1 and packaged as a self-contained sample application. > Implements an rte_ethtool shim layer based on rte_ethdev API, along > with a command prompt driven demonstration application. >=20 > This patchset depends on: > * http://dpdk.org/dev/patchwork/patch/8070/ >=20 > v9: > * Merged in upstream external lib dependency > * Added sanity check to shim MTU set function > * Added example to example/Makefile > * Rebased to latest master >=20 > v8: > * Rebased to latest origin/master >=20 > v7: > * Ringparam printouts wrong way round > * Ringparam help message corrections > * Use __rte_unused instead of __attribute__((unused)) > * Allow Jumbo-sized MTUs > * Documentation style and spelling changes >=20 > v6: > * Fixed hang when run with zero available ports > * Fixed incorrect sanity check preventing EEPROM dumps > * Documentation additions > * Fixed RxMode accepting untagged packets > * Fixed ringparam allocation being too small >=20 > v5: > * Documentation changes >=20 > v4: > * Fixed assumption that master core always has id zero > * Changed 1:1 core-to-port to 2 core (ethtool & ports) design > * Included the correct documentation.. >=20 > v3: > * Made use of enums for core state. > * Fixed Makefile issue. > * Fixed incorrect assumption with core ids. > * Changed handling of more ports than cores. >=20 > v2: > * Replaced l2fwd base with simpler application. > * Added ringparam functions. > * Added documentation. >=20 > Remy Horton (3): > Remove ABI requirement for external library builds. > example: add user-space ethtool sample application > doc: add user-space ethtool sample app guide & release notes >=20 > MAINTAINERS | 4 + > doc/guides/rel_notes/release_2_2.rst | 1 + > doc/guides/sample_app_ug/ethtool.rst | 160 +++++++ > doc/guides/sample_app_ug/index.rst | 1 + > examples/Makefile | 1 + > examples/ethtool/Makefile | 48 ++ > examples/ethtool/ethtool-app/Makefile | 54 +++ > examples/ethtool/ethtool-app/ethapp.c | 873 > ++++++++++++++++++++++++++++++++++ > examples/ethtool/ethtool-app/ethapp.h | 41 ++ > examples/ethtool/ethtool-app/main.c | 305 ++++++++++++ > examples/ethtool/lib/Makefile | 57 +++ > examples/ethtool/lib/rte_ethtool.c | 423 ++++++++++++++++ > examples/ethtool/lib/rte_ethtool.h | 410 ++++++++++++++++ > mk/rte.extlib.mk | 2 + > mk/rte.lib.mk | 6 + > 15 files changed, 2386 insertions(+) > create mode 100644 doc/guides/sample_app_ug/ethtool.rst > create mode 100644 examples/ethtool/Makefile > create mode 100644 examples/ethtool/ethtool-app/Makefile > create mode 100644 examples/ethtool/ethtool-app/ethapp.c > create mode 100644 examples/ethtool/ethtool-app/ethapp.h > create mode 100644 examples/ethtool/ethtool-app/main.c > create mode 100644 examples/ethtool/lib/Makefile > create mode 100644 examples/ethtool/lib/rte_ethtool.c > create mode 100644 examples/ethtool/lib/rte_ethtool.h >=20 > -- > 1.9.3