Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/89436/?format=api
http://patches.dpdk.org/api/patches/89436/?format=api", "web_url": "http://patches.dpdk.org/project/dts/patch/1616045251-65532-3-git-send-email-zhiminx.huang@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": "<1616045251-65532-3-git-send-email-zhiminx.huang@intel.com>", "list_archive_url": "https://inbox.dpdk.org/dts/1616045251-65532-3-git-send-email-zhiminx.huang@intel.com", "date": "2021-03-18T05:27:25", "name": "[V1,2/8] add decorator to support nic and pkg check", "commit_ref": null, "pull_url": null, "state": "accepted", "archived": false, "hash": "5f24f5d6ce8b902db764b26aac139426832a6070", "submitter": { "id": 1685, "url": "http://patches.dpdk.org/api/people/1685/?format=api", "name": "Huang, ZhiminX", "email": "zhiminx.huang@intel.com" }, "delegate": null, "mbox": "http://patches.dpdk.org/project/dts/patch/1616045251-65532-3-git-send-email-zhiminx.huang@intel.com/mbox/", "series": [ { "id": 15752, "url": "http://patches.dpdk.org/api/series/15752/?format=api", "web_url": "http://patches.dpdk.org/project/dts/list/?series=15752", "date": "2021-03-18T05:27:23", "name": "modified suite to support pkg check", "version": 1, "mbox": "http://patches.dpdk.org/series/15752/mbox/" } ], "comments": "http://patches.dpdk.org/api/patches/89436/comments/", "check": "pending", "checks": "http://patches.dpdk.org/api/patches/89436/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 B2117A0561;\n\tThu, 18 Mar 2021 06:39:55 +0100 (CET)", "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id A66F7141044;\n\tThu, 18 Mar 2021 06:39:55 +0100 (CET)", "from mga02.intel.com (mga02.intel.com [134.134.136.20])\n by mails.dpdk.org (Postfix) with ESMTP id 6EE9E141043\n for <dts@dpdk.org>; Thu, 18 Mar 2021 06:39:53 +0100 (CET)", "from fmsmga008.fm.intel.com ([10.253.24.58])\n by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 17 Mar 2021 22:39:52 -0700", "from unknown (HELO dpdk-huangzm-d.sh.intel.com) ([10.240.183.72])\n by fmsmga008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 17 Mar 2021 22:39:51 -0700" ], "IronPort-SDR": [ "\n T0xTbK99dun1giExnMq0qb8BWx048wlFzg5JoH4oSG4EsKKgjAfB4513Gr5ZA1d/pYi56Syx/P\n J+AekAX4PVxQ==", "\n AnQRT6EvxbnCvzCCOyB1+/fV0y2jEN10sNXZZfdXBCzXkS7zdjsqXdI5w8dVEFl53kfw20Acge\n xeIu9UtqwRmg==" ], "X-IronPort-AV": [ "E=McAfee;i=\"6000,8403,9926\"; a=\"176736173\"", "E=Sophos;i=\"5.81,257,1610438400\"; d=\"scan'208\";a=\"176736173\"", "E=Sophos;i=\"5.81,257,1610438400\"; d=\"scan'208\";a=\"406214321\"" ], "From": "Zhimin Huang <zhiminx.huang@intel.com>", "To": "dts@dpdk.org", "Cc": "Zhimin Huang <zhiminx.huang@intel.com>", "Date": "Thu, 18 Mar 2021 13:27:25 +0800", "Message-Id": "<1616045251-65532-3-git-send-email-zhiminx.huang@intel.com>", "X-Mailer": "git-send-email 1.8.3.1", "In-Reply-To": "<1616045251-65532-1-git-send-email-zhiminx.huang@intel.com>", "References": "<1616045251-65532-1-git-send-email-zhiminx.huang@intel.com>", "Subject": "[dts] [PATCH V1 2/8] add decorator to support nic and pkg check", "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", "Sender": "\"dts\" <dts-bounces@dpdk.org>" }, "content": "*.remove replace pkg step and add pkg check\n\nSigned-off-by: Zhimin Huang <zhiminx.huang@intel.com>\n---\n ..._cvl_advanced_iavf_rss_vlan_esp_ah_l2tp_pfcp.py | 82 ++++++++--------------\n tests/TestSuite_cvl_fdir.py | 8 ++-\n tests/TestSuite_iavf_fdir.py | 53 +++++++-------\n tests/TestSuite_l2tp_esp_coverage.py | 50 ++++++-------\n 4 files changed, 85 insertions(+), 108 deletions(-)", "diff": "diff --git a/tests/TestSuite_cvl_advanced_iavf_rss_vlan_esp_ah_l2tp_pfcp.py b/tests/TestSuite_cvl_advanced_iavf_rss_vlan_esp_ah_l2tp_pfcp.py\nindex a54dcf5..f7236ee 100644\n--- a/tests/TestSuite_cvl_advanced_iavf_rss_vlan_esp_ah_l2tp_pfcp.py\n+++ b/tests/TestSuite_cvl_advanced_iavf_rss_vlan_esp_ah_l2tp_pfcp.py\n@@ -32,7 +32,7 @@ import re\n import random\n import string\n import time\n-from test_case import TestCase\n+from test_case import TestCase, skip_unsupported_pkg, check_supported_nic\n from pmd_output import PmdOutput\n from packet import Packet\n from rte_flow_common import RssProcessing\n@@ -831,28 +831,32 @@ class Cvl_advance_iavf_rss_vlan_ah_l2tp_pfcp(TestCase):\n \n self.pkt = Packet()\n self.pmd_output = PmdOutput(self.dut)\n- self.ddp_dir = \"/lib/firmware/updates/intel/ice/ddp/\"\n- conf_file = 'conf/cvl_advanced_rss_pppoe.cfg'\n- conf_info = UserConf(conf_file)\n- conf_section = conf_info.conf._sections['suite']\n- self.os_default_package = conf_section['os_default_package_file_location']\n- self.comms_package = conf_section['comms_package_file_location']\n- self.ice_driver = conf_section['ice_driver_file_location']\n self.symmetric = False\n self.rxq = 16\n self.rsspro = RssProcessing(self, self.pmd_output, [self.tester_iface0, self.tester_iface1], self.rxq)\n self.logger.info('rssprocess.tester_ifaces: {}'.format(self.rsspro.tester_ifaces))\n self.logger.info('rssprocess.test_case: {}'.format(self.rsspro.test_case))\n+ self.switch_testpmd(symmetric=self.symmetric)\n+ self.dut_session = self.dut.new_session()\n \n def set_up(self):\n \"\"\"\n Run before each test case.\n \"\"\"\n- pass\n+ # check testpmd process status\n+ cmd = \"ps -aux | grep testpmd | grep -v grep\"\n+ out = self.dut_session.send_expect(cmd, \"#\", 15)\n+ if \"testpmd\" not in out:\n+ self.switch_testpmd(symmetric=False)\n+\n+ if self.running_case == \"test_unsupported_pattern_with_OS_default_package\":\n+ self.dut.kill_all()\n+ self.switch_testpmd(symmetric=True)\n \n def create_iavf(self):\n if self.vf_flag is False:\n self.dut.bind_interfaces_linux('ice')\n+ self.dut.send_expect(\"ethtool --set-priv-flags %s vf-vlan-prune-disable on\" % self.pf_interface, \"# \")\n self.dut.generate_sriov_vfs_by_port(self.used_dut_port, 1)\n self.sriov_vfs_port = self.dut.ports_info[self.used_dut_port]['vfs_port']\n self.vf_flag = True\n@@ -876,10 +880,10 @@ class Cvl_advance_iavf_rss_vlan_ah_l2tp_pfcp(TestCase):\n Run after each test case.\n \"\"\"\n # destroy all flow rule on port 0\n- self.dut.send_command(\"flow flush 0\", timeout=1)\n- self.dut.send_command(\"clear port stats all\", timeout=1)\n+ self.pmd_output.execute_cmd(\"flow flush 0\", timeout=1)\n+ self.pmd_output.execute_cmd(\"clear port stats all\", timeout=1)\n self.pmd_output.execute_cmd(\"stop\")\n- self.dut.kill_all()\n+ self.pmd_output.execute_cmd(\"start\")\n \n def tear_down_all(self):\n \"\"\"\n@@ -887,16 +891,7 @@ class Cvl_advance_iavf_rss_vlan_ah_l2tp_pfcp(TestCase):\n \"\"\"\n self.dut.kill_all()\n self.destroy_iavf()\n-\n- def replace_package(self, package='comms'):\n- ice_pkg_path = ''.join([self.ddp_dir,\"ice.pkg\"])\n- self.dut.send_expect(\"rm -f {}\".format(ice_pkg_path), \"# \")\n- if package == 'os_default':\n- self.dut.send_expect(\"cp {} {}\".format(self.os_default_package,ice_pkg_path), \"# \")\n- elif package == 'comms':\n- self.dut.send_expect(\"cp {} {}\".format(self.comms_package,ice_pkg_path), \"# \")\n- self.dut.send_expect(\"rmmod ice\", \"# \", 15)\n- self.dut.send_expect(\"insmod {}\".format(self.ice_driver), \"# \",)\n+ self.dut.send_expect(\"ethtool --set-priv-flags %s vf-vlan-prune-disable off\" % self.pf_interface, \"# \")\n \n def launch_testpmd(self, symmetric=False):\n param = \"--rxq=16 --txq=16\"\n@@ -919,48 +914,47 @@ class Cvl_advance_iavf_rss_vlan_ah_l2tp_pfcp(TestCase):\n def _gener_str(self, str_len=6):\n return ''.join(random.sample(string.ascii_letters + string.digits, k=str_len))\n \n+ @skip_unsupported_pkg(['os default', 'wireless'])\n def test_mac_ipv4_pfcp_session(self):\n- self.switch_testpmd(symmetric=False)\n self.rsspro.handle_rss_distribute_cases(cases_info=mac_ipv4_pfcp_session)\n \n+ @skip_unsupported_pkg(['os default', 'wireless'])\n def test_mac_ipv6_pfcp_session(self):\n- self.switch_testpmd(symmetric=False)\n self.rsspro.handle_rss_distribute_cases(cases_info=mac_ipv6_pfcp_session)\n \n+ @skip_unsupported_pkg(['os default', 'wireless'])\n def test_mac_ipv4_l2tpv3(self):\n- self.switch_testpmd(symmetric=False)\n self.rsspro.handle_rss_distribute_cases(cases_info=mac_ipv4_l2tpv3)\n \n+ @skip_unsupported_pkg(['os default', 'wireless'])\n def test_mac_ipv6_l2tpv3(self):\n- self.switch_testpmd(symmetric=False)\n self.rsspro.handle_rss_distribute_cases(cases_info=mac_ipv6_l2tpv3)\n \n+ @skip_unsupported_pkg(\"os default\")\n def test_mac_ipv4_esp(self):\n- self.switch_testpmd(symmetric=False)\n self.rsspro.handle_rss_distribute_cases(cases_info=mac_ipv4_esp)\n \n+ @skip_unsupported_pkg('os default')\n def test_mac_ipv4_udp_esp(self):\n- self.switch_testpmd(symmetric=False)\n self.rsspro.handle_rss_distribute_cases(cases_info=mac_ipv4_udp_esp)\n \n+ @skip_unsupported_pkg('os default')\n def test_mac_ipv6_esp(self):\n- self.switch_testpmd(symmetric=False)\n self.rsspro.handle_rss_distribute_cases(cases_info=mac_ipv6_esp)\n \n+ @skip_unsupported_pkg('os default')\n def test_mac_ipv6_udp_esp(self):\n- self.switch_testpmd(symmetric=False)\n self.rsspro.handle_rss_distribute_cases(cases_info=mac_ipv6_udp_esp)\n \n+ @skip_unsupported_pkg(\"os default\")\n def test_mac_ipv4_ah(self):\n- self.switch_testpmd()\n self.rsspro.handle_rss_distribute_cases(cases_info=mac_ipv4_ah)\n \n+ @skip_unsupported_pkg('os default')\n def test_mac_ipv6_ah(self):\n- self.switch_testpmd(symmetric=False)\n self.rsspro.handle_rss_distribute_cases(cases_info=mac_ipv6_ah)\n \n def test_wrong_hash_input_set(self):\n- self.switch_testpmd(symmetric=False)\n rule_list = [\n 'flow create 0 ingress pattern eth / pppoes / ipv4 / end actions rss types l2-src-only l2-dst-only end key_len 0 queues end / end',\n 'flow create 0 ingress pattern eth / pppoes / ipv4 / udp / end actions rss types ipv4-tcp end key_len 0 queues end / end',\n@@ -971,23 +965,18 @@ class Cvl_advance_iavf_rss_vlan_ah_l2tp_pfcp(TestCase):\n self.rsspro.create_rule(rule, check_stats=False, msg='Invalid argument')\n \n def test_void_action(self):\n- self.switch_testpmd(symmetric=False)\n rule = 'flow create 0 ingress pattern eth / ipv4 / udp / pfcp / end actions end'\n self.rsspro.create_rule(rule, check_stats=False, msg='Invalid argument')\n self.rsspro.check_rule(stats=False, rule_list=[rule])\n \n def test_delete_nonexisting_rule(self):\n- self.switch_testpmd(symmetric=False)\n self.rsspro.check_rule(stats=False)\n out = self.dut.send_command(\"flow destroy 0 rule 0\", timeout=1)\n self.verify('error' not in out, 'delete nonexisting rule raise err,expected no err')\n self.dut.send_command(\"flow flush 0\", timeout=1)\n \n+ @skip_unsupported_pkg(['comms', 'wireless'])\n def test_unsupported_pattern_with_OS_default_package(self):\n- self.destroy_iavf()\n- self.replace_package('os_default')\n- self.create_iavf()\n- self.switch_testpmd(symmetric=True)\n rule_list = [\n 'flow create 0 ingress pattern eth / ipv4 / udp / pfcp / end actions rss types pfcp end key_len 0 queues end / end',\n 'flow create 0 ingress pattern eth / ipv4 / l2tpv3oip / end actions rss types l2tpv3 end key_len 0 queues end / end',\n@@ -997,14 +986,9 @@ class Cvl_advance_iavf_rss_vlan_ah_l2tp_pfcp(TestCase):\n self.rsspro.create_rule(rule_list, check_stats=False, msg='Invalid argument')\n self.rsspro.check_rule(stats=False)\n self.dut.kill_all()\n- self.destroy_iavf()\n- self.replace_package('comms')\n- self.create_iavf()\n- self.switch_testpmd(symmetric=True)\n- self.rsspro.create_rule(rule_list, check_stats=True)\n+ self.switch_testpmd(symmetric=False)\n \n def test_invalid_port(self):\n- self.switch_testpmd(symmetric=False)\n rule = 'flow create 1 ingress pattern eth / ipv4 / udp / pfcp / end actions rss types pfcp end key_len 0 queues end / end'\n self.rsspro.create_rule(rule, check_stats=False, msg='No such device')\n self.rsspro.check_rule(stats=False, rule_list=[rule])\n@@ -1014,33 +998,25 @@ class Cvl_advance_iavf_rss_vlan_ah_l2tp_pfcp(TestCase):\n self.verify(result, 'actual result not match expected,expected result is:{}'.format(pattern))\n \n def test_mac_vlan_ipv4_pay(self):\n- self.switch_testpmd(symmetric=False)\n self.rsspro.handle_rss_distribute_cases(cases_info=mac_vlan_ipv4_pay)\n \n def test_mac_vlan_ipv4_udp_pay(self):\n- self.switch_testpmd(symmetric=False)\n self.rsspro.handle_rss_distribute_cases(cases_info=mac_vlan_ipv4_udp_pay)\n \n def test_mac_vlan_ipv4_tcp_pay(self):\n- self.switch_testpmd(symmetric=False)\n self.rsspro.handle_rss_distribute_cases(cases_info=mac_vlan_ipv4_tcp_pay)\n \n def test_mac_vlan_ipv4_sctp_pay(self):\n- self.switch_testpmd(symmetric=False)\n self.rsspro.handle_rss_distribute_cases(cases_info=mac_vlan_ipv4_sctp_pay)\n \n def test_mac_vlan_ipv6_pay(self):\n- self.switch_testpmd(symmetric=False)\n self.rsspro.handle_rss_distribute_cases(cases_info=mac_vlan_ipv6_pay)\n \n def test_mac_vlan_ipv6_udp_pay(self):\n- self.switch_testpmd(symmetric=False)\n self.rsspro.handle_rss_distribute_cases(cases_info=mac_vlan_ipv6_udp_pay)\n \n def test_mac_vlan_ipv6_tcp_pay(self):\n- self.switch_testpmd(symmetric=False)\n self.rsspro.handle_rss_distribute_cases(cases_info=mac_vlan_ipv6_tcp_pay)\n \n def test_mac_vlan_ipv6_sctp_pay(self):\n- self.switch_testpmd(symmetric=False)\n self.rsspro.handle_rss_distribute_cases(cases_info=mac_vlan_ipv6_sctp_pay)\ndiff --git a/tests/TestSuite_cvl_fdir.py b/tests/TestSuite_cvl_fdir.py\nindex 549256b..1d41944 100644\n--- a/tests/TestSuite_cvl_fdir.py\n+++ b/tests/TestSuite_cvl_fdir.py\n@@ -37,7 +37,7 @@ import os\n \n from packet import Packet\n from pmd_output import PmdOutput\n-from test_case import TestCase\n+from test_case import TestCase, skip_unsupported_pkg\n import rte_flow_common as rfc\n \n from utils import GREEN, RED\n@@ -2825,6 +2825,7 @@ class TestCVLFdir(TestCase):\n out = self.pmd_output.execute_cmd(\"flow query 0 0 count\")\n self.verify(\"Flow rule #0 not found\" in out, \"query should failed\")\n \n+ @skip_unsupported_pkg('os default')\n def test_multi_patterns_mark_count_query(self):\n rule1 = 'flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.21 / tcp src is 22 dst is 23 / end actions queue index 1 / mark id 0 / count / end'\n rule2 = 'flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.21 / udp src is 22 dst is 23 / end actions drop / mark id 1 / count / end'\n@@ -2943,6 +2944,7 @@ class TestCVLFdir(TestCase):\n out2 = self.send_pkts_getouput(pkts=pkt, port_id=1)\n rfc.check_mark(out2, pkt_num=1, check_param={\"port_id\": 1, \"queue\": [2, 3], \"rss\": True}, stats=False)\n \n+ @skip_unsupported_pkg('os default')\n def test_two_ports_multi_patterns_count_query(self):\n rules = [\n 'flow create 1 ingress pattern eth / ipv4 dst is 192.168.0.21 proto is 255 tos is 4 / end actions queue index 1 / mark id 1 / count identifier 0x1234 shared on / end',\n@@ -3161,15 +3163,19 @@ class TestCVLFdir(TestCase):\n def test_mac_ipv4_tun_mac_ipv4_sctp(self):\n self._rte_flow_validate(vectors_mac_ipv4_tun_mac_ipv4_sctp)\n \n+ @skip_unsupported_pkg('os default')\n def test_mac_ipv4_gtpu_eh(self):\n self._rte_flow_validate(vectors_mac_ipv4_gtpu_eh)\n \n+ @skip_unsupported_pkg('os default')\n def test_mac_ipv4_gtpu(self):\n self._rte_flow_validate(vectors_mac_ipv4_gtpu)\n \n+ @skip_unsupported_pkg('os default')\n def test_mac_ipv6_gtpu_eh(self):\n self._rte_flow_validate(vectors_mac_ipv6_gtpu_eh)\n \n+ @skip_unsupported_pkg('os default')\n def test_mac_ipv6_gtpu(self):\n self._rte_flow_validate(vectors_mac_ipv6_gtpu)\n \ndiff --git a/tests/TestSuite_iavf_fdir.py b/tests/TestSuite_iavf_fdir.py\nindex e83855d..a404814 100644\n--- a/tests/TestSuite_iavf_fdir.py\n+++ b/tests/TestSuite_iavf_fdir.py\n@@ -35,7 +35,7 @@ import time\n \n from packet import Packet\n from pmd_output import PmdOutput\n-from test_case import TestCase\n+from test_case import TestCase, skip_unsupported_pkg\n import rte_flow_common as rfc\n from rte_flow_common import CVL_TXQ_RXQ_NUMBER\n from multiprocessing import Process\n@@ -2234,8 +2234,6 @@ class TestIAVFFdir(TestCase):\n \"\"\"\n Run before each test case.\n \"\"\"\n- self.re_load_ice_driver()\n- time.sleep(1)\n self.setup_2pf_4vf_env()\n time.sleep(1)\n self.launch_testpmd()\n@@ -2308,16 +2306,6 @@ class TestIAVFFdir(TestCase):\n self.dut.destroy_sriov_vfs_by_port(self.dut_ports[0])\n self.dut.destroy_sriov_vfs_by_port(self.dut_ports[1])\n \n- def re_load_ice_driver(self):\n- \"\"\"\n- remove and reload the ice driver\n- \"\"\"\n- self.dut.send_expect(\"rmmod ice\", \"# \", 40)\n- ice_driver_file_location = self.suite_config[\"ice_driver_file_location\"]\n- self.dut.send_expect(\"insmod %s\" % ice_driver_file_location, \"# \")\n- self.dut.send_expect(\"ifconfig %s up\" % self.pf0_intf, \"# \", 15)\n- self.dut.send_expect(\"ifconfig %s up\" % self.pf1_intf, \"# \", 15)\n-\n def config_testpmd(self):\n self.pmd_output.execute_cmd(\"set fwd rxonly\")\n self.pmd_output.execute_cmd(\"set verbose 1\")\n@@ -2474,39 +2462,51 @@ class TestIAVFFdir(TestCase):\n def test_mac_ipv6_sctp(self):\n self.rte_flow_process(vectors_ipv6_sctp)\n \n+ @skip_unsupported_pkg('os default')\n def test_mac_ipv4_gtpu_eh(self):\n self.rte_flow_process(vectors_ipv4_gtpu_eh)\n \n+ @skip_unsupported_pkg('os default')\n def test_mac_ipv4_gtpu(self):\n self.rte_flow_process(vectors_ipv4_gtpu)\n \n+ @skip_unsupported_pkg('os default')\n def test_mac_ipv6_gtpu_eh(self):\n self.rte_flow_process(vectors_ipv6_gtpu_eh)\n \n+ @skip_unsupported_pkg('os default')\n def test_mac_ipv6_gtpu(self):\n self.rte_flow_process(vectors_ipv6_gtpu)\n \n+ @skip_unsupported_pkg(['os default', 'wireless'])\n def test_mac_ipv4_l2tpv3(self):\n self.rte_flow_process(vectors_ipv4_l2tpv3)\n \n+ @skip_unsupported_pkg(['os default', 'wireless'])\n def test_mac_ipv6_l2tpv3(self):\n self.rte_flow_process(vectors_ipv6_l2tpv3)\n \n+ @skip_unsupported_pkg('os default')\n def test_mac_ipv4_esp(self):\n self.rte_flow_process(vectors_ipv4_esp)\n \n+ @skip_unsupported_pkg('os default')\n def test_mac_ipv6_esp(self):\n self.rte_flow_process(vectors_ipv6_esp)\n \n+ @skip_unsupported_pkg('os default')\n def test_mac_ipv4_ah(self):\n self.rte_flow_process(vectors_ipv4_ah)\n \n+ @skip_unsupported_pkg('os default')\n def test_mac_ipv6_ah(self):\n self.rte_flow_process(vectors_ipv6_ah)\n \n+ @skip_unsupported_pkg('os default')\n def test_mac_ipv4_nat_t_esp(self):\n self.rte_flow_process(vectors_ipv4_nat_t_esp)\n \n+ @skip_unsupported_pkg('os default')\n def test_mac_ipv6_nat_t_esp(self):\n self.rte_flow_process(vectors_ipv6_nat_t_esp)\n \n@@ -2586,6 +2586,7 @@ class TestIAVFFdir(TestCase):\n out4 = self.send_pkts_getouput(MAC_IPV6_PAY_protocol[\"match\"])\n rfc.check_iavf_fdir_mark(out4, pkt_num=6, check_param={\"port_id\": 0, \"passthru\": 1}, stats=False)\n \n+ @skip_unsupported_pkg('os default')\n def test_mac_ipv4_gtpu_eh_without_teid(self):\n rules = [\"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / end actions rss types ipv4 end key_len 0 queues end / end\", \\\n \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc qfi is 0x34 / end actions queue index 1 / mark id 3 / end\"]\n@@ -2621,6 +2622,7 @@ class TestIAVFFdir(TestCase):\n out3 = self.send_pkts_getouput(MAC_IPV4_GTPU_EH_WITHOUT_TEID[\"match\"])\n rfc.check_iavf_fdir_mark(out3, pkt_num=1, check_param={\"port_id\": 0, \"passthru\": 1}, stats=False)\n \n+ @skip_unsupported_pkg('os default')\n def test_mac_ipv4_gtpu_eh_without_qfi(self):\n rules = [\"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / end actions rss types ipv4 end key_len 0 queues end / end\", \\\n \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / gtp_psc / end actions rss queues 2 3 end / mark id 1 / end\"]\n@@ -2702,6 +2704,7 @@ class TestIAVFFdir(TestCase):\n out7 = self.send_pkts_getouput(pkts[\"mismatch\"][7])\n rfc.check_iavf_fdir_mark(out7, pkt_num=1, check_param={\"port_id\": 0, \"drop\": True}, stats=False)\n \n+ @skip_unsupported_pkg('os default')\n def test_mac_outer_co_exist_gtpu_eh_dst(self):\n rules = [\"flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.31 / udp / gtpu / gtp_psc / end actions rss queues 1 2 end / mark id 1 / end\", \\\n \"flow create 0 ingress pattern eth / ipv6 dst is ::32 / udp / gtpu / gtp_psc / end actions rss queues 3 4 5 6 end / mark id 2 / end\",\\\n@@ -2733,6 +2736,7 @@ class TestIAVFFdir(TestCase):\n }\n self.run_coexist_outer_gtpu(rules, MAC_GTPU_EH)\n \n+ @skip_unsupported_pkg('os default')\n def test_mac_outer_co_exist_gtpu_dst(self):\n rules = [\"flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.31 / udp / gtpu / end actions rss queues 1 2 end / mark id 1 / end\", \\\n \"flow create 0 ingress pattern eth / ipv6 dst is ::32 / udp / gtpu / end actions rss queues 3 4 5 6 end / mark id 2 / end\",\\\n@@ -2764,6 +2768,7 @@ class TestIAVFFdir(TestCase):\n }\n self.run_coexist_outer_gtpu(rules, MAC_GTPU)\n \n+ @skip_unsupported_pkg('os default')\n def test_mac_outer_co_exist_gtpu_eh_src(self):\n rules = [\"flow create 0 ingress pattern eth / ipv4 src is 192.168.0.21 / udp / gtpu / gtp_psc / end actions rss queues 1 2 end / mark id 1 / end\", \\\n \"flow create 0 ingress pattern eth / ipv6 src is ::12 / udp / gtpu / gtp_psc / end actions rss queues 3 4 5 6 end / mark id 2 / end\",\\\n@@ -2795,6 +2800,7 @@ class TestIAVFFdir(TestCase):\n }\n self.run_coexist_outer_gtpu(rules, MAC_GTPU_EH)\n \n+ @skip_unsupported_pkg('os default')\n def test_mac_outer_co_exist_gtpu_src(self):\n rules = [\"flow create 0 ingress pattern eth / ipv4 src is 192.168.0.21 / udp / gtpu / end actions rss queues 1 2 end / mark id 1 / end\", \\\n \"flow create 0 ingress pattern eth / ipv6 src is ::12 / udp / gtpu / end actions rss queues 3 4 5 6 end / mark id 2 / end\",\\\n@@ -2826,6 +2832,7 @@ class TestIAVFFdir(TestCase):\n }\n self.run_coexist_outer_gtpu(rules, MAC_GTPU)\n \n+ @skip_unsupported_pkg('os default')\n def test_mac_outer_co_exist_gtpu_mix(self):\n rules = [\"flow create 0 ingress pattern eth / ipv4 src is 192.168.0.21 dst is 192.168.0.31 / udp / gtpu / gtp_psc / end actions rss queues 1 2 end / mark id 1 / end\", \\\n \"flow create 0 ingress pattern eth / ipv6 src is ::12 dst is ::32 / udp / gtpu / gtp_psc / end actions rss queues 3 4 5 6 end / mark id 2 / end\",\\\n@@ -2858,6 +2865,7 @@ class TestIAVFFdir(TestCase):\n \n self.run_coexist_outer_gtpu(rules, MAC_GTPU_MIX)\n \n+ @skip_unsupported_pkg(['os default', 'wireless'])\n def test_pfcp(self):\n # open the RSS function for PFCP session packet.\n out = self.pmd_output.execute_cmd(\"flow create 0 ingress pattern eth / ipv4 / udp / pfcp / end actions rss types pfcp end key_len 0 queues end / end\")\n@@ -2866,6 +2874,7 @@ class TestIAVFFdir(TestCase):\n self.verify(\"Flow rule #1 created\" in out, \"failed to enable RSS function for MAC_IPV6_PFCP session packet\")\n self.multirules_process(vectors_pfcp)\n \n+ @skip_unsupported_pkg('os default')\n def test_l2_ethertype(self):\n self.multirules_process(vectors_l2_ethertype)\n \n@@ -2955,6 +2964,7 @@ class TestIAVFFdir(TestCase):\n self.check_fdir_rule(port_id=0, stats=False)\n self.check_fdir_rule(port_id=1, stats=False)\n \n+ @skip_unsupported_pkg(['comms', 'wireless'])\n def test_unsupported_pattern_with_OS_package(self):\n \"\"\"\n Create GTPU rule, PFCP rule, L2 Ethertype rule, l2tpv3 rule and esp rule with OS default package\n@@ -2964,24 +2974,11 @@ class TestIAVFFdir(TestCase):\n \"flow create 0 ingress pattern eth type is 0x8863 / end actions queue index 1 / mark id 1 / end\",\n \"flow create 0 ingress pattern eth / ipv4 / l2tpv3oip session_id is 17 / end actions rss queues 1 2 end / mark id 6 / end\",\n \"flow create 0 ingress pattern eth / ipv6 / udp / esp spi is 6 / end actions rss queues 1 2 end / mark id 6 / end\"]\n- self.destroy_env()\n- os_package_location = self.suite_config[\"os_default_package_file_location\"]\n- comms_package_location = self.suite_config[\"comms_package_file_location\"]\n- package_location = self.suite_config[\"package_file_location\"]\n- self.dut.send_expect(\"cp %s %s\" % (os_package_location, package_location), \"# \")\n- self.re_load_ice_driver()\n- self.setup_2pf_4vf_env()\n self.launch_testpmd()\n-\n self.validate_fdir_rule(rule, check_stats=False)\n self.create_fdir_rule(rule, check_stats=False)\n self.check_fdir_rule(port_id=0, stats=False)\n \n- self.destroy_env()\n- self.dut.send_expect(\"cp %s %s\" % (comms_package_location, package_location), \"# \")\n- self.re_load_ice_driver()\n- self.setup_2pf_4vf_env()\n-\n def test_create_same_rule_on_pf_vf(self):\n \"\"\"\n create same rules on pf and vf, no conflict\n@@ -3441,6 +3438,7 @@ class TestIAVFFdir(TestCase):\n self.dut.close_session(self.session_secondary)\n self.dut.close_session(self.session_third)\n \n+ @skip_unsupported_pkg(['os default', 'wireless'])\n def test_maxnum_128_profiles(self):\n \"\"\"\n There are 128 profiles in total.\n@@ -3883,6 +3881,7 @@ class TestIAVFFdir(TestCase):\n vlans.append(vlan)\n return vlans\n \n+ @skip_unsupported_pkg(['os default', 'wireless'])\n def test_pfcp_vlan_strip_on_hw_checksum(self):\n \"\"\"\n Set PFCP FDIR rules\n@@ -3979,6 +3978,7 @@ class TestIAVFFdir(TestCase):\n self.verify(bad_ipcsum == 2, \"Bad-ipcsum check error\")\n self.verify(bad_l4csum == 4, \"Bad-l4csum check error\")\n \n+ @skip_unsupported_pkg(['os default', 'wireless'])\n def test_pfcp_vlan_strip_off_sw_checksum(self):\n \"\"\"\n Set PFCP FDIR rules\n@@ -4073,6 +4073,7 @@ class TestIAVFFdir(TestCase):\n self.verify(bad_ipcsum == 2, \"Bad-ipcsum check error\")\n self.verify(bad_l4csum == 4, \"Bad-l4csum check error\")\n \n+ @skip_unsupported_pkg(['os default', 'wireless'])\n def test_pfcp_vlan_insert_on(self):\n \"\"\"\n Set PFCP FDIR rules\ndiff --git a/tests/TestSuite_l2tp_esp_coverage.py b/tests/TestSuite_l2tp_esp_coverage.py\nindex 89f7cae..10520c8 100644\n--- a/tests/TestSuite_l2tp_esp_coverage.py\n+++ b/tests/TestSuite_l2tp_esp_coverage.py\n@@ -33,7 +33,7 @@ import re\n import time\n from packet import Packet\n from pmd_output import PmdOutput\n-from test_case import TestCase\n+from test_case import TestCase, skip_unsupported_pkg, check_supported_nic\n import rte_flow_common as rfc\n \n vf0_mac = \"00:11:22:33:44:55\"\n@@ -76,9 +76,10 @@ tv_MAC_IPV6_NAT_T_ESP_vlan = {'matched vlan': \"Ether(dst='%s')/Dot1Q(vlan=1)/IPv\n 'dismatched vlan': \"Ether(dst='%s')/Dot1Q(vlan=2)/IPv6()/UDP(dport=4500)/ESP(spi=1)/Raw('x'*480)\" % vf0_mac,\n 'no vlan': \"Ether(dst='%s')/IPv6()/UDP(dport=4500)/ESP(spi=1)/Raw('x'*480)\" % vf0_mac}\n \n-\n class L2tpEspCoverage(TestCase):\n+ supported_nic = ['columbiaville_100g', 'columbiaville_25g', 'columbiaville_25gx2']\n \n+ @check_supported_nic(supported_nic)\n def set_up_all(self):\n \"\"\"\n Run at the start of each test suite.\n@@ -95,7 +96,6 @@ class L2tpEspCoverage(TestCase):\n self.pf_interface = self.dut.ports_info[self.dut_ports[0]]['intf']\n self.pf_mac = self.dut.get_mac_address(0)\n self.pf_pci = self.dut.ports_info[self.dut_ports[0]]['pci']\n- self.verify(self.nic in [\"columbiaville_25g\", \"columbiaville_100g\"], \"%s nic not support ethertype filter\" % self.nic)\n self.vf_flag = False\n self.create_iavf()\n self.pkt = Packet()\n@@ -104,6 +104,7 @@ class L2tpEspCoverage(TestCase):\n \"\"\"\n Run before each test case.\n \"\"\"\n+ cases_list = [\"test_MAC_IPV4_L2TPv3_HW_checksum_vlan_strip\", \"test_MAC_IPV4_L2TPv3_SW_checksum_vlan_insertion\"]\n self.dut.kill_all()\n \n def tear_down(self):\n@@ -156,21 +157,12 @@ class L2tpEspCoverage(TestCase):\n self.dut.send_expect(\"set fwd rxonly\", \"testpmd> \", 15)\n self.dut.send_expect(\"set verbose 1\", \"testpmd> \", 15)\n \n- def enable_hw_checksum(self):\n- self.dut.send_expect(\"stop\",\"testpmd> \")\n- self.dut.send_expect(\"port stop all\",\"testpmd> \")\n- self.dut.send_expect(\"csum set ip hw 0\",\"testpmd> \")\n- self.dut.send_expect(\"csum set udp hw 0\",\"testpmd> \")\n- self.dut.send_expect(\"port start all\",\"testpmd> \")\n- self.dut.send_expect(\"set fwd csum\",\"testpmd> \")\n- self.dut.send_expect(\"set verbose 1\",\"testpmd> \")\n- self.dut.send_expect(\"start\",\"testpmd> \")\n- \n- def enable_sw_checksum(self):\n+ def enable_checksum(self, param_type=\"hw\"):\n+\n self.dut.send_expect(\"stop\",\"testpmd> \")\n self.dut.send_expect(\"port stop all\",\"testpmd> \")\n- self.dut.send_expect(\"csum set ip sw 0\",\"testpmd> \")\n- self.dut.send_expect(\"csum set udp sw 0\",\"testpmd> \")\n+ self.dut.send_expect(\"csum set ip %s 0\" % param_type,\"testpmd> \")\n+ self.dut.send_expect(\"csum set udp %s 0\" % param_type,\"testpmd> \")\n self.dut.send_expect(\"port start all\",\"testpmd> \")\n self.dut.send_expect(\"set fwd csum\",\"testpmd> \")\n self.dut.send_expect(\"set verbose 1\",\"testpmd> \")\n@@ -221,30 +213,29 @@ class L2tpEspCoverage(TestCase):\n \n def test_MAC_IPV4_L2TPv3_HW_checksum(self):\n self.create_testpmd_command(self.vf0_prop,rx_checksum=1)\n- self.enable_hw_checksum()\n+ self.enable_checksum()\n self.checksum_verify(tv_MAC_IPV4_L2TPv3_chksum)\n \n def test_MAC_IPV4_ESP_HW_checksum(self):\n self.create_testpmd_command(self.vf0_prop,rx_checksum=1)\n- self.enable_hw_checksum()\n+ self.enable_checksum()\n self.checksum_verify(tv_MAC_IPV4_ESP_chksum)\n \n def test_MAC_IPV4_AH_HW_checksum(self):\n self.create_testpmd_command(self.vf0_prop,rx_checksum=1)\n- self.enable_hw_checksum()\n+ self.enable_checksum()\n self.checksum_verify(tv_MAC_IPV4_AH_chksum)\n \n def test_MAC_IPV4_NAT_T_ESP_HW_checksum(self):\n self.create_testpmd_command(self.vf0_prop,rx_checksum=1)\n- self.enable_hw_checksum()\n+ self.enable_checksum()\n self.checksum_verify(tv_MAC_IPV4_NAT_T_ESP_chksum)\n \n def test_MAC_IPV6_NAT_T_ESP_HW_checksum(self):\n self.create_testpmd_command(self.vf0_prop,rx_checksum=1)\n- self.enable_hw_checksum()\n+ self.enable_checksum()\n self.checksum_verify(tv_MAC_IPV6_NAT_T_ESP_chksum)\n- \n- \n+\n def start_tcpdump(self, rxItf):\n self.tester.send_expect(\"rm -rf getPackageByTcpdump.cap\", \"#\")\n self.tester.send_expect(\"tcpdump -A -nn -e -vv -w getPackageByTcpdump.cap -i %s 2> /dev/null& \" % rxItf, \"#\")\n@@ -358,6 +349,7 @@ class L2tpEspCoverage(TestCase):\n tx_port = self.tx_iface\n self.pkt.send_pkt(crb=self.tester, tx_port=tx_port)\n \n+ @skip_unsupported_pkg(['os default', 'wireless'])\n def test_MAC_IPV4_L2TPv3_HW_checksum_vlan_strip(self):\n \n self.create_testpmd_command(self.vf0_prop,rx_checksum=1)\n@@ -366,7 +358,7 @@ class L2tpEspCoverage(TestCase):\n self.dut.send_expect(\"vlan set strip on 0\",\"testpmd> \")\n self.dut.send_expect(\"rx_vlan add 1 0\",\"testpmd> \")\n \n- self.enable_hw_checksum()\n+ self.enable_checksum()\n #create rule\n self.dut.send_expect(\"flow create 0 ingress pattern eth / ipv4 / l2tpv3oip session_id is 1 / end actions queue index 1 / mark id 4 / end\",\"testpmd> \")\n self.dut.send_expect(\"flow create 0 ingress pattern eth / ipv4 / l2tpv3oip session_id is 2 / end actions queue index 2 / mark id 3 / end\",\"testpmd> \")\n@@ -415,6 +407,7 @@ class L2tpEspCoverage(TestCase):\n receive_pkt = re.findall('vlan 1', tcpdump_out)\n self.verify(len(receive_pkt) == 1, 'vlan id strip on failed')\n \n+ @skip_unsupported_pkg(['os default', 'wireless'])\n def test_MAC_IPV4_L2TPv3_SW_checksum_vlan_insertion(self):\n \n self.create_testpmd_command(self.vf0_prop,rx_checksum=1)\n@@ -446,7 +439,7 @@ class L2tpEspCoverage(TestCase):\n receive_pkt = re.findall('vlan 1', tcpdump_out)\n self.verify(len(receive_pkt) == 1, 'vlan insertion failed')\n \n- self.enable_sw_checksum()\n+ self.enable_checksum(\"sw\")\n # bad checksum + mismatched session id\n pkts=\"Ether(dst='00:11:22:33:44:55')/IP(proto=115,chksum=0x123)/L2TP(b'\\\\x00\\\\x00\\\\x00\\\\x11')/Raw('x'*480)\"\n self.start_tcpdump(self.tx_iface)\n@@ -468,8 +461,8 @@ class L2tpEspCoverage(TestCase):\n # check the rx checksum \n bad_ipcsum = self.pmd_output.get_pmd_value(\"Bad-ipcsum:\", out)\n self.verify(bad_ipcsum == 1, \"bad ip csum check error\")\n- \n \n+ @skip_unsupported_pkg('os default')\n def test_MAC_IPV4_ESP_HW_checksum_vlan_strip(self):\n \n self.create_testpmd_command(self.vf0_prop,rx_checksum=1)\n@@ -478,7 +471,7 @@ class L2tpEspCoverage(TestCase):\n self.dut.send_expect(\"vlan set strip on 0\",\"testpmd> \")\n self.dut.send_expect(\"rx_vlan add 1 0\",\"testpmd> \")\n \n- self.enable_hw_checksum()\n+ self.enable_checksum()\n #create rule\n self.dut.send_expect(\"flow create 0 ingress pattern eth / ipv4 / esp spi is 1 / end actions queue index 1 / mark id 4 / end\",\"testpmd> \")\n self.dut.send_expect(\"flow create 0 ingress pattern eth / ipv4 / esp spi is 2 / end actions queue index 2 / mark id 3 / end\",\"testpmd> \")\n@@ -527,6 +520,7 @@ class L2tpEspCoverage(TestCase):\n receive_pkt = re.findall('vlan 1', tcpdump_out)\n self.verify(len(receive_pkt) == 1, 'vlan id strip on failed')\n \n+ @skip_unsupported_pkg('os default')\n def test_MAC_IPV4_NAT_T_ESP_SW_checksum_vlan_insertion(self):\n \n self.create_testpmd_command(self.vf0_prop,rx_checksum=1)\n@@ -557,7 +551,7 @@ class L2tpEspCoverage(TestCase):\n receive_pkt = re.findall('vlan 1', tcpdump_out)\n self.verify(len(receive_pkt) == 1, 'vlan insertion failed')\n \n- self.enable_sw_checksum()\n+ self.enable_checksum(\"sw\")\n # bad checksum + mismatched session id\n pkts=\"Ether(dst='00:11:22:33:44:55')/IP(chksum=0x123)/UDP(dport=4500)/ESP(spi=11)/Raw('x'*480)\"\n self.start_tcpdump(self.tx_iface)\n", "prefixes": [ "V1", "2/8" ] }{ "id": 89436, "url": "