From patchwork Mon Jan 17 15:41:03 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: hailinx X-Patchwork-Id: 105910 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 B1703A0353; Mon, 17 Jan 2022 09:12:40 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A8C8341168; Mon, 17 Jan 2022 09:12:40 +0100 (CET) Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by mails.dpdk.org (Postfix) with ESMTP id 2B8314067B for ; Mon, 17 Jan 2022 09:12:39 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1642407159; x=1673943159; h=from:to:cc:subject:date:message-id:in-reply-to: references; bh=gemAShK7h0avCQIzKLe1rffXbiwhVVATkRH1dmZYgsI=; b=NA59IUHbgLRBZElLXc0IdOoCAq0NuRU8D9+r7niKa01sbfnHnNUGp9Tl bBn0MD0nElvkfZz8+KF/p4Jfw0qhkk63pYme04sQsS3WQQSXpq/SK8DTV Nd7Fam1HdZsa5HKTlE3pd3OjpYu+1ywinwLBV8KtunVZv8xX5YqOZEA40 Wr//KN0zgqDlubIQZ+Ip57Mi06vb4zohqPcJ38WB1dCytcoDfM4d4taEn 1As99WOIXGYsffxm+RolWS207ADI0Z7q/yBcMRYW3FKudxcXFvOehov/6 u52DKDdAgUSG5A0zDVID21A+0GDD3no5qIOVGOG+6dQnmUcbh8iuqYK3i w==; X-IronPort-AV: E=McAfee;i="6200,9189,10229"; a="242135323" X-IronPort-AV: E=Sophos;i="5.88,295,1635231600"; d="scan'208";a="242135323" Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Jan 2022 00:12:38 -0800 X-IronPort-AV: E=Sophos;i="5.88,295,1635231600"; d="scan'208";a="671486930" Received: from unknown (HELO localhost.localdomain) ([10.239.251.69]) by fmsmga001-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Jan 2022 00:12:37 -0800 From: Hailin Xu To: qi.fu@intel.com, dts@dpdk.org Cc: Hailin Xu Subject: [dts][PATCH v2 1/2] tests/rte_flow_common: add priority common interface Date: Mon, 17 Jan 2022 23:41:03 +0800 Message-Id: <20220117154104.25824-2-hailinx.xu@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20220117154104.25824-1-hailinx.xu@intel.com> References: <20220117154104.25824-1-hailinx.xu@intel.com> 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 add flow priority common interface Signed-off-by: Hailin Xu --- tests/rte_flow_common.py | 61 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/tests/rte_flow_common.py b/tests/rte_flow_common.py index 969d3222..1fca08ad 100644 --- a/tests/rte_flow_common.py +++ b/tests/rte_flow_common.py @@ -1297,3 +1297,64 @@ class FdirProcessing(object): if not v: failed_cases.append(k) self.verify(all(test_results.values()), "{} failed".format(failed_cases)) + + def send_pkt_get_out(self, pkts, port_id=0, count=1, interval=0): + tx_port = self.tester_ifaces[0] if port_id == 0 else self.tester_ifaces[1] + self.logger.info('----------send packet-------------') + self.logger.info('{}'.format(pkts)) + self.pmd_output.execute_cmd("start") + self.pmd_output.execute_cmd("clear port stats all") + self.pkt.update_pkt(pkts) + self.pkt.send_pkt(crb=self.test_case.tester, tx_port=tx_port, count=count, interval=interval) + + out1 = self.pmd_output.get_output(timeout=1) + out2 = self.pmd_output.execute_cmd("stop") + return out1 + out2 + + def check_rx_packets(self, out, check_param, expect_pkt, stats=True): + queue = check_param['queue'] + p = 'Forward\s+statistics\s+for\s+port\s+0.*\n.*?RX-packets:\s(\d+)\s+' + if queue == 'null': + pkt_num = re.search(p, out).group(1) + if stats: + self.verify(int(pkt_num) == 0, "receive %s packets, expect receive 0 packets" % pkt_num) + else: + self.verify(int(pkt_num) == expect_pkt, "receive {} packets, expect receive {} packets".format(pkt_num, expect_pkt)) + else: + check_queue(out, check_param, stats=stats) + + def handle_priority_cases(self, vectors): + rule = vectors['rule'] + packets = vectors['packet'] + check_param = vectors['check_param'] + self.validate_rule(rule) + rule_list = self.create_rule(rule) + self.check_rule(rule_list=rule_list) + out = self.send_pkt_get_out(packets['matched']) + self.check_rx_packets(out, check_param['check_0'], len(packets['matched'])) + out = self.send_pkt_get_out(packets['mismatched']) + self.check_rx_packets(out, check_param['check_0'], len(packets['mismatched']), stats=False) + + # destroy rule with priority 0 + self.destroy_rule(rule_id=rule_list[0]) + self.check_rule(rule_list=rule_list[1:]) + out = self.send_pkt_get_out(packets['matched']) + self.check_rx_packets(out, check_param['check_1'], len(packets['matched'])) + out = self.send_pkt_get_out(packets['mismatched']) + self.check_rx_packets(out, check_param['check_0'], len(packets['mismatched']), stats=False) + self.check_rx_packets(out, check_param['check_1'], len(packets['mismatched']), stats=False) + + # destroy rule with priority 1 + rule_id = self.create_rule(rule[0]) + self.destroy_rule(rule_id=rule_list[1]) + self.check_rule(rule_list=rule_id) + out = self.send_pkt_get_out(packets['matched']) + self.check_rx_packets(out, check_param['check_0'], len(packets['matched'])) + out = self.send_pkt_get_out(packets['mismatched']) + self.check_rx_packets(out, check_param['check_0'], len(packets['mismatched']), stats=False) + + # destroy all rule + self.destroy_rule(rule_id=rule_id) + out = self.send_pkt_get_out(packets['matched']) + self.check_rx_packets(out, check_param['check_0'], len(packets['matched']), stats=False) + self.check_rx_packets(out, check_param['check_1'], len(packets['matched']), stats=False)