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

Liu, Yong yong.liu at intel.com
Tue Jan 9 06:48:59 CET 2018


Yufen,
Please change performance cases name as format "UDP stream flow classification performance".
Please keep segment tag "=" align with test case name.
Please align the shell code content format like:

	Description of the command::
		
		Code content

Thanks,
Marvin

> -----Original Message-----
> From: dts [mailto:dts-bounces at dpdk.org] On Behalf Of yufengx.mo at intel.com
> Sent: Thursday, January 04, 2018 1:56 PM
> To: dts at dpdk.org
> Cc: Mo, YufengX <yufengx.mo at intel.com>
> Subject: [dts] [PATCH V1 1/1] ipfix_flow_classify: upload test plan
> 
> From: yufengmx <yufengx.mo at intel.com>
> 
> 
> This test plan is for flow classify features.
> 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 | 245
> +++++++++++++++++++++++++++
>  1 file changed, 245 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..4f4a95d
> --- /dev/null
> +++ b/test_plans/ipfix_flow_classify_test_plan.rst
> @@ -0,0 +1,245 @@
> +.. 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 features.
> +
> +Flow Classify provides flow record information with some measured
> properties.
> +
> +The flow and measurement criteria (action) rules are configured in a txt
> file.
> +
> +Library doesn't maintain any flow records itself, instead flow
> information is
> +returned to upper layer only for given packets.
> +
> +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.
> +
> +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
> --
> 2.14.3



More information about the dts mailing list