From patchwork Fri Sep 30 05:46:47 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ke Xu X-Patchwork-Id: 117170 Return-Path: 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]) by inbox.dpdk.org (Postfix) with ESMTP id 45060A034C; Fri, 30 Sep 2022 07:47:57 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 40DB4410F1; Fri, 30 Sep 2022 07:47:57 +0200 (CEST) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mails.dpdk.org (Postfix) with ESMTP id 0322E40E5A for ; Fri, 30 Sep 2022 07:47:55 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1664516876; x=1696052876; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=B2y08maGqFuIIXG4rvFiUcyslPlYu2AzT7YuodK6cuk=; b=hXDdyMUgrYh0RmWucDQvis3Ui6bqF+3tstsJxBjV2tafrCot4UXdtkWA 1oxelxD7RASXjm6riJV48UcG6pobOznm6L4g7xZ19yh+uZ/fOe1JGXMQd mv2qiK4bAvsfoptlxiZUpWpR6PNqBSEpql2LBKucDCv0e5ZAdjzg9OWkg pK03+ddHLqMmroyh9Uxo6jSVjmNXhAhb7om4QWaD2a83FYop8w5TAmMly gc9c//GtIv1844bBCROoNpjw6jg9siLQ8w6IiMlRqpJtWFXJxRdjqesnh vOtxtim5zzBC0AKtixl4LAtk35oN4TN95BgL1hcI0gGYd1oTiJmWw8M1S A==; X-IronPort-AV: E=McAfee;i="6500,9779,10485"; a="303023480" X-IronPort-AV: E=Sophos;i="5.93,357,1654585200"; d="scan'208";a="303023480" Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Sep 2022 22:47:55 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10485"; a="748116448" X-IronPort-AV: E=Sophos;i="5.93,357,1654585200"; d="scan'208";a="748116448" Received: from bmca4bf0170a856.sh.intel.com (HELO DPDK-XUKE-LAB.sh.intel.com) ([10.67.115.115]) by orsmga004.jf.intel.com with ESMTP; 29 Sep 2022 22:47:53 -0700 From: Ke Xu To: dts@dpdk.org Cc: qi.fu@intel.com, lijuan.tu@intel.com, Ke Xu Subject: [DTS][PATCH V1 4/4] tests/ice_dcf_switch_filter: update existing negative cases to validate represented port action and port representor action Date: Fri, 30 Sep 2022 05:46:47 +0000 Message-Id: <20220930054647.545932-5-ke1.xu@intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220930054647.545932-1-ke1.xu@intel.com> References: <20220930054647.545932-1-ke1.xu@intel.com> MIME-Version: 1.0 X-BeenThere: dts@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: test suite reviews and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dts-bounces@dpdk.org 1. Add second PF with VFs for following cases 2. Add a subcase to validate creating 'represented port' action on a representor 3. Add a subcase to validate creating 'represented port' action on a VF 4. Add a subcase to validate creating 'represented port' action to a VF 5. Add two subcases to validate creating 'represented port' action to DCFs 6. Add a subcase to validate creating 'represented port' action to a representor of another DCF 7. Add a subcase to validate creating 'port representor' action on a representor 8. Add a subcase to validate creating 'port representor' action on a VF 9. Add a subcase to validate creating 'port representor' action to a VF 10. Add a subcase to validate creating 'port representor' action to a representor 11. Add a subcase to validate creating 'port representor' action to another DCF 12. Add a subcase to validate deprecated action 13. Add a subcase to validate using an invalid port id Signed-off-by: Ke Xu --- tests/TestSuite_ice_dcf_switch_filter.py | 111 ++++++++++++++++++++--- 1 file changed, 100 insertions(+), 11 deletions(-) diff --git a/tests/TestSuite_ice_dcf_switch_filter.py b/tests/TestSuite_ice_dcf_switch_filter.py index c68ae3f5..429769a1 100644 --- a/tests/TestSuite_ice_dcf_switch_filter.py +++ b/tests/TestSuite_ice_dcf_switch_filter.py @@ -2315,22 +2315,111 @@ class ICEDCFSwitchFilterTest(TestCase): # launch testpmd self.launch_testpmd() rules = { - "cannot create rule on vf 1": "flow create 1 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / udp src is 25 dst is 23 / end actions represented_port ethdev_port_id 1 / end", - "unsupported input set": "flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.1.2 dst is 192.168.1.3 tos is 4 / end actions represented_port ethdev_port_id 1 / end", - "invalid vf id": "flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / tcp src is 25 dst is 23 / end actions represented_port ethdev_port_id 5 / end", - "void action": "flow create 0 ingress pattern eth / ipv4 / udp src is 25 dst is 23 / end actions end", - "void input set value": "flow create 0 ingress pattern eth / ipv4 / end actions represented_port ethdev_port_id 1 end", + "cannot create to vf rule on a representor" : "flow create 1 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / udp src is 25 dst is 23 / end actions represented_port ethdev_port_id 1 / end", + "cannot create to vf rule on a vf" : "flow create 3 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / udp src is 25 dst is 23 / end actions represented_port ethdev_port_id 1 / end", + "cannot create to vf rule to a vf" : "flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / udp src is 25 dst is 23 / end actions represented_port ethdev_port_id 3 / end", + "cannot create to vf rule to another dcf" : "flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / udp src is 25 dst is 23 / end actions represented_port ethdev_port_id 4 / end", + "cannot create to vf rule to a representor of another pf" : "flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / udp src is 25 dst is 23 / end actions represented_port ethdev_port_id 5 / end", + "cannot create vf original rule on a representor" : "flow create 1 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / udp src is 25 dst is 23 / end actions port_representor port_id 1 / end", + "cannot create vf original rule on a vf" : "flow create 3 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / udp src is 25 dst is 23 / end actions port_representor port_id 1 / end", + "cannot create vf original rule to a vf" : "flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / udp src is 25 dst is 23 / end actions port_representor port_id 3 / end", + "cannot create vf original rule to a representor" : "flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / udp src is 25 dst is 23 / end actions port_representor port_id 1 / end", + "cannot create vf original rule to another dcf" : "flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / udp src is 25 dst is 23 / end actions port_representor port_id 4 / end", + "unsupported input set" : "flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.1.2 dst is 192.168.1.3 tos is 4 / end actions port_representor port_id 1 / end", + "invalid port id" : "flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / tcp src is 25 dst is 23 / end actions represented_port ethdev_port_id 20 / end", + "void action" : "flow create 0 ingress pattern eth / ipv4 / udp src is 25 dst is 23 / end actions end", + "void input set value" : "flow create 0 ingress pattern eth / ipv4 / end actions represented_port ethdev_port_id 1 end", } - # cannot create rule on vf 1 + # cannot create to vf rule on a representor self.validate_switch_filter_rule( - rules["cannot create rule on vf 1"], check_stats=False + rules["cannot create rule on a representor"], check_stats=False ) self.check_switch_filter_rule_list(1, []) self.create_switch_filter_rule( - rules["cannot create rule on vf 1"], check_stats=False + rules["cannot create rule on a representor"], check_stats=False ) self.check_switch_filter_rule_list(1, []) + # cannot create to vf rule on a vf + self.validate_switch_filter_rule( + rules["cannot create rule on a vf"], check_stats=False + ) + self.check_switch_filter_rule_list(3, []) + self.create_switch_filter_rule( + rules["cannot create rule on a vf"], check_stats=False + ) + self.check_switch_filter_rule_list(3, []) + + # cannot create to vf rule to a vf + self.validate_switch_filter_rule( + rules["cannot create rule to a vf"], check_stats=False + ) + self.check_switch_filter_rule_list(0, []) + self.create_switch_filter_rule( + rules["cannot create rule to a vf"], check_stats=False + ) + self.check_switch_filter_rule_list(0, []) + + # cannot create to vf rule to another dcf + self.validate_switch_filter_rule( + rules["cannot create rule to another dcf"], check_stats=False + ) + self.check_switch_filter_rule_list(0, []) + self.create_switch_filter_rule( + rules["cannot create rule to another dcf"], check_stats=False + ) + self.check_switch_filter_rule_list(0, []) + + # cannot create to vf rule to a representor of another pf + self.validate_switch_filter_rule( + rules["cannot create rule to a representor of another pf"], check_stats=False + ) + self.check_switch_filter_rule_list(0, []) + self.create_switch_filter_rule( + rules["cannot create rule to a representor of another pf"], check_stats=False + ) + self.check_switch_filter_rule_list(0, []) + + # cannot create vf original rule on a representor + self.validate_switch_filter_rule( + rules["cannot create vf original rule on a representor"], check_stats=False + ) + self.check_switch_filter_rule_list(0, []) + self.create_switch_filter_rule( + rules["cannot create vf original rule on a representor"], check_stats=False + ) + self.check_switch_filter_rule_list(0, []) + + # cannot create vf original rule on a vf + self.validate_switch_filter_rule( + rules["cannot create vf original rule on a vf"], check_stats=False + ) + self.check_switch_filter_rule_list(0, []) + self.create_switch_filter_rule( + rules["cannot create vf original rule on a vf"], check_stats=False + ) + self.check_switch_filter_rule_list(0, []) + + # cannot create vf original rule to a vf + self.validate_switch_filter_rule( + rules["cannot create vf original rule to a vf"], check_stats=False + ) + self.check_switch_filter_rule_list(0, []) + self.create_switch_filter_rule( + rules["cannot create vf original rule to a vf"], check_stats=False + ) + self.check_switch_filter_rule_list(0, []) + + # cannot create vf original rule to a representor + self.validate_switch_filter_rule( + rules["cannot create vf original rule to a representor"], check_stats=False + ) + self.check_switch_filter_rule_list(0, []) + self.create_switch_filter_rule( + rules["cannot create vf original rule to a representor"], check_stats=False + ) + self.check_switch_filter_rule_list(0, []) + # unsupported input set self.validate_switch_filter_rule( rules["unsupported input set"], check_stats=False @@ -2363,10 +2452,10 @@ class ICEDCFSwitchFilterTest(TestCase): self.create_switch_filter_rule(rules["void input set value"], check_stats=False) self.check_switch_filter_rule_list(0, []) - # invalid vf id - # self.validate_switch_filter_rule(rules["invalid vf id"], check_stats=False) + # invalid port id + # self.validate_switch_filter_rule(rules["invalid port id"], check_stats=False) # self.check_switch_filter_rule_list(0, []) - self.create_switch_filter_rule(rules["invalid vf id"], check_stats=False) + self.create_switch_filter_rule(rules["invalid port id"], check_stats=False) self.check_switch_filter_rule_list(0, []) # delete non-existing rule