From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by dpdk.org (Postfix) with ESMTP id 759421B40E for ; Wed, 6 Jun 2018 07:34:05 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga107.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 05 Jun 2018 22:34:04 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.49,482,1520924400"; d="scan'208";a="230283844" Received: from shecgisg006.sh.intel.com ([10.239.39.68]) by orsmga005.jf.intel.com with ESMTP; 05 Jun 2018 22:34:03 -0700 Received: from shecgisg006.sh.intel.com (localhost [127.0.0.1]) by shecgisg006.sh.intel.com with ESMTP id w565Y3H3022639; Wed, 6 Jun 2018 13:34:03 +0800 Received: (from yufengmx@localhost) by shecgisg006.sh.intel.com with œ id w565Y3UN022635; Wed, 6 Jun 2018 13:34:03 +0800 From: yufengx.mo@intel.com To: dts@dpdk.org Cc: yufengmx Date: Wed, 6 Jun 2018 13:34:01 +0800 Message-Id: <1528263242-22459-2-git-send-email-yufengx.mo@intel.com> X-Mailer: git-send-email 1.7.0.7 In-Reply-To: <1528263242-22459-1-git-send-email-yufengx.mo@intel.com> References: <1528263242-22459-1-git-send-email-yufengx.mo@intel.com> Subject: [dts] [PATCH V1 1/2] ethtool_stats: upload test plan X-BeenThere: dts@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: test suite reviews and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 06 Jun 2018 05:34:06 -0000 From: yufengmx Currently Ethtool supports a more complete list of stats for the same drivers that DPDK supports. The idea behind this epic is two fold as following: 1. To achieve metric equivalence with what linux's ethtool provides. 2. To extend the functionality of the xstats API to enable the following options: ## the retrieval of aggregate stats upon request (Top level stats). ## the retrieval of the extended NIC stats. ## grouping of stats logically so they can be retrieved per logical grouping. ## the option to enable/disable the stats groups to retrieve similar to set private flags in ethtool. Signed-off-by: yufengmx --- test_plans/ethtool_stats_test_plan.rst | 150 +++++++++++++++++++++++++++++++++ 1 file changed, 150 insertions(+) create mode 100644 test_plans/ethtool_stats_test_plan.rst diff --git a/test_plans/ethtool_stats_test_plan.rst b/test_plans/ethtool_stats_test_plan.rst new file mode 100644 index 0000000..9b18b3f --- /dev/null +++ b/test_plans/ethtool_stats_test_plan.rst @@ -0,0 +1,150 @@ +.. Copyright (c) <2010-2018>, Intel Corporation + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + - Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + OF THE POSSIBILITY OF SUCH DAMAGE. + +============= +Ethtool stats +============= + +This document provides test plan for ethtool stats . This is a simple example +app featuring packet processing, ethtool is a utility for Linux kernel-based +operating system for displaying and modifying some parameters of network +interface controllers (NICs) and their device drivers. + +Currently Ethtool supports a more complete list of stats for the same drivers +that DPDK supports. The idea behind this epic is two fold as following: +1. To achieve metric equivalence with what linux's ethtool provides. +2. To extend the functionality of the xstats API to enable the following options: + ## the retrieval of aggregate stats upon request (Top level stats). + ## the retrieval of the extended NIC stats. + ## grouping of stats logically so they can be retrieved per logical grouping. + ## the option to enable/disable the stats groups to retrieve similar to set + private flags in ethtool. + +Prerequisites +------------- + +2xNICs (2 full duplex optical ports per NIC). One on dut, another one on tester, +link them together. Update two nics' firmware to latest version. + +no nic type limitation. + +Test cases +---------- + +Check port extended statistics parameter after sending packet from peer link port. +*. bind two ports + + ./usertools/dpdk-devbind.py --bind=igb_uio + +Test Case 1: xstat command set intergrity (functional) +====================================================== +check ``dpdk-procinfo`` tool support ``xstats`` command options. These options +should be included. +``xstats`` +``xstats-name`` +``xstats-id`` +``xstats-reset`` + +steps: +*. boot up ``testpmd`` + + .//app/testpmd -c 0x600006 -n 4 -- -i --port-topology=loop \ + --tx-offloads=<0x1fbf or 0x2203f> + +*. run ``dpdk-procinfo`` tool + + .//app/dpdk-procinfo + +*. check ``dpdk-procinfo`` tool output. + +Test Case 2: xstat command (functional) +======================================= +check if port extended statistics can get right data + +steps: +*. boot up ``testpmd`` + + .//app/testpmd -c 0x600006 -n 4 -- -i --port-topology=loop \ + --tx-offloads=<0x1fbf or 0x2203f> + +*. send udp packet of 64/72/128/256/512/1024 size to port 0/1 + +*. run ``dpdk-procinfo`` tool with ``xstats`` option and check if all port +have a correct data of different size packet + + .//app/dpdk-procinfo -- -p 3 --xstats + +Test Case 3: xstat-reset command (functional) +============================================= +check if port extended statistics can be cleared + +steps: +*. boot up ``testpmd`` + + .//app/testpmd -c 0x600006 -n 4 -- -i --port-topology=loop \ + --tx-offloads=<0x1fbf or 0x2203f> + +*. send udp packet of 64/72/128/256/512/1024 size to port 0/1 + +*. run ``dpdk-procinfo`` tool with ``xstats-reset`` option and check if all port +statistics have been cleared. + + .//app/dpdk-procinfo -- -p 3 --xstats-reset + +Test Case 4: xstat single statistic (functional) +================================================ +check if port extended statistic name can be get by statistic id and check +related data's correctness. + +steps: +*. boot up ``testpmd`` + + .//app/testpmd -c 0x600006 -n 4 -- -i --port-topology=loop \ + --tx-offloads=<0x1fbf or 0x2203f> + +*. run ``dpdk-procinfo`` tool with ``xstats`` option to get all NIC extended +statistics parameters of port and use the output display sequence as parameters' +index in the following search index + + .//app/dpdk-procinfo -- -p 3 --xstats + +*. send udp packet of 64/72/128/256/512/1024 size to port 0/1 + +*. run ``dpdk-procinfo`` tool with ``xstats-id`` option to get the statistic +name corresponding with the index id + + .//app/dpdk-procinfo -- -p 3 --xstats-id 0,1,...N + +*. run ``dpdk-procinfo`` tool with ``xstats-name`` option to get the statistic +data corresponding with the statistic name + + .//app/dpdk-procinfo -- -p 3 --xstats-name -- 1.9.3