[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