Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/104816/?format=api
http://patchwork.dpdk.org/api/patches/104816/?format=api", "web_url": "http://patchwork.dpdk.org/project/dts/patch/20211202111453.146572-3-yanx.xia@intel.com/", "project": { "id": 3, "url": "http://patchwork.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": "<20211202111453.146572-3-yanx.xia@intel.com>", "list_archive_url": "https://inbox.dpdk.org/dts/20211202111453.146572-3-yanx.xia@intel.com", "date": "2021-12-02T11:14:53", "name": "[V3,3/3] tests/fortville_rss_granularity_config: delete the suite", "commit_ref": null, "pull_url": null, "state": "accepted", "archived": false, "hash": "21a2597cd45735d2e0ea960e4212937925e3ca8a", "submitter": { "id": 2034, "url": "http://patchwork.dpdk.org/api/people/2034/?format=api", "name": "Yan Xia", "email": "yanx.xia@intel.com" }, "delegate": null, "mbox": "http://patchwork.dpdk.org/project/dts/patch/20211202111453.146572-3-yanx.xia@intel.com/mbox/", "series": [ { "id": 20829, "url": "http://patchwork.dpdk.org/api/series/20829/?format=api", "web_url": "http://patchwork.dpdk.org/project/dts/list/?series=20829", "date": "2021-12-02T11:14:51", "name": "[V3,1/3] test_plans/fortville_rss_granularity_config: delete the test plan", "version": 3, "mbox": "http://patchwork.dpdk.org/series/20829/mbox/" } ], "comments": "http://patchwork.dpdk.org/api/patches/104816/comments/", "check": "warning", "checks": "http://patchwork.dpdk.org/api/patches/104816/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 C4BA0A0C47;\n\tThu, 2 Dec 2021 04:14:52 +0100 (CET)", "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id BBE1041152;\n\tThu, 2 Dec 2021 04:14:52 +0100 (CET)", "from mga01.intel.com (mga01.intel.com [192.55.52.88])\n by mails.dpdk.org (Postfix) with ESMTP id F2A5A40140\n for <dts@dpdk.org>; Thu, 2 Dec 2021 04:14:50 +0100 (CET)", "from fmsmga006.fm.intel.com ([10.253.24.20])\n by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 01 Dec 2021 19:14:50 -0800", "from unknown (HELO dpdk.lan) ([10.240.183.77])\n by fmsmga006-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 01 Dec 2021 19:14:48 -0800" ], "X-IronPort-AV": [ "E=McAfee;i=\"6200,9189,10185\"; a=\"260605790\"", "E=Sophos;i=\"5.87,280,1631602800\"; d=\"scan'208\";a=\"260605790\"", "E=Sophos;i=\"5.87,280,1631602800\"; d=\"scan'208\";a=\"745697949\"" ], "From": "Yan Xia <yanx.xia@intel.com>", "To": "dts@dpdk.org", "Cc": "Yan Xia <yanx.xia@intel.com>", "Subject": "[dts][PATCH V3 3/3] tests/fortville_rss_granularity_config: delete\n the suite", "Date": "Thu, 2 Dec 2021 11:14:53 +0000", "Message-Id": "<20211202111453.146572-3-yanx.xia@intel.com>", "X-Mailer": "git-send-email 2.33.1", "In-Reply-To": "<20211202111453.146572-1-yanx.xia@intel.com>", "References": "<20211202111453.146572-1-yanx.xia@intel.com>", "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": "delete fortville_rss_granularity_config testsuite\ndpdk commit id: 81db321da ethdev: remove legacy HASH filter type support\n\nSigned-off-by: Yan Xia <yanx.xia@intel.com>\n---\n ...tSuite_fortville_rss_granularity_config.py | 563 ------------------\n 1 file changed, 563 deletions(-)\n delete mode 100644 tests/TestSuite_fortville_rss_granularity_config.py", "diff": "diff --git a/tests/TestSuite_fortville_rss_granularity_config.py b/tests/TestSuite_fortville_rss_granularity_config.py\ndeleted file mode 100644\nindex b397cf37..00000000\n--- a/tests/TestSuite_fortville_rss_granularity_config.py\n+++ /dev/null\n@@ -1,563 +0,0 @@\n-# BSD LICENSE\n-#\n-# Copyright(c) 2010-2014 Intel Corporation. All rights reserved.\n-# All rights reserved.\n-#\n-# Redistribution and use in source and binary forms, with or without\n-# modification, are permitted provided that the following conditions\n-# are met:\n-#\n-# * Redistributions of source code must retain the above copyright\n-# notice, this list of conditions and the following disclaimer.\n-# * Redistributions in binary form must reproduce the above copyright\n-# notice, this list of conditions and the following disclaimer in\n-# the documentation and/or other materials provided with the\n-# distribution.\n-# * Neither the name of Intel Corporation nor the names of its\n-# contributors may be used to endorse or promote products derived\n-# from this software without specific prior written permission.\n-#\n-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n-# \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n-# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n-# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n-# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n-\n-\"\"\"\n-DPDK Test suite.\n-\n-Test DPDK2.3 feature:\n-1.Fortville support granularity configuration of RSS.\n-By default Fortville uses hash input set preloaded from NVM image which includes all fields\n-- IPv4/v6+TCP/UDP port. Potential problem for this is global configuration per device and can\n-affect all ports. It is required that hash input set can be configurable, such as using IPv4\n-only or IPv6 only or IPv4/v6+TCP/UDP.\n-\n-2.Fortville support 32-bit GRE keys.\n-By default Fortville extracts only 24 bits of GRE key to FieldVector (NVGRE use case) but\n-for Telco use cases full 32-bit GRE key is needed. It is required that both 24-bit and 32-bit\n-keys for GRE should be supported. the test plan is to test the API to switch between 24-bit and\n-32-bit keys\n-\n-Support 4*10G, 1*40G and 2*40G NICs.\n-\"\"\"\n-import random\n-import re\n-import time\n-\n-import framework.dut as dut\n-import framework.utils as utils\n-from framework.pmd_output import PmdOutput\n-\n-testQueues = [16]\n-reta_entries = []\n-reta_lines = []\n-\n-# Use scapy to send packets with different source and dest ip.\n-# and collect the hash result of five tuple and the queue id.\n-from framework.test_case import TestCase\n-\n-#\n-#\n-# Test class.\n-#\n-\n-\n-class TestFortvilleRssGranularityConfig(TestCase):\n- #\n- #\n- # Utility methods and other non-test code.\n- #\n-\n- def set_up_all(self):\n- \"\"\"\n- Run at the start of each test suite.\n- \"\"\"\n-\n- self.verify(self.nic in [\"fortville_eagle\", \"fortville_spirit\",\n- \"fortville_spirit_single\", \"fortville_25g\", \"carlsville\"],\n- \"NIC Unsupported: \" + str(self.nic))\n- ports = self.dut.get_ports(self.nic)\n- self.verify(len(ports) >= 1, \"Not enough ports available\")\n- dutPorts = self.dut.get_ports(self.nic)\n- localPort = self.tester.get_local_port(dutPorts[0])\n- self.itf = self.tester.get_interface(localPort)\n- self.pmdout = PmdOutput(self.dut)\n-\n- def set_up(self):\n- \"\"\"\n- Run before each test case.\n- \"\"\"\n- global reta_lines\n- reta_lines = []\n-\n- def send_packet(self, itf, tran_type):\n- \"\"\"\n- Sends packets.\n- \"\"\"\n- global reta_lines\n- self.tester.scapy_foreground()\n- self.dut.send_expect(\"start\", \"testpmd>\")\n- mac = self.dut.get_mac_address(0)\n-\n- # send packet with different source and dest ip\n- if tran_type == \"ipv4-other\":\n- packet = r'sendp([Ether(dst=\"%s\", src=get_if_hwaddr(\"%s\"))/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\", proto=47)/GRE(key_present=1,proto=2048,key=67108863)/IP()], iface=\"%s\")' % (\n- mac, itf, itf)\n- self.tester.scapy_append(packet)\n- self.tester.scapy_execute()\n- time.sleep(.5)\n- elif tran_type == \"ipv4-tcp\":\n- packet = r'sendp([Ether(dst=\"%s\", src=get_if_hwaddr(\"%s\"))/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/TCP(sport=1024,dport=1025)], iface=\"%s\")' % (\n- mac, itf, itf)\n- self.tester.scapy_append(packet)\n- self.tester.scapy_execute()\n- time.sleep(.5)\n- elif tran_type == \"ipv4-udp\":\n- packet = r'sendp([Ether(dst=\"%s\", src=get_if_hwaddr(\"%s\"))/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/UDP(sport=1024,dport=1025)], iface=\"%s\")' % (\n- mac, itf, itf)\n- self.tester.scapy_append(packet)\n- self.tester.scapy_execute()\n- time.sleep(.5)\n- elif tran_type == \"l2_payload\":\n- packet = r'sendp([Ether(dst=\"%s\", src=get_if_hwaddr(\"%s\"))/Dot1Q(id=0x8100,vlan=1)/Dot1Q(id=0x8100,vlan=2)], iface=\"%s\")' % (\n- mac, itf, itf)\n- self.tester.scapy_append(packet)\n- self.tester.scapy_execute()\n- time.sleep(.5)\n- elif tran_type == \"ipv6-tcp\":\n- packet = r'sendp([Ether(dst=\"%s\", src=get_if_hwaddr(\"%s\"))/IPv6(src=\"3ffe:2501:200:1fff::1\", dst=\"3ffe:2501:200:3::2\")/TCP(sport=1024,dport=1025)], iface=\"%s\")' % (\n- mac, itf, itf)\n- self.tester.scapy_append(packet)\n- self.tester.scapy_execute()\n- time.sleep(.5)\n- elif tran_type == \"ipv6-udp\":\n- packet = r'sendp([Ether(dst=\"%s\", src=get_if_hwaddr(\"%s\"))/IPv6(src=\"3ffe:2501:200:1fff::1\", dst=\"3ffe:2501:200:3::2\")/UDP(sport=1024,dport=1025)], iface=\"%s\")' % (\n- mac, itf, itf)\n- self.tester.scapy_append(packet)\n- self.tester.scapy_execute()\n- time.sleep(.5)\n- else:\n- print(\"\\ntran_type error!\\n\")\n-\n- out = self.dut.get_session_output(timeout=1)\n- self.dut.send_expect(\"stop\", \"testpmd>\")\n- lines = out.split(\"\\r\\n\")\n- reta_line = {}\n- # collect the hash result and the queue id\n- for line in lines:\n- line = line.strip()\n- if len(line) != 0 and line.strip().startswith(\"port \"):\n- reta_line = {}\n- rexp = r\"port (\\d)/queue (\\d{1,2}): received (\\d) packets\"\n- m = re.match(rexp, line.strip())\n- if m:\n- reta_line[\"port\"] = m.group(1)\n- reta_line[\"queue\"] = m.group(2)\n-\n- elif len(line) != 0 and line.startswith((\"src=\",)):\n- for item in line.split(\"-\"):\n- item = item.strip()\n- if(item.startswith(\"RSS hash\")):\n- name, value = item.split(\"=\", 1)\n-\n- reta_line[name.strip()] = value.strip()\n- reta_lines.append(reta_line)\n-\n- self.append_result_table()\n-\n- def append_result_table(self):\n- \"\"\"\n- Append the hash value and queue id into table.\n- \"\"\"\n-\n- global reta_lines\n-\n- # append the the hash value and queue id into table\n- self.result_table_create(\n- ['packet index', 'hash value', 'hash index', 'queue id'])\n- i = 0\n-\n- for tmp_reta_line in reta_lines:\n-\n- # compute the hash result of five tuple into the 7 LSBs value.\n- hash_index = int(tmp_reta_line[\"RSS hash\"], 16)\n- self.result_table_add(\n- [i, tmp_reta_line[\"RSS hash\"], hash_index, tmp_reta_line[\"queue\"]])\n- i = i + 1\n-\n- def test_ipv4_tcp(self):\n- \"\"\"\n- Test with flow type ipv4-tcp.\n- \"\"\"\n- flag = 1\n-\n- # test with different rss queues\n- for queue in testQueues:\n- self.pmdout.start_testpmd(\n- \"Default\", \" --portmask=0x1 --rxq=%d --txq=%d\" % (queue, queue))\n- self.dut.send_expect(\"set verbose 8\", \"testpmd> \")\n- self.dut.send_expect(\"set fwd rxonly\", \"testpmd> \")\n-\n- self.dut.send_expect(\"port stop all\", \"testpmd> \")\n- self.dut.send_expect(\n- \"set_hash_global_config 0 toeplitz ipv4-tcp enable\", \"testpmd> \")\n- self.dut.send_expect(\"port start all\", \"testpmd> \")\n- res = self.pmdout.wait_link_status_up(\"all\")\n- self.verify(res is True, \"link is donw\")\n-\n- self.dut.send_expect(\n- \"port config all rss tcp\", \"testpmd> \")\n- self.send_packet(self.itf, \"ipv4-tcp\")\n-\n- # set hash input set to \"none\" by testpmd on dut\n- self.dut.send_expect(\"set_hash_input_set 0 ipv4-tcp none select\", \"testpmd> \")\n- self.send_packet(self.itf, \"ipv4-tcp\")\n-\n- # set hash input set by testpmd on dut, enable src-ipv4 & dst-ipv4\n- self.dut.send_expect(\"set_hash_input_set 0 ipv4-tcp src-ipv4 add\", \"testpmd> \")\n- self.dut.send_expect(\"set_hash_input_set 0 ipv4-tcp dst-ipv4 add\", \"testpmd> \")\n- self.send_packet(self.itf, \"ipv4-tcp\")\n-\n- # set hash input set by testpmd on dut, enable src-ipv4, dst-ipv4, tcp-src-port, tcp-dst-port\n- self.dut.send_expect(\"set_hash_input_set 0 ipv4-tcp tcp-src-port add\", \"testpmd> \")\n- self.dut.send_expect(\"set_hash_input_set 0 ipv4-tcp tcp-dst-port add\", \"testpmd> \")\n- self.send_packet(self.itf, \"ipv4-tcp\")\n-\n- # set hash input set by testpmd on dut, enable tcp-src-port, tcp-dst-port\n- self.dut.send_expect(\"set_hash_input_set 0 ipv4-tcp none select\", \"testpmd> \")\n- self.dut.send_expect(\"set_hash_input_set 0 ipv4-tcp tcp-src-port add\", \"testpmd> \")\n- self.dut.send_expect(\"set_hash_input_set 0 ipv4-tcp tcp-dst-port add\", \"testpmd> \")\n- self.send_packet(self.itf, \"ipv4-tcp\")\n-\n- self.dut.send_expect(\"quit\", \"# \", 30)\n-\n- self.result_table_print()\n- result_rows = self.result_table_getrows()\n- self.verify(len(result_rows) > 1, \"There is no data in the table, testcase failed!\")\n-\n- if ((result_rows[1][1] == result_rows[2][1]) or (result_rows[1][3] == result_rows[2][3])):\n- flag = 0\n- self.verify(flag, \"The two hash values are the same, rss_granularity_config failed!\")\n- elif ((result_rows[1][1] == result_rows[3][1]) or (result_rows[1][3] == result_rows[3][3])):\n- flag = 0\n- self.verify(flag, \"The two hash values are the same, rss_granularity_config failed!\")\n- elif ((result_rows[2][1] == result_rows[3][1]) or (result_rows[2][3] == result_rows[3][3])):\n- flag = 0\n- self.verify(flag, \"The two hash values are the same, rss_granularity_config failed!\")\n- elif ((result_rows[1][1] == result_rows[5][1]) or (result_rows[1][3] == result_rows[5][3])):\n- flag = 0\n- self.verify(flag, \"The two hash values are the same, rss_granularity_config failed!\")\n- elif ((result_rows[2][1] == result_rows[5][1]) or (result_rows[2][3] == result_rows[5][3])):\n- flag = 0\n- self.verify(flag, \"The two hash values are the same, rss_granularity_config failed!\")\n- elif ((result_rows[3][1] == result_rows[5][1]) or (result_rows[3][3] == result_rows[5][3])):\n- flag = 0\n- self.verify(flag, \"The two hash values are the same, rss_granularity_config failed!\")\n- elif ((result_rows[1][1] != result_rows[4][1]) or (result_rows[1][3] != result_rows[4][3])):\n- flag = 0\n- self.verify(flag, \"The two hash values are different, rss_granularity_config failed!\")\n-\n- def test_ipv4_udp(self):\n- \"\"\"\n- Test with flow type ipv4-udp.\n- \"\"\"\n- flag = 1\n-\n- # test with different rss queues\n- for queue in testQueues:\n- self.pmdout.start_testpmd(\n- \"Default\", \" --portmask=0x1 --rxq=%d --txq=%d\" % (queue, queue))\n-\n- self.dut.send_expect(\"set verbose 8\", \"testpmd> \")\n- self.dut.send_expect(\"set fwd rxonly\", \"testpmd> \")\n-\n- self.dut.send_expect(\"port stop all\", \"testpmd> \")\n- self.dut.send_expect(\n- \"set_hash_global_config 0 toeplitz ipv4-udp enable\", \"testpmd> \")\n- self.dut.send_expect(\"port start all\", \"testpmd> \")\n- res = self.pmdout.wait_link_status_up(\"all\")\n- self.verify(res is True, \"link is donw\")\n-\n- self.dut.send_expect(\n- \"port config all rss udp\", \"testpmd> \")\n- self.send_packet(self.itf, \"ipv4-udp\")\n-\n- # set hash input set to \"none\" by testpmd on dut\n- self.dut.send_expect(\"set_hash_input_set 0 ipv4-udp none select\", \"testpmd> \")\n- self.send_packet(self.itf, \"ipv4-udp\")\n-\n- # set hash input set by testpmd on dut, enable src-ipv4 & dst-ipv4\n- self.dut.send_expect(\"set_hash_input_set 0 ipv4-udp src-ipv4 add\", \"testpmd> \")\n- self.dut.send_expect(\"set_hash_input_set 0 ipv4-udp dst-ipv4 add\", \"testpmd> \")\n- self.send_packet(self.itf, \"ipv4-udp\")\n-\n- # set hash input set by testpmd on dut, enable src-ipv4, dst-ipv4, udp-src-port, udp-dst-port\n- self.dut.send_expect(\"set_hash_input_set 0 ipv4-udp udp-src-port add\", \"testpmd> \")\n- self.dut.send_expect(\"set_hash_input_set 0 ipv4-udp udp-dst-port add\", \"testpmd> \")\n- self.send_packet(self.itf, \"ipv4-udp\")\n-\n- # set hash input set by testpmd on dut, enable udp-src-port, udp-dst-port\n- self.dut.send_expect(\"set_hash_input_set 0 ipv4-udp none select\", \"testpmd> \")\n- self.dut.send_expect(\"set_hash_input_set 0 ipv4-udp udp-src-port add\", \"testpmd> \")\n- self.dut.send_expect(\"set_hash_input_set 0 ipv4-udp udp-dst-port add\", \"testpmd> \")\n- self.send_packet(self.itf, \"ipv4-udp\")\n-\n- self.dut.send_expect(\"quit\", \"# \", 30)\n-\n- self.result_table_print()\n- result_rows = self.result_table_getrows()\n- self.verify(len(result_rows) > 1, \"There is no data in the table, testcase failed!\")\n-\n- # check the results\n- if ((result_rows[1][1] == result_rows[2][1])or(result_rows[1][3] == result_rows[2][3])):\n- flag = 0\n- self.verify(flag, \"The two hash values are the same, rss_granularity_config failed!\")\n- elif ((result_rows[1][1] == result_rows[3][1])or(result_rows[1][3] == result_rows[3][3])):\n- flag = 0\n- self.verify(flag, \"The two hash values are the same, rss_granularity_config failed!\")\n- elif ((result_rows[2][1] == result_rows[3][1])or(result_rows[2][3] == result_rows[3][3])):\n- flag = 0\n- self.verify(flag, \"The two hash values are the same, rss_granularity_config failed!\")\n- elif ((result_rows[1][1] == result_rows[5][1])or(result_rows[1][3] == result_rows[5][3])):\n- flag = 0\n- self.verify(flag, \"The two hash values are the same, rss_granularity_config failed!\")\n- elif ((result_rows[2][1] == result_rows[5][1])or(result_rows[2][3] == result_rows[5][3])):\n- flag = 0\n- self.verify(flag, \"The two hash values are the same, rss_granularity_config failed!\")\n- elif ((result_rows[3][1] == result_rows[5][1])or(result_rows[3][3] == result_rows[5][3])):\n- flag = 0\n- self.verify(flag, \"The two hash values are the same, rss_granularity_config failed!\")\n- elif ((result_rows[1][1] != result_rows[4][1])or(result_rows[1][3] != result_rows[4][3])):\n- flag = 0\n- self.verify(flag, \"The two hash values are different, rss_granularity_config failed!\")\n-\n- def test_ipv6_tcp(self):\n- \"\"\"\n- Test with flow type ipv6-tcp.\n- \"\"\"\n- flag = 1\n-\n- # test with different rss queues\n- for queue in testQueues:\n- self.pmdout.start_testpmd(\n- \"Default\", \" --portmask=0x1 --rxq=%d --txq=%d\" % (queue, queue))\n-\n- self.dut.send_expect(\"set verbose 8\", \"testpmd> \")\n- self.dut.send_expect(\"set fwd rxonly\", \"testpmd> \")\n-\n- self.dut.send_expect(\"port stop all\", \"testpmd> \")\n- self.dut.send_expect(\n- \"set_hash_global_config 0 toeplitz ipv6-tcp enable\", \"testpmd> \")\n- self.dut.send_expect(\"port start all\", \"testpmd> \")\n- res = self.pmdout.wait_link_status_up(\"all\")\n- self.verify(res is True, \"link is donw\")\n-\n- self.dut.send_expect(\n- \"port config all rss tcp\", \"testpmd> \")\n- self.send_packet(self.itf, \"ipv6-tcp\")\n-\n- # set hash input set to \"none\" by testpmd on dut\n- self.dut.send_expect(\"set_hash_input_set 0 ipv6-tcp none select\", \"testpmd> \")\n- self.send_packet(self.itf, \"ipv6-tcp\")\n-\n- # set hash input set by testpmd on dut, enable src-ipv6 & dst-ipv6\n- self.dut.send_expect(\"set_hash_input_set 0 ipv6-tcp src-ipv6 add\", \"testpmd> \")\n- self.dut.send_expect(\"set_hash_input_set 0 ipv6-tcp dst-ipv6 add\", \"testpmd> \")\n- self.send_packet(self.itf, \"ipv6-tcp\")\n-\n- # set hash input set by testpmd on dut, enable src-ipv6, dst-ipv6, tcp-src-port, tcp-dst-port\n- self.dut.send_expect(\"set_hash_input_set 0 ipv6-tcp tcp-src-port add\", \"testpmd> \")\n- self.dut.send_expect(\"set_hash_input_set 0 ipv6-tcp tcp-dst-port add\", \"testpmd> \")\n- self.send_packet(self.itf, \"ipv6-tcp\")\n-\n- # set hash input set by testpmd on dut, enable tcp-src-port, tcp-dst-port\n- self.dut.send_expect(\"set_hash_input_set 0 ipv6-tcp none select\", \"testpmd> \")\n- self.dut.send_expect(\"set_hash_input_set 0 ipv6-tcp tcp-src-port add\", \"testpmd> \")\n- self.dut.send_expect(\"set_hash_input_set 0 ipv6-tcp tcp-dst-port add\", \"testpmd> \")\n- self.send_packet(self.itf, \"ipv6-tcp\")\n-\n- self.dut.send_expect(\"quit\", \"# \", 30)\n-\n- self.result_table_print()\n- result_rows = self.result_table_getrows()\n- self.verify(len(result_rows) > 1, \"There is no data in the table, testcase failed!\")\n-\n- # check the results\n- if ((result_rows[1][1] == result_rows[2][1])or(result_rows[1][3] == result_rows[2][3])):\n- flag = 0\n- self.verify(flag, \"The two hash values are the same, rss_granularity_config failed!\")\n- elif ((result_rows[1][1] == result_rows[3][1])or(result_rows[1][3] == result_rows[3][3])):\n- flag = 0\n- self.verify(flag, \"The two hash values are the same, rss_granularity_config failed!\")\n- elif ((result_rows[2][1] == result_rows[3][1])or(result_rows[2][3] == result_rows[3][3])):\n- flag = 0\n- self.verify(flag, \"The two hash values are the same, rss_granularity_config failed!\")\n- elif ((result_rows[1][1] == result_rows[5][1])or(result_rows[1][3] == result_rows[5][3])):\n- flag = 0\n- self.verify(flag, \"The two hash values are the same, rss_granularity_config failed!\")\n- elif ((result_rows[2][1] == result_rows[5][1])or(result_rows[2][3] == result_rows[5][3])):\n- flag = 0\n- self.verify(flag, \"The two hash values are the same, rss_granularity_config failed!\")\n- elif ((result_rows[3][1] == result_rows[5][1])and(result_rows[3][3] == result_rows[5][3])):\n- flag = 0\n- self.verify(flag, \"The two hash values are the same, rss_granularity_config failed!\")\n- elif ((result_rows[1][1] != result_rows[4][1])or(result_rows[1][3] != result_rows[4][3])):\n- flag = 0\n- self.verify(flag, \"The two hash values are different, rss_granularity_config failed!\")\n-\n- def test_ipv6_udp(self):\n- \"\"\"\n- Test with flow type ipv6-udp.\n- \"\"\"\n- flag = 1\n-\n- # test with different rss queues\n- for queue in testQueues:\n- self.pmdout.start_testpmd(\n- \"Default\", \" --portmask=0x1 --rxq=%d --txq=%d\" % (queue, queue))\n-\n- self.dut.send_expect(\"set verbose 8\", \"testpmd> \")\n- self.dut.send_expect(\"set fwd rxonly\", \"testpmd> \")\n-\n- self.dut.send_expect(\"port stop all\", \"testpmd> \")\n- self.dut.send_expect(\n- \"set_hash_global_config 0 toeplitz ipv6-udp enable\", \"testpmd> \")\n- self.dut.send_expect(\"port start all\", \"testpmd> \")\n- res = self.pmdout.wait_link_status_up(\"all\")\n- self.verify(res is True, \"link is donw\")\n-\n- self.dut.send_expect(\n- \"port config all rss udp\", \"testpmd> \")\n- self.send_packet(self.itf, \"ipv6-udp\")\n-\n- # set hash input set to \"none\" by testpmd on dut\n- self.dut.send_expect(\"set_hash_input_set 0 ipv6-udp none select\", \"testpmd> \")\n- self.send_packet(self.itf, \"ipv6-udp\")\n-\n- # set hash input set by testpmd on dut, enable src-ipv6 & dst-ipv6\n- self.dut.send_expect(\"set_hash_input_set 0 ipv6-udp src-ipv6 add\", \"testpmd> \")\n- self.dut.send_expect(\"set_hash_input_set 0 ipv6-udp dst-ipv6 add\", \"testpmd> \")\n- self.send_packet(self.itf, \"ipv6-udp\")\n-\n- # set hash input set by testpmd on dut, enable src-ipv6, dst-ipv6, udp-src-port, udp-dst-port\n- self.dut.send_expect(\"set_hash_input_set 0 ipv6-udp udp-src-port add\", \"testpmd> \")\n- self.dut.send_expect(\"set_hash_input_set 0 ipv6-udp udp-dst-port add\", \"testpmd> \")\n- self.send_packet(self.itf, \"ipv6-udp\")\n-\n- # set hash input set by testpmd on dut, enable udp-src-port, udp-dst-port\n- self.dut.send_expect(\"set_hash_input_set 0 ipv6-udp none select\", \"testpmd> \")\n- self.dut.send_expect(\"set_hash_input_set 0 ipv6-udp udp-src-port add\", \"testpmd> \")\n- self.dut.send_expect(\"set_hash_input_set 0 ipv6-udp udp-dst-port add\", \"testpmd> \")\n- self.send_packet(self.itf, \"ipv6-udp\")\n-\n- self.dut.send_expect(\"quit\", \"# \", 30)\n-\n- self.result_table_print()\n- result_rows = self.result_table_getrows()\n- self.verify(len(result_rows) > 1, \"There is no data in the table, testcase failed!\")\n-\n- # check the results\n- if ((result_rows[1][1] == result_rows[2][1])or(result_rows[1][3] == result_rows[2][3])):\n- flag = 0\n- self.verify(flag, \"The two hash values are the same, rss_granularity_config failed!\")\n- elif ((result_rows[1][1] == result_rows[3][1])or(result_rows[1][3] == result_rows[3][3])):\n- flag = 0\n- self.verify(flag, \"The two hash values are the same, rss_granularity_config failed!\")\n- elif ((result_rows[2][1] == result_rows[3][1])or(result_rows[2][3] == result_rows[3][3])):\n- flag = 0\n- self.verify(flag, \"The two hash values are the same, rss_granularity_config failed!\")\n- elif ((result_rows[1][1] == result_rows[5][1])or(result_rows[1][3] == result_rows[5][3])):\n- flag = 0\n- self.verify(flag, \"The two hash values are the same, rss_granularity_config failed!\")\n- elif ((result_rows[2][1] == result_rows[5][1])or(result_rows[2][3] == result_rows[5][3])):\n- flag = 0\n- self.verify(flag, \"The two hash values are the same, rss_granularity_config failed!\")\n- elif ((result_rows[3][1] == result_rows[5][1])and(result_rows[3][3] == result_rows[5][3])):\n- flag = 0\n- self.verify(flag, \"The two hash values are the same, rss_granularity_config failed!\")\n- elif ((result_rows[1][1] != result_rows[4][1])or(result_rows[1][3] != result_rows[4][3])):\n- flag = 0\n- self.verify(flag, \"The two hash values are different, rss_granularity_config failed!\")\n-\n- def test_GRE_keys(self):\n- \"\"\"\n- Test with 32-bit GRE keys and 24-bit GRE keys.\n- \"\"\"\n- flag = 1\n-\n- # test with different rss queues\n- for queue in testQueues:\n- self.pmdout.start_testpmd(\n- \"Default\", \" --portmask=0x1 --rxq=%d --txq=%d\" % (queue, queue))\n-\n- self.dut.send_expect(\"set verbose 8\", \"testpmd> \")\n- self.dut.send_expect(\"set fwd rxonly\", \"testpmd> \")\n-\n- self.dut.send_expect(\"port stop all\", \"testpmd> \")\n- self.dut.send_expect(\n- \"set_hash_global_config 0 toeplitz ipv4-other enable\", \"testpmd> \")\n- self.dut.send_expect(\"port start all\", \"testpmd> \")\n- res = self.pmdout.wait_link_status_up(\"all\")\n- self.verify(res is True, \"link is donw\")\n-\n- self.dut.send_expect(\n- \"port config all rss all\", \"testpmd> \")\n- self.send_packet(self.itf, \"ipv4-other\")\n-\n- # set hash input set to \"none\" by testpmd on dut\n- self.dut.send_expect(\"set_hash_input_set 0 ipv4-other none select\", \"testpmd> \")\n- self.send_packet(self.itf, \"ipv4-other\")\n-\n- # set hash input set by testpmd on dut, enable src-ipv4 & dst-ipv4\n- self.dut.send_expect(\"set_hash_input_set 0 ipv4-other src-ipv4 add\", \"testpmd> \")\n- self.dut.send_expect(\"set_hash_input_set 0 ipv4-other dst-ipv4 add\", \"testpmd> \")\n- self.send_packet(self.itf, \"ipv4-other\")\n-\n- # set hash input set by testpmd on dut, enable src-ipv4, dst-ipv4, gre-key-len 3\n- self.dut.send_expect(\"global_config 0 gre-key-len 3\", \"testpmd> \")\n- self.dut.send_expect(\"set_hash_input_set 0 ipv4-other gre-key add\", \"testpmd> \")\n- self.send_packet(self.itf, \"ipv4-other\")\n-\n- # set hash input set by testpmd on dut, enable src-ipv4, dst-ipv4, gre-key-len 4\n- self.dut.send_expect(\"global_config 0 gre-key-len 4\", \"testpmd> \")\n- self.send_packet(self.itf, \"ipv4-other\")\n-\n- self.dut.send_expect(\"quit\", \"# \", 30)\n-\n- self.result_table_print()\n- result_rows = self.result_table_getrows()\n- self.verify(len(result_rows) > 1, \"There is no data in the table, testcase failed!\")\n-\n- # check the results\n- if ((result_rows[1][1] == result_rows[2][1])or(result_rows[1][3] == result_rows[2][3])):\n- flag = 0\n- self.verify(flag, \"The two hash values are the same, rss_granularity_config failed!\")\n- elif ((result_rows[1][1] != result_rows[3][1])or(result_rows[1][3] != result_rows[3][3])):\n- flag = 0\n- self.verify(flag, \"The two hash values are different, rss_granularity_config failed!\")\n- elif ((result_rows[1][1] == result_rows[4][1])or(result_rows[1][3] == result_rows[4][3])):\n- flag = 0\n- self.verify(flag, \"The two hash values are the same, rss_granularity_config failed!\")\n- elif ((result_rows[4][1] == result_rows[5][1])or(result_rows[4][3] == result_rows[5][3])):\n- flag = 0\n- self.verify(flag, \"The two hash values are the same, rss_granularity_config failed!\")\n-\n- def tear_down(self):\n- \"\"\"\n- Run after each test case.\n- \"\"\"\n- self.dut.kill_all()\n-\n- def tear_down_all(self):\n- \"\"\"\n- Run after each test suite.\n- \"\"\"\n- pass\n-\n", "prefixes": [ "V3", "3/3" ] }{ "id": 104816, "url": "