[dts] [PATCH V1 1/4] ipfix_flow_classify: upload test plan

yufengx.mo at intel.com yufengx.mo at intel.com
Wed Jun 6 07:34:43 CEST 2018


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


This test plan is for flow classify feature.

DPDK provides a Flow Classification library that provides the ability
to classify an input packet by matching it against a set of Flow rules.
The implementation supports counting of IPv4 5-tuple packets which match a
particular Flow rule only.

flow_classify is the tool to call flow_classify lib for group of packets,
just after receiving them or before transmitting them.

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

diff --git a/test_plans/ipfix_flow_classify_test_plan.rst b/test_plans/ipfix_flow_classify_test_plan.rst
new file mode 100644
index 0000000..9492be1
--- /dev/null
+++ b/test_plans/ipfix_flow_classify_test_plan.rst
@@ -0,0 +1,246 @@
+.. Copyright (c) <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.
+
+====================
+ipfix flow classify
+====================
+
+This document provides test plan for flow classify feature. 
+
+Flow Classify provides flow record information with some measured properties.
+
+DPDK provides a Flow Classification library that provides the ability
+to classify an input packet by matching it against a set of Flow rules.
+The implementation supports counting of IPv4 5-tuple packets which match a 
+particular Flow rule only.
+
+flow_classify is the tool to call flow_classify lib for group of packets, 
+just after receiving them or before transmitting them. It provide the flow type 
+interested in, measurement to apply to that flow in rte_flow_classify_create()
+API, and should providerte_flow_classify object and storage to put results in 
+rte_flow_classify_query() API.
+
+DPDK technical doc refer to::
+dpdk/doc/guides/sample_app_ug/flow_classify.rst
+dpdk/doc/guides/prog_guide/flow_classify_lib.rst
+
+Prerequisites
+-------------
+
+2xNICs (2 full duplex optical ports per NIC)
+Flow Classify should run on 2 pair link peer at least.
+No limitation about nic type.
+
+HW configuration
+-------------
+           Tester                           DUT
+          .-------.                      .-------. 
+          | port0 | <------------------> | port0 |
+          | port1 | <------------------> | port1 |
+          '-------'                      '-------'
+
+Stream configuration
+-------------
+
+UDP_1: 
+Frame Data/Protocols: Ethernet 2 0800, IPv4,UDP/IP, Fixed 64.
+IPv4 Header Page: Dest Address: 2.2.2.7 Src  Address: 2.2.2.3
+UDP Header: Src Port: 32  Dest Port: 33 
+
+UDP_2: 
+Frame Data/Protocols: Ethernet 2 0800, IPv4,UDP/IP, Fixed 64.
+IPv4 Header Page: Dest Address: 9.9.9.7 Src  Address: 9.9.9.3
+UDP Header: Src Port: 32  Dest Port: 33
+
+UDP_invalid: 
+Frame Data/Protocols: Ethernet 2 0800, IPv4,UDP/IP, Fixed 64.
+IPv4 Header Page: Dest Address: 9.8.7.6 Src  Address: 192.168.0.36
+UDP Header: Src Port: 10  Dest Port: 11
+
+TCP_1: 
+Frame Data/Protocols: Ethernet 2 0800, IPv4,TCP/IP, Fixed 64.
+IPv4 Header Page: Dest Address: 9.9.9.7 Src  Address: 9.9.9.3
+TCP Header: Src Port: 32  Dest Port: 33 
+
+TCP_2: 
+Frame Data/Protocols: Ethernet 2 0800, IPv4,TCP/IP, Fixed 64.
+IPv4 Header Page: Dest Address: 9.9.8.7 Src  Address: 9.9.8.3
+TCP Header: Src Port: 32  Dest Port: 33
+
+TCP_invalid: 
+Frame Data/Protocols: Ethernet 2 0800, IPv4,TCP/IP, Fixed 64.
+IPv4 Header Page: Dest Address: 9.8.7.6 Src  Address: 192.168.0.36
+TCP Header: Src Port: 10  Dest Port: 11
+
+SCTP_1:
+Frame Data/Protocols: Ethernet 2 0800, IPv4, None, Fixed 256.
+IPv4 Header Page: Dest Address: 2.3.4.5 Src  Address: 6.7.8.9
+SCTP Header: Src Port: 32  Dest Port: 33
+Protocol: 132-SCTP
+
+SCTP_invalid:
+Frame Data/Protocols: Ethernet 2 0800, IPv4, None, Fixed 256.
+IPv4 Header Page: Dest Address: 9.8.7.6 Src  Address: 192.168.0.36
+SCTP Header: Src Port: 10  Dest Port: 11
+Protocol: 132-SCTP
+
+ixia config for stream(ixia tcl command):
+----------
+each stream should be 32 burst packets, stream interval should be as the 
+following command limitaion.
+
+stream config -numBursts 32
+stream config -gapUnit gapMilliSeconds
+stream config -ifg 10
+stream config -ibg 1
+stream config -isg 1000
+stream config -dma stopStream
+
+Compilation:
+----------
+cd $DPDK_PATH
+export RTE_TARGET=$DPDK_PATH
+export RTE_SDK=`pwd`
+make -C examples/flow_classify
+
+Flow classify bin file under: 
+$DPDK_PATH/examples/flow_classify/build/flow_classify
+
+rule config file(default):
+$DPDK_PATH/examples/flow_classify/ipv4_rules_file.txt
+
+Test cases
+----------
+The idea behind the testing process is to compare packet count sending by 
+ixia packet generater with packet count filtered by flow_classify. Valid 
+packets should be in flow_classify output and invalid packets should be ignored. 
+The rules are configured in a txt file. Testing content includes different 
+udp/tcp/sctp stream and multiple rules.
+
+Test Case : check valid rule with udp stream (performance)
+==========================================
+Send one valid 32 packets burst stream(UDP_1 or UDP_2 in Stream configuration),
+then check the total received packets in flow_classify's output message.
+
+*. boot up flow_classify
+    ./flow_classify -c 4 -n 4 -- --rule_ipv4=<rule config file>
+
+*. send stream by ixia
+
+*. check flow_classify output contain the following message
+    rule[0] count=1
+    or
+    rule[1] count=1
+
+Test Case : check invalid rule with udp stream (performance)
+==========================================
+Send one invalid 32 packets burst stream(UDP_invalid in Stream configuration),
+then check flow_classify's output message has no count message
+
+*. boot up flow_classify
+    ./flow_classify -c 4 -n 4 -- --rule_ipv4=<rule config file>
+
+*. send stream by ixia
+
+*. check flow_classify output has no message as "rule[xxx] count=xxx", such as
+    rule[0] count=1
+
+Test Case : check valid rule with tcp stream (performance)
+==========================================
+Send one valid 32 packets burst stream(TCP_1 or TCP_2 in Stream configuration),
+then check the total received packets in flow_classify's output message.
+
+*. boot up flow_classify
+    ./flow_classify -c 4 -n 4 -- --rule_ipv4=<rule config file>
+
+*. send stream by ixia
+
+*. check flow_classify output contain the following message
+    rule[2] count=1
+    or
+    rule[3] count=1
+
+Test Case : check invalid rule with tcp stream (performance)
+==========================================
+Send one invalid 32 packets burst stream(TCP_invalid in Stream configuration),
+then check flow_classify's output message has no count message
+
+*. boot up flow_classify
+    ./flow_classify -c 4 -n 4 -- --rule_ipv4=<rule config file>
+
+*. send stream by ixia
+
+*. check flow_classify output has no message as "rule[xxx] count=xxx", such as
+    rule[2] count=1
+
+Test Case : check valid rule with sctp stream (performance)
+==========================================
+Send one valid 32 packets burst stream(SCTP_1 in Stream configuration),
+then check the total received packets in flow_classify's output message.
+
+*. boot up flow_classify
+    ./flow_classify -c 4 -n 4 -- --rule_ipv4=<rule config file>
+
+*. send stream by ixia
+
+*. check flow_classify output contain the following message
+    rule[4] count=1
+
+Test Case : check invalid rule with sctp stream (performance)
+==========================================
+Send one invalid 32 packets burst stream(SCTP_invalid in Stream configuration),
+then check flow_classify's output message has no count message
+
+*. boot up flow_classify
+./flow_classify -c 4 -n 4 -- --rule_ipv4=<rule config file>
+
+*. send stream by ixia
+
+*. check flow_classify output has no "rule[xxx] count=xxx" message, such as
+    rule[4] count=1
+
+Test Case mixed stream: (performance)
+==========================================
+Send mixed 32 packets burst stream(all types in Stream configuration),
+then check if they are ignored or filtered by flow_classify
+
+*. boot up flow_classify
+    ./flow_classify -c 4 -n 4 -- --rule_ipv4=<rule config file>
+
+*. send mixed stream by ixia as above
+
+*. check flow_classify output only contain the following count message
+    rule[0] count=1
+    rule[1] count=1
+    rule[2] count=1
+    rule[3] count=1
+    rule[4] count=1
-- 
1.9.3



More information about the dts mailing list