From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by dpdk.org (Postfix) with ESMTP id 1F65A2B97 for ; Mon, 10 Oct 2016 10:52:45 +0200 (CEST) Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga104.fm.intel.com with ESMTP; 10 Oct 2016 01:52:45 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.31,471,1473145200"; d="scan'208";a="1062713118" Received: from fmsmsx105.amr.corp.intel.com ([10.18.124.203]) by orsmga002.jf.intel.com with ESMTP; 10 Oct 2016 01:52:44 -0700 Received: from FMSMSX109.amr.corp.intel.com (10.18.116.9) by FMSMSX105.amr.corp.intel.com (10.18.124.203) with Microsoft SMTP Server (TLS) id 14.3.248.2; Mon, 10 Oct 2016 01:52:43 -0700 Received: from shsmsx152.ccr.corp.intel.com (10.239.6.52) by fmsmsx109.amr.corp.intel.com (10.18.116.9) with Microsoft SMTP Server (TLS) id 14.3.248.2; Mon, 10 Oct 2016 01:52:42 -0700 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.15]) by SHSMSX152.ccr.corp.intel.com ([169.254.6.95]) with mapi id 14.03.0248.002; Mon, 10 Oct 2016 16:52:40 +0800 From: "Xu, Qian Q" To: "Xu, GangX" , "dts@dpdk.org" , "Wan, Qun" , "Liu, Yong" CC: "Xu, GangX" , "Cao, Waterman" Thread-Topic: [dts] [PATCH V3 2/2] add ip_pipeline config_file test plan Thread-Index: AQHSAdo3yEHk9yvJw0qkrDQM7OaBIaChooeA Date: Mon, 10 Oct 2016 08:52:40 +0000 Message-ID: <82F45D86ADE5454A95A89742C8D1410E39200022@shsmsx102.ccr.corp.intel.com> References: <1472463659-7934-1-git-send-email-gangx.xu@intel.com> <1472463659-7934-2-git-send-email-gangx.xu@intel.com> In-Reply-To: <1472463659-7934-2-git-send-email-gangx.xu@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Subject: Re: [dts] [PATCH V3 2/2] add ip_pipeline config_file 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: Mon, 10 Oct 2016 08:52:47 -0000 Hi, Marvin/Anna,=20 The patch of ip_pipeline automation is not merged. Marvin, what's your opin= ion?=20 So who will test the feature in the release 16.11? Thx.=20 -----Original Message----- From: dts [mailto:dts-bounces@dpdk.org] On Behalf Of xu,gang Sent: Monday, August 29, 2016 10:41 AM To: dts@dpdk.org Cc: Xu, GangX Subject: [dts] [PATCH V3 2/2] add ip_pipeline config_file test plan Signed-off-by: xu,gang --- test_plans/ip_pipeline_config_file_test_plan.rst | 2971 ++++++++++++++++++= ++++ 1 file changed, 2971 insertions(+) create mode 100644 test_plans/ip_pipeline_config_file_test_plan.rst diff --git a/test_plans/ip_pipeline_config_file_test_plan.rst b/test_plans/= ip_pipeline_config_file_test_plan.rst new file mode 100644 index 0000000..038fff3 --- /dev/null +++ b/test_plans/ip_pipeline_config_file_test_plan.rst @@ -0,0 +1,2971 @@ +.. BSD LICENSE + Copyright(c) 2010-2016 Intel Corporation. All rights reserved. + 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. + + +Test Case: test_ip_pipeline_cfg +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D + +cfg file default-FIREWALL.cfg +----------------------------- +;The default values are stored in this file +[PIPELINE0] +type =3D MASTER +core =3D 0 +;PIPELINE1 all global variable +[PIPELINE1] +core =3D 1 +pktq_in =3D RXQ0.0 RXQ1.0 +pktq_out =3D TXQ0.0 TXQ1.0 +msgq_in =3D MSGQ0 +msgq_out =3D MSGQ0 +timer_period =3D 100 + +type =3D FIREWALL +n_rules =3D 1 +pkt_type =3D ipv4 + +Run the command ./build/ip_pipeline -p 0x3 -f ~/ip_pipeline/ip_pipeline_cf= g/postive/filename, check that the app runs successfully + +cfg file default-FLOW_ACTIONS.cfg +--------------------------------- +;The default values are stored in this file +[PIPELINE0] +type =3D MASTER +core =3D 0 +;PIPELINE1 all global variable +[PIPELINE1] +core =3D 1 +pktq_in =3D RXQ0.0 RXQ1.0 +pktq_out =3D TXQ0.0 TXQ1.0 +msgq_in =3D MSGQ0 +msgq_out =3D MSGQ0 +timer_period =3D 100 + +type =3D FLOW_ACTIONS +n_flows =3D 4096 +flow_id_offset =3D 286 +color_offset =3D 192 +ip_hdr_offset =3D 270 +n_meters_per_flow =3D 1 + +run the command ./build/ip_pipeline -p 0x3 -f ~/ip_pipeline/ip_pipeline_cf= g/postive/filename, check that the app runs successfully + +cfg file default-FLOW_CLASSIFICATION.cfg +------------------------------------------ +;The default values are stored in this file +[PIPELINE0] +type =3D MASTER +core =3D 0 +;PIPELINE1 all global variable +[PIPELINE1] +core =3D 1 +pktq_in =3D RXQ0.0 RXQ1.0 +pktq_out =3D TXQ0.0 TXQ1.0 +msgq_in =3D MSGQ0 +msgq_out =3D MSGQ0 +timer_period =3D 100 + +type =3D FLOW_CLASSIFICATION +n_flows =3D 4096 +key_offset =3D 192 +key_size =3D 16 +hash_offset =3D 208 + +run the command ./build/ip_pipeline -p 0x3 -f ~/ip_pipeline/ip_pipeline_cf= g/postive/filename, check that the app runs successfully + +cfg file default-PASS-THROUGH.cfg +--------------------------------- +[PIPELINE0] +type =3D MASTER +core =3D 0 +[PIPELINE1] +core =3D 1 +pktq_in =3D RXQ0.0 RXQ1.0 +pktq_out =3D TXQ0.0 TXQ1.0 +msgq_in =3D MSGQ0 +msgq_out =3D MSGQ0 +timer_period =3D 100 + +type =3D PASS-THROUGH +dma_size =3D 16 +dma_dst_offset =3D 64 +dma_src_offset =3D 150 +dma_src_mask =3D 00FF0000FFFFFFFFFFFFFFFFFFFFFFFF +dma_hash_offset =3D 80 + +run the command ./build/ip_pipeline -p 0x3 -f ~/ip_pipeline/ip_pipeline_cf= g/postive/filename, check that the app runs successfully + +cfg file default-ROUTING.cfg +---------------------------- +;The default values are stored in this file +[PIPELINE0] +type =3D MASTER +core =3D 0 +;PIPELINE1 all global variable +[PIPELINE1] +core =3D 1 +pktq_in =3D RXQ0.0 RXQ1.0 +pktq_out =3D TXQ0.0 TXQ1.0 +msgq_in =3D MSGQ0 +msgq_out =3D MSGQ0 +timer_period =3D 100 + +type =3D ROUTING +n_routes =3D 4096 +ip_hdr_offset =3D 270 + +run the command ./build/ip_pipeline -p 0x3 -f ~/ip_pipeline/ip_pipeline_cf= g/postive/filename, check that the app runs successfully + +cfg file test-FIREWALL-n_rules-1.cfg +------------------------------------ +[PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +core =3D 1 +pktq_in =3D RXQ0.0 RXQ1.0 +pktq_out =3D TXQ0.0 TXQ1.0 +msgq_in =3D MSGQ0 +msgq_out =3D MSGQ0 +timer_period =3D 100 +type =3D FIREWALL +n_rules =3D 1 +pkt_type =3D ipv4 + +run the command ./build/ip_pipeline -p 0x3 -f ~/ip_pipeline/ip_pipeline_cf= g/postive/filename, check that the app runs successfully + +cfg file test-FIREWALL-n_rules-4294967295.cfg +---------------------------------------------- +[PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +core =3D 1 +pktq_in =3D RXQ0.0 RXQ1.0 +pktq_out =3D TXQ0.0 TXQ1.0 +msgq_in =3D MSGQ0 +msgq_out =3D MSGQ0 +timer_period =3D 100 +type =3D FIREWALL +n_rules =3D 4294967295 +pkt_type =3D ipv4 + +run the command ./build/ip_pipeline -p 0x3 -f ~/ip_pipeline/ip_pipeline_cf= g/postive/filename, check that the app runs successfully + +cfg file test-FIREWALL-pkt_type-qinq_ipv4.cfg +---------------------------------------------- +[PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +core =3D 1 +pktq_in =3D RXQ0.0 RXQ1.0 +pktq_out =3D TXQ0.0 TXQ1.0 +msgq_in =3D MSGQ0 +msgq_out =3D MSGQ0 +timer_period =3D 100 +type =3D FIREWALL +n_rules =3D 1 +pkt_type =3D qinq_ipv4 + +run the command ./build/ip_pipeline -p 0x3 -f ~/ip_pipeline/ip_pipeline_cf= g/postive/filename, check that the app runs successfully + +cfg file test-FIREWALL-pkt_type-vlan_ipv4.cfg +--------------------------------------------- +[PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +core =3D 1 +pktq_in =3D RXQ0.0 RXQ1.0 +pktq_out =3D TXQ0.0 TXQ1.0 +msgq_in =3D MSGQ0 +msgq_out =3D MSGQ0 +timer_period =3D 100 +type =3D FIREWALL +n_rules =3D 1 +pkt_type =3D vlan_ipv4 + +run the command ./build/ip_pipeline -p 0x3 -f ~/ip_pipeline/ip_pipeline_cf= g/postive/filename, check that the app runs successfully + +cfg file test-FLOW_ACTIONS-color_offset-0.cfg +----------------------------------------------- +[PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +core =3D 1 +pktq_in =3D RXQ0.0 RXQ1.0 +pktq_out =3D TXQ0.0 TXQ1.0 +msgq_in =3D MSGQ0 +msgq_out =3D MSGQ0 +timer_period =3D 100 +type =3D FLOW_ACTIONS +n_flows =3D 4096 +flow_id_offset =3D 286 +color_offset =3D 0 +ip_hdr_offset =3D 270 +n_meters_per_flow =3D 1 + +run the command ./build/ip_pipeline -p 0x3 -f ~/ip_pipeline/ip_pipeline_cf= g/postive/filename, check that the app runs successfully + +cfg file test-FLOW_ACTIONS-color_offset-4294967295.cfg +------------------------------------------------------ +[PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +core =3D 1 +pktq_in =3D RXQ0.0 RXQ1.0 +pktq_out =3D TXQ0.0 TXQ1.0 +msgq_in =3D MSGQ0 +msgq_out =3D MSGQ0 +timer_period =3D 100 +type =3D FLOW_ACTIONS +n_flows =3D 4096 +flow_id_offset =3D 286 +color_offset =3D 4294967295 +ip_hdr_offset =3D 270 +n_meters_per_flow =3D 1 + +run the command ./build/ip_pipeline -p 0x3 -f ~/ip_pipeline/ip_pipeline_cf= g/postive/filename, check that the app runs successfully + +cfg file test-FLOW_ACTIONS-flow_id_offset-0.cfg +-------------------------------------------------- +[PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +core =3D 1 +pktq_in =3D RXQ0.0 RXQ1.0 +pktq_out =3D TXQ0.0 TXQ1.0 +msgq_in =3D MSGQ0 +msgq_out =3D MSGQ0 +timer_period =3D 100 +type =3D FLOW_ACTIONS +n_flows =3D 4096 +flow_id_offset =3D 0 +color_offset =3D 192 +ip_hdr_offset =3D 270 +n_meters_per_flow =3D 1 + +run the command ./build/ip_pipeline -p 0x3 -f ~/ip_pipeline/ip_pipeline_cf= g/postive/filename, check that the app runs successfully + +cfg file test-FLOW_ACTIONS-flow_id_offset-4294967295.cfg +-------------------------------------------------------- +[PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +core =3D 1 +pktq_in =3D RXQ0.0 RXQ1.0 +pktq_out =3D TXQ0.0 TXQ1.0 +msgq_in =3D MSGQ0 +msgq_out =3D MSGQ0 +timer_period =3D 100 +type =3D FLOW_ACTIONS +n_flows =3D 4096 +flow_id_offset =3D 4294967295 +color_offset =3D 192 +ip_hdr_offset =3D 270 +n_meters_per_flow =3D 1 + +run the command ./build/ip_pipeline -p 0x3 -f ~/ip_pipeline/ip_pipeline_cf= g/postive/filename, check that the app runs successfully + +cfg file test-FLOW_ACTIONS-n_flows-2.cfg +----------------------------------------- +[PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +core =3D 1 +pktq_in =3D RXQ0.0 RXQ1.0 +pktq_out =3D TXQ0.0 TXQ1.0 +msgq_in =3D MSGQ0 +msgq_out =3D MSGQ0 +timer_period =3D 100 +type =3D FLOW_ACTIONS +n_flows =3D 2 +flow_id_offset =3D 286 +color_offset =3D 192 +ip_hdr_offset =3D 270 +n_meters_per_flow =3D 1 + +run the command ./build/ip_pipeline -p 0x3 -f ~/ip_pipeline/ip_pipeline_cf= g/postive/filename, check that the app runs successfully + +cfg file test-FLOW_ACTIONS-n_flows-4096.cfg +-------------------------------------------- +[PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +core =3D 1 +pktq_in =3D RXQ0.0 RXQ1.0 +pktq_out =3D TXQ0.0 TXQ1.0 +msgq_in =3D MSGQ0 +msgq_out =3D MSGQ0 +timer_period =3D 100 +type =3D FLOW_ACTIONS +n_flows =3D 4096 +flow_id_offset =3D 286 +color_offset =3D 192 +ip_hdr_offset =3D 270 +n_meters_per_flow =3D 1 + +run the command ./build/ip_pipeline -p 0x3 -f ~/ip_pipeline/ip_pipeline_cf= g/postive/filename, check that the app runs successfully + +cfg file test-FLOW_ACTIONS-n_meters_per_flow-4.cfg +----------------------------------------------------- +[PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +core =3D 1 +pktq_in =3D RXQ0.0 RXQ1.0 +pktq_out =3D TXQ0.0 TXQ1.0 +msgq_in =3D MSGQ0 +msgq_out =3D MSGQ0 +timer_period =3D 100 +type =3D FLOW_ACTIONS +n_flows =3D 4096 +flow_id_offset =3D 286 +color_offset =3D 192 +ip_hdr_offset =3D 270 +n_meters_per_flow =3D 4 + +run the command ./build/ip_pipeline -p 0x3 -f ~/ip_pipeline/ip_pipeline_cf= g/postive/filename, check that the app runs successfully + +cfg file test-FLOW_CLASSIFICATION-hash_offset-0.cfg +--------------------------------------------------- +[PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +core =3D 1 +pktq_in =3D RXQ0.0 RXQ1.0 +pktq_out =3D TXQ0.0 TXQ1.0 +msgq_in =3D MSGQ0 +msgq_out =3D MSGQ0 +timer_period =3D 100 +type =3D FLOW_CLASSIFICATION +n_flows =3D 4096 +key_offset =3D 192 +key_size =3D 16 +hash_offset =3D 0 + +run the command ./build/ip_pipeline -p 0x3 -f ~/ip_pipeline/ip_pipeline_cf= g/postive/filename, check that the app runs successfully + +cfg file test-FLOW_CLASSIFICATION-hash_offset-4294967295.cfg +------------------------------------------------------------- +[PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +core =3D 1 +pktq_in =3D RXQ0.0 RXQ1.0 +pktq_out =3D TXQ0.0 TXQ1.0 +msgq_in =3D MSGQ0 +msgq_out =3D MSGQ0 +timer_period =3D 100 +type =3D FLOW_CLASSIFICATION +n_flows =3D 4096 +key_offset =3D 192 +key_size =3D 16 +hash_offset =3D 4294967295 + +run the command ./build/ip_pipeline -p 0x3 -f ~/ip_pipeline/ip_pipeline_cf= g/postive/filename, check that the app runs successfully + +cfg file test-FLOW_CLASSIFICATION-key_offset-0.cfg +---------------------------------------------------- +[PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +core =3D 1 +pktq_in =3D RXQ0.0 RXQ1.0 +pktq_out =3D TXQ0.0 TXQ1.0 +msgq_in =3D MSGQ0 +msgq_out =3D MSGQ0 +timer_period =3D 100 +type =3D FLOW_CLASSIFICATION +n_flows =3D 4096 +key_offset =3D 0 +key_size =3D 16 +hash_offset =3D 208 + +run the command ./build/ip_pipeline -p 0x3 -f ~/ip_pipeline/ip_pipeline_cf= g/postive/filename, check that the app runs successfully + +cfg file test-FLOW_CLASSIFICATION-key_offset-4294967295.cfg +-------------------------------------------------------------- +[PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +core =3D 1 +pktq_in =3D RXQ0.0 RXQ1.0 +pktq_out =3D TXQ0.0 TXQ1.0 +msgq_in =3D MSGQ0 +msgq_out =3D MSGQ0 +timer_period =3D 100 +type =3D FLOW_CLASSIFICATION +n_flows =3D 4096 +key_offset =3D 4294967295 +key_size =3D 16 +hash_offset =3D 208 + +run the command ./build/ip_pipeline -p 0x3 -f ~/ip_pipeline/ip_pipeline_cf= g/postive/filename, check that the app runs successfully + +cfg file test-FLOW_CLASSIFICATION-key_size-16.cfg +---------------------------------------------------- +[PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +core =3D 1 +pktq_in =3D RXQ0.0 RXQ1.0 +pktq_out =3D TXQ0.0 TXQ1.0 +msgq_in =3D MSGQ0 +msgq_out =3D MSGQ0 +timer_period =3D 100 +type =3D FLOW_CLASSIFICATION +n_flows =3D 4096 +key_offset =3D 192 +key_size =3D 16 +hash_offset =3D 208 + +run the command ./build/ip_pipeline -p 0x3 -f ~/ip_pipeline/ip_pipeline_cf= g/postive/filename, check that the app runs successfully + +cfg file test-FLOW_CLASSIFICATION-key_size-8.cfg +------------------------------------------------ +[PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +core =3D 1 +pktq_in =3D RXQ0.0 RXQ1.0 +pktq_out =3D TXQ0.0 TXQ1.0 +msgq_in =3D MSGQ0 +msgq_out =3D MSGQ0 +timer_period =3D 100 +type =3D FLOW_CLASSIFICATION +n_flows =3D 4096 +key_offset =3D 192 +key_size =3D 8 +hash_offset =3D 208 + +run the command ./build/ip_pipeline -p 0x3 -f ~/ip_pipeline/ip_pipeline_cf= g/postive/filename, check that the app runs successfully + +cfg filetest-FLOW_CLASSIFICATION-n_flows-2147483648.cfg +------------------------------------------------------- +[PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +core =3D 1 +pktq_in =3D RXQ0.0 RXQ1.0 +pktq_out =3D TXQ0.0 TXQ1.0 +msgq_in =3D MSGQ0 +msgq_out =3D MSGQ0 +timer_period =3D 100 +type =3D FLOW_CLASSIFICATION +n_flows =3D 2147483648 +key_offset =3D 192 +key_size =3D 16 +hash_offset =3D 208 + +run the command ./build/ip_pipeline -p 0x3 -f ~/ip_pipeline/ip_pipeline_cf= g/postive/filename, check that the app runs successfully + +cfg file test-FLOW_CLASSIFICATION-n_flows-2.cfg +----------------------------------------------- +[PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +core =3D 1 +pktq_in =3D RXQ0.0 RXQ1.0 +pktq_out =3D TXQ0.0 TXQ1.0 +msgq_in =3D MSGQ0 +msgq_out =3D MSGQ0 +timer_period =3D 100 +type =3D FLOW_CLASSIFICATION +n_flows =3D 2 +key_offset =3D 192 +key_size =3D 16 +hash_offset =3D 208 + +run the command ./build/ip_pipeline -p 0x3 -f ~/ip_pipeline/ip_pipeline_cf= g/postive/filename, check that the app runs successfully + +cfg file test-ROUTING-ip_hdr_offset-0.cfg +------------------------------------------ +[PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +core =3D 1 +pktq_in =3D RXQ0.0 RXQ1.0 +pktq_out =3D TXQ0.0 TXQ1.0 +msgq_in =3D MSGQ0 +msgq_out =3D MSGQ0 +timer_period =3D 100 +type =3D ROUTING +n_routes =3D 4096 +ip_hdr_offset =3D 0 + +run the command ./build/ip_pipeline -p 0x3 -f ~/ip_pipeline/ip_pipeline_cf= g/postive/filename, check that the app runs successfully + +cfg file test-ROUTING-ip_hdr_offset-4294967295.cfg +-------------------------------------------------- +[PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +core =3D 1 +pktq_in =3D RXQ0.0 RXQ1.0 +pktq_out =3D TXQ0.0 TXQ1.0 +msgq_in =3D MSGQ0 +msgq_out =3D MSGQ0 +timer_period =3D 100 +type =3D ROUTING +n_routes =3D 4096 +ip_hdr_offset =3D 4294967295 + +run the command ./build/ip_pipeline -p 0x3 -f ~/ip_pipeline/ip_pipeline_cf= g/postive/filename, check that the app runs successfully + +cfg file test-ROUTING-n_routes-1.cfg +------------------------------------- +[PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +core =3D 1 +pktq_in =3D RXQ0.0 RXQ1.0 +pktq_out =3D TXQ0.0 TXQ1.0 +msgq_in =3D MSGQ0 +msgq_out =3D MSGQ0 +timer_period =3D 100 +type =3D ROUTING +n_routes =3D 1 +ip_hdr_offset =3D 270 + +run the command ./build/ip_pipeline -p 0x3 -f ~/ip_pipeline/ip_pipeline_cf= g/postive/filename, check that the app runs successfully + +cfg file test-ROUTING-n_routes-4294967295.cfg +----------------------------------------------- +[PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +core =3D 1 +pktq_in =3D RXQ0.0 RXQ1.0 +pktq_out =3D TXQ0.0 TXQ1.0 +msgq_in =3D MSGQ0 +msgq_out =3D MSGQ0 +timer_period =3D 100 +type =3D ROUTING +n_routes =3D 4294967295 +ip_hdr_offset =3D 270 + +run the command ./build/ip_pipeline -p 0x3 -f ~/ip_pipeline/ip_pipeline_cf= g/postive/filename, check that the app runs successfully + +cfg file test-FIREWALL-n_rules--1.cfg +------------------------------------- +[PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +core =3D 1 +pktq_in =3D RXQ0.0 RXQ1.0 +pktq_out =3D TXQ0.0 TXQ1.0 +msgq_in =3D MSGQ0 +msgq_out =3D MSGQ0 +timer_period =3D 100 +type =3D FIREWALL +n_rules =3D -1 +pkt_type =3D ipv4 + +run the command ./build/ip_pipeline -p 0x3 -f ~/ip_pipeline/ip_pipeline_cf= g/postive/filename, check that the app runs failure + +cfg file test-FIREWALL-n_rules-4294967296.cfg +--------------------------------------------- +[PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +core =3D 1 +pktq_in =3D RXQ0.0 RXQ1.0 +pktq_out =3D TXQ0.0 TXQ1.0 +msgq_in =3D MSGQ0 +msgq_out =3D MSGQ0 +timer_period =3D 100 +type =3D FIREWALL +n_rules =3D 4294967296 +pkt_type =3D ipv4 + +run the command ./build/ip_pipeline -p 0x3 -f ~/ip_pipeline/ip_pipeline_cf= g/postive/filename, check that the app runs failure + +cfg file test-FIREWALL-pkt_type-abcde.cfg +------------------------------------------ +[PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +core =3D 1 +pktq_in =3D RXQ0.0 RXQ1.0 +pktq_out =3D TXQ0.0 TXQ1.0 +msgq_in =3D MSGQ0 +msgq_out =3D MSGQ0 +timer_period =3D 100 +type =3D FIREWALL +n_rules =3D 1 +pkt_type =3D abcde + +run the command ./build/ip_pipeline -p 0x3 -f ~/ip_pipeline/ip_pipeline_cf= g/postive/filename, check that the app runs failure + +cfg file test-FLOW_ACTIONS-color_offset--1.cfg +----------------------------------------------[PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +core =3D 1 +pktq_in =3D RXQ0.0 RXQ1.0 +pktq_out =3D TXQ0.0 TXQ1.0 +msgq_in =3D MSGQ0 +msgq_out =3D MSGQ0 +timer_period =3D 100 +type =3D FLOW_ACTIONS +n_flows =3D 4096 +flow_id_offset =3D 286 +color_offset =3D -1 +ip_hdr_offset =3D 270 +n_meters_per_flow =3D 1 + +run the command ./build/ip_pipeline -p 0x3 -f ~/ip_pipeline/ip_pipeline_cf= g/postive/filename, check that the app runs failure + +cfg file test-FLOW_ACTIONS-color_offset-4294967296.cfg +-------------------------------------------------------- +[PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +core =3D 1 +pktq_in =3D RXQ0.0 RXQ1.0 +pktq_out =3D TXQ0.0 TXQ1.0 +msgq_in =3D MSGQ0 +msgq_out =3D MSGQ0 +timer_period =3D 100 +type =3D FLOW_ACTIONS +n_flows =3D 4096 +flow_id_offset =3D 286 +color_offset =3D 4294967296 +ip_hdr_offset =3D 270 +n_meters_per_flow =3D 1 + +run the command ./build/ip_pipeline -p 0x3 -f ~/ip_pipeline/ip_pipeline_cf= g/postive/filename, check that the app runs failure + +cfg file test-FLOW_ACTIONS-flow_id_offset--1.cfg +------------------------------------------------ +[PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +core =3D 1 +pktq_in =3D RXQ0.0 RXQ1.0 +pktq_out =3D TXQ0.0 TXQ1.0 +msgq_in =3D MSGQ0 +msgq_out =3D MSGQ0 +timer_period =3D 100 +type =3D FLOW_ACTIONS +n_flows =3D 4096 +flow_id_offset =3D -1 +color_offset =3D 192 +ip_hdr_offset =3D 270 +n_meters_per_flow =3D 1 + +run the command ./build/ip_pipeline -p 0x3 -f ~/ip_pipeline/ip_pipeline_cf= g/postive/filename, check that the app runs failure + +cfg file test-FLOW_ACTIONS-flow_id_offset-4294967296.cfg +--------------------------------------------------------- +[PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +core =3D 1 +pktq_in =3D RXQ0.0 RXQ1.0 +pktq_out =3D TXQ0.0 TXQ1.0 +msgq_in =3D MSGQ0 +msgq_out =3D MSGQ0 +timer_period =3D 100 +type =3D FLOW_ACTIONS +n_flows =3D 4096 +flow_id_offset =3D 4294967296 +color_offset =3D 192 +ip_hdr_offset =3D 270 +n_meters_per_flow =3D 1 + +run the command ./build/ip_pipeline -p 0x3 -f ~/ip_pipeline/ip_pipeline_cf= g/postive/filename, check that the app runs failure + +cfg file test-FLOW_ACTIONS-ip_hdr_offset--1.cfg +----------------------------------------------- +[PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +core =3D 1 +pktq_in =3D RXQ0.0 RXQ1.0 +pktq_out =3D TXQ0.0 TXQ1.0 +msgq_in =3D MSGQ0 +msgq_out =3D MSGQ0 +timer_period =3D 100 +type =3D FLOW_ACTIONS +n_flows =3D 4096 +flow_id_offset =3D 286 +color_offset =3D 192 +ip_hdr_offset =3D -1 +n_meters_per_flow =3D 1 + +run the command ./build/ip_pipeline -p 0x3 -f ~/ip_pipeline/ip_pipeline_cf= g/postive/filename, check that the app runs failure + +cfg file test-FLOW_ACTIONS-ip_hdr_offset-4294967296.cfg +---------------------------------------------------------- +[PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +core =3D 1 +pktq_in =3D RXQ0.0 RXQ1.0 +pktq_out =3D TXQ0.0 TXQ1.0 +msgq_in =3D MSGQ0 +msgq_out =3D MSGQ0 +timer_period =3D 100 +type =3D FLOW_ACTIONS +n_flows =3D 4096 +flow_id_offset =3D 286 +color_offset =3D 192 +ip_hdr_offset =3D 4294967296 +n_meters_per_flow =3D 1 + +run the command ./build/ip_pipeline -p 0x3 -f ~/ip_pipeline/ip_pipeline_cf= g/postive/filename, check that the app runs failure + +cfg file test-FLOW_ACTIONS-n_flows-0.cfg +------------------------------------------ +[PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +core =3D 1 +pktq_in =3D RXQ0.0 RXQ1.0 +pktq_out =3D TXQ0.0 TXQ1.0 +msgq_in =3D MSGQ0 +msgq_out =3D MSGQ0 +timer_period =3D 100 +type =3D FLOW_ACTIONS +n_flows =3D 0 +flow_id_offset =3D 286 +color_offset =3D 192 +ip_hdr_offset =3D 270 +n_meters_per_flow =3D 1 + +run the command ./build/ip_pipeline -p 0x3 -f ~/ip_pipeline/ip_pipeline_cf= g/postive/filename, check that the app runs failure + +cfg file test-FLOW_ACTIONS-n_flows--1.cfg +----------------------------------------- +[PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +core =3D 1 +pktq_in =3D RXQ0.0 RXQ1.0 +pktq_out =3D TXQ0.0 TXQ1.0 +msgq_in =3D MSGQ0 +msgq_out =3D MSGQ0 +timer_period =3D 100 +type =3D FLOW_ACTIONS +n_flows =3D -1 +flow_id_offset =3D 286 +color_offset =3D 192 +ip_hdr_offset =3D 270 +n_meters_per_flow =3D 1 + +run the command ./build/ip_pipeline -p 0x3 -f ~/ip_pipeline/ip_pipeline_cf= g/postive/filename, check that the app runs failure + +cfg file test-FLOW_ACTIONS-n_flows-4294967296.cfg +---------------------------------------------------- +[PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +core =3D 1 +pktq_in =3D RXQ0.0 RXQ1.0 +pktq_out =3D TXQ0.0 TXQ1.0 +msgq_in =3D MSGQ0 +msgq_out =3D MSGQ0 +timer_period =3D 100 +type =3D FLOW_ACTIONS +n_flows =3D 4294967296 +flow_id_offset =3D 286 +color_offset =3D 192 +ip_hdr_offset =3D 270 +n_meters_per_flow =3D 1 + +run the command ./build/ip_pipeline -p 0x3 -f ~/ip_pipeline/ip_pipeline_cf= g/postive/filename, check that the app runs failure + +cfg file test-FLOW_ACTIONS-n_meters_per_flow-0.cfg +-------------------------------------------------- +[PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +core =3D 1 +pktq_in =3D RXQ0.0 RXQ1.0 +pktq_out =3D TXQ0.0 TXQ1.0 +msgq_in =3D MSGQ0 +msgq_out =3D MSGQ0 +timer_period =3D 100 +type =3D FLOW_ACTIONS +n_flows =3D 4096 +flow_id_offset =3D 286 +color_offset =3D 192 +ip_hdr_offset =3D 270 +n_meters_per_flow =3D 0 + +run the command ./build/ip_pipeline -p 0x3 -f ~/ip_pipeline/ip_pipeline_cf= g/postive/filename, check that the app runs failure + +cfg file test-FLOW_ACTIONS-n_meters_per_flow-5.cfg +-------------------------------------------------- +[PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +core =3D 1 +pktq_in =3D RXQ0.0 RXQ1.0 +pktq_out =3D TXQ0.0 TXQ1.0 +msgq_in =3D MSGQ0 +msgq_out =3D MSGQ0 +timer_period =3D 100 +type =3D FLOW_ACTIONS +n_flows =3D 4096 +flow_id_offset =3D 286 +color_offset =3D 192 +ip_hdr_offset =3D 270 +n_meters_per_flow =3D 5 + +run the command ./build/ip_pipeline -p 0x3 -f ~/ip_pipeline/ip_pipeline_cf= g/postive/filename, check that the app runs failure + +cfg file test-FLOW_CLASSIFICATION-hash_offset--1.cfg +------------------------------------------------------- +[PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +core =3D 1 +pktq_in =3D RXQ0.0 RXQ1.0 +pktq_out =3D TXQ0.0 TXQ1.0 +msgq_in =3D MSGQ0 +msgq_out =3D MSGQ0 +timer_period =3D 100 +type =3D FLOW_CLASSIFICATION +n_flows =3D 4096 +key_offset =3D 192 +key_size =3D 16 +hash_offset =3D -1 + +run the command ./build/ip_pipeline -p 0x3 -f ~/ip_pipeline/ip_pipeline_cf= g/postive/filename, check that the app runs failure + +cfg file test-FLOW_CLASSIFICATION-hash_offset-4294967296.cfg +----------------------------------------------------------------- +[PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +core =3D 1 +pktq_in =3D RXQ0.0 RXQ1.0 +pktq_out =3D TXQ0.0 TXQ1.0 +msgq_in =3D MSGQ0 +msgq_out =3D MSGQ0 +timer_period =3D 100 +type =3D FLOW_CLASSIFICATION +n_flows =3D 4096 +key_offset =3D 192 +key_size =3D 16 +hash_offset =3D 4294967296 + +run the command ./build/ip_pipeline -p 0x3 -f ~/ip_pipeline/ip_pipeline_cf= g/postive/filename, check that the app runs failure + +cfg file test-FLOW_CLASSIFICATION-key_offset--1.cfg +----------------------------------------------------- +[PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +core =3D 1 +pktq_in =3D RXQ0.0 RXQ1.0 +pktq_out =3D TXQ0.0 TXQ1.0 +msgq_in =3D MSGQ0 +msgq_out =3D MSGQ0 +timer_period =3D 100 +type =3D FLOW_CLASSIFICATION +n_flows =3D 4096 +key_offset =3D -1 +key_size =3D 16 +hash_offset =3D 208 + +run the command ./build/ip_pipeline -p 0x3 -f ~/ip_pipeline/ip_pipeline_cf= g/postive/filename, check that the app runs failure + +cfg file test-FLOW_CLASSIFICATION-key_offset-4294967296.cfg +--------------------------------------------------------------- +[PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +core =3D 1 +pktq_in =3D RXQ0.0 RXQ1.0 +pktq_out =3D TXQ0.0 TXQ1.0 +msgq_in =3D MSGQ0 +msgq_out =3D MSGQ0 +timer_period =3D 100 +type =3D FLOW_CLASSIFICATION +n_flows =3D 4096 +key_offset =3D 4294967296 +key_size =3D 16 +hash_offset =3D 208 + +run the command ./build/ip_pipeline -p 0x3 -f ~/ip_pipeline/ip_pipeline_cf= g/postive/filename, check that the app runs failure + +cfg file test-FLOW_CLASSIFICATION-key_size-7.cfg +--------------------------------------------------- +PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +core =3D 1 +pktq_in =3D RXQ0.0 RXQ1.0 +pktq_out =3D TXQ0.0 TXQ1.0 +msgq_in =3D MSGQ0 +msgq_out =3D MSGQ0 +timer_period =3D 100 +type =3D FLOW_CLASSIFICATION +n_flows =3D 4096 +key_offset =3D 192 +key_size =3D 7 +hash_offset =3D 208 + +run the command ./build/ip_pipeline -p 0x3 -f ~/ip_pipeline/ip_pipeline_cf= g/postive/filename, check that the app runs failure + +cfg file test-FLOW_CLASSIFICATION-n_flows-0.cfg +------------------------------------------------- +[PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +core =3D 1 +pktq_in =3D RXQ0.0 RXQ1.0 +pktq_out =3D TXQ0.0 TXQ1.0 +msgq_in =3D MSGQ0 +msgq_out =3D MSGQ0 +timer_period =3D 100 +type =3D FLOW_CLASSIFICATION +n_flows =3D 0 +key_offset =3D 192 +key_size =3D 16 +hash_offset =3D 208 + +run the command ./build/ip_pipeline -p 0x3 -f ~/ip_pipeline/ip_pipeline_cf= g/postive/filename, check that the app runs failure + +cfg file test-FLOW_CLASSIFICATION-n_flows--1.cfg +----------------------------------------------------- +[PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +core =3D 1 +pktq_in =3D RXQ0.0 RXQ1.0 +pktq_out =3D TXQ0.0 TXQ1.0 +msgq_in =3D MSGQ0 +msgq_out =3D MSGQ0 +timer_period =3D 100 +type =3D FLOW_CLASSIFICATION +n_flows =3D -1 +key_offset =3D 192 +key_size =3D 16 +hash_offset =3D 208 + +run the command ./build/ip_pipeline -p 0x3 -f ~/ip_pipeline/ip_pipeline_cf= g/postive/filename, check that the app runs failure + +cfg file test-FLOW_CLASSIFICATION-n_flows-4294967296.cfg +------------------------------------------------------------ +[PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +core =3D 1 +pktq_in =3D RXQ0.0 RXQ1.0 +pktq_out =3D TXQ0.0 TXQ1.0 +msgq_in =3D MSGQ0 +msgq_out =3D MSGQ0 +timer_period =3D 100 +type =3D FLOW_CLASSIFICATION +n_flows =3D 4294967296 +key_offset =3D 192 +key_size =3D 16 +hash_offset =3D 208 + +run the command ./build/ip_pipeline -p 0x3 -f ~/ip_pipeline/ip_pipeline_cf= g/postive/filename, check that the app runs failure + +cfg file test-ROUTING-ip_hdr_offset--1.cfg +--------------------------------------------- +[PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +core =3D 1 +pktq_in =3D RXQ0.0 RXQ1.0 +pktq_out =3D TXQ0.0 TXQ1.0 +msgq_in =3D MSGQ0 +msgq_out =3D MSGQ0 +timer_period =3D 100 +type =3D ROUTING +n_routes =3D 4096 +ip_hdr_offset =3D -1 + +run the command ./build/ip_pipeline -p 0x3 -f ~/ip_pipeline/ip_pipeline_cf= g/postive/filename, check that the app runs failure + +cfg file test-ROUTING-ip_hdr_offset-4294967296.cfg +------------------------------------------------------ +[PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +core =3D 1 +pktq_in =3D RXQ0.0 RXQ1.0 +pktq_out =3D TXQ0.0 TXQ1.0 +msgq_in =3D MSGQ0 +msgq_out =3D MSGQ0 +timer_period =3D 100 +type =3D ROUTING +n_routes =3D 4096 +ip_hdr_offset =3D 4294967296 + +run the command ./build/ip_pipeline -p 0x3 -f ~/ip_pipeline/ip_pipeline_cf= g/postive/filename, check that the app runs failure + +cfg file test-ROUTING-n_routes--1.cfg +----------------------------------------- +[PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +core =3D 1 +pktq_in =3D RXQ0.0 RXQ1.0 +pktq_out =3D TXQ0.0 TXQ1.0 +msgq_in =3D MSGQ0 +msgq_out =3D MSGQ0 +timer_period =3D 100 +type =3D ROUTING +n_routes =3D -1 +ip_hdr_offset =3D 270 + +run the command ./build/ip_pipeline -p 0x3 -f ~/ip_pipeline/ip_pipeline_cf= g/postive/filename, check that the app runs failure + +cfg file test-ROUTING-n_routes-4294967296.cfg +-------------------------------------------------- +[PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +core =3D 1 +pktq_in =3D RXQ0.0 RXQ1.0 +pktq_out =3D TXQ0.0 TXQ1.0 +msgq_in =3D MSGQ0 +msgq_out =3D MSGQ0 +timer_period =3D 100 +type =3D ROUTING +n_routes =3D 4294967296 +ip_hdr_offset =3D 270 + +run the command ./build/ip_pipeline -p 0x3 -f ~/ip_pipeline/ip_pipeline_cf= g/postive/filename, check that the app runs failure + + + +Test Case: test_ip_pipeline_cpu_utilization +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D +running ip_pipeline_cpu_utilization with the command:: + ./examples/ip_pipeline/build/ip_pipeline -p 0xf -f ./examples/ip_pipe= line/config/edge_router_downstream.cfg -s ./examples/ip_pipeline/config/edg= e_router_downstream.sh + +then:: + send package my scapy tool + +check:: + pipeline>t 1 headroom +if is 100% the test pass, else fail +Test Case: test_ip_pipeline_link_identification +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D + +Description +Link identification has 2 goals, first is to create a brand new option in = CFG file's LINK +section, so a link can be confgiured specific physical port using the PCI = address. So the +user can either use original "-p" option, or the new LINK section item to = identify the=20 +physical port he/she wants to use; Second is to maintain the original "-p"= option as it is. +That is, the following logic shall be applied so that two ways will not mi= x. + +-------------------------------------------------------------------- + |a. "-p" cmd option exists | b. "-p" cmd option not exist +-------------------------------------------------------------------- +1 |EAL section "pci_whitelist" |EAL section "pci_whitelist" is + |option is allowed and optional |NOT allowed +-------------------------------------------------------------------- +2 |LINK section "pci_bdf" option |LINK section "pci_bdf" option + |is NOT allowed |is MANDATORY +------------------------------------------------------------------------ + +1. Regression for all the old CFG files(regression team should cover it) +------------------------------------------------------------------------ + +---------------------------------------------------------------- +2. CFG file containing 1 "pci_whitelist" section with "-p" exist shall wor= k +([root@dpdk_testserver03 ip_pipeline]# ./build/ip_pipeline -p 1 -f ./confi= g/pt1_2ports_link_iden.cfg =20 +Parse error in section "EAL", entry "pci_whitelist": too many elements + +Aborted (core dumped)) +---------------------------------------------------------------- +Config file as follows +[PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +type =3D PASS-THROUGH +core =3D s1c1 +pktq_in =3D RXQ0.0 RXQ1.0 +pktq_out =3D TXQ1.0 TXQ0.0 + +[EAL] +pci_whitelist =3D 0000:85:00.0 +Run the command ./build/ip_pipeline -p 1 -f ./config/pt1_2ports_link_iden.= cfg, check that the app runs successfully + +---------------------------------------------------------------- +3. CFG file containing 2 "pci_whitelist" sections with "-p" exists +([root@dpdk_testserver03 ip_pipeline]# ./build/ip_pipeline -p 3 -f ./confi= g/pt1_2ports_link_iden.cfg=20 +Parse error in section "EAL", entry "pci_whitelist": too many elements + +Aborted (core dumped)) +---------------------------------------------------------------- +Config file as follows + + +Run the command ./build/ip_pipeline -p 3 -f ./config/pt1_2ports_link_iden.= cfg, check that the app runs successfully + +---------------------------------------------------------------- +4. CFG file containing 4 "pci_whitelist" sections with "-p" exists +---------------------------------------------------------------- +Config file as follows +[PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +type =3D PASS-THROUGH +core =3D s1c1 +pktq_in =3D RXQ0.0 RXQ1.0 RXQ2.0 RXQ3.0 +pktq_out =3D TXQ0.0 TXQ1.0 TXQ2.0 TXQ3.0 + +[EAL] +pci_whitelist =3D 0000:83:00.0 +pci_whitelist =3D 0000:83:00.1 +pci_whitelist =3D 0000:85:00.0 +pci_whitelist =3D 0000:85:00.1 +Run the command ./build/ip_pipeline -p f -f ./config/pt1_2ports_link_iden.= cfg, check that the app runs successfully + +---------------------------------------------------------------- +5. CFG file containing "pci_bdf" in LINK section shall NOT work with "-p" = exists +([root@dpdk_testserver03 ip_pipeline]# ./build/ip_pipeline -p 3 -f ./confi= g/pt1_2ports_link_iden.cfg =20 +Parse error in section "LINK0", entry "pci_bdf": entry not allowed (port_m= ask is provided) + +Aborted (core dumped)) +---------------------------------------------------------------- +Config file as follows +[PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +type =3D PASS-THROUGH +core =3D s1c1 +pktq_in =3D RXQ0.0 RXQ1.0=20 +pktq_out =3D TXQ1.0 TXQ0.0 + +[LINK0] +pci_bdf =3D 0000:85:00.0 + +[LINK1] +pci_bdf =3D 0000:85:00.1 +Run the command ./build/ip_pipeline -p 3 -f ./config/pt1_2ports_link_iden.= cfg, check that the app runs successfully, if yes, test fail, otherwise, te= st pass + +---------------------------------------------------------------- +6. CFG file containing "pci_bdf" in LINK section and EAL section shall NOT= work with "-p" exists(EAL and LINK not matches) +([root@dpdk_testserver03 ip_pipeline]# ./build/ip_pipeline -p 3 -f ./confi= g/pt1_2ports_link_iden.cfg =20 +Parse error in section "LINK0", entry "pci_bdf": entry not allowed (port_m= ask is provided) + +Aborted (core dumped)) +---------------------------------------------------------------- +Config file as follows +[PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +type =3D PASS-THROUGH +core =3D s1c1 +pktq_in =3D RXQ0.0 RXQ1.0=20 +pktq_out =3D TXQ1.0 TXQ0.0 + +[EAL] +pci_whitelist =3D 0000:83:00.0 +pci_whitelist =3D 0000:83:00.1 + +[LINK0] +pci_bdf =3D 0000:85:00.0 + +[LINK1] +pci_bdf =3D 0000:85:00.1 +Run the command ./build/ip_pipeline -p 3 -f ./config/pt1_2ports_link_iden.= cfg, check that the app runs successfully, if yes, test fail, otherwise, te= st pass + +---------------------------------------------------------------- +7. CFG file containing "pci_bdf" in LINK section and EAL section shall NOT= work with "-p" exists(EAL and LINK matches) +([root@dpdk_testserver03 ip_pipeline]# ./build/ip_pipeline -p 3 -f ./confi= g/pt1_2ports_link_iden.cfg =20 +Parse error in section "LINK0", entry "pci_bdf": entry not allowed (port_m= ask is provided) + +Aborted (core dumped)) +---------------------------------------------------------------- +Config file as follows +[PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +type =3D PASS-THROUGH +core =3D s1c1 +pktq_in =3D RXQ0.0 RXQ1.0=20 +pktq_out =3D TXQ1.0 TXQ0.0 + +[EAL] +pci_whitelist =3D 0000:85:00.0 +pci_whitelist =3D 0000:85:00.1 + +[LINK0] +pci_bdf =3D 0000:85:00.0 + +[LINK1] +pci_bdf =3D 0000:85:00.1 +Run the command ./build/ip_pipeline -p 3 -f ./config/pt1_2ports_link_iden.= cfg, check that the app runs successfully, if yes, test fail, otherwise, te= st pass + +---------------------------------------------------------------- +8. CFG file containing "pci_whitelist" in EAL section shall NOT work with = "-p" absence +([root@dpdk_testserver03 ip_pipeline]# ./build/ip_pipeline -f ./config/pt1= _2ports_link_iden.cfg =20 +Parse error in section "EAL", entry "pci_whitelist": entry to be generated= by the application (port_mask not provided) + +Aborted (core dumped)) +---------------------------------------------------------------- +Config file as follows +[PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +type =3D PASS-THROUGH +core =3D s1c1 +pktq_in =3D RXQ0.0 RXQ1.0=20 +pktq_out =3D TXQ1.0 TXQ0.0 + +[EAL] +pci_whitelist =3D 0000:85:00.0 +pci_whitelist =3D 0000:85:00.1 +Run the command ./build/ip_pipeline -f ./config/pt1_2ports_link_iden.cfg, = check that the app runs successfully, if yes, test fail, otherwise, test pa= ss + + +---------------------------------------------------------------- +9. CFG file containing "pci_bdf" in 1 LINK sections shall work with "-p" a= bsence +---------------------------------------------------------------- +Config file as follows +[PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +type =3D PASS-THROUGH +core =3D s1c1 +pktq_in =3D RXQ0.0 +pktq_out =3D TXQ0.0 + +[LINK0] +pci_bdf =3D 0000:85:00.0 + +Run the command ./build/ip_pipeline -f ./config/pt1_2ports_link_iden.cfg, = check that the app runs successfully, if yes, test pass, otherwise, test fa= il + +---------------------------------------------------------------- +10. CFG file containing "pci_bdf" in 2 LINK sections shall work with "-p" = absence +---------------------------------------------------------------- +Config file as follows +[PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +type =3D PASS-THROUGH +core =3D s1c1 +pktq_in =3D RXQ0.0 RXQ1.0=20 +pktq_out =3D TXQ1.0 TXQ0.0 + +[LINK0] +pci_bdf =3D 0000:85:00.0 + +[LINK1] +pci_bdf =3D 0000:85:00.1 +Run the command ./build/ip_pipeline -f ./config/pt1_2ports_link_iden.cfg, = check that the app runs successfully, if yes, test pass, otherwise, test fa= il + +---------------------------------------------------------------- +11. CFG file containing "pci_bdf" in 4 LINK sections shall work with "-p" = absence +---------------------------------------------------------------- +Config file as follows +[PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +type =3D PASS-THROUGH +core =3D s1c1 +pktq_in =3D RXQ0.0 RXQ1.0 RXQ2.0 RXQ3.0 +pktq_out =3D TXQ0.0 TXQ1.0 TXQ2.0 TXQ3.0 + +[LINK0] +pci_bdf =3D 0000:83:00.0 + +[LINK1] +pci_bdf =3D 0000:83:00.1 + +[LINK2] +pci_bdf =3D 0000:85:00.0 + +[LINK3] +pci_bdf =3D 0000:85:00.1 +Run the command ./build/ip_pipeline -f ./config/pt1_2ports_link_iden.cfg, = check that the app runs successfully, if yes, test pass, otherwise, test fa= il + +---------------------------------------------------------------- +12. CFG file containing "pci_bdf" in 1 LINK sections and 2 LINKS exists sh= all work with "-p" absence +---------------------------------------------------------------- +Config file as follows +[PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +type =3D PASS-THROUGH =20 +core =3D s1c1 +pktq_in =3D RXQ0.0 RXQ1.0 +pktq_out =3D TXQ0.0 TXQ1.0 + +[LINK0] +pci_bdf =3D 0000:85:00.0 + +[LINK1] +pci_bdf =3D 0000:85:00.1 +Run the command ./build/ip_pipeline -f ./config/pt1_2ports_link_iden.cfg, = check that the app runs successfully, if yes, test pass, otherwise, test fa= il + +---------------------------------------------------------------- +13. CFG file containing "pci_bdf" in 1 LINK sections and 2 LINKS exists sh= all NOT work with "-p" exists +[root@dpdk_testserver03 ip_pipeline]# ./build/ip_pipeline -p 3 -f ~/config= /link_identification/link_iden_case_13.cfg +Parse error in section "LINK0", entry "pci_bdf": entry not allowed (port_m= ask is provided) + +Aborted (core dumped) +---------------------------------------------------------------- +Config file as follows +[PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +type =3D PASS-THROUGH +core =3D s1c1 +pktq_in =3D RXQ0.0 RXQ1.0 +pktq_out =3D TXQ0.0 TXQ1.0 + +[LINK0] +pci_bdf =3D 0000:85:00.0 + +[LINK1] +pci_bdf =3D 0000:85:00.1 +Run the command ./build/ip_pipeline -p 3 -f ./config/pt1_2ports_link_iden.= cfg, check that the app runs successfully, if yes, test pass, otherwise, te= st fail + +Test Case: test_ip_pipeline_parser_cleanup +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D + +1. Test config parser for pipeline passthrough + +2. Test config parser for pipeline flow classification(need to test based = on bugs raised) + +3. Test config parser for pipeline flow action + +4. Test config parser for pipeline firewall + +5. Test config parser for pipeline routing + +6. Add multiple whitespaces between argumetns in pktq_in/out and msgq_in/o= ut section + +7. Create cfg files with all kinds of errors(like the section not supposed= to be there, or out of range value) + +8. In pipeline specific cfg section, write n_rules=3D4k/64k/512k/16M and c= heck if the table memory have the same size of n_rules=3D4096/65536... exac= t values +(problems is how to check the table memory, need to check with dev???) + +-------------------------------------------------- +1. An invalid entry should be recognized(negative) +-------------------------------------------------- +Config file as follows, pipeline is passthrough +[PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +type =3D PASS-THROUGH +core =3D s1c1 +pktq_in =3D RXQ0.0 RXQ1.0 +pktq_out =3D TXQ1.0 TXQ0.0 +dma_src_offset =3D 278; mbuf (128) + headroom (128) + 1st ethertype offset= (14) + ttl offset within ip header =3D 278 (ipv4) +dma_dst_offset =3D 128; mbuf (128) +dma_size =3D 16 +dma_src_mask =3D 00FF0000FFFFFFFFFFFFFFFFFFFFFFFF +dma_hash_offset =3D 144; (dma_dst_offset+dma_size) +lb =3D hash +test =3D 123 +Command to run: ./build/ip_pipeline -p 3 -f ./config/parsercleanup/pt1_mes= gq_2ports.cfg +check that an invalid entry is recognized by config parser, "lb" is not a = recognized entry, it should report the error, if yes, test pass, otherwise,= test fail + +pipeline> [APP] Initializing PIPELINE1 ... +[PIPELINE1] Pass-through +Parse error in section "PIPELINE1": invalid entry "test" +PANIC in app_init_pipelines(): +Pipeline instance "PIPELINE1" back-end init error +7: [./build/ip_pipeline() [0x432615]] +6: [/lib64/libc.so.6(__libc_start_main+0xf5) [0x33dca21d65]] +5: [./build/ip_pipeline(main+0x5f) [0x43187f]] +4: [./build/ip_pipeline(app_init+0x15b8) [0x4419e8]] +3: [./build/ip_pipeline() [0x43f85b]] +2: [./build/ip_pipeline(__rte_panic+0xc9) [0x42c33c]] +1: [./build/ip_pipeline(rte_dump_stack+0x1a) [0x4d5dca]] +Aborted (core dumped) + +-------------------------------------------------------------- +2. Multiple whitespaces between arguments in pktq_in entry +-------------------------------------------------------------- +Config file as follows +[PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +type =3D PASS-THROUGH +core =3D s1c1 +pktq_in =3D RXQ0.0 RXQ1.0 +pktq_out =3D TXQ1.0 TXQ0.0 +dma_src_offset =3D 278; mbuf (128) + headroom (128) + 1st ethertype offset= (14) + ttl offset within ip header =3D 278 (ipv4) +dma_dst_offset =3D 128; mbuf (128) +dma_size =3D 16 +dma_src_mask =3D 00FF0000FFFFFFFFFFFFFFFFFFFFFFFF +dma_hash_offset =3D 144; (dma_dst_offset+dma_size) +Command to run: ./build/ip_pipeline -p 3 -f ./config/parsercleanup/pt1_mes= gq_2ports.cfg +Check that the config parser can recognize the multiple whitespaces betwee= n each argument of pktq_in. If yes, test passed, otherwise, test failed. + +-------------------------------------------------------------- +3. Multiple whitespaces between arguments in pktq_out entry +-------------------------------------------------------------- +Config file as follows +[PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +type =3D PASS-THROUGH +core =3D s1c1 +pktq_in =3D RXQ0.0 RXQ1.0 +pktq_out =3D TXQ1.0 TXQ0.0 +dma_src_offset =3D 278; mbuf (128) + headroom (128) + 1st ethertype offset= (14) + ttl offset within ip header =3D 278 (ipv4) +dma_dst_offset =3D 128; mbuf (128) +dma_size =3D 16 +dma_src_mask =3D 00FF0000FFFFFFFFFFFFFFFFFFFFFFFF +dma_hash_offset =3D 144; (dma_dst_offset+dma_size) +;lb =3D hash +Command to run: ./build/ip_pipeline -p 3 -f ./config/parsercleanup/pt1_mes= gq_2ports.cfg +Check that the config parser can recognize the multiple whitespaces betwee= n each argument of pktq_out. If yes, test passed, otherwise, test failed. + +-------------------------------------------------------------- +4. Multiple whitespaces between arguments in msgq_in entry +-------------------------------------------------------------- +Config file as follows +[PIPELINE0] +type =3D MASTER +core =3D s0c0 +;msgq_in =3D MSGQ-REQ-PIPELINE0 ; for customer in .cfg.out, can not assign= in .cfg file, because these are used as the communication for master and o= ther pipeline. +;msgq_out =3D MSGQ-RSP-PIPELINE0 +timer_period =3D 1 + +[PIPELINE1] +type =3D PASS-THROUGH +core =3D s0c1 +pktq_in =3D RXQ0.0 RXQ1.0 +pktq_out =3D TXQ0.0 TXQ1.0 +msgq_in =3D MSGQ0 MSGQ1 MSGQ2 MSGQ3 ;MSGQ-REQ-PIPELINE1, dev will confirm= on how to use it +msgq_out =3D MSGQ0 MSGQ1 MSGQ2 MSGQ3 ;MSGQ-RSP-PIPELINE1 +timer_period =3D 100 + +Command to run: ./build/ip_pipeline -p 3 -f ./config/parsercleanup/pt1_mes= gq_2ports.cfg +Check that the config parser can recognize the multiple whitespaces betwee= n each argument of msgq_in. If yes, test passed, otherwise, test failed. + +-------------------------------------------------------------- +5. Multiple whitespaces between arguments in msgq_out entry +-------------------------------------------------------------- +Config file as follows +[PIPELINE0] +type =3D MASTER +core =3D s0c0 +;msgq_in =3D MSGQ-REQ-PIPELINE0 +;msgq_out =3D MSGQ-RSP-PIPELINE0 +timer_period =3D 1 + +[PIPELINE1] +type =3D PASS-THROUGH +core =3D s0c1 +pktq_in =3D RXQ0.0 RXQ1.0 +pktq_out =3D TXQ0.0 TXQ1.0 +msgq_in =3D MSGQ0 MSGQ1 MSGQ2 MSGQ3 ;MSGQ-REQ-PIPELINE1 +msgq_out =3D MSGQ0 MSGQ1 MSGQ2 MSGQ3 ;MSGQ-RSP-PIPELINE1 +timer_period =3D 100 + +Command to run: ./build/ip_pipeline -p 3 -f ./config/parsercleanup/pt1_mes= gq_2ports.cfg +Check that the config parser can recognize the multiple whitespaces betwee= n each argument of msgq_in. If yes, test passed, otherwise, test failed. + +----------------------------------- +6. Not recognized section(negative) +----------------------------------- +Config file as follows +[PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +type =3D PASS-THROUGH +core =3D s1c1 +pktq_in =3D RXQ0.0 RXQ1.0 +pktq_out =3D TXQ1.0 TXQ0.0 +dma_src_offset =3D 278; mbuf (128) + headroom (128) + 1st ethertype offset= (14) + ttl offset within ip header =3D 278 (ipv4) +dma_dst_offset =3D 128; mbuf (128) +dma_size =3D 16 +dma_src_mask =3D 00FF0000FFFFFFFFFFFFFFFFFFFFFFFF +dma_hash_offset =3D 144; (dma_dst_offset+dma_size) +;lb =3D hash + +[TESTSECTION] +type =3D flow classification + +Command to run: ./build/ip_pipeline -p 3 -f ./config/parsercleanup/pt1_2po= rts.cfg +Check that the config parser can report out the invalid section and print = out "CFG:....." messages. If yes, test passed, otherwise, test failed. + +--------------------------------- +7. Not recognized entry(negative) +--------------------------------- +Config file as follows +[PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +type =3D PASS-THROUGH +core =3D s1c1 +pktq_in =3D RXQ0.0 RXQ1.0 +pktq_out =3D TXQ1.0 TXQ0.0 +dma_src_offset =3D 278; mbuf (128) + headroom (128) + 1st ethertype offset= (14) + ttl offset within ip header =3D 278 (ipv4) +dma_dst_offset =3D 128; mbuf (128) +dma_size =3D 16 +dma_src_mask =3D 00FF0000FFFFFFFFFFFFFFFFFFFFFFFF +dma_hash_offset =3D 144; (dma_dst_offset+dma_size) +;lb =3D hash +test =3D value + +Command to run: ./build/ip_pipeline -p 3 -f ./config/parsercleanup/pt1_2po= rts.cfg +Check that the config parser can report out the invalid section and print = out "CFG:....." messages. If yes, test passed, otherwise, test failed. + +-------------------------------------------------------------- +8. Check that the n_rules can equal to 4k and the table memory have the sa= me size of n_rules=3D4096(need to check with dev how to check the table mem= ory) +firewall can not be seem, use flow classifcaion, n_flows, check table size +[PIPELINE2] Flow classification +TABLE: rte_table_hash_create_key16_ext: Hash table memory footprint is 397= 440 bytes +-------------------------------------------------------------- +Config file as follows +[PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +type =3D PASS-THROUGH +core =3D s1c1 +pktq_in =3D RXQ0.0 RXQ1.0 +pktq_out =3D SWQ0 SWQ1 +dma_size =3D 16 +dma_dst_offset =3D 192; mbuf (128) + 64 +dma_src_offset =3D 278; mbuf (128) + headroom (128) + ethernet header (14)= + ttl offset within ip header (8) =3D 278 +dma_src_mask =3D 00FF0000FFFFFFFFFFFFFFFFFFFFFFFF; ipv4 5-tuple +dma_hash_offset =3D 208; dma_dst_offset + dma_size + +[PIPELINE2] +type =3D FLOW_CLASSIFICATION +core =3D s1c2 +pktq_in =3D SWQ0 SWQ1 +pktq_out =3D TXQ1.0 TXQ0.0 +n_flows =3D 4k +key_offset =3D 192; dma_dst_offset +key_size =3D 16; dma_size +hash_offset =3D 208; dma_hash_offset =3D 80 + +Command to run: ./build/ip_pipeline -p 3 -f ./config/parsercleanup/fc_2por= ts.cfg +Check that app runs successfully and the table memory have the same size o= f n_flows=3D4096 If yes, test passed, otherwise, test failed. + +-------------------------------------------------------------- +9. Check that the n_rules can equal to 64k and the table memory have the s= ame size of n_rules=3D65536(need to check with dev how to check the table m= emory) +[PIPELINE2] Flow classification +TABLE: rte_table_hash_create_key16_ext: Hash table memory footprint is 635= 7120 bytes +-------------------------------------------------------------- +Config file as follows +[PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +type =3D PASS-THROUGH +core =3D s1c1 +pktq_in =3D RXQ0.0 RXQ1.0 +pktq_out =3D SWQ0 SWQ1 +dma_size =3D 16 +dma_dst_offset =3D 192; mbuf (128) + 64 +dma_src_offset =3D 278; mbuf (128) + headroom (128) + ethernet header (14)= + ttl offset within ip header (8) =3D 278 +dma_src_mask =3D 00FF0000FFFFFFFFFFFFFFFFFFFFFFFF; ipv4 5-tuple +dma_hash_offset =3D 208; dma_dst_offset + dma_size + +[PIPELINE2] +type =3D FLOW_CLASSIFICATION +core =3D s1c2 +pktq_in =3D SWQ0 SWQ1 +pktq_out =3D TXQ1.0 TXQ0.0 +n_flows =3D 64k +key_offset =3D 192; dma_dst_offset +key_size =3D 16; dma_size +hash_offset =3D 208; dma_hash_offset =3D 80 + +Command to run: ./build/ip_pipeline -p 3 -f ./config/parsercleanup/fc_2por= ts.cfg +Check that app runs successfully and the table memory have the same size o= f n_rules=3D65536 If yes, test passed, otherwise, test failed. + +-------------------------------------------------------------- +10. Check that the n_rules can equal to 512k and the table memory have the= same size of n_rules=3D524288(need to check with dev how to check the tabl= e memory) +[PIPELINE2] Flow classification +TABLE: rte_table_hash_create_key16_ext: Hash table memory footprint is 508= 56064 bytes +-------------------------------------------------------------- +Config file as follows +[PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +type =3D PASS-THROUGH +core =3D s1c1 +pktq_in =3D RXQ0.0 RXQ1.0 +pktq_out =3D SWQ0 SWQ1 +dma_size =3D 16 +dma_dst_offset =3D 192; mbuf (128) + 64 +dma_src_offset =3D 278; mbuf (128) + headroom (128) + ethernet header (14)= + ttl offset within ip header (8) =3D 278 +dma_src_mask =3D 00FF0000FFFFFFFFFFFFFFFFFFFFFFFF; ipv4 5-tuple +dma_hash_offset =3D 208; dma_dst_offset + dma_size + +[PIPELINE2] +type =3D FLOW_CLASSIFICATION +core =3D s1c2 +pktq_in =3D SWQ0 SWQ1 +pktq_out =3D TXQ1.0 TXQ0.0 +n_flows =3D 512k +key_offset =3D 192; dma_dst_offset +key_size =3D 16; dma_size +hash_offset =3D 208; dma_hash_offset =3D 80 + +Command to run: ./build/ip_pipeline -p 3 -f ./config/parsercleanup/fc_2por= ts.cfg +Check that app runs successfully and the table memory have the same size o= f n_rules=3D524288 If yes, test passed, otherwise, test failed. + +-------------------------------------------------------------- +11. Check that the n_rules can equal to 16M and the table memory have the = same size of n_rules=3D16777216(need to check with dev how to check the tab= le memory), maximum is 2^32, use 2^32+1 to test out of range +[PIPELINE2] Flow classification + +TABLE: rte_table_hash_create_key16_ext: Hash table memory footprint is 162= 7390080 bytes +-------------------------------------------------------------- +Config file as follows +[PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +type =3D PASS-THROUGH +core =3D s1c1 +pktq_in =3D RXQ0.0 RXQ1.0 +pktq_out =3D SWQ0 SWQ1 +dma_size =3D 16 +dma_dst_offset =3D 192; mbuf (128) + 64 +dma_src_offset =3D 278; mbuf (128) + headroom (128) + ethernet header (14)= + ttl offset within ip header (8) =3D 278 +dma_src_mask =3D 00FF0000FFFFFFFFFFFFFFFFFFFFFFFF; ipv4 5-tuple +dma_hash_offset =3D 208; dma_dst_offset + dma_size + +[PIPELINE2] +type =3D FLOW_CLASSIFICATION +core =3D s1c2 +pktq_in =3D SWQ0 SWQ1 +pktq_out =3D TXQ1.0 TXQ0.0 +n_flows =3D 16M +key_offset =3D 192; dma_dst_offset +key_size =3D 16; dma_size +hash_offset =3D 208; dma_hash_offset =3D 80 + +Command to run: ./build/ip_pipeline -p 3 -f ./config/parsercleanup/fc_2por= ts.cfg +Check that app runs successfully and the table memory have the same size o= f n_rules=3D16777216 If yes, test passed, otherwise, test failed. + +-------------------------------------------------------------- +12. Check that the n_rules can equal to 16M+1 and the table memory have th= e same size of n_rules=3D16777216(need to check with dev how to check the t= able memory), maximum is 2^32, use 2^32+1 to test out of range +[PIPELINE2] Flow classification +Parse error in section "PIPELINE2": entry "n_flows" has invalid value ("16= M+1") +PANIC in app_init_pipelines(): +Pipeline instance "PIPELINE2" back-end init error +7: [./build/ip_pipeline() [0x431925]] +6: [/lib64/libc.so.6(__libc_start_main+0xf5) [0x33dca21d65]] +5: [./build/ip_pipeline(main+0x5f) [0x4304ff]] +4: [./build/ip_pipeline(app_init+0x13fb) [0x43f3bb]] +3: [./build/ip_pipeline() [0x43d449]] +2: [./build/ip_pipeline(__rte_panic+0xc9) [0x42af1a]] +1: [./build/ip_pipeline(rte_dump_stack+0x1a) [0x4c8c6a]] +Aborted (core dumped) +-------------------------------------------------------------- +Config file as follows +[PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +type =3D PASS-THROUGH +core =3D s1c1 +pktq_in =3D RXQ0.0 RXQ1.0 +pktq_out =3D SWQ0 SWQ1 +dma_size =3D 16 +dma_dst_offset =3D 192; mbuf (128) + 64 +dma_src_offset =3D 278; mbuf (128) + headroom (128) + ethernet header (14)= + ttl offset within ip header (8) =3D 278 +dma_src_mask =3D 00FF0000FFFFFFFFFFFFFFFFFFFFFFFF; ipv4 5-tuple +dma_hash_offset =3D 208; dma_dst_offset + dma_size + +[PIPELINE2] +type =3D FLOW_CLASSIFICATION +core =3D s1c2 +pktq_in =3D SWQ0 SWQ1 +pktq_out =3D TXQ1.0 TXQ0.0 +n_flows =3D 16M+1 +key_offset =3D 192; dma_dst_offset +key_size =3D 16; dma_size +hash_offset =3D 208; dma_hash_offset =3D 80 + +Command to run: ./build/ip_pipeline -p 3 -f ./config/parsercleanup/fc_2por= ts.cfg +Check that app reports errors, if yes, test pass, otherwise, test fail + +Test Case: test_ip_pipeline_source_sink +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D + +1. change the CONFIG_RTE_PORT_PCAP compiler option lies in config/common_b= ase +2. config file should be use source and sink not rxq and txq, config file = as follows +[PIPELINE1] +type =3D PASS-THROUGH +core =3D 1 +pktq_in =3D SOURCE0 SOURCE1 +pktq_out =3D SINK0 SINK1 +pcap_file_rd =3D /root/eth1.pcap /root/eth2.pcap +pcap_bytes_rd_per_pkt =3D 0 64 +pcap_file_wr =3D /root/eth1.1.pcap /root/eth2.1.pcap +pcap_n_pkt_wr =3D 80 0 +3. Since there is only source/sink port in the config file, there is no ph= ysical port, so it should be no -p in the command line, command should be a= s follows +./build/ip_pipeline -f ./config/config_file_name.cfg +4. change the folder/file to the pcap file to be root, for example, pcap i= s installed in the folder /home/anna/file.pcap, then should use linux comma= nd=20 +chmod 777 /home +chmod 777 /anna +chmod 777 file.pcap +5. pcap_bytes_rd_per_pkt can be 0 or anyother value, 0 means read whole fr= ame, which takes more memory, if only need IP header, then it can be 64,=20 +which saves lots of memory + + +---------------------------------------------------------- +1. Functional test for source port on passthrough pipeline +---------------------------------------------------------- +config file as follows +[PIPELINE0] +type =3D MASTER +core =3D 0 +[PIPELINE1] +type =3D PASS-THROUGH +core =3D 1 +pktq_in =3D SOURCE0 SOURCE1 +pktq_out =3D SINK0 SINK1 +pcap_file_rd =3D /root/eth1.pcap /root/eth2.pcap +pcap_bytes_rd_per_pkt =3D 64 0 +Command to run +./build/ip_pipeline -f ./config/source_port.cfg +The app sends the packets by reading the eth1.pcap and eth2.pcap file and = drops the packets, check that the app runs successfully and quit +normally, then test pass + +-------------------------------------------------------- +2. Functional test for sink port on passthrough pipeline +-------------------------------------------------------- +config file as follows +[PIPELINE0] +type =3D MASTER +core =3D 0 +[PIPELINE1] +type =3D PASS-THROUGH +core =3D 1 +pktq_in =3D SOURCE0 SOURCE1 +pktq_out =3D SINK0 SINK1 +pcap_file_wr =3D /root/eth1.1.pcap /root/eth2.1.pcap +pcap_n_pkt_wr =3D 80 0 +Command to run +./build/ip_pipeline -f ./config/sink_port.cfg +After the app finished runing, since the app send null frames from the sou= rce port, check that the pcap file size is 0, and check the=20 +time stamp when the app finished runing, compare with the eth1.pcap and et= h2.pcap last modified time, if it's the same, test pass,=20 +otherwise, test fail + +--------------------------------------------------------------- +3. Functional test for source+sink port on passthrough pipeline +--------------------------------------------------------------- +config file as follows +[PIPELINE0] +type =3D MASTER +core =3D 0 +[PIPELINE1] +type =3D PASS-THROUGH +core =3D 1 +pktq_in =3D SOURCE0 SOURCE1 +pktq_out =3D SINK0 SINK1 +pcap_file_rd =3D /root/eth1.pcap /root/eth2.pcap +pcap_bytes_rd_per_pkt =3D 0 64 +pcap_file_wr =3D /home/eth1.1.pcap /home/eth2.1.pcap +pcap_n_pkt_wr =3D 80 200 +command to run +./build/ip_pipeline -f ./config/source_sink_port.cfg +After the app finished running, eth1.pcap and eth1.1.pcap should have the = same size, eth2.pcap and eth2.1.pcap should have the same size, and, +in eth2.1.pcap, the first frame and the 101 frame should have the same fra= me which is the first 64 byte of 1st frame in eth2.pcap. + +------------------------------------------------- +4. Same pcap read file, different pcap write file +------------------------------------------------- +config file as follows +[PIPELINE0] +type =3D MASTER +core =3D 0 +[PIPELINE1] +type =3D PASS-THROUGH +core =3D 1 +pktq_in =3D SOURCE0 SOURCE1 +pktq_out =3D SINK0 SINK1 +pcap_file_rd =3D /root/eth1.pcap /root/eth1.pcap +pcap_bytes_rd_per_pkt =3D 0 64 +pcap_file_wr =3D /root/eth1.1.pcap /root/eth2.1.pcap +pcap_n_pkt_wr =3D 80 81 +command to run +./build/ip_pipeline -f ./config/source_sink_port_1.cfg + +After the app finsihed runing, check that the eth1.1.pcap and eth2.1.pcap = have the same first 80 frames, and check that the eth2.1.pcap have 81 frame= s +1st frame and 81th frame should be the same frame, which is the first 64 b= ytes of 1st frame of eth1.pcap file. + +-------------------------------------------------- +5. Same pcap write file, different pcap read file +-------------------------------------------------- +config file as follows +[PIPELINE0] +type =3D MASTER +core =3D 0 +[PIPELINE1] +type =3D PASS-THROUGH +core =3D 1 +pktq_in =3D SOURCE0 SOURCE1 +pktq_out =3D SINK0 SINK1 +pcap_file_rd =3D /root/eth1.pcap /root/eth2.pcap +pcap_bytes_rd_per_pkt =3D 0 64 +pcap_file_wr =3D /root/eth1.1.pcap /root/eth1.1.pcap +pcap_n_pkt_wr =3D 80 200 +comand to run +./build/ip_pipeline -f ./config/source_sink_port_2.cfg +After the app finished runing, check that the eth1.1.pcap should have 200?= (280?) frames, check that the app finished runing correctly + +----------------------------------------------------- +6. pcap_n_pkt_wr equals 0, continuous write sink file +----------------------------------------------------- +config file as follows +[PIPELINE0] +type =3D MASTER +core =3D 0 +[PIPELINE1] +type =3D PASS-THROUGH +core =3D 1 +pktq_in =3D SOURCE0 SOURCE1 +pktq_out =3D SINK0 SINK1 +pcap_file_rd =3D /root/eth1.pcap /root/eth2.pcap +pcap_bytes_rd_per_pkt =3D 0 64 +pcap_file_wr =3D /root/eth1.1.pcap /root/eth2.1.pcap +pcap_n_pkt_wr =3D 0 200 +command to run +./build/ip_pipeline -f ./config/source_sink_port_3.cfg +After the app finished running, check that the eth1.pcap should have more = than 80 frames, check that the eth2.1.pcap have 200 frames + +-------------------------------- +7. 4 source port and 4 sink port +-------------------------------- +config file as follows +[PIPELINE0] +type =3D MASTER +core =3D 0 +[PIPELINE1] +type =3D PASS-THROUGH +core =3D 1 +pktq_in =3D SOURCE0 SOURCE1 SOURCE2 SOURCE3 +pktq_out =3D SINK0 SINK1 SINK2 SINK3 +pcap_file_rd =3D /root/eth1.pcap /root/eth2.pcap /root/eth1.pcap /root/eth= 1.1.pcap +pcap_bytes_rd_per_pkt =3D 0 64 0 64 +pcap_file_wr =3D /root/eth1.1.pcap /root/eth2.1.pcap /root/eth3.1.pcap /ro= ot/eth4.1.pcap +pcap_n_pkt_wr =3D 80 200 80 200 +command to run +./build/ip_pipeline -f ./config/source_sink_port_4.cfg +After the app finished running, check that the eth1.1.pcap and eth5.pcap s= hould have the same size and frames, eth2.1.pcap and eth6.pcap should +have the sme size and frames + +---------------------------------------------------------------- +8. Add source and sink into the EDGE_ROUTER_DOWNSTREAM.CFG, need to check = with zhang, fan about which pipeline to add the SOURCE/SINK +---------------------------------------------------------------- +[PIPELINE0] +type =3D MASTER +core =3D 0 + +[PIPELINE1] +type =3D ROUTING +core =3D 1 +pktq_in =3D SOURCE0 SOURCE1 SOURCE2 SOURCE3 +pktq_out =3D SWQ0 SWQ1 SWQ2 SWQ3 +encap =3D ethernet_qinq +qinq_sched =3D test +ip_hdr_offset =3D 270; mbuf (128) + headroom (128) + ethernet header (14) = =3D 270 +pcap_file_rd =3D /root/eth1.pcap /root/eth2.pcap /root/eth1.pcap /root/eth= 1.1.pcap +pcap_bytes_rd_per_pkt =3D 0 64 0 64 + +[PIPELINE2] +type =3D PASS-THROUGH +core =3D 2 +pktq_in =3D SWQ0 SWQ1 SWQ2 SWQ3 +pktq_out =3D SWQ4 SWQ5 SWQ6 SWQ7 + +[PIPELINE3] +type =3D PASS-THROUGH +core =3D 3 +pktq_in =3D SWQ4 SWQ5 SWQ6 SWQ7 +pktq_out =3D SINK0 SINK1 SINK2 SINK3 +pcap_file_wr =3D /root/eth1.1.pcap /root/eth2.1.pcap /root/eth3.1.pcap /ro= ot/eth4.1.pcap +pcap_n_pkt_wr =3D 80 200 80 200 + +[MEMPOOL0] +pool_size =3D 512 + +only use 1 or 2 ports pcap_n_pkt_wr =3D 80 + +--------------------------------------- +9. Source port and sink port not paired, negative +--------------------------------------- +config file as follows +[PIPELINE0] +type =3D MASTER +core =3D 0 +[PIPELINE1] +type =3D PASS-THROUGH +core =3D 1 +pktq_in =3D SOURCE0 SOURCE1 SOURCE2 +pktq_out =3D SINK0 SINK1 +pcap_file_rd =3D /root/eth1.pcap /root/eth2.pcap +pcap_bytes_rd_per_pkt =3D 64 0 +Command to run +./build/ip_pipeline -f ./config/source_port.cfg +The app sends the packets by reading the eth1.pcap and eth2.pcap file and = drops the packets, check that the app report errors successfully and quit +normally, then test pass + +----------------------------------------- +10. Source port and pcap file read not paired, negative +----------------------------------------- +config file as follows +[PIPELINE0] +type =3D MASTER +core =3D 0 +[PIPELINE1] +type =3D PASS-THROUGH +core =3D 1 +pktq_in =3D SOURCE0 SOURCE1 +pktq_out =3D SINK0 SINK1 +pcap_file_rd =3D /root/eth1.pcap +pcap_bytes_rd_per_pkt =3D 64 0 +pcap_file_wr =3D /root/eth1.1.pcap /root/eth2.1.pcap +pcap_n_pkt_wr =3D 0 200 +Command to run +./build/ip_pipeline -f ./config/source_port.cfg +The app sends the packets by reading the eth1.pcap drops the packets, chec= k that the app report errors successfully and quit +normally, then test pass + +----------------------------------------------------- +11. Source port and pcap bytes read per packet not paired, negative +----------------------------------------------------- +config file as follows +[PIPELINE0] +type =3D MASTER +core =3D 0 +[PIPELINE1] +type =3D PASS-THROUGH +core =3D 1 +pktq_in =3D SOURCE0 SOURCE1 +pktq_out =3D SINK0 SINK1 +pcap_file_rd =3D /root/eth1.pcap /root/eth2.pcap +pcap_bytes_rd_per_pkt =3D 64 +Command to run +./build/ip_pipeline -f ./config/source_port.cfg +The app sends the packets by reading the eth1.pcap and eth2.pcap file and = drops the packets, check that the app report errors successfully and quit +normally, then test pass + +-------------------------------------------- +12. Sink port and pcap file write not paired, negative +-------------------------------------------- +config file as follows +[PIPELINE0] +type =3D MASTER +core =3D 0 +[PIPELINE1] +type =3D PASS-THROUGH +core =3D 1 +pktq_in =3D SOURCE0 SOURCE1 +pktq_out =3D SINK0 SINK1 +pcap_file_wr =3D /root/eth1.1.pcap=20 +pcap_n_pkt_wr =3D 80 0 +Command to run +./build/ip_pipeline -f ./config/sink_port.cfg +After the app finished runing, since the app send null frames from the sou= rce port, check that the pcap file size is 0, and check the=20 +time stamp when the app finished runing, compare with the eth1.pcap last m= odified time, if it's the same, test pass,=20 +otherwise, test fail + +------------------------------------------------ +13. Sink port and pcap n packet write not paired, negative +------------------------------------------------ +config file as follows +[PIPELINE0] +type =3D MASTER +core =3D 0 +[PIPELINE1] +type =3D PASS-THROUGH +core =3D 1 +pktq_in =3D SOURCE0 SOURCE1 +pktq_out =3D SINK0 SINK1 +pcap_file_wr =3D /root/eth1.1.pcap /root/eth2.1.pcap +pcap_n_pkt_wr =3D 80 +Command to run +./build/ip_pipeline -f ./config/sink_port.cfg +After the app finished runing, since the app send null frames from the sou= rce port, check that the pcap file size is 0, and check the=20 +time stamp when the app finished runing, compare with the eth1.pcap and et= h2.pcaplast modified time, if it's the same, test pass,=20 +otherwise, test fail + +------------------------------------------------------------------- +14. Functional test for source port on flow classification pipeline (Fan w= ill double check it) +------------------------------------------------------------------- +config file as follows +[PIPELINE0] +type =3D MASTER +core =3D 0 +[PIPELINE1] +type =3D FLOW_CLASSIFICATION +core =3D s1c2 +pktq_in =3D SOURCE0 SOURCE1 +pktq_out =3D SINK0 SINK1 +n_flows =3D 512 +key_offset =3D 192; dma_dst_offset +key_size =3D 16; dma_size +hash_offset =3D 208; dma_hash_offset =3D 80 +pcap_file_rd =3D /root/eth1.pcap /root/eth2.pcap +pcap_bytes_rd_per_pkt =3D 64 0 +Command to run +./build/ip_pipeline -f ./config/source_port.cfg +The app sends the packets by reading the eth1.pcap and eth2.pcap file and = drops the packets, check that the app runs successfully and quit +normally, then test pass + +----------------------------------------------------------------- +15. Functional test for sink port on flow classification pipeline +----------------------------------------------------------------- +config file as follows +[PIPELINE0] +type =3D MASTER +core =3D 0 +[PIPELINE1] +type =3D FLOW_CLASSIFICATION +core =3D s1c2 +pktq_in =3D SOURCE0 SOURCE1 +pktq_out =3D SINK0 SINK1 +n_flows =3D 512 +key_offset =3D 192; dma_dst_offset +key_size =3D 16; dma_size +hash_offset =3D 208; dma_hash_offset =3D 80 +pcap_file_wr =3D /root/eth1.pcap /root/eth2.pcap +pcap_n_pkt_wr =3D 80 0 +Command to run +./build/ip_pipeline -f ./config/sink_port.cfg +After the app finished runing, since the app send null frames from the sou= rce port, check that the pcap file size is 0, and check the=20 +time stamp when the app finished runing, compare with the eth1.pcap and et= h2.pcap last modified time, if it's the same, test pass,=20 +otherwise, test fail + +------------------------------------------------------------------------ +16. Functional test for source+sink port on flow classification pipeline(n= eed to run with rules) +------------------------------------------------------------------------ +config file as follows +[PIPELINE0] +type =3D MASTER +core =3D 0 +[PIPELINE1] +type =3D FLOW_CLASSIFICATION +core =3D s1c2 +pktq_in =3D SOURCE0 SOURCE1 +pktq_out =3D SINK0 SINK1 +n_flows =3D 512 +key_offset =3D 192; dma_dst_offset +key_size =3D 16; dma_size +hash_offset =3D 208; dma_hash_offset =3D 80 +pcap_file_rd =3D /root/eth1.pcap /root/eth2.pcap +pcap_bytes_rd_per_pkt =3D 0 64 +pcap_file_wr =3D /root/eth1.1.pcap /root/eth2.1.pcap +pcap_n_pkt_wr =3D 80 200 +command to run +./build/ip_pipeline -f ./config/source_sink_port.cfg +After the app finished running, eth1.pcap and eth1.1.pcap should have the = same size, eth2.pcap and eth2.1.pcap should have the same size, and, +in eth2.1.pcap, the first frame and the 101 frame should have the same fra= me which is the first 64 byte of 1st frame in eth2.pcap. + +----------------------------------------------------------- +17. Functional test for source port on flow action pipeline +----------------------------------------------------------- +config file as follows +[PIPELINE0] +type =3D MASTER +core =3D 0 +[PIPELINE1] +type =3D FLOW_ACTIONS +core =3D 1 +pktq_in =3D SOURCE0 SOURCE1 +pktq_out =3D SINK0 SINK1 +n_flows =3D 16 +n_meters_per_flow =3D 1 +flow_id_offset =3D 286; mbuf (128) + headroom (128) + ethernet (14) + ip d= st offset (16)=20 +ip_hdr_offset =3D 270; mbuf (128) + headroom (128) + ethernet (14) =3D 270 +color_offset =3D 192; mbuf (128) + 64 +pcap_file_rd =3D /root/eth1.pcap /root/eth2.pcap +pcap_bytes_rd_per_pkt =3D 64 0 +Command to run +./build/ip_pipeline -f ./config/source_port.cfg +The app sends the packets by reading the eth1.pcap and eth2.pcap file and = drops the packets, check that the app runs successfully and quit +normally, then test pass + +--------------------------------------------------------- +18. Functional test for sink port on flow action pipeline +--------------------------------------------------------- +config file as follows +[PIPELINE0] +type =3D MASTER +core =3D 0 +[PIPELINE1] +type =3D FLOW_ACTIONS +core =3D 1 +pktq_in =3D SOURCE0 SOURCE1 +pktq_out =3D SINK0 SINK1 +n_flows =3D 16 +n_meters_per_flow =3D 1 +flow_id_offset =3D 286; mbuf (128) + headroom (128) + ethernet (14) + ip d= st offset (16)=20 +ip_hdr_offset =3D 270; mbuf (128) + headroom (128) + ethernet (14) =3D 270 +color_offset =3D 192; mbuf (128) + 64 +pcap_file_wr =3D /root/eth1.1.pcap /root/eth2.1.pcap +pcap_n_pkt_wr =3D 80 0 +Command to run +./build/ip_pipeline -f ./config/sink_port.cfg +After the app finished runing, since the app send null frames from the sou= rce port, check that the pcap file size is 0, and check the=20 +time stamp when the app finished runing, compare with the eth1.pcap and et= h2.pcap last modified time, if it's the same, test pass,=20 +otherwise, test fail + +---------------------------------------------------------------- +19. Functional test for source+sink port on flow action pipeline +---------------------------------------------------------------- +config file as follows +[PIPELINE0] +type =3D MASTER +core =3D 0 +[PIPELINE1] +type =3D FLOW_ACTIONS +core =3D 1 +pktq_in =3D SOURCE0 SOURCE1 +pktq_out =3D SINK0 SINK1 +n_flows =3D 16 +n_meters_per_flow =3D 1 +flow_id_offset =3D 286; mbuf (128) + headroom (128) + ethernet (14) + ip d= st offset (16)=20 +ip_hdr_offset =3D 270; mbuf (128) + headroom (128) + ethernet (14) =3D 270 +color_offset =3D 192; mbuf (128) + 64 +pcap_file_rd =3D /root/eth1.pcap /root/eth2.pcap +pcap_bytes_rd_per_pkt =3D 0 64 +pcap_file_wr =3D /root/eth1.1.pcap /root/eth2.1.pcap +pcap_n_pkt_wr =3D 80 200 +command to run +./build/ip_pipeline -f ./config/source_sink_port.cfg +After the app finished running, eth1.pcap and eth1.1.pcap should have the = same size, eth2.pcap and eth2.1.pcap should have the same size, and, +in eth2.1.pcap, the first frame and the 101 frame should have the same fra= me which is the first 64 byte of 1st frame in eth2.pcap. + +----------------------------------------------------------- +20. Functional test for source port on rt arp on pipeline +----------------------------------------------------------- +config file as follows +[PIPELINE0] +type =3D MASTER +core =3D 0 +[PIPELINE1] +type =3D ROUTING +core =3D s1c1 +pktq_in =3D SOURCE0 SOURCE1 +pktq_out =3D SINK0 SINK1 +n_arp_entries =3D 1024 +ip_hdr_offset =3D 270; mbuf (128) + headroom (128) + ethernet header (14) = =3D 270 +arp_key_offset =3D 192; mbuf (128) + 64 +pcap_file_rd =3D /root/eth1.pcap /root/eth2.pcap +pcap_bytes_rd_per_pkt =3D 64 0 +Command to run +./build/ip_pipeline -f ./config/source_port.cfg +The app sends the packets by reading the eth1.pcap and eth2.pcap file and = drops the packets, check that the app runs successfully and quit +normally, then test pass + +--------------------------------------------------------- +21. Functional test for sink port on rt arp on pipeline +--------------------------------------------------------- +config file as follows +[PIPELINE0] +type =3D MASTER +core =3D 0 +[PIPELINE1] +type =3D ROUTING +core =3D s1c1 +pktq_in =3D SOURCE0 SOURCE1 +pktq_out =3D SINK0 SINK1 +n_arp_entries =3D 1024 +ip_hdr_offset =3D 270; mbuf (128) + headroom (128) + ethernet header (14) = =3D 270 +arp_key_offset =3D 192; mbuf (128) + 64 +pcap_file_wr =3D /root/eth1.1.pcap /root/eth2.1.pcap +pcap_n_pkt_wr =3D 80 0 +Command to run +./build/ip_pipeline -f ./config/sink_port.cfg +After the app finished runing, since the app send null frames from the sou= rce port, check that the pcap file size is 0, and check the=20 +time stamp when the app finished runing, compare with the eth1.pcap and et= h2.pcap last modified time, if it's the same, test pass,=20 +otherwise, test fail + +---------------------------------------------------------------- +22. Functional test for source+sink port on rt arp on pipeline +---------------------------------------------------------------- +config file as follows +[PIPELINE0] +type =3D MASTER +core =3D 0 +[PIPELINE1] +type =3D ROUTING +core =3D s1c1 +pktq_in =3D SOURCE0 SOURCE1 +pktq_out =3D SINK0 SINK1 +n_arp_entries =3D 1024 +ip_hdr_offset =3D 270; mbuf (128) + headroom (128) + ethernet header (14) = =3D 270 +arp_key_offset =3D 192; mbuf (128) + 64 +pcap_file_rd =3D /root/eth1.pcap /root/eth2.pcap +pcap_bytes_rd_per_pkt =3D 0 64 +pcap_file_wr =3D /root/eth1.1.pcap /root/eth2.1.pcap +pcap_n_pkt_wr =3D 80 200 +command to run +./build/ip_pipeline -f ./config/source_sink_port.cfg +After the app finished running, eth1.pcap and eth1.1.pcap should have the = same size, eth2.pcap and eth2.1.pcap should have the same size, and, +in eth2.1.pcap, the first frame and the 101 frame should have the same fra= me which is the first 64 byte of 1st frame in eth2.pcap. + +----------------------------------------------------------- +23. Functional test for source port on rt arp off pipeline +----------------------------------------------------------- +config file as follows +[PIPELINE0] +type =3D MASTER +core =3D 0 +[PIPELINE1] +type =3D ROUTING +core =3D s1c1 +pktq_in =3D SOURCE0 SOURCE1 +pktq_out =3D SINK0 SINK1 +n_routes =3D 4096 +;ip_hdr_offset =3D 142; headroom (128) + ethernet header (14) =3D 142 +ip_hdr_offset =3D 270; headroom (128) + ethernet header (14) =3D 142 +pcap_file_rd =3D /root/eth1.pcap /root/eth2.pcap +pcap_bytes_rd_per_pkt =3D 64 0 +Command to run +./build/ip_pipeline -f ./config/source_port.cfg +The app sends the packets by reading the eth1.pcap and eth2.pcap file and = drops the packets, check that the app runs successfully and quit +normally, then test pass + +--------------------------------------------------------- +24. Functional test for sink port on rt arp off pipeline +--------------------------------------------------------- +config file as follows +[PIPELINE0] +type =3D MASTER +core =3D 0 +[PIPELINE1] +type =3D ROUTING +core =3D s1c1 +pktq_in =3D SOURCE0 SOURCE1 +pktq_out =3D SINK0 SINK1 +n_routes =3D 4096 +;ip_hdr_offset =3D 142; headroom (128) + ethernet header (14) =3D 142 +ip_hdr_offset =3D 270; headroom (128) + ethernet header (14) =3D 142 +pcap_file_wr =3D /root/eth1.1.pcap /root/eth2.1.pcap +pcap_n_pkt_wr =3D 80 0 +Command to run +./build/ip_pipeline -f ./config/sink_port.cfg +After the app finished runing, since the app send null frames from the sou= rce port, check that the pcap file size is 0, and check the=20 +time stamp when the app finished runing, compare with the eth1.pcap and et= h2.pcap last modified time, if it's the same, test pass,=20 +otherwise, test fail + +---------------------------------------------------------------- +25. Functional test for source+sink port on rt arp off pipeline +---------------------------------------------------------------- +config file as follows +[PIPELINE0] +type =3D MASTER +core =3D 0 +[PIPELINE1] +type =3D ROUTING +core =3D s1c1 +pktq_in =3D SOURCE0 SOURCE1 +pktq_out =3D SINK0 SINK1 +n_routes =3D 4096 +;ip_hdr_offset =3D 142; headroom (128) + ethernet header (14) =3D 142 +ip_hdr_offset =3D 270; headroom (128) + ethernet header (14) =3D 142 +pcap_file_rd =3D /root/eth1.pcap /root/eth2.pcap +pcap_bytes_rd_per_pkt =3D 0 64 +pcap_file_wr =3D /root/eth1.1.pcap /root/eth2.1.pcap +pcap_n_pkt_wr =3D 80 200 +command to run +./build/ip_pipeline -f ./config/source_sink_port.cfg +After the app finished running, eth1.pcap and eth1.1.pcap should have the = same size, eth2.pcap and eth2.1.pcap should have the same size, and, +in eth2.1.pcap, the first frame and the 101 frame should have the same fra= me which is the first 64 byte of 1st frame in eth2.pcap. + +----------------------------------------------------------- +26. Functional test for source port on rt mpls arp off pipeline +----------------------------------------------------------- +config file as follows +[PIPELINE0] +type =3D MASTER +core =3D 0 +[PIPELINE1] +type =3D ROUTING +core =3D 1 +pktq_in =3D SOURCE0 SOURCE1 +pktq_out =3D SINK0 SINK1 +n_routes =3D 4096 +encap =3D ethernet_mpls +;ip_hdr_offset =3D 142; headroom (128) + ethernet header (14) =3D 142 +ip_hdr_offset =3D 270; headroom (128) + ethernet header (14) =3D 142 +pcap_file_rd =3D /root/eth1.pcap /root/eth1.pcap +pcap_bytes_rd_per_pkt =3D 0 0 +;pcap_file_wr =3D /home/fanzhan2/eth3.pcap /home/fanzhan2/eth2.pcap=20 +;pcap_n_pkt_wr =3D 80 0=20 +Command to run +./build/ip_pipeline -f ./config/source_port.cfg +The app sends the packets by reading the eth1.pcap and eth2.pcap file and = drops the packets, check that the app runs successfully and quit +normally, then test pass + +--------------------------------------------------------- +27. Functional test for sink port on rt mpls arp off pipeline +--------------------------------------------------------- +config file as follows +[PIPELINE0] +type =3D MASTER +core =3D 0 +[PIPELINE1] +type =3D ROUTING +core =3D 1 +pktq_in =3D SOURCE0 SOURCE1 +pktq_out =3D SINK0 SINK1 +n_routes =3D 4096 +encap =3D ethernet_mpls +;ip_hdr_offset =3D 142; headroom (128) + ethernet header (14) =3D 142 +ip_hdr_offset =3D 270; headroom (128) + ethernet header (14) =3D 142 +;pcap_file_rd =3D /root/eth1.pcap /root/eth1.pcap +;pcap_bytes_rd_per_pkt =3D 0 0 +pcap_file_wr =3D /root/eth1.1.pcap /root/eth2.1.pcap=20 +pcap_n_pkt_wr =3D 80 0=20 +Command to run +./build/ip_pipeline -f ./config/sink_port.cfg +After the app finished runing, since the app send null frames from the sou= rce port, check that the pcap file size is 0, and check the=20 +time stamp when the app finished runing, compare with the eth1.pcap and et= h2.pcap last modified time, if it's the same, test pass,=20 +otherwise, test fail + +---------------------------------------------------------------- +28. Functional test for source+sink port on rt mpls arp off pipeline +---------------------------------------------------------------- +config file as follows +[PIPELINE0] +type =3D MASTER +core =3D 0 +[PIPELINE1] +type =3D ROUTING +core =3D 1 +pktq_in =3D SOURCE0 SOURCE1 +pktq_out =3D SINK0 SINK1 +n_routes =3D 4096 +encap =3D ethernet_mpls +;ip_hdr_offset =3D 142; headroom (128) + ethernet header (14) =3D 142 +ip_hdr_offset =3D 270; headroom (128) + ethernet header (14) =3D 142 +pcap_file_rd =3D /root/eth1.pcap /root/eth1.pcap +pcap_bytes_rd_per_pkt =3D 0 0 +pcap_file_wr =3D /root/eth1.1.pcap /root/eth2.1.pcap=20 +pcap_n_pkt_wr =3D 80 0=20 +command to run +./build/ip_pipeline -f ./config/source_sink_port.cfg +After the app finished running, eth1.pcap and eth1.1.pcap should have the = same size, eth2.pcap and eth2.1.pcap should have the same size, and, +in eth2.1.pcap, the first frame and the 101 frame should have the same fra= me which is the first 64 byte of 1st frame in eth2.pcap. + +----------------------------------------------------------- +29. Functional test for source port on rt mpls arp on pipeline +----------------------------------------------------------- +config file as follows +[PIPELINE0] +type =3D MASTER +core =3D 0 +[PIPELINE1] +type =3D ROUTING +core =3D s1c1 +pktq_in =3D SOURCE0 SOURCE1 +pktq_out =3D SINK0 SINK1 +n_arp_entries =3D 1024 +encap =3D ethernet_mpls +mpls_color_mark =3D no +ip_hdr_offset =3D 270; mbuf (128) + headroom (128) + ethernet header (14) = =3D 270 +arp_key_offset =3D 192; mbuf (128) + 64 +;color_offset =3D 256; mbuf (128) + headroom (128) =3D 256 +pcap_file_rd =3D /root/eth1.pcap /root/eth2.pcap +pcap_bytes_rd_per_pkt =3D 64 0 +Command to run +./build/ip_pipeline -f ./config/source_port.cfg +The app sends the packets by reading the eth1.pcap and eth2.pcap file and = drops the packets, check that the app runs successfully and quit +normally, then test pass + +--------------------------------------------------------- +30. Functional test for sink port on rt mpls arp on pipeline +--------------------------------------------------------- +config file as follows +[PIPELINE0] +type =3D MASTER +core =3D 0 +[PIPELINE1] +type =3D ROUTING +core =3D s1c1 +pktq_in =3D SOURCE0 SOURCE1 +pktq_out =3D SINK0 SINK1 +n_arp_entries =3D 1024 +encap =3D ethernet_mpls +mpls_color_mark =3D no +ip_hdr_offset =3D 270; mbuf (128) + headroom (128) + ethernet header (14) = =3D 270 +arp_key_offset =3D 192; mbuf (128) + 64 +;color_offset =3D 256; mbuf (128) + headroom (128) =3D 256 +;pcap_file_rd =3D /root/eth1.pcap /root/eth2.pcap +;pcap_bytes_rd_per_pkt =3D 64 0 +pcap_file_wr =3D /root/eth1.1.pcap /root/eth2.1.pcap=20 +pcap_n_pkt_wr =3D 80 0=20 +Command to run +./build/ip_pipeline -f ./config/sink_port.cfg +After the app finished runing, since the app send null frames from the sou= rce port, check that the pcap file size is 0, and check the=20 +time stamp when the app finished runing, compare with the eth1.pcap and et= h2.pcap last modified time, if it's the same, test pass,=20 +otherwise, test fail + +---------------------------------------------------------------- +31. Functional test for source+sink port on rt mpls arp on pipeline +---------------------------------------------------------------- +config file as follows +[PIPELINE0] +type =3D MASTER +core =3D 0 +[PIPELINE1] +type =3D ROUTING +core =3D s1c1 +pktq_in =3D SOURCE0 SOURCE1 +pktq_out =3D SINK0 SINK1 +n_arp_entries =3D 1024 +encap =3D ethernet_mpls +mpls_color_mark =3D no +ip_hdr_offset =3D 270; mbuf (128) + headroom (128) + ethernet header (14) = =3D 270 +arp_key_offset =3D 192; mbuf (128) + 64 +;color_offset =3D 256; mbuf (128) + headroom (128) =3D 256 +pcap_file_rd =3D /root/eth1.pcap /root/eth2.pcap +pcap_bytes_rd_per_pkt =3D 64 0 +pcap_file_wr =3D /root/eth1.1.pcap /root/eth2.1.pcap=20 +pcap_n_pkt_wr =3D 80 0=20 +command to run +./build/ip_pipeline -f ./config/source_sink_port.cfg +After the app finished running, eth1.pcap and eth1.1.pcap should have the = same size, eth2.pcap and eth2.1.pcap should have the same size, and, +in eth2.1.pcap, the first frame and the 101 frame should have the same fra= me which is the first 64 byte of 1st frame in eth2.pcap. + +----------------------------------------------------------- +32. Functional test for source port on rt qinq arp off pipeline +----------------------------------------------------------- +config file as follows +[PIPELINE0] +type =3D MASTER +core =3D 0 +[PIPELINE1] +type =3D ROUTING +core =3D 1 +pktq_in =3D SOURCE0 SOURCE1 +pktq_out =3D SINK0 SINK1 +n_routes =3D 4096 +encap =3D ethernet_qinq +;ip_hdr_offset =3D 142; headroom (128) + ethernet header (14) =3D 142 +ip_hdr_offset =3D 270; headroom (128) + ethernet header (14) =3D 142 +pcap_file_rd =3D /root/eth1.pcap /root/eth1.pcap +pcap_bytes_rd_per_pkt =3D 0 0 +;pcap_file_wr =3D /home/fanzhan2/eth3.pcap /home/fanzhan2/eth2.pcap=20 +;pcap_n_pkt_wr =3D 80 0=20 +Command to run +./build/ip_pipeline -f ./config/source_port.cfg +The app sends the packets by reading the eth1.pcap and eth2.pcap file and = drops the packets, check that the app runs successfully and quit +normally, then test pass + +--------------------------------------------------------- +33. Functional test for sink port on rt qinq arp off pipeline +--------------------------------------------------------- +config file as follows +[PIPELINE0] +type =3D MASTER +core =3D 0 +[PIPELINE1] +type =3D ROUTING +core =3D 1 +pktq_in =3D SOURCE0 SOURCE1 +pktq_out =3D SINK0 SINK1 +n_routes =3D 4096 +encap =3D ethernet_qinq +;ip_hdr_offset =3D 142; headroom (128) + ethernet header (14) =3D 142 +ip_hdr_offset =3D 270; headroom (128) + ethernet header (14) =3D 142 +;pcap_file_rd =3D /root/eth1.pcap /root/eth1.pcap +;pcap_bytes_rd_per_pkt =3D 0 0 +pcap_file_wr =3D /root/eth1.1.pcap /root/eth2.1.pcap=20 +pcap_n_pkt_wr =3D 80 0=20 +Command to run +./build/ip_pipeline -f ./config/sink_port.cfg +After the app finished runing, since the app send null frames from the sou= rce port, check that the pcap file size is 0, and check the=20 +time stamp when the app finished runing, compare with the eth1.pcap and et= h2.pcap last modified time, if it's the same, test pass,=20 +otherwise, test fail + +---------------------------------------------------------------- +34. Functional test for source+sink port on rt qinq arp off pipeline +---------------------------------------------------------------- +config file as follows +[PIPELINE0] +type =3D MASTER +core =3D 0 +[PIPELINE1] +type =3D ROUTING +core =3D 1 +pktq_in =3D SOURCE0 SOURCE1 +pktq_out =3D SINK0 SINK1 +n_routes =3D 4096 +encap =3D ethernet_qinq +;ip_hdr_offset =3D 142; headroom (128) + ethernet header (14) =3D 142 +ip_hdr_offset =3D 270; headroom (128) + ethernet header (14) =3D 142 +pcap_file_rd =3D /root/eth1.pcap /root/eth1.pcap +pcap_bytes_rd_per_pkt =3D 0 0 +pcap_file_wr =3D /root/eth1.1.pcap /root/eth2.1.pcap=20 +pcap_n_pkt_wr =3D 80 0=20 +command to run +./build/ip_pipeline -f ./config/source_sink_port.cfg +After the app finished running, eth1.pcap and eth1.1.pcap should have the = same size, eth2.pcap and eth2.1.pcap should have the same size, and, +in eth2.1.pcap, the first frame and the 101 frame should have the same fra= me which is the first 64 byte of 1st frame in eth2.pcap. + +----------------------------------------------------------- +35. Functional test for source port on rt qinq arp on pipeline +----------------------------------------------------------- +config file as follows +[PIPELINE0] +type =3D MASTER +core =3D 0 +[PIPELINE1] +type =3D ROUTING +core =3D s1c1 +pktq_in =3D SOURCE0 SOURCE1 +pktq_out =3D SINK0 SINK1 +n_arp_entries =3D 1024 +encap =3D ethernet_qinq +qinq_sched =3D no +ip_hdr_offset =3D 270; mbuf (128) + headroom (128) + ethernet header (14) = =3D 270 +arp_key_offset =3D 192; mbuf (128) + 64 =3D 192 +pcap_file_rd =3D /root/eth1.pcap /root/eth2.pcap +pcap_bytes_rd_per_pkt =3D 64 0 +Command to run +./build/ip_pipeline -f ./config/source_port.cfg +The app sends the packets by reading the eth1.pcap and eth2.pcap file and = drops the packets, check that the app runs successfully and quit +normally, then test pass + +--------------------------------------------------------- +36. Functional test for sink port on rt qinq arp on pipeline +--------------------------------------------------------- +config file as follows +[PIPELINE0] +type =3D MASTER +core =3D 0 +[PIPELINE1] +type =3D ROUTING +core =3D s1c1 +pktq_in =3D SOURCE0 SOURCE1 +pktq_out =3D SINK0 SINK1 +n_arp_entries =3D 1024 +encap =3D ethernet_qinq +qinq_sched =3D no +ip_hdr_offset =3D 270; mbuf (128) + headroom (128) + ethernet header (14) = =3D 270 +arp_key_offset =3D 192; mbuf (128) + 64 =3D 192 +;pcap_file_rd =3D /root/eth1.pcap /root/eth2.pcap +;pcap_bytes_rd_per_pkt =3D 64 0 +pcap_file_wr =3D /root/eth1.1.pcap /root/eth2.1.pcap +pcap_n_pkt_wr =3D 80 0 +Command to run +./build/ip_pipeline -f ./config/sink_port.cfg +After the app finished runing, since the app send null frames from the sou= rce port, check that the pcap file size is 0, and check the=20 +time stamp when the app finished runing, compare with the eth1.pcap and et= h2.pcap last modified time, if it's the same, test pass,=20 +otherwise, test fail + +---------------------------------------------------------------- +37. Functional test for source+sink port on rt qinq arp on pipeline +---------------------------------------------------------------- +config file as follows +[PIPELINE0] +type =3D MASTER +core =3D 0 +[PIPELINE1] +type =3D ROUTING +core =3D s1c1 +pktq_in =3D SOURCE0 SOURCE1 +pktq_out =3D SINK0 SINK1 +n_arp_entries =3D 1024 +encap =3D ethernet_qinq +qinq_sched =3D no +ip_hdr_offset =3D 270; mbuf (128) + headroom (128) + ethernet header (14) = =3D 270 +arp_key_offset =3D 192; mbuf (128) + 64 =3D 192 +pcap_file_rd =3D /root/eth1.pcap /root/eth2.pcap +pcap_bytes_rd_per_pkt =3D 0 64 +pcap_file_wr =3D /root/eth1.1.pcap /root/eth2.1.pcap +pcap_n_pkt_wr =3D 80 200 +command to run +./build/ip_pipeline -f ./config/source_sink_port.cfg +After the app finished running, eth1.pcap and eth1.1.pcap should have the = same size, eth2.pcap and eth2.1.pcap should have the same size, and, +in eth2.1.pcap, the first frame and the 101 frame should have the same fra= me which is the first 64 byte of 1st frame in eth2.pcap. + +---------------------------------------------------------- +38. Functional test for source port on passthrough pipeline for pcap_file_= rd +---------------------------------------------------------- +config file as follows +[PIPELINE0] +type =3D MASTER +core =3D 0 +[PIPELINE1] +type =3D PASS-THROUGH +core =3D 1 +pktq_in =3D SOURCE0 SOURCE1 +pktq_out =3D SINK0 SINK1 +pcap_file_rd =3D /root/eth1.pcap /root/eth2.pcap +;pcap_bytes_rd_per_pkt =3D 64 0 +Command to run +./build/ip_pipeline -f ./config/source_port.cfg +The app sends the packets by reading the eth1.pcap and eth2.pcap file and = drops the packets, check that the app runs successfully and quit +normally, then test pass + +---------------------------------------------------------- +39. Functional test for source port on passthrough pipeline for pcap_file_= rd and pcap_bytes_rd_per_pkt(negative) +---------------------------------------------------------- +config file as follows +[PIPELINE0] +type =3D MASTER +core =3D 0 +[PIPELINE1] +type =3D PASS-THROUGH +core =3D 1 +pktq_in =3D SOURCE0 SOURCE1 +pktq_out =3D SINK0 SINK1 +;pcap_file_rd =3D /root/eth1.pcap /root/eth2.pcap +;pcap_bytes_rd_per_pkt =3D 64 0 +Command to run +./build/ip_pipeline -f ./config/source_port.cfg +Check that the app reports parser errors successfully and quit, then test = pass, otherwise, test fail + +---------------------------------------------------------- +40. Functional test for source port on passthrough pipeline for pcap_file_= rd_per_pkt(negative) +---------------------------------------------------------- +config file as follows +[PIPELINE0] +type =3D MASTER +core =3D 0 +[PIPELINE1] +type =3D PASS-THROUGH +core =3D 1 +pktq_in =3D SOURCE0 SOURCE1 +pktq_out =3D SINK0 SINK1 +;pcap_file_rd =3D /root/eth1.pcap /root/eth2.pcap +pcap_bytes_rd_per_pkt =3D 64 0 +Command to run +./build/ip_pipeline -f ./config/source_port.cfg +Check that the app reports parser errors successfully and quit, then test = pass, otherwise, test fail + +-------------------------------------------------------- +41. Functional test for sink port on passthrough pipeline for pcap_file_wr +-------------------------------------------------------- +config file as follows +[PIPELINE0] +type =3D MASTER +core =3D 0 +[PIPELINE1] +type =3D PASS-THROUGH +core =3D 1 +pktq_in =3D SOURCE0 SOURCE1 +pktq_out =3D SINK0 SINK1 +pcap_file_wr =3D /root/eth1.1.pcap /root/eth2.1.pcap +;pcap_n_pkt_wr =3D 80 0 +Command to run +./build/ip_pipeline -f ./config/sink_port.cfg +After the app finished runing, since the app send null frames from the sou= rce port, check that the pcap file size is 0, and check the=20 +time stamp when the app finished runing, compare with the eth1.pcap and et= h2.pcap last modified time, if it's the same, test pass,=20 +otherwise, test fail + +-------------------------------------------------------- +42. Functional test for sink port on passthrough pipeline for pcap_file_wr= and pcap_n_pkt_wr +-------------------------------------------------------- +config file as follows +[PIPELINE0] +type =3D MASTER +core =3D 0 +[PIPELINE1] +type =3D PASS-THROUGH +core =3D 1 +pktq_in =3D SOURCE0 SOURCE1 +pktq_out =3D SINK0 SINK1 +;pcap_file_wr =3D /root/eth1.1.pcap /root/eth2.1.pcap +;pcap_n_pkt_wr =3D 80 0 +Command to run +./build/ip_pipeline -f ./config/sink_port.cfg +After the app finished runing, since the app send null frames from the sou= rce port, check that the pcap file size is 0, and check the=20 +time stamp when the app finished runing, compare with the eth1.pcap and et= h2.pcap last modified time, if it's the same, test pass,=20 +otherwise, test fail + +-------------------------------------------------------- +43. Functional test for sink port on passthrough pipeline for pcap_n_pkt_w= r +-------------------------------------------------------- +config file as follows +[PIPELINE0] +type =3D MASTER +core =3D 0 +[PIPELINE1] +type =3D PASS-THROUGH +core =3D 1 +pktq_in =3D SOURCE0 SOURCE1 +pktq_out =3D SINK0 SINK1 +;pcap_file_wr =3D /root/eth1.1.pcap /root/eth2.1.pcap +pcap_n_pkt_wr =3D 80 0 +Command to run +./build/ip_pipeline -f ./config/sink_port.cfg +After the app finished runing, since the app send null frames from the sou= rce port, check that the pcap file size is 0, and check the=20 +time stamp when the app finished runing, compare with the eth1.pcap and et= h2.pcap last modified time, if it's the same, test pass,=20 +otherwise, test fail + +---------------------------------------------------------- +44. Functional test for source port on passthrough pipeline for pcap_file_= rd(negative) +---------------------------------------------------------- +config file as follows +[PIPELINE0] +type =3D MASTER +core =3D 0 +[PIPELINE1] +type =3D PASS-THROUGH +core =3D 1 +pktq_in =3D SOURCE0 SOURCE1 +pktq_out =3D SINK0 SINK1 +pcap_file_rd =3D /root/eth1.pcap /root/eth2.pcap +;pcap_bytes_rd_per_pkt =3D 64 0 +Command to run +./build/ip_pipeline -f ./config/source_port.cfg +Check that the app reports errors successfully and quit normally, then tes= t pass, otherwise, test fail + +---------------------------------------------------------- +45. Functional test for source port on passthrough pipeline for pcap_file_= rd and pcap_bytes_rd_per_pkt +---------------------------------------------------------- +config file as follows +[PIPELINE0] +type =3D MASTER +core =3D 0 +[PIPELINE1] +type =3D PASS-THROUGH +core =3D 1 +pktq_in =3D SOURCE0 SOURCE1 +pktq_out =3D SINK0 SINK1 +pcap_file_rd =3D /root/eth1.pcap /root/eth2.pcap +pcap_bytes_rd_per_pkt =3D 64 0 +Command to run +./build/ip_pipeline -f ./config/source_port.cfg +Check that the app runs successfully and quit, then test pass, otherwise, = test fail + +---------------------------------------------------------- +46. Functional test for source port on passthrough pipeline for pcap_file_= rd_per_pkt +---------------------------------------------------------- +config file as follows +[PIPELINE0] +type =3D MASTER +core =3D 0 +[PIPELINE1] +type =3D PASS-THROUGH +core =3D 1 +pktq_in =3D SOURCE0 SOURCE1 +pktq_out =3D SINK0 SINK1 +;pcap_file_rd =3D /root/eth1.pcap /root/eth2.pcap +pcap_bytes_rd_per_pkt =3D 64 0 +Command to run +./build/ip_pipeline -f ./config/source_port.cfg +Check that the app runs successfully and quit, then test pass, otherwise, = test fail + +-------------------------------------------------------- +47. Functional test for sink port on passthrough pipeline for pcap_file_wr= (negative) +-------------------------------------------------------- +config file as follows +[PIPELINE0] +type =3D MASTER +core =3D 0 +[PIPELINE1] +type =3D PASS-THROUGH +core =3D 1 +pktq_in =3D SOURCE0 SOURCE1 +pktq_out =3D SINK0 SINK1 +pcap_file_wr =3D /root/eth1.1.pcap /root/eth2.1.pcap +;pcap_n_pkt_wr =3D 80 0 +Command to run +./build/ip_pipeline -f ./config/sink_port.cfg +Check the app reports parser errors successfully, then test pass, otherwis= e, test fail + +-------------------------------------------------------- +48. Functional test for sink port on passthrough pipeline for pcap_file_wr= and pcap_n_pkt_wr +-------------------------------------------------------- +config file as follows +[PIPELINE0] +type =3D MASTER +core =3D 0 +[PIPELINE1] +type =3D PASS-THROUGH +core =3D 1 +pktq_in =3D SOURCE0 SOURCE1 +pktq_out =3D SINK0 SINK1 +;pcap_file_wr =3D /root/eth1.1.pcap /root/eth2.1.pcap +;pcap_n_pkt_wr =3D 80 0 +Command to run +./build/ip_pipeline -f ./config/sink_port.cfg +After the app finished runing, since the app send null frames from the sou= rce port, check that the pcap file size is 0, and check the=20 +time stamp when the app finished runing, compare with the eth1.pcap and et= h2.pcap last modified time, if it's the same, test pass,=20 +otherwise, test fail + +-------------------------------------------------------- +49. Functional test for sink port on passthrough pipeline for pcap_n_pkt_w= r(negative) +-------------------------------------------------------- +config file as follows +[PIPELINE0] +type =3D MASTER +core =3D 0 +[PIPELINE1] +type =3D PASS-THROUGH +core =3D 1 +pktq_in =3D SOURCE0 SOURCE1 +pktq_out =3D SINK0 SINK1 +;pcap_file_wr =3D /root/eth1.1.pcap /root/eth2.1.pcap +pcap_n_pkt_wr =3D 80 0 +Command to run +./build/ip_pipeline -f ./config/sink_port.cfg +Check that the app reports parser errors successfully, then test pass, oth= erwise, test fail --=20 1.9.3