From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <yong.liu@intel.com>
Received: from mga14.intel.com (mga14.intel.com [192.55.52.115])
 by dpdk.org (Postfix) with ESMTP id 155AC8E7C
 for <dev@dpdk.org>; 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" <yong.liu@intel.com>
To: "Horton, Remy" <remy.horton@intel.com>, "dev@dpdk.org" <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 <dev.dpdk.org>
List-Unsubscribe: <http://dpdk.org/ml/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://dpdk.org/ml/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <http://dpdk.org/ml/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Tue, 24 Nov 2015 03:05:27 -0000

Tested-by: Yong Liu <yong.liu@intel.com>

- 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