Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/110761/?format=api
http://patches.dpdk.org/api/patches/110761/?format=api", "web_url": "http://patches.dpdk.org/project/dts/patch/20220506023002.895409-1-qi.fu@intel.com/", "project": { "id": 3, "url": "http://patches.dpdk.org/api/projects/3/?format=api", "name": "DTS", "link_name": "dts", "list_id": "dts.dpdk.org", "list_email": "dts@dpdk.org", "web_url": "", "scm_url": "git://dpdk.org/tools/dts", "webscm_url": "http://git.dpdk.org/tools/dts/", "list_archive_url": "https://inbox.dpdk.org/dts", "list_archive_url_format": "https://inbox.dpdk.org/dts/{}", "commit_url_format": "" }, "msgid": "<20220506023002.895409-1-qi.fu@intel.com>", "list_archive_url": "https://inbox.dpdk.org/dts/20220506023002.895409-1-qi.fu@intel.com", "date": "2022-05-06T02:30:02", "name": "[V3] cvl_switch_filter_test_plan:add pattern any rule test cases", "commit_ref": null, "pull_url": null, "state": "accepted", "archived": false, "hash": "b2a770127640c541bdcc6da23b08c118bde329c5", "submitter": { "id": 1689, "url": "http://patches.dpdk.org/api/people/1689/?format=api", "name": "Fu, Qi", "email": "qi.fu@intel.com" }, "delegate": null, "mbox": "http://patches.dpdk.org/project/dts/patch/20220506023002.895409-1-qi.fu@intel.com/mbox/", "series": [ { "id": 22803, "url": "http://patches.dpdk.org/api/series/22803/?format=api", "web_url": "http://patches.dpdk.org/project/dts/list/?series=22803", "date": "2022-05-06T02:30:02", "name": "[V3] cvl_switch_filter_test_plan:add pattern any rule test cases", "version": 3, "mbox": "http://patches.dpdk.org/series/22803/mbox/" } ], "comments": "http://patches.dpdk.org/api/patches/110761/comments/", "check": "warning", "checks": "http://patches.dpdk.org/api/patches/110761/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<dts-bounces@dpdk.org>", "X-Original-To": "patchwork@inbox.dpdk.org", "Delivered-To": "patchwork@inbox.dpdk.org", "Received": [ "from mails.dpdk.org (mails.dpdk.org [217.70.189.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 464FCA0505;\n\tFri, 6 May 2022 04:30:14 +0200 (CEST)", "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 3DB554280D;\n\tFri, 6 May 2022 04:30:14 +0200 (CEST)", "from mga07.intel.com (mga07.intel.com [134.134.136.100])\n by mails.dpdk.org (Postfix) with ESMTP id 4318F4068A\n for <dts@dpdk.org>; Fri, 6 May 2022 04:30:12 +0200 (CEST)", "from orsmga001.jf.intel.com ([10.7.209.18])\n by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 05 May 2022 19:30:10 -0700", "from dpdk-qifu-cxl.sh.intel.com ([10.67.119.95])\n by orsmga001.jf.intel.com with ESMTP; 05 May 2022 19:30:09 -0700" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple;\n d=intel.com; i=@intel.com; q=dns/txt; s=Intel;\n t=1651804212; x=1683340212;\n h=from:to:cc:subject:date:message-id:mime-version:\n content-transfer-encoding;\n bh=eOG8JlW9QysSfeHz0GRSixRxuxPjhWuiN8VLl5zN2/w=;\n b=dkmoZL+OSO711TsRPmjuxI2J/txWGIGKWfIO6B+7mHSbqbkXxqR2pL1G\n FMI+khxCK47wNYrjOPqZKnSsAhp4lHGC/WMAK6fw5YhMyUc/HSY9C8Hr8\n t5oVC7j04GzoCOLL5074WlavPilRCk/Ur6SXE+wc4481f8UwhyIx7Oain\n nJ+Ts4t+WrYfmUAtPNIjkZhguibxPRAcSxDQ8/Vk0HPiE9cCAY9qqncUW\n aYPAAFWewEYcEYBwigV3Ss0PYff8EFfOcqHZwN086Et62ya4H4Lw5tdDg\n vrpIJvftDXIsl1Zvg8hpNJRbiNwryyulytxByXPsUSMmaKKZYaAsNTCkr Q==;", "X-IronPort-AV": [ "E=McAfee;i=\"6400,9594,10338\"; a=\"331312193\"", "E=Sophos;i=\"5.91,203,1647327600\"; d=\"scan'208\";a=\"331312193\"", "E=Sophos;i=\"5.91,203,1647327600\"; d=\"scan'208\";a=\"600342909\"" ], "X-ExtLoop1": "1", "From": "Qi Fu <qi.fu@intel.com>", "To": "dts@dpdk.org", "Cc": "Qi Fu <qi.fu@intel.com>", "Subject": "[dts][PATCH V3]cvl_switch_filter_test_plan:add pattern any rule test\n cases", "Date": "Fri, 6 May 2022 10:30:02 +0800", "Message-Id": "<20220506023002.895409-1-qi.fu@intel.com>", "X-Mailer": "git-send-email 2.25.1", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "X-BeenThere": "dts@dpdk.org", "X-Mailman-Version": "2.1.29", "Precedence": "list", "List-Id": "test suite reviews and discussions <dts.dpdk.org>", "List-Unsubscribe": "<https://mails.dpdk.org/options/dts>,\n <mailto:dts-request@dpdk.org?subject=unsubscribe>", "List-Archive": "<http://mails.dpdk.org/archives/dts/>", "List-Post": "<mailto:dts@dpdk.org>", "List-Help": "<mailto:dts-request@dpdk.org?subject=help>", "List-Subscribe": "<https://mails.dpdk.org/listinfo/dts>,\n <mailto:dts-request@dpdk.org?subject=subscribe>", "Errors-To": "dts-bounces@dpdk.org" }, "content": "rte_flow enable new feature to support \"drop any\" and \"steering all to queue\".\nthese pattern any rules programmed to switch filter.\nso add pattern any test cases to cvl_switch_filter_test_plan.rst.\n\nSigned-off-by: Qi Fu <qi.fu@intel.com>\n---\n test_plans/cvl_switch_filter_test_plan.rst | 171 +++++++++++++++++++++\n 1 file changed, 171 insertions(+)", "diff": "diff --git a/test_plans/cvl_switch_filter_test_plan.rst b/test_plans/cvl_switch_filter_test_plan.rst\nindex 6688b842..def9394d 100644\n--- a/test_plans/cvl_switch_filter_test_plan.rst\n+++ b/test_plans/cvl_switch_filter_test_plan.rst\n@@ -41,6 +41,7 @@ This document provides the plan for testing switch filter feature of CVL, includ\n \n * Enable switch filter for IPv4/IPv6 + TCP/UDP in non-pipeline/pipeline mode (comm #1 package)\n * Enable switch filter for tunnel : VXLAN / NVGRE in non-pipeline/pipeline mode (comm #1 package)\n+* Enable \"drop any\" and \"steering all to queue\" action, any pattern packets will hit rule if these rules be created\n \n In pipeline mode, a flow can be set at one specific stage by setting parameter ``priority``. Currently,\n we support two stages: priority = 0 or !0. Flows with priority 0 located at the first pipeline stage\n@@ -5596,4 +5597,174 @@ Tester::\n Check the rule not exists in the list.\n Send matched packets in step 4, check the action is not right.\n \n+Pattern Any Test Case\n+=====================\n \n+Test case 1: check rule is programmed to switch\n+-----------------------------------------------\n+\n+1. launch testpmd with --log-level=\"ice,7\" create a rule::\n+\n+ testpmd> flow create 0 ingress pattern any / end actions drop / end\n+ ice_flow_create(): Succeeded to create (2) flow\n+ Flow rule #0 created\n+\n+2. destroy drop any rule::\n+\n+ testpmd> flow destroy 0 rule 0\n+\n+3. create to queue rule::\n+\n+ testpmd> flow create 0 ingress pattern any / end actions queue index 4 / end\n+ ice_flow_create(): Succeeded to create (2) flow\n+ Flow rule #0 created\n+\n+Test case 2: drop any rule\n+--------------------------\n+1. create a rule::\n+\n+ testpmd> flow create 0 ingress pattern any / end actions drop / end\n+ testpmd> flow list 0\n+\n+ check the rule exists in the list.\n+\n+2. send matched packets::\n+\n+ >>> sendp([Ether()/IP(dst=\"192.168.0.1\")/UDP()/VXLAN(vni=2)/Ether()/IP(src=\"192.168.0.2\", dst=\"192.168.0.3\")/Raw(\"x\"*80)],iface=\"ens786f0\",count=1)\n+ >>> sendp([Ether()/IP(dst=\"192.168.0.1\")/NVGRE(TNI=2)/Ether()/IP(src=\"192.168.1.2\", dst=\"192.168.1.3\")/Raw(\"x\"*80)],iface=\"ens786f0\",count=1)\n+ >>> sendp([Ether()/IP(src=\"192.168.0.2\", dst=\"192.168.0.3\",tos=4,frag=5)/Raw(\"x\"*80)],iface=\"ens786f0\",count=1)\n+ >>> sendp([Ether()/IP(src=\"192.168.0.2\",dst=\"192.168.0.3\",tos=4,proto=0x06)/Raw(\"x\"*80)],iface=\"ens786f0\",count=1)\n+ >>> sendp([Ether()/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1515\",dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\",tc=3)/IPv6ExtHdrFragment()/Raw(\"x\"*80)],iface=\"ens786f0\",count=1)\n+ >>> sendp([Ether()/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1515\",dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\",tc=3)/Raw(\"x\"*80)],iface=\"ens786f0\",count=1)\n+ >>> sendp([Ether(dst=\"00:11:22:33:44:55\")/PPPoED()/Raw(\"x\" *80)],iface=\"ens786f0\",count=1)\n+ >>> sendp([Ether(dst=\"00:11:22:33:44:55\", type=0x8863)/Raw(\"x\" *80)],iface=\"ens786f0\",count=1)\n+ >>> sendp([Ether(dst=\"00:11:22:33:44:55\", type=0x8864)/PPPoE(sessionid=3)/Raw(\"x\" *80)],iface=\"ens786f0\",count=1)\n+ >>> sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0021)/IP()/Raw(\"x\"*80)],iface=\"ens786f0\",count=1)\n+ >>> sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0057)/IPv6()/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\n+ >>> sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0057)/IPv6()/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\n+ >>> sendp([Ether(src=\"10:22:33:44:55:66\", dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=1,type=0x86dd)/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1536\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2022\")/SCTP(sport=25,dport=23)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\n+ >>> sendp([Ether(dst=\"00:11:22:33:44:55\")/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1536\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2022\", nh=51)/AH(spi=11)/Raw(\"x\"*480)], iface=\"ens786f0\")\n+ >>> sendp([Ether(dst=\"00:11:22:33:44:55\")/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1536\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2022\")/UDP(dport=4500)/ESP(spi=11)/Raw(\"x\"*480)], iface=\"ens786f0\")\n+ >>> sendp([Ether(dst=\"00:11:22:33:44:55\")/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1536\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2022\", nh=50)/ESP(spi=11)/Raw(\"x\"*480)], iface=\"ens786f0\")\n+ >>> sendp([Ether(dst=\"00:11:22:33:44:54\")/IP(src=\"192.168.0.25\",dst=\"192.168.0.23\")/UDP(sport=23,dport=8805)/PFCP(Sfield=1, SEID=1)/Raw(\"x\"*80)],iface=\"ens786f0\")\n+ >>> sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/(\"X\"*480)],iface=\"ens786f0\")\n+ >>> sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.1.1\", src=\"192.168.0.2\")/ICMP()/(\"X\"*480)],iface=\"ens786f0\")\n+ >>> sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/UDP(sport=22, dport=33)/(\"X\"*480)],iface=\"ens786f0\")\n+\n+ check port 0 can't receive these packets.\n+\n+3. verify rules can be destroyed::\n+\n+ testpmd> flow destroy 0 rule 0\n+ testpmd> flow list 0\n+\n+ check the rule not exists in the list.\n+ send matched packets in step 2, check the packets are received by port 0.\n+\n+Test case 3: any to queue rule\n+------------------------------\n+1. create a rule::\n+\n+ testpmd> flow create 0 ingress pattern any / end actions queue index 4 / end\n+ testpmd> flow list 0\n+\n+ check the rule exists in the list.\n+\n+2. send matched packets, same with test case 2 step 2, check port 0 receive these packets by queue 4.\n+\n+3. verify rules can be destroyed::\n+\n+ testpmd> flow destroy 0 rule 0\n+ testpmd> flow list 0\n+\n+ check the rule not exists in the list.\n+ send matched packets in step 2, check the packets are received by queue 0.\n+\n+Test case 4: pattern any priority check\n+---------------------------------------\n+\n+subcase 1: non-pipeline mode\n+............................\n+\n+1. create drop any rule with priority 0, to queue rule with priority 1::\n+\n+ testpmd> flow create 0 priority 0 ingress pattern any / end actions drop / end\n+ ice_flow_create(): Succeeded to create (2) flow\n+ Flow rule #0 created\n+\n+ testpmd> flow create 0 priority 1 ingress pattern any / end actions queue index 4 / end\n+ ice_flow_create(): Succeeded to create (2) flow\n+ Flow rule #1 created\n+\n+ testpmd> flow list 0\n+ ID Group Prio Attr Rule\n+ 0 0 0 i-- ANY => DROP\n+ 1 0 1 i-- ANY => QUEUE\n+\n+2. send matched packets, same with test case 2 step 2, check all the packets are dropped.\n+\n+3. destroy rule 0, send matched packets, check all the packets received by queue 4.\n+\n+4. destroy rule 1, send matched packets, check all the packets received by rss.\n+\n+5. change the rule priority, repeat step 2-4, check the result is same.\n+\n+subcase 2: non-pipeline mode with other rule\n+............................................\n+\n+1. create 2 rules::\n+\n+ testpmd> flow create 0 priority 1 ingress pattern any / end actions drop / end\n+ testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 src is 1.1.1.2 dst is 1.1.1.3 tos is 4 / udp src is 23 dst is 25 / end actions queue index 2 / end\n+\n+2. send packet which match 2 rules, check the packet is dropped::\n+\n+ >>> sendp([Ether()/IP(src=\"1.1.1.2\",dst=\"1.1.1.3\",tos=4)/UDP(sport=23,dport=25)/Raw(\"x\"*80)],iface=\"ens786f0\",count=1)\n+\n+3. destroy rule 0, repeat step 2, check the packet is received by queue 2::\n+\n+ testpmd> flow destroy 0 rule 0\n+\n+4. create 2 rules::\n+\n+ testpmd> flow create 0 priority 1 ingress pattern any / end actions queue index 4 / end\n+ testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 src is 1.1.1.2 dst is 1.1.1.3 tos is 4 / udp src is 23 dst is 25 / end actions queue index 2 / end\n+\n+5. send packet which match 2 rules, check the packet is received by queue 2::\n+\n+ >>> sendp([Ether()/IP(src=\"1.1.1.2\",dst=\"1.1.1.3\",tos=4)/UDP(sport=23,dport=25)/Raw(\"x\"*80)],iface=\"ens786f0\",count=1)\n+\n+6. destroy rule 1, repeat step 5, check the packet is received by queue 4::\n+\n+ testpmd> flow destroy 0 rule 1\n+\n+subcase 3: pipeline mode\n+........................\n+\n+1. launch testpmd with pipeline mode, create rule, check the rule can be created::\n+\n+ testpmd> flow create 0 priority 0 ingress pattern any / end actions drop / end\n+\n+2. destroy the rule::\n+\n+ testpmd> flow flush 0\n+\n+3. create rule, check the rule can be created::\n+\n+ testpmd> flow create 0 priority 0 ingress pattern any / end actions queue index 4 / end\n+\n+4. destroy the rule::\n+\n+ testpmd> flow flush 0\n+\n+5. create rule, check the rule can not be created::\n+\n+ testpmd> flow create 0 priority 1 ingress pattern any / end actions drop / end\n+\n+6. destroy the rule::\n+\n+ testpmd> flow flush 0\n+\n+7. create rule, check the rule can not be created::\n+\n+ testpmd> flow create 0 priority 1 ingress pattern any / end actions queue index 4 / end\n", "prefixes": [ "V3" ] }{ "id": 110761, "url": "