[dts] [PATCH V1 1/3] metrics: upload test plan

yufengx.mo at intel.com yufengx.mo at intel.com
Wed Jun 6 07:36:57 CEST 2018


From: yufengmx <yufengx.mo at intel.com>


This test plan is for flow classify feature.
metrics is the tool to call metrics lib for group of packets,
just after receiving them or before transmitting them.

Signed-off-by: yufengmx <yufengx.mo at intel.com>
---
 test_plans/metrics_test_plan.rst | 226 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 226 insertions(+)
 create mode 100644 test_plans/metrics_test_plan.rst

diff --git a/test_plans/metrics_test_plan.rst b/test_plans/metrics_test_plan.rst
new file mode 100644
index 0000000..b4b811f
--- /dev/null
+++ b/test_plans/metrics_test_plan.rst
@@ -0,0 +1,226 @@
+.. 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.
+
+metrics 
+=======
+
+The Metrics implements a mechanism by which *producers* can publish numeric 
+information for later querying by *consumers*. Here dpdk-procinfo process is the
+*consumers*. ``latency stats`` and ``bit rate`` are the two implements based
+on metrics lib.
+
+The dpdk-procinfo process use new command line option "--metrics" to display 
+metrics statistics.
+
+Functionality:
+
+* The library will register ethdev Rx/Tx callbacks for each active port,
+  queue combinations.
+* The library will register latency stats names with new metrics library.
+* Rx packets will be marked with time stamp on each sampling interval.
+* On Tx side, packets with time stamp will be considered for calculating
+  the minimum, maximum, average latencies and also jitter.
+* Average latency is calculated using exponential weighted moving average
+  method.
+* Minimum and maximum latencies will be low and high latency values
+  observed so far.
+* Jitter calculation is done based on inter packet delay variation.
+
+note: DPDK technical document refer to ``doc/guides/prog_guide/metrics_lib.rst``
+
+latency stats
+=============
+
+Latency stats measures minimum, average and maximum latencies, and jitter in 
+nano seconds.
+
+bit rate
+========
+
+Calculates peak and average bit-rate statistics. 
+
+Prerequisites
+=============
+*. Hardware:
+    - CPU: Haswell, IVB(CrownPass)
+
+*. OS and Kernel:
+    - Fedora 20/22
+    - Enable Kernel features Huge page, UIO, IOMMU
+    - Enable Intel IOMMU in kernel commnand
+
+*. NIC:
+    2x Intel® 82599 (Niantic) NICs (2x 10GbE full duplex optical ports per NIC) 
+    plugged into the available PCIe Gen2 8-lane slots in two different 
+    configurations: 
+    *. card0 and card1 attached to socket0.
+
+*. IXIA Traffic Generator Configuration
+
+Test content
+============
+
+latency stats
+-------------
+
+The idea behind the testing process is to send different frames number of 
+different packets from ixia traffic generator to the DUT while these are being 
+forwarded back by the app and measure some of statistics. These data are queried 
+by the dpdk-proc app.
+
+- min_latencyy_ns
+
+  - Minimum latency in nano seconds
+
+- max_latencyy_ns
+
+  - Maximum latency in nano seconds
+
+- avg_latencyy_ns
+
+  - Average latency in nano seconds
+
+- jittery_ns
+
+  - Latency variation
+  
+bit rate
+--------
+
+The idea behind the testing process is to send different frames number of  
+different packets from ixia traffic generator to the DUT while these are being  
+forwarded back by the app and measure some of statistics. These data are queried 
+by the dpdk-proc app.
+
+- mean_bits_in
+
+  - Average rx bits rate
+
+- mean_bits_out
+
+  - Average tx bits rate
+
+- peak_bits_in
+
+  - peak rx bits rate
+
+- peak_bits_out
+
+  - peak tx bits rate
+
+transmission packets' format
+--------------------------
+  [Ether()/IP()/UDP()/Raw('\0'*60)]
+
+transmission Frames size
+--------------------------
+Then measure the forwarding throughput for different packet sizes.
+
+Frame size(64/72/128/256/512/1024)
+
+Test Case : test latency stats (performance test)
+====================================================================
+1. Connect two physical ports to IXIA
+
+2. bind two ports to igb_uio driver.
+
+    ./tools/dpdk_nic_bind.py --bind=igb_uio 0000:xx:00.0 0000:xx:00.1
+
+3. Start testpmd, set it in io mode and enable verbose output
+    testpmd -c 0x30 -n 4  -- -i --port-topology=chained --txqflags=0xXXXX
+    testpmd> set fwd io
+    testpmd> set verbose 1
+    testpmd> start
+
+4. Configure packet flow in IxiaNetwork
+
+5. Start to send packets from IXIA, set ixia to continuous traffic lasting 10 
+   minitues
+
+6. run dpdk-proc to get latency stats data, query data at a average interval and 
+   get 15 times data
+   dpdk-procinfo -- -p 0x3 --metrics
+
+7. Compare dpdk statistics data with ixia statistics data.
+
+Test Case : test bit rate (performance test)
+====================================================================
+1. Connect two physical ports to IXIA
+
+2. bind two ports to igb_uio driver.
+
+    ./tools/dpdk_nic_bind.py --bind=igb_uio 00:08.0 00:08.1
+
+3. Start testpmd, set it in io mode and enable verbose output
+    testpmd -c 0x30 -n 4  -- -i --port-topology=chained --txqflags=0xXXXX
+    testpmd> set fwd io
+    testpmd> set verbose 1
+    testpmd> start
+
+4. Configure packet flow in IxiaNetwork
+
+5. Start to send packets from IXIA, set ixia to continuous traffic lasting 10 
+   minitues
+
+6. run dpdk-proc to get latency stats data, query data at a average interval and 
+   get 15 times data
+   dpdk-procinfo -- -p 0x3 --metrics
+
+7. Compare dpdk statistics data with ixia statistics data.
+
+Test Case : test bit rate under loop mode (performance test)
+====================================================================
+1. Connect two physical ports to IXIA
+
+2. bind two ports to igb_uio driver.
+
+    ./tools/dpdk_nic_bind.py --bind=igb_uio 00:08.0 00:08.1
+
+3. Start testpmd, set it in io mode and enable verbose output
+    testpmd -c 0x30 -n 4  -- -i --port-topology=loop --txqflags=0xXXXX
+    testpmd> set fwd io
+    testpmd> set verbose 1
+    testpmd> start
+
+4. Configure packet flow in IxiaNetwork
+
+5. Start to send packets from IXIA, set ixia to continuous traffic lasting 5
+   minitues
+
+6. run dpdk-proc to get latency stats data, query data at a average interval and 
+   get 5 times data
+   dpdk-procinfo -- -p 0x3 --metrics
+
+7. decline ixia rate percent from 100%/80%/60%/20%, loop step 5/6.
+
+8. check dpdk statistics data with ixia statistics data. peak_bits_out/peak_bits_in
+   will decline with rate percent.
\ No newline at end of file
-- 
1.9.3



More information about the dts mailing list