get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/104844/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 104844,
    "url": "http://patchwork.dpdk.org/api/patches/104844/?format=api",
    "web_url": "http://patchwork.dpdk.org/project/dts/patch/20211203101311.148370-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": "<20211203101311.148370-3-yanx.xia@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dts/20211203101311.148370-3-yanx.xia@intel.com",
    "date": "2021-12-03T10:13:11",
    "name": "[V1,3/3] tests/fdir: delete fdir",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": false,
    "hash": "760f43bdd97cdef23276e1e7519705ba64dd6c24",
    "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/20211203101311.148370-3-yanx.xia@intel.com/mbox/",
    "series": [
        {
            "id": 20843,
            "url": "http://patchwork.dpdk.org/api/series/20843/?format=api",
            "web_url": "http://patchwork.dpdk.org/project/dts/list/?series=20843",
            "date": "2021-12-03T10:13:09",
            "name": "[V1,1/3] test_plans/fdir_test_plan: delete fdir",
            "version": 1,
            "mbox": "http://patchwork.dpdk.org/series/20843/mbox/"
        }
    ],
    "comments": "http://patchwork.dpdk.org/api/patches/104844/comments/",
    "check": "warning",
    "checks": "http://patchwork.dpdk.org/api/patches/104844/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 198A1A0548;\n\tFri,  3 Dec 2021 03:13:16 +0100 (CET)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 123B5426FB;\n\tFri,  3 Dec 2021 03:13:16 +0100 (CET)",
            "from mga04.intel.com (mga04.intel.com [192.55.52.120])\n by mails.dpdk.org (Postfix) with ESMTP id 289A3426FA\n for <dts@dpdk.org>; Fri,  3 Dec 2021 03:13:13 +0100 (CET)",
            "from orsmga004.jf.intel.com ([10.7.209.38])\n by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 02 Dec 2021 18:13:12 -0800",
            "from unknown (HELO dpdk.lan) ([10.240.183.77])\n by orsmga004-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 02 Dec 2021 18:13:10 -0800"
        ],
        "X-IronPort-AV": [
            "E=McAfee;i=\"6200,9189,10186\"; a=\"235629874\"",
            "E=Sophos;i=\"5.87,283,1631602800\"; d=\"scan'208\";a=\"235629874\"",
            "E=Sophos;i=\"5.87,283,1631602800\"; d=\"scan'208\";a=\"610220014\""
        ],
        "From": "Yan Xia <yanx.xia@intel.com>",
        "To": "dts@dpdk.org",
        "Cc": "Yan Xia <yanx.xia@intel.com>",
        "Subject": "[dts][PATCH V1 3/3] tests/fdir: delete fdir",
        "Date": "Fri,  3 Dec 2021 10:13:11 +0000",
        "Message-Id": "<20211203101311.148370-3-yanx.xia@intel.com>",
        "X-Mailer": "git-send-email 2.33.1",
        "In-Reply-To": "<20211203101311.148370-1-yanx.xia@intel.com>",
        "References": "<20211203101311.148370-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 fdir\ndpdk commit-id: 1be514fbc ethdev: remove legacy FDIR filter type support\n\nSigned-off-by: Yan Xia <yanx.xia@intel.com>\n---\n tests/TestSuite_fdir.py | 1335 ---------------------------------------\n 1 file changed, 1335 deletions(-)\n delete mode 100644 tests/TestSuite_fdir.py",
    "diff": "diff --git a/tests/TestSuite_fdir.py b/tests/TestSuite_fdir.py\ndeleted file mode 100644\nindex b418b68d..00000000\n--- a/tests/TestSuite_fdir.py\n+++ /dev/null\n@@ -1,1335 +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 82599 and fortville Flow Director Support in DPDK\n-\"\"\"\n-\n-import imp\n-import re\n-import string\n-import sys\n-import time\n-from time import sleep\n-\n-from scapy.utils import PcapWriter, socket, struct\n-\n-import framework.utils as utils\n-from framework.pktgen import PacketGeneratorHelper\n-from framework.pmd_output import PmdOutput\n-from framework.settings import HEADER_SIZE\n-from framework.test_case import TestCase\n-\n-\n-class TestFdir(TestCase):\n-\n-    #\n-    #\n-    # Utility methods and other non-test code.\n-    #\n-    ###########################################################################\n-    scapyCmds = []\n-\n-    def start_scapy(self):\n-        self.tester.scapy_foreground()\n-        self.tester.send_expect('scapy', '>>> ', 10)\n-        sleep(2)\n-\n-    def end_scapy(self):\n-        self.tester.send_expect(\"exit()\", \"#\")\n-\n-    def scapy_execute(self, timeout=60):\n-        for cmd in self.scapyCmds:\n-            self.tester.send_expect(cmd, \">>> \", timeout)\n-\n-        self.scapyCmds = []\n-\n-    def send_and_verify(self, condition, packet, queueid = -2):\n-        \"\"\"\n-        Send packages and verify behavior.\n-        \"\"\"\n-        self.scapyCmds.append(packet)\n-        self.dut.send_expect(\"start\", \"testpmd>\")\n-\n-        self.pmd_output = PmdOutput(self.dut)\n-        res = self.pmd_output.wait_link_status_up('all', timeout=15)\n-        self.verify(res is True, 'there have port link is down')\n-\n-        self.scapy_execute()\n-        time.sleep(.5)\n-        out = self.dut.get_session_output()\n-        self.dut.send_expect(\"stop\", \"testpmd>\")\n-\n-        if(self.nic in [\"kawela\", \"niantic\", \"fortville_eagle\", \"fortville_spirit\", \"fortville_spirit_single\", \"fortpark_TLV\",\"fortpark_BASE-T\", \"fortville_25g\", \"carlsville\"]):\n-            if (\"fwd\" == self.fdir_type):\n-                if condition:\n-                    self.queue = 2\n-                else:\n-                    self.queue = 0\n-            elif(\"drop\" == self.fdir_type):\n-                if condition:\n-                    self.queue = 0\n-                else:\n-                    self.queue = -1\n-            else:\n-                self.queue = queueid\n-\n-            result_scanner = r\"port ([0-9]+)/queue ([0-9]+): received ([0-9]+) packets\\s*src=[A-F\\d]{2}:[A-F\\d]{2}:[A-F\\d]{2}:[A-F\\d]{2}:[A-F\\d]{2}:[A-F\\d]{2} - dst=[A-F\\d]{2}:[A-F\\d]{2}:[A-F\\d]{2}:[A-F\\d]{2}:[A-F\\d]{2}:[A-F\\d]{2}\"\n-            scanner = re.compile(result_scanner, re.DOTALL)\n-            m = scanner.search(out)\n-\n-            print(\"**************Print sub-case result****************\")\n-            if m:\n-                m.groups()\n-                if (self.queue == int(m.group(2))):\n-                    print(utils.GREEN(\"Pass: queue id is \" + m.group(2)))\n-                    self.verify(1, \"Pass\")\n-                else:\n-                    print(utils.RED(\"Fail: queue id is \" + m.group(2)))\n-                    self.verify(0, \"Fail\")\n-                    print(out)\n-            else:\n-                print(\"not match\")\n-                if (-1 == self.queue):\n-                    print(utils.GREEN(\"Pass: fdir should not match \"))\n-                    self.verify(1, \"Pass\")\n-                else:\n-                    print(utils.RED(\"Fail\"))\n-                    self.verify(0, \"Fail\")\n-                    print(out)\n-            print(\"**************Print sub-case result****************\")\n-\n-    #\n-    #\n-    #\n-    # Test cases.\n-    #\n-    def set_up_all(self):\n-        \"\"\"\n-        Run at the start of each test suite.\n-\n-        PMD prerequisites.\n-        \"\"\"\n-        #self.verify('bsdapp' not in self.path, \"FDIR not support freebsd\")\n-        # this feature support Fortville, Niantic\n-        #self.verify(self.nic in [\"kawela_2\", \"niantic\", \"bartonhills\", \"82545EM\",\n-        #                         \"82540EM\", \"springfountain\", \"fortville_eagle\",\n-        #                         \"fortville_spirit\", \"fortville_spirit_single\"],\n-        #            \"NIC Unsupported: \" + str(self.nic))\n-\n-        # Based on h/w type, choose how many ports to use\n-        self.dut_ports = self.dut.get_ports(self.nic)\n-        # Verify that enough ports are available\n-        self.verify(len(self.dut_ports) >= 2, \"Insufficient ports for testing\")\n-\n-        # Verify that enough threads are available\n-        self.all_cores_mask = utils.create_mask(self.dut.get_core_list(\"all\"))\n-        cores = self.dut.get_core_list(\"1S/5C/1T\")\n-        self.verify(cores is not None, \"Insufficient cores for speed testing\")\n-        self.coreMask = utils.create_mask(cores)\n-        self.portMask = utils.create_mask([self.dut_ports[0], self.dut_ports[1]])\n-        self.ports_socket = self.dut.get_numa_id(self.dut_ports[0])\n-        self.dut_rx_port = self.tester.get_local_port(self.dut_ports[0])\n-        self.dut_rx_interface = self.tester.get_interface(self.dut_rx_port)\n-        self.dut_tx_port = self.tester.get_local_port(self.dut_ports[1])\n-        self.dut_tx_interface = self.tester.get_interface(self.dut_rx_port)\n-        self.path=self.dut.apps_name['test-pmd']\n-\n-        self.blocklist = \"\"\n-\n-        self.headers_size = HEADER_SIZE['eth'] + HEADER_SIZE[\n-            'ip'] + HEADER_SIZE['udp']\n-        self.src_ip = \"192.168.1.1\"\n-        self.dst_ip = \"192.168.2.1\"\n-        self.default_queue = 2\n-\n-        # performance test parameter\n-        # self.frame_sizes = [1500]\n-        self.frame_sizes = [64, 65, 128, 256, 512, 1024, 1280, 1500]\n-        self.rxfreet_values = [0, 8, 16, 32, 64, 128]\n-        \"\"\"\n-        self.test_cycles = [{'cores': '1S/1C/1T', 'Mpps': {}, 'pct': {}},\n-                            {'cores': '1S/1C/2T', 'Mpps': {}, 'pct': {}},\n-                            {'cores': '1S/2C/1T', 'Mpps': {}, 'pct': {}},\n-                            {'cores': '1S/2C/2T', 'Mpps': {}, 'pct': {}},\n-                            {'cores': '1S/4C/2T', 'Mpps': {}, 'pct': {}}\n-                            ]\n-        \"\"\"\n-        self.test_cycles = [{'cores': '1S/4C/2T', 'Mpps': {}, 'pct': {}}]\n-\n-        # Niantic only support 2bytes payload, Fortville support 16 bytes\n-        self.flexbytes = [{'length': 2, 'flexbytes': '0x11,0x11', 'payload': '\\\\x11\\\\x11'},\n-                          {'length': 16, 'flexbytes': '0x11,0x11,0x22,0x22,0x33,0x33,0x44,0x44,0x55,0x55,0x66,0x66,0x77,0x77,0x88,0x88', 'payload': '\\\\x11\\\\x11\\\\x22\\\\x22\\\\x33\\\\x33\\\\x44\\\\x44\\\\x55\\\\x55\\\\x66\\\\x66\\\\x77\\\\x77\\\\x88\\\\x88'}\n-                          ]\n-\n-        # self.test_types = ['fdir_2flexbytes']\n-        self.test_types = ['fdir_disable', 'fdir_enable', 'fdir_noflexbytes', 'fdir_2flexbytes', 'fdir_16flexbytes']\n-        \"\"\"\n-        self.flows= [{\"flows\":1, \"rules\":1},\n-                     {\"flows\":64, \"rules\":16},\n-                     {\"flows\":64, \"rules\":512}\n-                     #{\"flows\":8192, \"rules\":8192}\n-                     ]\n-        \"\"\"\n-        self.flows = [{\"flows\": 8192, \"rules\": 8192}]\n-        # performance report head line\n-        self.table_header = ['Frame Size']\n-        for test_cycle in self.test_cycles:\n-            self.table_header.append(\"%s Mpps\" % test_cycle['cores'])\n-            self.table_header.append(\"% linerate\")\n-        # create an instance to set stream field setting\n-        self.pktgen_helper = PacketGeneratorHelper()\n-\n-    def set_up(self):\n-        \"\"\"\n-        Run before each test case.\n-        \"\"\"\n-        self.start_scapy()\n-\n-    def fdir_set_rule(self):\n-        \"\"\"\n-        Fdir Performance Benchmarking set rules\n-        \"\"\"\n-        self.dut.send_expect(\"port stop %s\" % self.dut_ports[0], \"testpmd>\")\n-        if(self.nic in [\"fortville_eagle\", \"fortville_spirit\", \"fortville_spirit_single\", \"fortpark_TLV\",\"fortpark_BASE-T\", \"fortville_25g\", \"carlsville\"]):\n-            self.dut.send_expect(\"flow_director_flex_payload %s l2 (0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15)\" % self.dut_ports[0], \"testpmd>\")\n-            self.dut.send_expect(\"flow_director_flex_payload %s l3 (0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15)\" % self.dut_ports[0], \"testpmd>\")\n-            self.dut.send_expect(\"flow_director_flex_payload %s l4 (0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15)\" % self.dut_ports[0], \"testpmd>\")\n-            self.dut.send_expect(\"flow_director_flex_mask %s flow all (0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff)\" % self.dut_ports[0], \"testpmd>\")\n-        elif (self.nic in [\"niantic\"]):\n-            self.dut.send_expect(\"flow_director_flex_payload %s raw (12,13)\" % self.dut_ports[0], \"testpmd>\")\n-            self.dut.send_expect(\"flow_director_flex_mask %s flow raw (0xff,0xff)\" % self.dut_ports[0], \"testpmd>\")\n-        self.dut.send_expect(\"port start %s\" % self.dut_ports[0], \"testpmd>\")\n-\n-    def fdir_get_flexbytes(self, sctp=False):\n-\n-        \"\"\"\n-        Fdir get flexbytes and payload according NIC\n-        \"\"\"\n-\n-        if(self.nic in [\"fortville_eagle\", \"fortville_spirit\", \"fortville_spirit_single\", \"fortpark_TLV\", \"fortpark_BASE-T\",\"fortville_25g\", \"carlsville\", \"foxville\"]):\n-            if not sctp:\n-                self.flexbytes = \"0x11,0x11,0x22,0x22,0x33,0x33,0x44,0x44,0x55,0x55,0x66,0x66,0x77,0x77,0x77,0x77\"\n-            else:\n-                self.flexbytes = '0x0,0x0,0x0,0x20,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0'\n-            self.payload = b'\\x11\\x11\\x22\\x22\\x33\\x33\\x44\\x44\\x55\\x55\\x66\\x66\\x77\\x77\\x77\\x77'\n-            self.flexlength = 16\n-        elif (self.nic in [\"niantic\", \"sagepond\", \"sageville\"]):\n-            self.flexbytes = \"0x00,0x00\"\n-            self.payload = b'\\x11\\x11\\x22\\x22\\x33\\x33\\x44\\x44\\x55\\x55\\x66\\x66\\x77\\x77\\x77\\x77'\n-            self.flexlength = 2\n-        self.payload = str(self.payload)\n-        self.payload = self.payload.split(\"'\")[1]\n-\n-    def test_fdir_noflexword_fwd_ipv4(self):\n-        \"\"\"\n-        FDir signature matching mode.\n-        \"\"\"\n-\n-        self.dut.kill_all()\n-        self.dut.send_expect(\"%s -c %s -n 4 -- -i --portmask=%s --disable-rss  --rxq=4 --txq=4 --nb-cores=4  --nb-ports=1 --pkt-filter-mode=perfect\" % (self.path, self.coreMask, utils.create_mask([self.dut_ports[0]])), \"testpmd>\", 120)\n-        self.dut.send_expect(\"set verbose 1\", \"testpmd>\")\n-        self.dut.send_expect(\"set fwd rxonly\", \"testpmd>\")\n-\n-        # fwd command testing\n-        self.fdir_type = \"fwd\"\n-\n-        # ipv4 ip\n-        self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv4-other src 192.168.0.1 dst 192.168.0.2  tos 2 proto 20 ttl 40 vlan 0 flexbytes () fwd pf queue %d fd_id %d \" % (self.dut_ports[0], 2, 1), \"testpmd>\")\n-        self.send_and_verify(True, 'sendp([Ether(src=get_if_hwaddr(\"%s\"), dst=\"00:1B:21:8E:B2:30\")/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")], iface=\"%s\")' % (self.dut_rx_interface, self.dut_rx_interface))\n-        self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv4-other src 192.168.0.1 dst 192.168.0.2  tos 2 proto 20 ttl 40 vlan 0 flexbytes () fwd pf queue %d fd_id %d \" % (self.dut_ports[0], 2, 1), \"testpmd>\")\n-        self.send_and_verify(False, 'sendp([Ether(src=get_if_hwaddr(\"%s\"),dst=\"00:1B:21:8E:B2:30\")/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")], iface=\"%s\")' % (self.dut_rx_interface, self.dut_rx_interface))\n-\n-        # update command only work in niantic\n-        if (self.nic in [\"niantic\"]):\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv4-other src 192.168.0.1 dst 192.168.0.2  tos 2 proto 20 ttl 40 vlan 0 flexbytes () fwd pf queue %d fd_id %d \" % (self.dut_ports[0], 1, 1), \"testpmd>\")\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  update flow ipv4-other src 192.168.0.1 dst 192.168.0.2  tos 2 proto 20 ttl 40 vlan 0 flexbytes () fwd pf queue %d fd_id %d \" % (self.dut_ports[0], 2, 1), \"testpmd>\")\n-            self.send_and_verify(True, 'sendp([Ether(src=get_if_hwaddr(\"%s\"), dst=\"00:1B:21:8E:B2:30\")/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")], iface=\"%s\")' % (self.dut_rx_interface, self.dut_rx_interface))\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv4-other src 192.168.0.1 dst 192.168.0.2  tos 2 proto 20 ttl 40 vlan 0 flexbytes () fwd pf queue %d fd_id %d \" % (self.dut_ports[0], 2, 1), \"testpmd>\")\n-\n-        # ipv4 udp\n-        self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv4-udp src 192.168.0.1 1024 dst 192.168.0.2 1024  tos 2  ttl 40 vlan 0 flexbytes () fwd pf queue %d fd_id %d \" % (self.dut_ports[0], 2, 1), \"testpmd>\")\n-        self.send_and_verify(True, 'sendp([Ether(src=get_if_hwaddr(\"%s\"), dst=\"00:1B:21:8E:B2:30\")/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/UDP(sport=1024,dport=1024)], iface=\"%s\")' % (self.dut_rx_interface, self.dut_rx_interface))\n-        self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv4-udp src 192.168.0.1 1024 dst 192.168.0.2 1024  tos 2  ttl 40 vlan 0 flexbytes () fwd pf queue %d fd_id %d \" % (self.dut_ports[0], 2, 1), \"testpmd>\")\n-        self.send_and_verify(False, 'sendp([Ether(src=get_if_hwaddr(\"%s\"), dst=\"00:1B:21:8E:B2:30\")/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/UDP(sport=1024,dport=1024)], iface=\"%s\")' % (self.dut_rx_interface, self.dut_rx_interface))\n-\n-        if (self.nic in [\"niantic\"]):\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv4-udp src 192.168.0.1 1024 dst 192.168.0.2 1024  tos 2  ttl 40 vlan 0 flexbytes () fwd pf queue %d fd_id %d \" % (self.dut_ports[0], 1, 1), \"testpmd>\")\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  update flow ipv4-udp src 192.168.0.1 1024 dst 192.168.0.2 1024  tos 2  ttl 40 vlan 0 flexbytes () fwd pf queue %d fd_id %d \" % (self.dut_ports[0], 2, 1), \"testpmd>\")\n-            self.send_and_verify(True, 'sendp([Ether(src=get_if_hwaddr(\"%s\"), dst=\"00:1B:21:8E:B2:30\")/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/UDP(sport=1024,dport=1024)], iface=\"%s\")' % (self.dut_rx_interface, self.dut_rx_interface))\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv4-udp src 192.168.0.1 1024 dst 192.168.0.2 1024  tos 2  ttl 40 vlan 0 flexbytes () fwd pf queue %d fd_id %d \" % (self.dut_ports[0], 2, 1), \"testpmd>\")\n-\n-        # ipv4 tcp\n-        self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv4-tcp src 192.168.0.1 32 dst 192.168.0.2 32  tos 2  ttl 40 vlan 0 flexbytes () fwd pf queue %d fd_id %d \" % (self.dut_ports[0], 2, 1), \"testpmd>\")\n-        self.send_and_verify(True, 'sendp([Ether(src=get_if_hwaddr(\"%s\"), dst=\"00:1B:21:8E:B2:30\")/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/TCP(sport=32,dport=32)], iface=\"%s\")' % (self.dut_rx_interface, self.dut_rx_interface))\n-        self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv4-tcp src 192.168.0.1 32 dst 192.168.0.2 32  tos 2  ttl 40 vlan 0 flexbytes () fwd pf queue %d fd_id %d \" % (self.dut_ports[0], 2, 1), \"testpmd>\")\n-        self.send_and_verify(False, 'sendp([Ether(src=get_if_hwaddr(\"%s\"), dst=\"00:1B:21:8E:B2:30\")/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/TCP(sport=32,dport=32)], iface=\"%s\")' % (self.dut_rx_interface, self.dut_rx_interface))\n-        if (self.nic in [\"niantic\"]):\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv4-tcp src 192.168.0.1 32 dst 192.168.0.2 32  tos 2  ttl 40 vlan 0 flexbytes () fwd pf queue %d fd_id %d \" % (self.dut_ports[0], 1, 1), \"testpmd>\")\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  update flow ipv4-tcp src 192.168.0.1 32 dst 192.168.0.2 32  tos 2  ttl 40 vlan 0 flexbytes () fwd pf queue %d fd_id %d \" % (self.dut_ports[0], 2, 1), \"testpmd>\")\n-            self.send_and_verify(True, 'sendp([Ether(src=get_if_hwaddr(\"%s\"), dst=\"00:1B:21:8E:B2:30\")/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/TCP(sport=32,dport=32)], iface=\"%s\")' % (self.dut_rx_interface, self.dut_rx_interface))\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv4-tcp src 192.168.0.1 32 dst 192.168.0.2 32  tos 2  ttl 40 vlan 0 flexbytes () fwd pf queue %d fd_id %d \" % (self.dut_ports[0], 2, 1), \"testpmd>\")\n-\n-        # ipv4 sctp\n-        self.fdir_get_flexbytes(sctp=True)\n-        self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv4-sctp src 192.168.0.1 32 dst 192.168.0.2 32 verify_tag 1  tos 2  ttl 40 vlan 0 flexbytes () fwd pf queue %d fd_id %d \" % (self.dut_ports[0], 2, 1), \"testpmd>\")\n-        self.send_and_verify(True, 'sendp([Ether(src=get_if_hwaddr(\"%s\"), dst=\"00:1B:21:8E:B2:30\")/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/SCTP(sport=32, dport=32, tag=1)/SCTPChunkData(data=\"X\"*46)], iface=\"%s\")' % (self.dut_rx_interface, self.dut_rx_interface))\n-        self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv4-sctp src 192.168.0.1 32 dst 192.168.0.2 32 verify_tag 1  tos 2  ttl 40 vlan 0 flexbytes () fwd pf queue %d fd_id %d \" % (self.dut_ports[0], 2, 1), \"testpmd>\")\n-        self.send_and_verify(False, 'sendp([Ether(src=get_if_hwaddr(\"%s\"), dst=\"00:1B:21:8E:B2:30\")/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/SCTP(sport=32, dport=32, tag=1)/SCTPChunkData(data=\"X\"*46)], iface=\"%s\")' % (self.dut_rx_interface, self.dut_rx_interface))\n-        if (self.nic in [\"niantic\"]):\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv4-sctp src 192.168.0.1 32 dst 192.168.0.2 32 verify_tag 1  tos 2  ttl 40 vlan 0 flexbytes () fwd pf queue %d fd_id %d \" % (self.dut_ports[0], 1, 1), \"testpmd>\")\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  update flow ipv4-sctp src 192.168.0.1 32 dst 192.168.0.2 32  tos 2  ttl 40 vlan 0 flexbytes () fwd pf queue %d fd_id %d \" % (self.dut_ports[0], 2, 1), \"testpmd>\")\n-            self.send_and_verify(True, 'sendp([Ether(src=get_if_hwaddr(\"%s\"), dst=\"00:1B:21:8E:B2:30\")/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/SCTP(sport=32, dport=32, tag=1)/SCTPChunkData(data=\"X\"*46)], iface=\"%s\")' % (self.dut_rx_interface, self.dut_rx_interface))\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv4-sctp src 192.168.0.1 32 dst 192.168.0.2 32 verify_tag 1  tos 2  ttl 40 vlan 0 flexbytes () fwd pf queue %d fd_id %d \" % (self.dut_ports[0], 2, 1), \"testpmd>\")\n-        self.fdir_get_flexbytes()\n-\n-        # ipv4 frag\n-        # ip-frag only support in fortville\n-        if (self.nic in [\"fortville_eagle\", \"fortville_spirit\", \"fortville_spirit_single\", \"fortpark_TLV\",\"fortpark_BASE-T\", \"fortville_25g\", \"carlsville\"]):\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv4-other src 192.168.0.1 dst 192.168.0.2  tos 2 proto 20 ttl 40 vlan 0 flexbytes () fwd pf queue %d fd_id %d \" % (self.dut_ports[0], 3, 1), \"testpmd>\")\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv4-frag src 192.168.0.1 dst 192.168.0.2  tos 2   proto 20 ttl 40 vlan 0 flexbytes () fwd pf queue %d fd_id %d \" % (self.dut_ports[0], 2, 1), \"testpmd>\")\n-            self.send_and_verify(True, 'sendp([Ether(src=get_if_hwaddr(\"%s\"), dst=\"00:1B:21:8E:B2:30\")/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\", frag=1, flags=\"MF\")/Raw(load=\"X\"*46)], iface=\"%s\")' % (self.dut_rx_interface, self.dut_rx_interface))\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv4-other src 192.168.0.1 dst 192.168.0.2  tos 2 proto 20  ttl 40 vlan 0 flexbytes () fwd pf queue %d fd_id %d \" % (self.dut_ports[0], 3, 1), \"testpmd>\")\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv4-frag src 192.168.0.1 dst 192.168.0.2  tos 2 proto 20 ttl 40 vlan 0 flexbytes () fwd pf queue %d fd_id %d \" % (self.dut_ports[0], 2, 1), \"testpmd>\")\n-            self.send_and_verify(False, 'sendp([Ether(src=get_if_hwaddr(\"%s\"),dst=\"00:1B:21:8E:B2:30\")/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\", frag=1, flags=\"MF\")/Raw(load=\"X\"*46)], iface=\"%s\")' % (self.dut_rx_interface, self.dut_rx_interface))\n-\n-        self.dut.send_expect(\"quit\", \"# \", 30)\n-\n-    def test_fdir_noflexword_fwd_ipv6(self):\n-        \"\"\"\n-        FDir signature matching mode.\n-        \"\"\"\n-\n-        self.dut.kill_all()\n-        if self.nic in [\"niantic\", \"sagepond\", \"sageville\"]:\n-            # Niantic ipv6 only support signature mode\n-            self.dut.send_expect(\"%s -c %s -n 4 -- -i --portmask=%s --disable-rss  --rxq=4 --txq=4 --nb-cores=4  --nb-ports=1 --pkt-filter-mode=signature\" % (self.path, self.coreMask, utils.create_mask([self.dut_ports[0]])), \"testpmd>\", 120)\n-        elif self.nic in [\"fortville_eagle\", \"fortville_spirit\", \"fortville_spirit_single\", \"fortpark_TLV\", \"fortpark_BASE-T\",\"fortville_25g\", \"carlsville\"]:\n-            # Fortville ipv6 support perfect mode\n-            self.dut.send_expect(\"%s -c %s -n 4 -- -i --portmask=%s --disable-rss  --rxq=4 --txq=4 --nb-cores=4  --nb-ports=1 --pkt-filter-mode=perfect\" % (self.path, self.coreMask, utils.create_mask([self.dut_ports[0]])), \"testpmd>\", 120)\n-        self.dut.send_expect(\"set verbose 1\", \"testpmd>\")\n-        self.dut.send_expect(\"set fwd rxonly\", \"testpmd>\")\n-\n-        # fwd comand testing\n-        self.fdir_type = \"fwd\"\n-\n-        # ipv6 ip\n-        self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv6-other src FE80:0:0:0:200:1FF:FE00:200 dst 3555:5555:6666:6666:7777:7777:8888:8888  tos 2 proto 20 ttl 40 vlan 0 flexbytes () fwd pf queue %d fd_id %d \" % (self.dut_ports[0], 2, 1), \"testpmd>\")\n-        self.send_and_verify(True, 'sendp([Ether(src=get_if_hwaddr(\"%s\"), dst=\"00:1B:21:8E:B2:30\")/IPv6(src=\"FE80:0:0:0:200:1FF:FE00:200\", dst=\"3555:5555:6666:6666:7777:7777:8888:8888\")], iface=\"%s\")' % (self.dut_rx_interface, self.dut_rx_interface))\n-        self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv6-other src FE80:0:0:0:200:1FF:FE00:200 dst 3555:5555:6666:6666:7777:7777:8888:8888  tos 2 proto 20 ttl 40 vlan 0 flexbytes () fwd pf queue %d fd_id %d \" % (self.dut_ports[0], 2, 1), \"testpmd>\")\n-        self.send_and_verify(False, 'sendp([Ether(src=get_if_hwaddr(\"%s\"), dst=\"00:1B:21:8E:B2:30\")/IPv6(src=\"FE80:0:0:0:200:1FF:FE00:200\", dst=\"3555:5555:6666:6666:7777:7777:8888:8888\")], iface=\"%s\")' % (self.dut_rx_interface, self.dut_rx_interface))\n-        if (self.nic in [\"niantic\"]):\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv6-other src FE80:0:0:0:200:1FF:FE00:200 dst 3555:5555:6666:6666:7777:7777:8888:8888  tos 2 proto 20 ttl 40 vlan 0 flexbytes () fwd pf queue %d fd_id %d \" % (self.dut_ports[0], 1, 1), \"testpmd>\")\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  update flow ipv6-other src FE80:0:0:0:200:1FF:FE00:200 dst 3555:5555:6666:6666:7777:7777:8888:8888  tos 2 proto 20 ttl 40 vlan 0 flexbytes () fwd pf queue %d fd_id %d \" % (self.dut_ports[0], 2, 1), \"testpmd>\")\n-            self.send_and_verify(True, 'sendp([Ether(src=get_if_hwaddr(\"%s\"), dst=\"00:1B:21:8E:B2:30\")/IPv6(src=\"FE80:0:0:0:200:1FF:FE00:200\", dst=\"3555:5555:6666:6666:7777:7777:8888:8888\")], iface=\"%s\")' % (self.dut_rx_interface, self.dut_rx_interface))\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv6-other src FE80:0:0:0:200:1FF:FE00:200 dst 3555:5555:6666:6666:7777:7777:8888:8888  tos 2 proto 20 ttl 40 vlan 0 flexbytes () fwd pf queue %d fd_id %d \" % (self.dut_ports[0], 2, 1), \"testpmd>\")\n-\n-        # ipv6 udp\n-        self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv6-udp src FE80:0:0:0:200:1FF:FE00:200 1024 dst 3555:5555:6666:6666:7777:7777:8888:8888 1024  tos 2  ttl 40 vlan 0 flexbytes () fwd pf queue %d fd_id %d \" % (self.dut_ports[0], 2, 1), \"testpmd>\")\n-        self.send_and_verify(True, 'sendp([Ether(src=get_if_hwaddr(\"%s\"), dst=\"00:1B:21:8E:B2:30\")/IPv6(src=\"FE80:0:0:0:200:1FF:FE00:200\", dst=\"3555:5555:6666:6666:7777:7777:8888:8888\")/UDP(sport=1024,dport=1024)], iface=\"%s\")' % (self.dut_rx_interface, self.dut_rx_interface))\n-        self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv6-udp src FE80:0:0:0:200:1FF:FE00:200 1024 dst 3555:5555:6666:6666:7777:7777:8888:8888 1024  tos 2  ttl 40 vlan 0 flexbytes () fwd pf queue %d fd_id %d \" % (self.dut_ports[0], 2, 1), \"testpmd>\")\n-        self.send_and_verify(False, 'sendp([Ether(src=get_if_hwaddr(\"%s\"), dst=\"00:1B:21:8E:B2:30\")/IPv6(src=\"FE80:0:0:0:200:1FF:FE00:200\", dst=\"3555:5555:6666:6666:7777:7777:8888:8888\")/UDP(sport=1024,dport=1024)], iface=\"%s\")' % (self.dut_rx_interface, self.dut_rx_interface))\n-        if (self.nic in [\"niantic\"]):\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv6-udp src FE80:0:0:0:200:1FF:FE00:200 1024 dst 3555:5555:6666:6666:7777:7777:8888:8888 1024  tos 2  proto 20 ttl 40 vlan 0 flexbytes () fwd pf queue %d fd_id %d \" % (self.dut_ports[0], 1, 1), \"testpmd>\")\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  update flow ipv6-udp src FE80:0:0:0:200:1FF:FE00:200 1024 dst 3555:5555:6666:6666:7777:7777:8888:8888 1024  tos 2 ttl 40 vlan 0 flexbytes () fwd pf queue %d fd_id %d \" % (self.dut_ports[0], 2, 1), \"testpmd>\")\n-            self.send_and_verify(True, 'sendp([Ether(src=get_if_hwaddr(\"%s\"), dst=\"00:1B:21:8E:B2:30\")/IPv6(src=\"FE80:0:0:0:200:1FF:FE00:200\", dst=\"3555:5555:6666:6666:7777:7777:8888:8888\")/UDP(sport=1024,dport=1024)], iface=\"%s\")' % (self.dut_rx_interface, self.dut_rx_interface))\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv6-udp src FE80:0:0:0:200:1FF:FE00:200 1024 dst 3555:5555:6666:6666:7777:7777:8888:8888 1024 flexbytes () fwd pf queue %d fd_id %d \" % (self.dut_ports[0], 2, 1), \"testpmd>\")\n-\n-        # ipv6 tcp\n-        self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv6-tcp src FE80:0:0:0:200:1FF:FE00:200 32 dst 3555:5555:6666:6666:7777:7777:8888:8888 32  tos 2  ttl 40 vlan 0 flexbytes () fwd pf queue %d fd_id %d \" % (self.dut_ports[0], 2, 1), \"testpmd>\")\n-        self.send_and_verify(True, 'sendp([Ether(src=get_if_hwaddr(\"%s\"), dst=\"00:1B:21:8E:B2:30\")/IPv6(src=\"FE80:0:0:0:200:1FF:FE00:200\", dst=\"3555:5555:6666:6666:7777:7777:8888:8888\")/TCP(sport=32,dport=32)], iface=\"%s\")' % (self.dut_rx_interface, self.dut_rx_interface))\n-        self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv6-tcp src FE80:0:0:0:200:1FF:FE00:200 32 dst 3555:5555:6666:6666:7777:7777:8888:8888 32  tos 2  ttl 40 vlan 0 flexbytes () fwd pf queue %d fd_id %d \" % (self.dut_ports[0], 2, 1), \"testpmd>\")\n-        self.send_and_verify(False, 'sendp([Ether(src=get_if_hwaddr(\"%s\"), dst=\"00:1B:21:8E:B2:30\")/IPv6(src=\"FE80:0:0:0:200:1FF:FE00:200\", dst=\"3555:5555:6666:6666:7777:7777:8888:8888\")/TCP(sport=32,dport=32)], iface=\"%s\")' % (self.dut_rx_interface, self.dut_rx_interface))\n-        if (self.nic in [\"niantic\"]):\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv6-tcp src FE80:0:0:0:200:1FF:FE00:200 32 dst 3555:5555:6666:6666:7777:7777:8888:8888 32  tos 2  proto 20 ttl 40 vlan 0 flexbytes () fwd pf queue %d fd_id %d \" % (self.dut_ports[0], 1, 1), \"testpmd>\")\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  update flow ipv6-tcp src FE80:0:0:0:200:1FF:FE00:200 32 dst 3555:5555:6666:6666:7777:7777:8888:8888 32  tos 2 ttl 40 vlan 0 flexbytes () fwd pf queue %d fd_id %d \" % (self.dut_ports[0], 2, 1), \"testpmd>\")\n-            self.send_and_verify(True, 'sendp([Ether(src=get_if_hwaddr(\"%s\"), dst=\"00:1B:21:8E:B2:30\")/IPv6(src=\"FE80:0:0:0:200:1FF:FE00:200\", dst=\"3555:5555:6666:6666:7777:7777:8888:8888\")/TCP(sport=32,dport=32)], iface=\"%s\")' % (self.dut_rx_interface, self.dut_rx_interface))\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv6-tcp src FE80:0:0:0:200:1FF:FE00:200 32 dst 3555:5555:6666:6666:7777:7777:8888:8888 32  tos 2  proto 20 ttl 40 vlan 0 flexbytes () fwd pf queue %d fd_id %d \" % (self.dut_ports[0], 2, 1), \"testpmd>\")\n-\n-        #ipv6 sctp\n-        self.fdir_get_flexbytes(sctp=True)\n-        self.dut.send_expect(\"flow_director_filter 0 mode IP  add flow ipv6-sctp src FE80:0:0:0:200:1FF:FE00:200 32 dst 3555:5555:6666:6666:7777:7777:8888:8888 32 verify_tag 1  tos 2  ttl 40 vlan 0 flexbytes () fwd pf queue %d fd_id %d \"%(2,1), \"testpmd>\")\n-        self.send_and_verify(True, 'sendp([Ether(src=get_if_hwaddr(\"%s\"), dst=\"00:1B:21:8E:B2:30\")/IPv6(src=\"FE80:0:0:0:200:1FF:FE00:200\", dst=\"3555:5555:6666:6666:7777:7777:8888:8888\", nh=132)/SCTP(sport=32, dport=32, tag=1)/SCTPChunkData(data=\"X\"*46)], iface=\"%s\")' % (self.dut_rx_interface, self.dut_rx_interface))\n-        self.dut.send_expect(\"flow_director_filter 0 mode IP  del flow ipv6-sctp src FE80:0:0:0:200:1FF:FE00:200 32 dst 3555:5555:6666:6666:7777:7777:8888:8888 32 verify_tag 1  tos 2   ttl 40 vlan 0 flexbytes () fwd pf queue %d fd_id %d \"%(2,1), \"testpmd>\")\n-        self.send_and_verify(False, 'sendp([Ether(src=get_if_hwaddr(\"%s\"), dst=\"00:1B:21:8E:B2:30\")/IPv6(src=\"FE80:0:0:0:200:1FF:FE00:200\", dst=\"3555:5555:6666:6666:7777:7777:8888:8888\", nh=132)/SCTP(sport=32, dport=32, tag=1)/SCTPChunkData(data=\"X\"*46)], iface=\"%s\")' % (self.dut_rx_interface, self.dut_rx_interface))\n-        if (self.nic in [\"niantic\"]):\n-            self.dut.send_expect(\"flow_director_filter 0 mode IP  add flow ipv6-sctp src FE80:0:0:0:200:1FF:FE00:200 32 dst 3555:5555:6666:6666:7777:7777:8888:8888 32 verify_tag 1  tos 2  proto 20 ttl 40 vlan 0 flexbytes () fwd pf queue %d fd_id %d \"%(1,1), \"testpmd>\")\n-            self.dut.send_expect(\"flow_director_filter 0 mode IP  update flow ipv6-sctp src FE80:0:0:0:200:1FF:FE00:200 32 dst 3555:5555:6666:6666:7777:7777:8888:8888 32 verify_tag 1  tos 2  ttl 40 vlan 0 flexbytes () fwd pf queue %d fd_id %d \"%(2,1), \"testpmd>\")\n-            self.send_and_verify(True, 'sendp([Ether(src=get_if_hwaddr(\"%s\"), dst=\"00:1B:21:8E:B2:30\")/IPv6(src=\"FE80:0:0:0:200:1FF:FE00:200\", dst=\"3555:5555:6666:6666:7777:7777:8888:8888\", nh=132)/SCTP(sport=32, dport=32, tag=1)/SCTPChunkData(data=\"X\"*46)], iface=\"%s\")' % (self.dut_rx_interface, self.dut_rx_interface))\n-            self.dut.send_expect(\"flow_director_filter 0 mode IP  del flow ipv6-sctp src FE80:0:0:0:200:1FF:FE00:200 32 dst 3555:5555:6666:6666:7777:7777:8888:8888 32 verify_tag 1  tos 2  proto 20 ttl 40 vlan 0 flexbytes () fwd pf queue %d fd_id %d \"%(2,1), \"testpmd>\")\n-        self.fdir_get_flexbytes()\n-\n-        # ipv6 frag\n-        # ip-frag only support in fortville\n-        if (self.nic in [\"fortville_eagle\", \"fortville_spirit\", \"fortville_spirit_single\", \"fortpark_TLV\",\"fortpark_BASE-T\", \"fortville_25g\", \"carlsville\"]):\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv6-other src FE80:0:0:0:200:1FF:FE00:200 dst 3555:5555:6666:6666:7777:7777:8888:8888  tos 2 proto 20 ttl 40 vlan 0 flexbytes () fwd pf queue %d fd_id %d \" % (self.dut_ports[0], 3, 1), \"testpmd>\")\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv6-frag src FE80:0:0:0:200:1FF:FE00:200 dst 3555:5555:6666:6666:7777:7777:8888:8888  tos 2 proto 20 ttl 40 vlan 0 flexbytes () fwd pf queue %d fd_id %d \" % (self.dut_ports[0], 2, 1), \"testpmd>\")\n-            self.send_and_verify(True, 'sendp([Ether(src=get_if_hwaddr(\"%s\"), dst=\"00:1B:21:8E:B2:30\")/IPv6(src=\"FE80:0:0:0:200:1FF:FE00:200\", dst=\"3555:5555:6666:6666:7777:7777:8888:8888\", nh=44)/IPv6ExtHdrFragment()/Raw(load=\"X\"*46)], iface=\"%s\")' % (self.dut_rx_interface, self.dut_rx_interface))\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv6-other src FE80:0:0:0:200:1FF:FE00:200 dst 3555:5555:6666:6666:7777:7777:8888:8888  tos 2 proto 20 ttl 40 vlan 0 flexbytes () fwd pf queue %d fd_id %d \" % (self.dut_ports[0], 3, 1), \"testpmd>\")\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv6-frag src FE80:0:0:0:200:1FF:FE00:200 dst 3555:5555:6666:6666:7777:7777:8888:8888  tos 2 proto 20 ttl 40 vlan 0 flexbytes () fwd pf queue %d fd_id %d \" % (self.dut_ports[0], 2, 1), \"testpmd>\")\n-            self.send_and_verify(False, 'sendp([Ether(src=get_if_hwaddr(\"%s\"), dst=\"00:1B:21:8E:B2:30\")/IPv6(src=\"FE80:0:0:0:200:1FF:FE00:200\", dst=\"3555:5555:6666:6666:7777:7777:8888:8888\", nh=44)/IPv6ExtHdrFragment()/Raw(load=\"X\"*46)], iface=\"%s\")' % (self.dut_rx_interface, self.dut_rx_interface))\n-\n-        self.dut.send_expect(\"quit\", \"# \", 30)\n-\n-    def test_fdir_noflexword_drop_ipv4(self):\n-        # drop command testing\n-        self.dut.kill_all()\n-        self.dut.send_expect(\"%s -c %s -n 4 -- -i --portmask=%s --disable-rss  --rxq=4 --txq=4 --nb-cores=4  --nb-ports=1 --pkt-filter-mode=perfect\" % (self.path, self.coreMask, utils.create_mask([self.dut_ports[0]])), \"testpmd>\", 120)\n-        self.dut.send_expect(\"set verbose 1\", \"testpmd>\")\n-        self.dut.send_expect(\"set fwd rxonly\", \"testpmd>\")\n-\n-        # fwd comand testing\n-        self.fdir_type = \"drop\"\n-\n-        # ipv4 ip\n-        self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv4-other src 192.168.0.1 dst 192.168.0.2  tos 2 proto 20 ttl 40 vlan 0 flexbytes () drop pf queue %d fd_id %d \" % (self.dut_ports[0], 2, 1), \"testpmd>\")\n-        self.send_and_verify(False, 'sendp([Ether(src=get_if_hwaddr(\"%s\"), dst=\"00:1B:21:8E:B2:30\")/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")], iface=\"%s\")' % (self.dut_rx_interface, self.dut_rx_interface))\n-        self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv4-other src 192.168.0.1 dst 192.168.0.2  tos 2 proto 20 ttl 40 vlan 0 flexbytes () drop pf queue %d fd_id %d \" % (self.dut_ports[0], 2, 1), \"testpmd>\")\n-        self.send_and_verify(True, 'sendp([Ether(src=get_if_hwaddr(\"%s\"), dst=\"00:1B:21:8E:B2:30\")/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")], iface=\"%s\")' % (self.dut_rx_interface, self.dut_rx_interface))\n-        if (self.nic in [\"niantic\"]):\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv4-other src 192.168.0.1 dst 192.168.0.2  tos 2 proto 20 ttl 40 vlan 0 flexbytes () drop pf queue %d fd_id %d \" % (self.dut_ports[0], 1, 1), \"testpmd>\")\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  update flow ipv4-other src 192.168.0.1 dst 192.168.0.2  tos 2 proto 20 ttl 40 vlan 0 flexbytes () drop pf queue %d fd_id %d \" % (self.dut_ports[0], 2, 1), \"testpmd>\")\n-            self.send_and_verify(False, 'sendp([Ether(src=get_if_hwaddr(\"%s\"), dst=\"00:1B:21:8E:B2:30\")/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")], iface=\"%s\")' % (self.dut_rx_interface, self.dut_rx_interface))\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv4-other src 192.168.0.1 dst 192.168.0.2  tos 2 proto 20 ttl 40 vlan 0 flexbytes () drop pf queue %d fd_id %d \" % (self.dut_ports[0], 2, 1), \"testpmd>\")\n-\n-        # ipv4 udp\n-        self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv4-udp src 192.168.0.1 1024 dst 192.168.0.2 1024  tos 2  ttl 40 vlan 0 flexbytes () drop pf queue %d fd_id %d \" % (self.dut_ports[0], 2, 1), \"testpmd>\")\n-        self.send_and_verify(False, 'sendp([Ether(src=get_if_hwaddr(\"%s\"), dst=\"00:1B:21:8E:B2:30\")/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/UDP(sport=1024,dport=1024)], iface=\"%s\")' % (self.dut_rx_interface, self.dut_rx_interface))\n-        self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv4-udp src 192.168.0.1 1024 dst 192.168.0.2 1024  tos 2  ttl 40 vlan 0 flexbytes () drop pf queue %d fd_id %d \" % (self.dut_ports[0], 2, 1), \"testpmd>\")\n-        self.send_and_verify(True, 'sendp([Ether(src=get_if_hwaddr(\"%s\"), dst=\"00:1B:21:8E:B2:30\")/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/UDP(sport=1024,dport=1024)], iface=\"%s\")' % (self.dut_rx_interface, self.dut_rx_interface))\n-        if (self.nic in [\"niantic\"]):\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv4-udp src 192.168.0.1 1024 dst 192.168.0.2 1024  tos 2  ttl 40 vlan 0 flexbytes () drop pf queue %d fd_id %d \" % (self.dut_ports[0], 1, 1), \"testpmd>\")\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  update flow ipv4-udp src 192.168.0.1 1024 dst 192.168.0.2 1024  tos 2  ttl 40 vlan 0 flexbytes () drop pf queue %d fd_id %d \" % (self.dut_ports[0], 2, 1), \"testpmd>\")\n-            self.send_and_verify(False, 'sendp([Ether(src=get_if_hwaddr(\"%s\"), dst=\"00:1B:21:8E:B2:30\")/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/UDP(sport=1024,dport=1024)], iface=\"%s\")' % (self.dut_rx_interface, self.dut_rx_interface))\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv4-udp src 192.168.0.1 1024 dst 192.168.0.2 1024  tos 2  ttl 40 vlan 0 flexbytes () drop pf queue %d fd_id %d \" % (self.dut_ports[0], 2, 1), \"testpmd>\")\n-\n-        # ipv4 tcp\n-        self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv4-tcp src 192.168.0.1 32 dst 192.168.0.2 32  tos 2  ttl 40 vlan 0 flexbytes () drop pf queue %d fd_id %d \" % (self.dut_ports[0], 2, 1), \"testpmd>\")\n-        self.send_and_verify(False, 'sendp([Ether(src=get_if_hwaddr(\"%s\"), dst=\"00:1B:21:8E:B2:30\")/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/TCP(sport=32,dport=32)], iface=\"%s\")' % (self.dut_rx_interface, self.dut_rx_interface))\n-        self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv4-tcp src 192.168.0.1 32 dst 192.168.0.2 32  tos 2  ttl 40 vlan 0 flexbytes () drop pf queue %d fd_id %d \" % (self.dut_ports[0], 2, 1), \"testpmd>\")\n-        self.send_and_verify(True, 'sendp([Ether(src=get_if_hwaddr(\"%s\"), dst=\"00:1B:21:8E:B2:30\")/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/TCP(sport=32,dport=32)], iface=\"%s\")' % (self.dut_rx_interface, self.dut_rx_interface))\n-        if (self.nic in [\"niantic\"]):\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv4-tcp src 192.168.0.1 32 dst 192.168.0.2 32  tos 2  ttl 40 vlan 0 flexbytes () drop pf queue %d fd_id %d \" % (self.dut_ports[0], 1, 1), \"testpmd>\")\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  update flow ipv4-tcp src 192.168.0.1 32 dst 192.168.0.2 32  tos 2  ttl 40 vlan 0 flexbytes () drop pf queue %d fd_id %d \" % (self.dut_ports[0], 2, 1), \"testpmd>\")\n-            self.send_and_verify(False, 'sendp([Ether(src=get_if_hwaddr(\"%s\"), dst=\"00:1B:21:8E:B2:30\")/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/TCP(sport=32,dport=32)], iface=\"%s\")' % (self.dut_rx_interface, self.dut_rx_interface))\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv4-tcp src 192.168.0.1 32 dst 192.168.0.2 32  tos 2  ttl 40 vlan 0 flexbytes () drop pf queue %d fd_id %d \" % (self.dut_ports[0], 2, 1), \"testpmd>\")\n-\n-        # ipv4 sctp\n-        self.fdir_get_flexbytes(sctp=True)\n-        self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv4-sctp src 192.168.0.1 32 dst 192.168.0.2 32 verify_tag 1  tos 2  ttl 40 vlan 0 flexbytes () drop pf queue %d fd_id %d \" % (self.dut_ports[0], 2, 1), \"testpmd>\")\n-        self.send_and_verify(False, 'sendp([Ether(src=get_if_hwaddr(\"%s\"), dst=\"00:1B:21:8E:B2:30\")/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/SCTP(sport=32, dport=32, tag=1)/SCTPChunkData(data=\"X\"*46)], iface=\"%s\")' % (self.dut_rx_interface, self.dut_rx_interface))\n-        self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv4-sctp src 192.168.0.1 32 dst 192.168.0.2 32 verify_tag 1  tos 2  ttl 40 vlan 0 flexbytes () drop pf queue %d fd_id %d \" % (self.dut_ports[0], 2, 1), \"testpmd>\")\n-        self.send_and_verify(True, 'sendp([Ether(src=get_if_hwaddr(\"%s\"), dst=\"00:1B:21:8E:B2:30\")/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/SCTP(sport=32, dport=32, tag=1)/SCTPChunkData(data=\"X\"*46)], iface=\"%s\")' % (self.dut_rx_interface, self.dut_rx_interface))\n-        if (self.nic in [\"niantic\"]):\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv4-sctp src 192.168.0.1 32 dst 192.168.0.2 32 verify_tag 1  tos 2  ttl 40 vlan 0 flexbytes () drop pf queue %d fd_id %d \" % (self.dut_ports[0], 1, 1), \"testpmd>\")\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  update flow ipv4-sctp src 192.168.0.1 32 dst 192.168.0.2 32 verify_tag 1  tos 2  ttl 40 vlan 0 flexbytes () drop pf queue %d fd_id %d \" % (self.dut_ports[0], 2, 1), \"testpmd>\")\n-            self.send_and_verify(False, 'sendp([Ether(src=get_if_hwaddr(\"%s\"), dst=\"00:1B:21:8E:B2:30\")/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/SCTP(sport=32, dport=32, tag=1)/SCTPChunkData(data=\"X\"*46)], iface=\"%s\")' % (self.dut_rx_interface, self.dut_rx_interface))\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv4-sctp src 192.168.0.1 32 dst 192.168.0.2 32 verify_tag 1  tos 2  ttl 40 vlan 0 flexbytes () drop pf queue %d fd_id %d \" % (self.dut_ports[0], 2, 1), \"testpmd>\")\n-        self.fdir_get_flexbytes()\n-\n-        # ipv4 frag\n-        # ip-frag only support in fortville\n-        if (self.nic in [\"fortville_eagle\", \"fortville_spirit\", \"fortville_spirit_single\", \"fortpark_TLV\",\"fortpark_BASE-T\", \"fortville_25g\", \"carlsville\"]):\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv4-other src 192.168.0.1 dst 192.168.0.2  tos 2 proto 20 ttl 40 vlan 0 flexbytes () drop pf queue %d fd_id %d \" % (self.dut_ports[0], 3, 1), \"testpmd>\")\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv4-frag src 192.168.0.1 dst 192.168.0.2  tos 2 proto 20  ttl 40 vlan 0 flexbytes () drop pf queue %d fd_id %d \" % (self.dut_ports[0], 2, 1), \"testpmd>\")\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv4-frag src 192.168.0.1 dst 192.168.0.2  tos 2 proto 20  ttl 40 vlan 0 flexbytes () drop pf queue %d fd_id %d \" % (self.dut_ports[0], 2, 1), \"testpmd>\")\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv4-frag src 192.168.0.1 dst 192.168.0.2  tos 2 proto 20  ttl 40 vlan 0 flexbytes () drop pf queue %d fd_id %d \" % (self.dut_ports[0], 2, 1), \"testpmd>\")\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv4-frag src 192.168.0.1 dst 192.168.0.2  tos 2 proto 20  ttl 40 vlan 0 flexbytes () drop pf queue %d fd_id %d \" % (self.dut_ports[0], 2, 1), \"testpmd>\")\n-            self.send_and_verify(False, 'sendp([Ether(src=get_if_hwaddr(\"%s\"), dst=\"00:1B:21:8E:B2:30\")/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\", frag=1, flags=\"MF\")/Raw(load=\"X\"*46)], iface=\"%s\")' % (self.dut_rx_interface, self.dut_rx_interface))\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv4-other src 192.168.0.1 dst 192.168.0.2  tos 2 proto 20 ttl 40 vlan 0 flexbytes () drop pf queue %d fd_id %d \" % (self.dut_ports[0], 3, 1), \"testpmd>\")\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv4-frag src 192.168.0.1 dst 192.168.0.2  tos 2 proto 20  ttl 40 vlan 0 flexbytes () drop pf queue %d fd_id %d \" % (self.dut_ports[0], 2, 1), \"testpmd>\")\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv4-frag src 192.168.0.1 dst 192.168.0.2  tos 2 proto 20  ttl 40 vlan 0 flexbytes () drop pf queue %d fd_id %d \" % (self.dut_ports[0], 2, 1), \"testpmd>\")\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv4-frag src 192.168.0.1 dst 192.168.0.2  tos 2 proto 20  ttl 40 vlan 0 flexbytes () drop pf queue %d fd_id %d \" % (self.dut_ports[0], 2, 1), \"testpmd>\")\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv4-frag src 192.168.0.1 dst 192.168.0.2  tos 2 proto 20  ttl 40 vlan 0 flexbytes () drop pf queue %d fd_id %d \" % (self.dut_ports[0], 2, 1), \"testpmd>\")\n-            self.send_and_verify(True, 'sendp([Ether(src=get_if_hwaddr(\"%s\"),dst=\"00:1B:21:8E:B2:30\")/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\", frag=1, flags=\"MF\")/Raw(load=\"X\"*46)], iface=\"%s\")' % (self.dut_rx_interface, self.dut_rx_interface))\n-\n-        self.dut.send_expect(\"quit\", \"# \", 30)\n-\n-    def test_fdir_noflexword_drop_ipv6(self):\n-        # drop not support signature mode, niantic only can work in signature  mode with ipv6\n-        # Niantic is not support in drop ipv6\n-        if self.nic in [\"fortville_eagle\", \"fortville_spirit\", \"fortville_spirit_single\", \"fortpark_TLV\", \"fortpark_BASE-T\",\"fortville_25g\", \"carlsville\"]:\n-            # drop command testing\n-            self.dut.kill_all()\n-\n-            self.dut.send_expect(\"%s -c %s -n 4 -- -i --portmask=%s --disable-rss  --rxq=4 --txq=4 --nb-cores=4  --nb-ports=1 --pkt-filter-mode=perfect\" % (self.path, self.coreMask, utils.create_mask([self.dut_ports[0]])), \"testpmd>\", 120)\n-            self.dut.send_expect(\"set verbose 1\", \"testpmd>\")\n-            self.dut.send_expect(\"set fwd rxonly\", \"testpmd>\")\n-\n-            # fwd comand testing\n-            self.fdir_type = \"drop\"\n-\n-            # ipv6 ip\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv6-other src FE80:0:0:0:200:1FF:FE00:200 dst 3555:5555:6666:6666:7777:7777:8888:8888  tos 2 proto 20 ttl 40 vlan 0 flexbytes () drop pf queue %d fd_id %d \" % (self.dut_ports[0], 2, 1), \"testpmd>\")\n-            self.send_and_verify(False, 'sendp([Ether(src=get_if_hwaddr(\"%s\"), dst=\"00:1B:21:8E:B2:30\")/IPv6(src=\"FE80:0:0:0:200:1FF:FE00:200\", dst=\"3555:5555:6666:6666:7777:7777:8888:8888\")], iface=\"%s\")' % (self.dut_rx_interface, self.dut_rx_interface))\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv6-other src FE80:0:0:0:200:1FF:FE00:200 dst 3555:5555:6666:6666:7777:7777:8888:8888  tos 2 proto 20 ttl 40 vlan 0 flexbytes () drop pf queue %d fd_id %d \" % (self.dut_ports[0], 2, 1), \"testpmd>\")\n-            self.send_and_verify(True, 'sendp([Ether(src=get_if_hwaddr(\"%s\"), dst=\"00:1B:21:8E:B2:30\")/IPv6(src=\"FE80:0:0:0:200:1FF:FE00:200\", dst=\"3555:5555:6666:6666:7777:7777:8888:8888\")], iface=\"%s\")' % (self.dut_rx_interface, self.dut_rx_interface))\n-\n-            # ipv6 udp\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv6-udp src FE80:0:0:0:200:1FF:FE00:200 1024 dst 3555:5555:6666:6666:7777:7777:8888:8888 1024  tos 2   ttl 40 vlan 0 flexbytes () drop pf queue %d fd_id %d \" % (self.dut_ports[0], 2, 1), \"testpmd>\")\n-            self.send_and_verify(False, 'sendp([Ether(src=get_if_hwaddr(\"%s\"), dst=\"00:1B:21:8E:B2:30\")/IPv6(src=\"FE80:0:0:0:200:1FF:FE00:200\", dst=\"3555:5555:6666:6666:7777:7777:8888:8888\")/UDP(sport=1024,dport=1024)], iface=\"%s\")' % (self.dut_rx_interface, self.dut_rx_interface))\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv6-udp src FE80:0:0:0:200:1FF:FE00:200 1024 dst 3555:5555:6666:6666:7777:7777:8888:8888 1024  tos 2   ttl 40 vlan 0 flexbytes () drop pf queue %d fd_id %d \" % (self.dut_ports[0], 2, 1), \"testpmd>\")\n-            self.send_and_verify(True, 'sendp([Ether(src=get_if_hwaddr(\"%s\"), dst=\"00:1B:21:8E:B2:30\")/IPv6(src=\"FE80:0:0:0:200:1FF:FE00:200\", dst=\"3555:5555:6666:6666:7777:7777:8888:8888\")/UDP(sport=1024,dport=1024)], iface=\"%s\")' % (self.dut_rx_interface, self.dut_rx_interface))\n-\n-            # ipv6 tcp\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv6-tcp src FE80:0:0:0:200:1FF:FE00:200 32 dst 3555:5555:6666:6666:7777:7777:8888:8888 32  tos 2  ttl 40 vlan 0 flexbytes () drop pf queue %d fd_id %d \" % (self.dut_ports[0], 2, 1), \"testpmd>\")\n-            self.send_and_verify(False, 'sendp([Ether(src=get_if_hwaddr(\"%s\"), dst=\"00:1B:21:8E:B2:30\")/IPv6(src=\"FE80:0:0:0:200:1FF:FE00:200\", dst=\"3555:5555:6666:6666:7777:7777:8888:8888\")/TCP(sport=32,dport=32)], iface=\"%s\")' % (self.dut_rx_interface, self.dut_rx_interface))\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv6-tcp src FE80:0:0:0:200:1FF:FE00:200 32 dst 3555:5555:6666:6666:7777:7777:8888:8888 32  tos 2  ttl 40 vlan 0 flexbytes () drop pf queue %d fd_id %d \" % (self.dut_ports[0], 2, 1), \"testpmd>\")\n-            self.send_and_verify(True, 'sendp([Ether(src=get_if_hwaddr(\"%s\"), dst=\"00:1B:21:8E:B2:30\")/IPv6(src=\"FE80:0:0:0:200:1FF:FE00:200\", dst=\"3555:5555:6666:6666:7777:7777:8888:8888\")/TCP(sport=32,dport=32)], iface=\"%s\")' % (self.dut_rx_interface, self.dut_rx_interface))\n-\n-            # ipv6 sctp\n-            self.fdir_get_flexbytes(sctp=True)\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv6-sctp src FE80:0:0:0:200:1FF:FE00:200 32 dst 3555:5555:6666:6666:7777:7777:8888:8888 32 verify_tag 1  tos 2 ttl 40 vlan 0 flexbytes () drop pf queue %d fd_id %d \"%(self.dut_ports[0],2,1), \"testpmd>\")\n-            self.send_and_verify(False, 'sendp([Ether(src=get_if_hwaddr(\"%s\"), dst=\"00:1B:21:8E:B2:30\")/IPv6(src=\"FE80:0:0:0:200:1FF:FE00:200\", dst=\"3555:5555:6666:6666:7777:7777:8888:8888\", nh=132)/SCTP(sport=32, dport=32, tag=1)/SCTPChunkData(data=\"X\"*46)], iface=\"%s\")' % (self.dut_rx_interface, self.dut_rx_interface))\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv6-sctp src FE80:0:0:0:200:1FF:FE00:200 32 dst 3555:5555:6666:6666:7777:7777:8888:8888 32 verify_tag 1  tos 2 ttl 40 vlan 0 flexbytes () drop pf queue %d fd_id %d \"%(self.dut_ports[0],2,1), \"testpmd>\")\n-            self.send_and_verify(True, 'sendp([Ether(src=get_if_hwaddr(\"%s\"), dst=\"00:1B:21:8E:B2:30\")/IPv6(src=\"FE80:0:0:0:200:1FF:FE00:200\", dst=\"3555:5555:6666:6666:7777:7777:8888:8888\", nh=132)/SCTP(sport=32, dport=32, tag=1)/SCTPChunkData(data=\"X\"*46)], iface=\"%s\")' % (self.dut_rx_interface, self.dut_rx_interface))\n-            if (self.nic in [\"niantic\"]):\n-                self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv6-sctp src FE80:0:0:0:200:1FF:FE00:200 32 dst 3555:5555:6666:6666:7777:7777:8888:8888 32 verify_tag 1  tos 2  proto 20 ttl 40 vlan 0 flexbytes () drop pf queue %d fd_id %d \"%(self.dut_ports[0],1,1), \"testpmd>\")\n-                self.dut.send_expect(\"flow_director_filter %s mode IP  update flow ipv6-sctp src FE80:0:0:0:200:1FF:FE00:200 32 dst 3555:5555:6666:6666:7777:7777:8888:8888 32 verify_tag 1  tos 2  proto 20 ttl 40 vlan 0 flexbytes () drop pf queue %d fd_id %d \"%(self.dut_ports[0],2,1), \"testpmd>\")\n-                self.send_and_verify(False, 'sendp([Ether(src=get_if_hwaddr(\"%s\"), dst=\"00:1B:21:8E:B2:30\")/IPv6(src=\"FE80:0:0:0:200:1FF:FE00:200\", dst=\"3555:5555:6666:6666:7777:7777:8888:8888\", nh=132)/SCTP(sport=32, dport=32, tag=1)/SCTPChunkData(data=\"X\"*46)], iface=\"%s\")' % (self.dut_rx_interface, self.dut_rx_interface))\n-                self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv6-sctp src FE80:0:0:0:200:1FF:FE00:200 32 dst 3555:5555:6666:6666:7777:7777:8888:8888 32 verify_tag 1  tos 2  proto 20 ttl 40 vlan 0 flexbytes () drop pf queue %d fd_id %d \"%(self.dut_ports[0],2,1), \"testpmd>\")\n-            self.fdir_get_flexbytes()\n-\n-            # ipv6 frag\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv6-other src FE80:0:0:0:200:1FF:FE00:200 dst 3555:5555:6666:6666:7777:7777:8888:8888  tos 2 proto 20 ttl 40 vlan 0 flexbytes () drop pf queue %d fd_id %d \" % (self.dut_ports[0], 3, 1), \"testpmd>\")\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv6-frag src FE80:0:0:0:200:1FF:FE00:200 dst 3555:5555:6666:6666:7777:7777:8888:8888  tos 2 proto 20 ttl 40 vlan 0 flexbytes () drop pf queue %d fd_id %d \" % (self.dut_ports[0], 2, 1), \"testpmd>\")\n-            self.send_and_verify(False, 'sendp([Ether(src=get_if_hwaddr(\"%s\"), dst=\"00:1B:21:8E:B2:30\")/IPv6(src=\"FE80:0:0:0:200:1FF:FE00:200\", dst=\"3555:5555:6666:6666:7777:7777:8888:8888\", nh=44)/IPv6ExtHdrFragment()/Raw(load=\"X\"*46)], iface=\"%s\")' % (self.dut_rx_interface, self.dut_rx_interface))\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv6-other src FE80:0:0:0:200:1FF:FE00:200 dst 3555:5555:6666:6666:7777:7777:8888:8888  tos 2 proto 20 ttl 40 vlan 0 flexbytes () fwd pf queue %d fd_id %d \" % (self.dut_ports[0], 3, 1), \"testpmd>\")\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv6-frag src FE80:0:0:0:200:1FF:FE00:200 dst 3555:5555:6666:6666:7777:7777:8888:8888  tos 2 proto 20 ttl 40 vlan 0 flexbytes () drop pf queue %d fd_id %d \" % (self.dut_ports[0], 2, 1), \"testpmd>\")\n-            self.send_and_verify(True, 'sendp([Ether(src=get_if_hwaddr(\"%s\"), dst=\"00:1B:21:8E:B2:30\")/IPv6(src=\"FE80:0:0:0:200:1FF:FE00:200\", dst=\"3555:5555:6666:6666:7777:7777:8888:8888\", nh=44)/IPv6ExtHdrFragment()/Raw(load=\"X\"*46)], iface=\"%s\")' % (self.dut_rx_interface, self.dut_rx_interface))\n-\n-            self.dut.send_expect(\"quit\", \"# \", 30)\n-\n-    def test_fdir_flexword_fwd_ipv4(self):\n-        \"\"\"\n-        FDir signature matching mode.\n-        \"\"\"\n-        # fwd comand testing\n-        self.fdir_type = \"fwd\"\n-\n-        self.dut.kill_all()\n-        # fwd testing with flexword\n-        self.dut.send_expect(\"%s -c %s -n 4 -- -i --portmask=%s --disable-rss --rxq=4 --txq=4 --nb-cores=4 --nb-ports=1 --pkt-filter-mode=perfect\" % (self.path, self.coreMask, utils.create_mask([self.dut_ports[0]])), \"testpmd>\", 120)\n-        self.dut.send_expect(\"set verbose 1\", \"testpmd>\")\n-        self.dut.send_expect(\"set fwd rxonly\", \"testpmd>\")\n-\n-        self.fdir_set_rule()\n-        self.fdir_get_flexbytes()\n-\n-        # ipv4 ip\n-        self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv4-other src 192.168.0.1 dst 192.168.0.2  tos 2 proto 20 ttl 40 vlan 0 flexbytes (%s) fwd pf queue %d fd_id %d \" % (self.dut_ports[0], self.flexbytes, 2, 1), \"testpmd>\")\n-        self.send_and_verify(True, \"sendp([Ether(src=get_if_hwaddr('%s'), dst='00:1B:21:8E:B2:30')/IP(src='192.168.0.1', dst='192.168.0.2')/Raw(load='%s')], iface='%s')\" % (self.dut_rx_interface, self.payload, self.dut_rx_interface))\n-        self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv4-other src 192.168.0.1 dst 192.168.0.2  tos 2 proto 20 ttl 40 vlan 0 flexbytes (%s) fwd pf queue %d fd_id %d \" % (self.dut_ports[0], self.flexbytes, 2, 1), \"testpmd>\")\n-        self.send_and_verify(False, \"sendp([Ether(src=get_if_hwaddr('%s'),dst='00:1B:21:8E:B2:30')/IP(src='192.168.0.1', dst='192.168.0.2')/Raw(load='%s')], iface='%s')\" % (self.dut_rx_interface, self.payload, self.dut_rx_interface))\n-        if (self.nic in [\"niantic\"]):\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv4-other src 192.168.0.1 dst 192.168.0.2  tos 2 proto 20 ttl 40 vlan 0 flexbytes (%s) fwd pf queue %d fd_id %d \" % (self.dut_ports[0], self.flexbytes, 1, 1), \"testpmd>\")\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  update flow ipv4-other src 192.168.0.1 dst 192.168.0.2  tos 2 proto 20 ttl 40 vlan 0 flexbytes (%s) fwd pf queue %d fd_id %d \" % (self.dut_ports[0], self.flexbytes, 2, 1), \"testpmd>\")\n-            self.send_and_verify(True, \"sendp([Ether(src=get_if_hwaddr('%s'), dst='00:1B:21:8E:B2:30')/IP(src='192.168.0.1', dst='192.168.0.2')/Raw(load='%s')], iface='%s')\" % (self.dut_rx_interface, self.payload, self.dut_rx_interface))\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv4-other src 192.168.0.1 dst 192.168.0.2  tos 2 proto 20 ttl 40 vlan 0 flexbytes (%s) fwd pf queue %d fd_id %d \" % (self.dut_ports[0], self.flexbytes, 2, 1), \"testpmd>\")\n-\n-        # ipv4 udp\n-        self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv4-udp src 192.168.0.1 1024 dst 192.168.0.2 1024  tos 2  ttl 40 vlan 0 flexbytes (%s) fwd pf queue %d fd_id %d \" % (self.dut_ports[0], self.flexbytes, 2, 1), \"testpmd>\")\n-        self.send_and_verify(True, \"sendp([Ether(src=get_if_hwaddr('%s'), dst='00:1B:21:8E:B2:30')/IP(src='192.168.0.1', dst='192.168.0.2')/UDP(sport=1024,dport=1024)/Raw(load='%s')], iface='%s')\" % (self.dut_rx_interface, self.payload, self.dut_rx_interface))\n-        self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv4-udp src 192.168.0.1 1024 dst 192.168.0.2 1024  tos 2  ttl 40 vlan 0 flexbytes (%s) fwd pf queue %d fd_id %d \" % (self.dut_ports[0], self.flexbytes, 2, 1), \"testpmd>\")\n-        self.send_and_verify(False, \"sendp([Ether(src=get_if_hwaddr('%s'), dst='00:1B:21:8E:B2:30')/IP(src='192.168.0.1', dst='192.168.0.2')/UDP(sport=1024,dport=1024)/Raw(load='%s')], iface='%s')\" % (self.dut_rx_interface, self.payload, self.dut_rx_interface))\n-        if (self.nic in [\"niantic\"]):\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv4-udp src 192.168.0.1 1024 dst 192.168.0.2 1024  tos 2  ttl 40 vlan 0 flexbytes (%s) fwd pf queue %d fd_id %d \" % (self.dut_ports[0], self.flexbytes, 1, 1), \"testpmd>\")\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  update flow ipv4-udp src 192.168.0.1 1024 dst 192.168.0.2 1024  tos 2  ttl 40 vlan 0 flexbytes (%s) fwd pf queue %d fd_id %d \" % (self.dut_ports[0], self.flexbytes, 2, 1), \"testpmd>\")\n-            self.send_and_verify(True, \"sendp([Ether(src=get_if_hwaddr('%s'), dst='00:1B:21:8E:B2:30')/IP(src='192.168.0.1', dst='192.168.0.2')/UDP(sport=1024,dport=1024)/Raw(load='%s')], iface='%s')\" % (self.dut_rx_interface, self.payload, self.dut_rx_interface))\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv4-udp src 192.168.0.1 1024 dst 192.168.0.2 1024  tos 2  ttl 40 vlan 0 flexbytes (%s) fwd pf queue %d fd_id %d \" % (self.dut_ports[0], self.flexbytes, 2, 1), \"testpmd>\")\n-\n-        # ipv4 tcp\n-        self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv4-tcp src 192.168.0.1 32 dst 192.168.0.2 32  tos 2  ttl 40 vlan 0 flexbytes (%s) fwd pf queue %d fd_id %d \" % (self.dut_ports[0], self.flexbytes, 2, 1), \"testpmd>\")\n-        self.send_and_verify(True, \"sendp([Ether(src=get_if_hwaddr('%s'), dst='00:1B:21:8E:B2:30')/IP(src='192.168.0.1', dst='192.168.0.2')/TCP(sport=32,dport=32)/Raw(load='%s')], iface='%s')\" % (self.dut_rx_interface, self.payload, self.dut_rx_interface))\n-        self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv4-tcp src 192.168.0.1 32 dst 192.168.0.2 32  tos 2  ttl 40 vlan 0 flexbytes (%s) fwd pf queue %d fd_id %d \" % (self.dut_ports[0], self.flexbytes, 2, 1), \"testpmd>\")\n-        self.send_and_verify(False, \"sendp([Ether(src=get_if_hwaddr('%s'), dst='00:1B:21:8E:B2:30')/IP(src='192.168.0.1', dst='192.168.0.2')/TCP(sport=32,dport=32)/Raw(load='%s')], iface='%s')\" % (self.dut_rx_interface, self.payload, self.dut_rx_interface))\n-        if (self.nic in [\"niantic\"]):\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv4-tcp src 192.168.0.1 32 dst 192.168.0.2 32  tos 2  ttl 40 vlan 0 flexbytes (%s) fwd pf queue %d fd_id %d \" % (self.dut_ports[0], self.flexbytes, 1, 1), \"testpmd>\")\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  update flow ipv4-tcp src 192.168.0.1 32 dst 192.168.0.2 32  tos 2  ttl 40 vlan 0 flexbytes (%s) fwd pf queue %d fd_id %d \" % (self.dut_ports[0], self.flexbytes, 2, 1), \"testpmd>\")\n-            self.send_and_verify(True, \"sendp([Ether(src=get_if_hwaddr('%s'), dst='00:1B:21:8E:B2:30')/IP(src='192.168.0.1', dst='192.168.0.2')/TCP(sport=32,dport=32)/Raw(load='%s')], iface='%s')\" % (self.dut_rx_interface, self.payload, self.dut_rx_interface))\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv4-tcp src 192.168.0.1 32 dst 192.168.0.2 32  tos 2  ttl 40 vlan 0 flexbytes (%s) fwd pf queue %d fd_id %d \" % (self.dut_ports[0], self.flexbytes, 2, 1), \"testpmd>\")\n-\n-        # ipv4 frag\n-        # ip-frag only support fortville\n-        if (self.nic in [\"fortville_eagle\", \"fortville_spirit\", \"fortville_spirit_single\", \"fortpark_TLV\", \"fortpark_BASE-T\",\"fortville_25g\", \"carlsville\"]):\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv4-other src 192.168.0.1 dst 192.168.0.2  tos 2 proto 20 ttl 40 vlan 0 flexbytes (%s) fwd pf queue %d fd_id %d \" % (self.dut_ports[0], self.flexbytes, 3, 1), \"testpmd>\")\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv4-frag src 192.168.0.1 dst 192.168.0.2  tos 2 proto 20  ttl 40 vlan 0 flexbytes (%s) fwd pf queue %d fd_id %d \" % (self.dut_ports[0], self.flexbytes, 2, 1), \"testpmd>\")\n-            self.send_and_verify(True, \"sendp([Ether(src=get_if_hwaddr('%s'), dst='00:1B:21:8E:B2:30')/IP(src='192.168.0.1', dst='192.168.0.2', frag=1, flags='MF')/Raw(load='%s')], iface='%s')\" % (self.dut_rx_interface, self.payload, self.dut_rx_interface))\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv4-other src 192.168.0.1 dst 192.168.0.2  tos 2 proto 20 ttl 40 vlan 0 flexbytes (%s) fwd pf queue %d fd_id %d \" % (self.dut_ports[0], self.flexbytes, 3, 1), \"testpmd>\")\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv4-frag src 192.168.0.1 dst 192.168.0.2  tos 2 proto 20  ttl 40 vlan 0 flexbytes (%s) fwd pf queue %d fd_id %d \" % (self.dut_ports[0], self.flexbytes, 2, 1), \"testpmd>\")\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv4-frag src 192.168.0.1 dst 192.168.0.2  tos 2 proto 20  ttl 40 vlan 0 flexbytes (%s) fwd pf queue %d fd_id %d \" % (self.dut_ports[0], self.flexbytes, 2, 1), \"testpmd>\")\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv4-frag src 192.168.0.1 dst 192.168.0.2  tos 2 proto 20  ttl 40 vlan 0 flexbytes (%s) fwd pf queue %d fd_id %d \" % (self.dut_ports[0], self.flexbytes, 2, 1), \"testpmd>\")\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv4-frag src 192.168.0.1 dst 192.168.0.2  tos 2 proto 20  ttl 40 vlan 0 flexbytes (%s) fwd pf queue %d fd_id %d \" % (self.dut_ports[0], self.flexbytes, 2, 1), \"testpmd>\")\n-            self.send_and_verify(False, \"sendp([Ether(src=get_if_hwaddr('%s'),dst='00:1B:21:8E:B2:30')/IP(src='192.168.0.1', dst='192.168.0.2', frag=1, flags='MF')/Raw(load='%s')], iface='%s')\" % (self.dut_rx_interface, self.payload, self.dut_rx_interface))\n-\n-        # ipv4 sctp\n-        self.fdir_get_flexbytes(sctp=True)\n-        self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv4-sctp src 192.168.0.1 32 dst 192.168.0.2 32 verify_tag 1  tos 2  ttl 40 vlan 0 flexbytes (%s) fwd pf queue %d fd_id %d \"%(self.dut_ports[0],self.flexbytes, 2, 1), \"testpmd>\")\n-        self.send_and_verify(True, \"sendp([Ether(src=get_if_hwaddr('%s'), dst='00:1B:21:8E:B2:30')/IP(src='192.168.0.1', dst='192.168.0.2')/SCTP(sport=32, dport=32, tag=1)/SCTPChunkData(data='%s')], iface='%s')\" % (self.dut_rx_interface, self.payload, self.dut_rx_interface))\n-        self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv4-sctp src 192.168.0.1 32 dst 192.168.0.2 32 verify_tag 1  tos 2  ttl 40 vlan 0 flexbytes (%s) fwd pf queue %d fd_id %d \"%(self.dut_ports[0],self.flexbytes, 2, 1), \"testpmd>\")\n-        self.send_and_verify(False, \"sendp([Ether(src=get_if_hwaddr('%s'), dst='00:1B:21:8E:B2:30')/IP(src='192.168.0.1', dst='192.168.0.2')/SCTP(sport=32, dport=32, tag=1)/SCTPChunkData(data='%s')], iface='%s')\" % (self.dut_rx_interface, self.payload, self.dut_rx_interface))\n-        if (self.nic in [\"niantic\"]):\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv4-sctp src 192.168.0.1 32 dst 192.168.0.2 32 verify_tag 1  tos 2  ttl 40 vlan 0 flexbytes (%s) fwd pf queue %d fd_id %d \"%(self.dut_ports[0],self.flexbytes, 1, 1), \"testpmd>\")\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  update flow ipv4-sctp src 192.168.0.1 32 dst 192.168.0.2 32 verify_tag 1  tos 2  ttl 40 vlan 0 flexbytes (%s) fwd pf queue %d fd_id %d \"%(self.dut_ports[0],self.flexbytes, 2, 1), \"testpmd>\")\n-            self.send_and_verify(True, \"sendp([Ether(src=get_if_hwaddr('%s'), dst='00:1B:21:8E:B2:30')/IP(src='192.168.0.1', dst='192.168.0.2')/SCTP(sport=32, dport=32, tag=1)/SCTPChunkData(data='%s')], iface='%s')\" % (self.dut_rx_interface, self.payload, self.dut_rx_interface))\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv4-sctp src 192.168.0.1 32 dst 192.168.0.2 32 verify_tag 1  tos 2  ttl 40 vlan 0 flexbytes (%s) fwd pf queue %d fd_id %d \"%(self.dut_ports[0],self.flexbytes, 2, 1), \"testpmd>\")\n-        self.fdir_get_flexbytes()\n-\n-        self.dut.send_expect(\"quit\", \"# \", 30)\n-\n-    def test_fdir_flexword_fwd_ipv6(self):\n-        \"\"\"\n-        FDir signature matching mode.\n-        \"\"\"\n-        # fwd comand testing\n-        self.fdir_type = \"fwd\"\n-\n-        self.dut.kill_all()\n-        # fwd testing with flexword\n-        if self.nic in [\"niantic\", \"sagepond\", \"sageville\"]:\n-            # Niantic ipv6 only support signature mode\n-            self.dut.send_expect(\"%s -c %s -n 4 -- -i --portmask=%s --disable-rss  --rxq=4 --txq=4 --nb-cores=4  --nb-ports=1 --pkt-filter-mode=signature\" % (self.path, self.coreMask, utils.create_mask([self.dut_ports[0]])), \"testpmd>\", 120)\n-        elif self.nic in [\"fortville_eagle\", \"fortville_spirit\", \"fortville_spirit_single\", \"fortpark_TLV\",\"fortpark_BASE-T\", \"fortville_25g\", \"carlsville\"]:\n-            # fortville ipv6 support perfect mode\n-            self.dut.send_expect(\"%s -c %s -n 4 -- -i --portmask=%s --disable-rss --rxq=4 --txq=4 --nb-cores=4 --nb-ports=1 --pkt-filter-mode=perfect\" % (self.path, self.coreMask, utils.create_mask([self.dut_ports[0]])), \"testpmd>\", 120)\n-        self.dut.send_expect(\"set verbose 1\", \"testpmd>\")\n-        self.dut.send_expect(\"set fwd rxonly\", \"testpmd>\")\n-\n-        self.fdir_set_rule()\n-        self.fdir_get_flexbytes()\n-\n-        # ipv6 ip\n-        self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv6-other src FE80:0:0:0:200:1FF:FE00:200 dst 3555:5555:6666:6666:7777:7777:8888:8888  tos 2 proto 20 ttl 40 vlan 0 flexbytes (%s) fwd pf queue %d fd_id %d \" % (self.dut_ports[0], self.flexbytes, 2, 1), \"testpmd>\")\n-        self.send_and_verify(True, \"sendp([Ether(src=get_if_hwaddr('%s'), dst='00:1B:21:8E:B2:30')/IPv6(src='FE80:0:0:0:200:1FF:FE00:200', dst='3555:5555:6666:6666:7777:7777:8888:8888')/Raw(load='%s')], iface='%s')\" % (self.dut_rx_interface, self.payload, self.dut_rx_interface))\n-        self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv6-other src FE80:0:0:0:200:1FF:FE00:200 dst 3555:5555:6666:6666:7777:7777:8888:8888  tos 2 proto 20 ttl 40 vlan 0 flexbytes (%s) fwd pf queue %d fd_id %d \" % (self.dut_ports[0], self.flexbytes, 2, 1), \"testpmd>\")\n-        self.send_and_verify(False, \"sendp([Ether(src=get_if_hwaddr('%s'), dst='00:1B:21:8E:B2:30')/IPv6(src='FE80:0:0:0:200:1FF:FE00:200', dst='3555:5555:6666:6666:7777:7777:8888:8888')/Raw(load='%s')], iface='%s')\" % (self.dut_rx_interface, self.payload, self.dut_rx_interface))\n-        if (self.nic in [\"niantic\"]):\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv6-other src FE80:0:0:0:200:1FF:FE00:200 dst 3555:5555:6666:6666:7777:7777:8888:8888  tos 2 proto 20 ttl 40 vlan 0 flexbytes (%s) fwd pf queue %d fd_id %d \" % (self.dut_ports[0], self.flexbytes, 1, 1), \"testpmd>\")\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  update flow ipv6-other src FE80:0:0:0:200:1FF:FE00:200 dst 3555:5555:6666:6666:7777:7777:8888:8888  tos 2 proto 20 ttl 40 vlan 0 flexbytes (%s) fwd pf queue %d fd_id %d \" % (self.dut_ports[0], self.flexbytes, 2, 1), \"testpmd>\")\n-            self.send_and_verify(True, \"sendp([Ether(src=get_if_hwaddr('%s'), dst='00:1B:21:8E:B2:30')/IPv6(src='FE80:0:0:0:200:1FF:FE00:200', dst='3555:5555:6666:6666:7777:7777:8888:8888')/Raw(load='%s')], iface='%s')\" % (self.dut_rx_interface, self.payload, self.dut_rx_interface))\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv6-other src FE80:0:0:0:200:1FF:FE00:200 dst 3555:5555:6666:6666:7777:7777:8888:8888  tos 2 proto 20 ttl 40 vlan 0 flexbytes (%s) fwd pf queue %d fd_id %d \" % (self.dut_ports[0], self.flexbytes, 2, 1), \"testpmd>\")\n-\n-        # ipv6 udp\n-        self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv6-udp src FE80:0:0:0:200:1FF:FE00:200 1024 dst 3555:5555:6666:6666:7777:7777:8888:8888 1024  tos 2   ttl 40 vlan 0 flexbytes (%s) fwd pf queue %d fd_id %d \" % (self.dut_ports[0], self.flexbytes, 2, 1), \"testpmd>\")\n-        self.send_and_verify(True, \"sendp([Ether(src=get_if_hwaddr('%s'), dst='00:1B:21:8E:B2:30')/IPv6(src='FE80:0:0:0:200:1FF:FE00:200', dst='3555:5555:6666:6666:7777:7777:8888:8888')/UDP(sport=1024,dport=1024)/Raw(load='%s')], iface='%s')\" % (self.dut_rx_interface, self.payload, self.dut_rx_interface))\n-        self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv6-udp src FE80:0:0:0:200:1FF:FE00:200 1024 dst 3555:5555:6666:6666:7777:7777:8888:8888 1024  tos 2   ttl 40 vlan 0 flexbytes (%s) fwd pf queue %d fd_id %d \" % (self.dut_ports[0], self.flexbytes, 2, 1), \"testpmd>\")\n-        self.send_and_verify(False, \"sendp([Ether(src=get_if_hwaddr('%s'), dst='00:1B:21:8E:B2:30')/IPv6(src='FE80:0:0:0:200:1FF:FE00:200', dst='3555:5555:6666:6666:7777:7777:8888:8888')/UDP(sport=1024,dport=1024)/Raw(load='%s')], iface='%s')\" % (self.dut_rx_interface, self.payload, self.dut_rx_interface))\n-        if (self.nic in [\"niantic\"]):\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv6-udp src FE80:0:0:0:200:1FF:FE00:200 1024 dst 3555:5555:6666:6666:7777:7777:8888:8888 1024  tos 2 ttl 40 vlan 0 flexbytes (%s) fwd pf queue %d fd_id %d \" % (self.dut_ports[0], self.flexbytes, 1, 1), \"testpmd>\")\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  update flow ipv6-udp src FE80:0:0:0:200:1FF:FE00:200 1024 dst 3555:5555:6666:6666:7777:7777:8888:8888 1024  tos 2  ttl 40 vlan 0 flexbytes (%s) fwd pf queue %d fd_id %d \" % (self.dut_ports[0], self.flexbytes, 2, 1), \"testpmd>\")\n-            self.send_and_verify(True, \"sendp([Ether(src=get_if_hwaddr('%s'), dst='00:1B:21:8E:B2:30')/IPv6(src='FE80:0:0:0:200:1FF:FE00:200', dst='3555:5555:6666:6666:7777:7777:8888:8888')/UDP(sport=1024,dport=1024)/Raw(load='%s')], iface='%s')\" % (self.dut_rx_interface, self.payload, self.dut_rx_interface))\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv6-udp src FE80:0:0:0:200:1FF:FE00:200 1024 dst 3555:5555:6666:6666:7777:7777:8888:8888 1024  tos 2  proto 20 ttl 40 vlan 0 flexbytes (%s) fwd pf queue %d fd_id %d \" % (self.dut_ports[0], self.flexbytes, 2, 1), \"testpmd>\")\n-\n-        # ipv6 tcp\n-        self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv6-tcp src FE80:0:0:0:200:1FF:FE00:200 32 dst 3555:5555:6666:6666:7777:7777:8888:8888 32  tos 2   ttl 40 vlan 0 flexbytes (%s) fwd pf queue %d fd_id %d \" % (self.dut_ports[0], self.flexbytes, 2, 1), \"testpmd>\")\n-        self.send_and_verify(True, \"sendp([Ether(src=get_if_hwaddr('%s'), dst='00:1B:21:8E:B2:30')/IPv6(src='FE80:0:0:0:200:1FF:FE00:200', dst='3555:5555:6666:6666:7777:7777:8888:8888')/TCP(sport=32,dport=32)/Raw(load='%s')], iface='%s')\" % (self.dut_rx_interface, self.payload, self.dut_rx_interface))\n-        self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv6-tcp src FE80:0:0:0:200:1FF:FE00:200 32 dst 3555:5555:6666:6666:7777:7777:8888:8888 32  tos 2   ttl 40 vlan 0 flexbytes (%s) fwd pf queue %d fd_id %d \" % (self.dut_ports[0], self.flexbytes, 2, 1), \"testpmd>\")\n-        self.send_and_verify(False, \"sendp([Ether(src=get_if_hwaddr('%s'), dst='00:1B:21:8E:B2:30')/IPv6(src='FE80:0:0:0:200:1FF:FE00:200', dst='3555:5555:6666:6666:7777:7777:8888:8888')/TCP(sport=32,dport=32)/Raw(load='%s')], iface='%s')\" % (self.dut_rx_interface, self.payload, self.dut_rx_interface))\n-        if (self.nic in [\"niantic\"]):\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv6-tcp src FE80:0:0:0:200:1FF:FE00:200 32 dst 3555:5555:6666:6666:7777:7777:8888:8888 32  tos 2  proto 20 ttl 40 vlan 0 flexbytes (%s) fwd pf queue %d fd_id %d \" % (self.dut_ports[0], self.flexbytes, 1, 1), \"testpmd>\")\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  update flow ipv6-tcp src FE80:0:0:0:200:1FF:FE00:200 32 dst 3555:5555:6666:6666:7777:7777:8888:8888 32  tos 2 ttl 40 vlan 0 flexbytes (%s) fwd pf queue %d fd_id %d \" % (self.dut_ports[0], self.flexbytes, 2, 1), \"testpmd>\")\n-            self.send_and_verify(True, \"sendp([Ether(src=get_if_hwaddr('%s'), dst='00:1B:21:8E:B2:30')/IPv6(src='FE80:0:0:0:200:1FF:FE00:200', dst='3555:5555:6666:6666:7777:7777:8888:8888')/TCP(sport=32,dport=32)/Raw(load='%s')], iface='%s')\" % (self.dut_rx_interface, self.payload, self.dut_rx_interface))\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv6-tcp src FE80:0:0:0:200:1FF:FE00:200 32 dst 3555:5555:6666:6666:7777:7777:8888:8888 32  tos 2  proto 20 ttl 40 vlan 0 flexbytes (%s) fwd pf queue %d fd_id %d \" % (self.dut_ports[0], self.flexbytes, 2, 1), \"testpmd>\")\n-        #ipv6 sctp\n-        self.fdir_get_flexbytes(sctp=True)\n-        self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv6-sctp src FE80:0:0:0:200:1FF:FE00:200 32 dst 3555:5555:6666:6666:7777:7777:8888:8888 32 verify_tag 1  tos 2   ttl 40 vlan 0 flexbytes (%s) fwd pf queue %d fd_id %d \"%(self.dut_ports[0],self.flexbytes,2,1), \"testpmd>\")\n-        self.send_and_verify(True, \"sendp([Ether(src=get_if_hwaddr('%s'), dst='00:1B:21:8E:B2:30')/IPv6(src='FE80:0:0:0:200:1FF:FE00:200', dst='3555:5555:6666:6666:7777:7777:8888:8888', nh=132)/SCTP(sport=32, dport=32, tag=1)/SCTPChunkData(data='%s')], iface='%s')\" % (self.dut_rx_interface, self.payload, self.dut_rx_interface))\n-        self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv6-sctp src FE80:0:0:0:200:1FF:FE00:200 32 dst 3555:5555:6666:6666:7777:7777:8888:8888 32 verify_tag 1  tos 2  ttl 40 vlan 0 flexbytes (%s) fwd pf queue %d fd_id %d \"%(self.dut_ports[0],self.flexbytes,2,1), \"testpmd>\")\n-        self.send_and_verify(False, \"sendp([Ether(src=get_if_hwaddr('%s'), dst='00:1B:21:8E:B2:30')/IPv6(src='FE80:0:0:0:200:1FF:FE00:200', dst='3555:5555:6666:6666:7777:7777:8888:8888', nh=132)/SCTP(sport=32, dport=32, tag=1)/SCTPChunkData(data='%s')], iface='%s')\" % (self.dut_rx_interface, self.payload, self.dut_rx_interface))\n-        if (self.nic in [\"niantic\"]):\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv6-sctp src FE80:0:0:0:200:1FF:FE00:200 32 dst 3555:5555:6666:6666:7777:7777:8888:8888 32 verify_tag 1  tos 2  proto 20 ttl 40 vlan 0 flexbytes (%s) fwd pf queue %d fd_id %d \"%(self.dut_ports[0],self.flexbytes,1,1), \"testpmd>\")\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  update flow ipv6-sctp src FE80:0:0:0:200:1FF:FE00:200 32 dst 3555:5555:6666:6666:7777:7777:8888:8888 32 verify_tag 1  tos 2  ttl 40 vlan 0 flexbytes (%s) fwd pf queue %d fd_id %d \"%(self.dut_ports[0],self.flexbytes,2,1), \"testpmd>\")\n-            self.send_and_verify(True, \"sendp([Ether(src=get_if_hwaddr('%s'), dst='00:1B:21:8E:B2:30')/IPv6(src='FE80:0:0:0:200:1FF:FE00:200', dst='3555:5555:6666:6666:7777:7777:8888:8888', nh=132)/SCTP(sport=32, dport=32, tag=1)/SCTPChunkData(data='%s')], iface='%s')\" % (self.dut_rx_interface, self.payload, self.dut_rx_interface))\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv6-sctp src FE80:0:0:0:200:1FF:FE00:200 32 dst 3555:5555:6666:6666:7777:7777:8888:8888 32 verify_tag 1  tos 2  proto 20 ttl 40 vlan 0 flexbytes (%s) fwd pf queue %d fd_id %d \"%(self.dut_ports[0],self.flexbytes,2,1), \"testpmd>\")\n-        self.fdir_get_flexbytes()\n-\n-        # ipv6 frag\n-        # ip-frag only support fortville\n-        if (self.nic in [\"fortville_eagle\", \"fortville_spirit\", \"fortville_spirit_single\", \"fortpark_TLV\",\"fortpark_BASE-T\", \"fortville_25g\", \"carlsville\"]):\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv6-other src FE80:0:0:0:200:1FF:FE00:200 dst 3555:5555:6666:6666:7777:7777:8888:8888  tos 2 proto 20 ttl 40 vlan 0 flexbytes (%s) fwd pf queue %d fd_id %d \" % (self.dut_ports[0], self.flexbytes, 3, 1), \"testpmd>\")\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv6-frag src FE80:0:0:0:200:1FF:FE00:200 dst 3555:5555:6666:6666:7777:7777:8888:8888  tos 2 proto 20 ttl 40 vlan 0 flexbytes (%s) fwd pf queue %d fd_id %d \" % (self.dut_ports[0], self.flexbytes, 2, 1), \"testpmd>\")\n-            self.send_and_verify(True, \"sendp([Ether(src=get_if_hwaddr('%s'), dst='00:1B:21:8E:B2:30')/IPv6(src='FE80:0:0:0:200:1FF:FE00:200', dst='3555:5555:6666:6666:7777:7777:8888:8888', nh=44)/IPv6ExtHdrFragment()/Raw(load='%s')], iface='%s')\" % (self.dut_rx_interface, self.payload, self.dut_rx_interface))\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv6-other src FE80:0:0:0:200:1FF:FE00:200 dst 3555:5555:6666:6666:7777:7777:8888:8888  tos 2 proto 20 ttl 40 vlan 0 flexbytes (%s) fwd pf queue %d fd_id %d \" % (self.dut_ports[0], self.flexbytes, 3, 1), \"testpmd>\")\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv6-frag src FE80:0:0:0:200:1FF:FE00:200 dst 3555:5555:6666:6666:7777:7777:8888:8888  tos 2 proto 20 ttl 40 vlan 0 flexbytes (%s) fwd pf queue %d fd_id %d \" % (self.dut_ports[0], self.flexbytes, 2, 1), \"testpmd>\")\n-            self.send_and_verify(False, \"sendp([Ether(src=get_if_hwaddr('%s'), dst='00:1B:21:8E:B2:30')/IPv6(src='FE80:0:0:0:200:1FF:FE00:200', dst='3555:5555:6666:6666:7777:7777:8888:8888', nh=44)/IPv6ExtHdrFragment()/Raw(load='%s')], iface='%s')\" % (self.dut_rx_interface, self.payload, self.dut_rx_interface))\n-\n-        self.dut.send_expect(\"quit\", \"# \", 30)\n-\n-    def test_fdir_flexword_drop_ipv4(self):\n-\n-        # drop testing with flexword\n-        self.dut.send_expect(\"%s -c %s -n 4 -- -i --portmask=%s --disable-rss --rxq=4 --txq=4 --nb-cores=4 --nb-ports=1 --pkt-filter-mode=perfect\" % (self.path, self.coreMask, utils.create_mask([self.dut_ports[0]])), \"testpmd>\", 120)\n-        self.dut.send_expect(\"set verbose 1\", \"testpmd>\")\n-        self.dut.send_expect(\"set fwd rxonly\", \"testpmd>\")\n-\n-        self.fdir_set_rule()\n-        self.fdir_get_flexbytes()\n-        # fwd comand testing\n-        self.fdir_type = \"drop\"\n-\n-        # ipv4 ip\n-        self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv4-other src 192.168.0.1 dst 192.168.0.2  tos 2 proto 20 ttl 40 vlan 0 flexbytes (%s) drop pf queue %d fd_id %d \" % (self.dut_ports[0], self.flexbytes, 2, 1), \"testpmd>\")\n-        self.send_and_verify(False, \"sendp([Ether(src=get_if_hwaddr('%s'), dst='00:1B:21:8E:B2:30')/IP(src='192.168.0.1', dst='192.168.0.2')/Raw(load='%s')], iface='%s')\" % (self.dut_rx_interface, self.payload, self.dut_rx_interface))\n-        self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv4-other src 192.168.0.1 dst 192.168.0.2  tos 2 proto 20 ttl 40 vlan 0 flexbytes (%s) drop pf queue %d fd_id %d \" % (self.dut_ports[0], self.flexbytes, 2, 1), \"testpmd>\")\n-        self.send_and_verify(True, \"sendp([Ether(src=get_if_hwaddr('%s'), dst='00:1B:21:8E:B2:30')/IP(src='192.168.0.1', dst='192.168.0.2')/Raw(load='%s')], iface='%s')\" % (self.dut_rx_interface, self.payload, self.dut_rx_interface))\n-\n-        # ipv4 udp\n-        self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv4-udp src 192.168.0.1 1024 dst 192.168.0.2 1024  tos 2  ttl 40 vlan 0 flexbytes (%s) drop pf queue %d fd_id %d \" % (self.dut_ports[0], self.flexbytes, 2, 1), \"testpmd>\")\n-        self.send_and_verify(False, \"sendp([Ether(src=get_if_hwaddr('%s'), dst='00:1B:21:8E:B2:30')/IP(src='192.168.0.1', dst='192.168.0.2')/UDP(sport=1024,dport=1024)/Raw(load='%s')], iface='%s')\" % (self.dut_rx_interface, self.payload, self.dut_rx_interface))\n-        self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv4-udp src 192.168.0.1 1024 dst 192.168.0.2 1024  tos 2  ttl 40 vlan 0 flexbytes (%s) drop pf queue %d fd_id %d \" % (self.dut_ports[0], self.flexbytes, 2, 1), \"testpmd>\")\n-        self.send_and_verify(True, \"sendp([Ether(src=get_if_hwaddr('%s'), dst='00:1B:21:8E:B2:30')/IP(src='192.168.0.1', dst='192.168.0.2')/UDP(sport=1024,dport=1024)/Raw(load='%s')], iface='%s')\" % (self.dut_rx_interface, self.payload, self.dut_rx_interface))\n-\n-        # ipv4 tcp\n-        self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv4-tcp src 192.168.0.1 32 dst 192.168.0.2 32  tos 2  ttl 40 vlan 0 flexbytes (%s) drop pf queue %d fd_id %d \" % (self.dut_ports[0], self.flexbytes, 2, 1), \"testpmd>\")\n-        self.send_and_verify(False, \"sendp([Ether(src=get_if_hwaddr('%s'), dst='00:1B:21:8E:B2:30')/IP(src='192.168.0.1', dst='192.168.0.2')/TCP(sport=32,dport=32)/Raw(load='%s')], iface='%s')\" % (self.dut_rx_interface, self.payload, self.dut_rx_interface))\n-        self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv4-tcp src 192.168.0.1 32 dst 192.168.0.2 32  tos 2  ttl 40 vlan 0 flexbytes (%s) drop pf queue %d fd_id %d \" % (self.dut_ports[0], self.flexbytes, 2, 1), \"testpmd>\")\n-        self.send_and_verify(True, \"sendp([Ether(src=get_if_hwaddr('%s'), dst='00:1B:21:8E:B2:30')/IP(src='192.168.0.1', dst='192.168.0.2')/TCP(sport=32,dport=32)/Raw(load='%s')], iface='%s')\" % (self.dut_rx_interface, self.payload, self.dut_rx_interface))\n-\n-        # ipv4 sctp\n-        self.fdir_get_flexbytes(sctp=True)\n-        self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv4-sctp src 192.168.0.1 32 dst 192.168.0.2 32 verify_tag 1  tos 2  ttl 40 vlan 0 flexbytes (%s) drop pf queue %d fd_id %d \"%(self.dut_ports[0],self.flexbytes, 2, 1), \"testpmd>\")\n-        self.send_and_verify(False, \"sendp([Ether(src=get_if_hwaddr('%s'), dst='00:1B:21:8E:B2:30')/IP(src='192.168.0.1', dst='192.168.0.2')/SCTP(sport=32, dport=32, tag=1)/SCTPChunkData(data='%s')], iface='%s')\" % (self.dut_rx_interface, self.payload, self.dut_rx_interface))\n-        self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv4-sctp src 192.168.0.1 32 dst 192.168.0.2 32 verify_tag 1  tos 2  ttl 40 vlan 0 flexbytes (%s) drop pf queue %d fd_id %d \"%(self.dut_ports[0],self.flexbytes, 2, 1), \"testpmd>\")\n-        self.send_and_verify(True, \"sendp([Ether(src=get_if_hwaddr('%s'), dst='00:1B:21:8E:B2:30')/IP(src='192.168.0.1', dst='192.168.0.2')/SCTP(sport=32, dport=32, tag=1)/SCTPChunkData(data='%s')], iface='%s')\" % (self.dut_rx_interface, self.payload, self.dut_rx_interface))\n-        self.fdir_get_flexbytes()\n-\n-        # ipv4 frag\n-        # ip-frag only support fortville\n-        if (self.nic in [\"fortville_eagle\", \"fortville_spirit\", \"fortville_spirit_single\", \"fortpark_TLV\",\"fortpark_BASE-T\", \"fortville_25g\", \"carlsville\"]):\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv4-other src 192.168.0.1 dst 192.168.0.2  tos 2 proto 20 ttl 40 vlan 0 flexbytes (%s) drop pf queue %d fd_id %d \" % (self.dut_ports[0], self.flexbytes, 3, 1), \"testpmd>\")\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv4-frag src 192.168.0.1 dst 192.168.0.2  tos 2 proto 20  ttl 40 vlan 0 flexbytes (%s) drop pf queue %d fd_id %d \" % (self.dut_ports[0], self.flexbytes, 2, 1), \"testpmd>\")\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv4-frag src 192.168.0.1 dst 192.168.0.2  tos 2 proto 20  ttl 40 vlan 0 flexbytes (%s) drop pf queue %d fd_id %d \" % (self.dut_ports[0], self.flexbytes, 2, 1), \"testpmd>\")\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv4-frag src 192.168.0.1 dst 192.168.0.2  tos 2 proto 20  ttl 40 vlan 0 flexbytes (%s) drop pf queue %d fd_id %d \" % (self.dut_ports[0], self.flexbytes, 2, 1), \"testpmd>\")\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv4-frag src 192.168.0.1 dst 192.168.0.2  tos 2 proto 20  ttl 40 vlan 0 flexbytes (%s) drop pf queue %d fd_id %d \" % (self.dut_ports[0], self.flexbytes, 2, 1), \"testpmd>\")\n-            self.send_and_verify(False, \"sendp([Ether(src=get_if_hwaddr('%s'), dst='00:1B:21:8E:B2:30')/IP(src='192.168.0.1', dst='192.168.0.2', frag=1, flags='MF')/Raw(load='%s')], iface='%s')\" % (self.dut_rx_interface, self.payload, self.dut_rx_interface))\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv4-other src 192.168.0.1 dst 192.168.0.2  tos 2 proto 20 ttl 40 vlan 0 flexbytes (%s) drop pf queue %d fd_id %d \" % (self.dut_ports[0], self.flexbytes, 3, 1), \"testpmd>\")\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv4-frag src 192.168.0.1 dst 192.168.0.2  tos 2 proto 20  ttl 40 vlan 0 flexbytes (%s) drop pf queue %d fd_id %d \" % (self.dut_ports[0], self.flexbytes, 2, 1), \"testpmd>\")\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv4-frag src 192.168.0.1 dst 192.168.0.2  tos 2 proto 20  ttl 40 vlan 0 flexbytes (%s) drop pf queue %d fd_id %d \" % (self.dut_ports[0], self.flexbytes, 2, 1), \"testpmd>\")\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv4-frag src 192.168.0.1 dst 192.168.0.2  tos 2 proto 20  ttl 40 vlan 0 flexbytes (%s) drop pf queue %d fd_id %d \" % (self.dut_ports[0], self.flexbytes, 2, 1), \"testpmd>\")\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv4-frag src 192.168.0.1 dst 192.168.0.2  tos 2 proto 20  ttl 40 vlan 0 flexbytes (%s) drop pf queue %d fd_id %d \" % (self.dut_ports[0], self.flexbytes, 2, 1), \"testpmd>\")\n-            self.send_and_verify(True, \"sendp([Ether(src=get_if_hwaddr('%s'),dst='00:1B:21:8E:B2:30')/IP(src='192.168.0.1', dst='192.168.0.2', frag=1, flags='MF')/Raw(load='%s')], iface='%s')\" % (self.dut_rx_interface, self.payload, self.dut_rx_interface))\n-\n-        self.dut.send_expect(\"quit\", \"# \", 30)\n-\n-    def test_fdir_flexword_drop_ipv6(self):\n-        # drop not support signature mode, niantic only can work in signature  mode with ipv6\n-        # Niantic is not support in drop ipv6\n-        if (self.nic in [\"fortville_eagle\", \"fortville_spirit\", \"fortville_spirit_single\", \"fortpark_TLV\", \"fortpark_BASE-T\",\"fortville_25g\", \"carlsville\"]):\n-            # drop testing with flexword\n-            self.dut.send_expect(\"%s -c %s -n 4 -- -i --portmask=%s --disable-rss --rxq=4 --txq=4 --nb-cores=4 --nb-ports=1 --pkt-filter-mode=perfect\" % (self.path, self.coreMask, utils.create_mask([self.dut_ports[0]])), \"testpmd>\", 120)\n-            self.dut.send_expect(\"set verbose 1\", \"testpmd>\")\n-            self.dut.send_expect(\"set fwd rxonly\", \"testpmd>\")\n-\n-            self.fdir_set_rule()\n-            self.fdir_get_flexbytes()\n-            # fwd comand testing\n-            self.fdir_type = \"drop\"\n-\n-            # ipv6 ip\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv6-other src FE80:0:0:0:200:1FF:FE00:200 dst 3555:5555:6666:6666:7777:7777:8888:8888  tos 2 proto 20 ttl 40 vlan 0 flexbytes (%s) drop pf queue %d fd_id %d \" % (self.dut_ports[0], self.flexbytes, 2, 1), \"testpmd>\")\n-            self.send_and_verify(False, \"sendp([Ether(src=get_if_hwaddr('%s'), dst='00:1B:21:8E:B2:30')/IPv6(src='FE80:0:0:0:200:1FF:FE00:200', dst='3555:5555:6666:6666:7777:7777:8888:8888')/Raw(load='%s')], iface='%s')\" % (self.dut_rx_interface, self.payload, self.dut_rx_interface))\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv6-other src FE80:0:0:0:200:1FF:FE00:200 dst 3555:5555:6666:6666:7777:7777:8888:8888  tos 2 proto 20 ttl 40 vlan 0 flexbytes (%s) drop pf queue %d fd_id %d \" % (self.dut_ports[0], self.flexbytes, 2, 1), \"testpmd>\")\n-            self.send_and_verify(True, \"sendp([Ether(src=get_if_hwaddr('%s'), dst='00:1B:21:8E:B2:30')/IPv6(src='FE80:0:0:0:200:1FF:FE00:200', dst='3555:5555:6666:6666:7777:7777:8888:8888')/Raw(load='%s')], iface='%s')\" % (self.dut_rx_interface, self.payload, self.dut_rx_interface))\n-\n-            # ipv6 udp\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv6-udp src FE80:0:0:0:200:1FF:FE00:200 1024 dst 3555:5555:6666:6666:7777:7777:8888:8888 1024  tos 2  ttl 40 vlan 0 flexbytes (%s) drop pf queue %d fd_id %d \" % (self.dut_ports[0], self.flexbytes, 2, 1), \"testpmd>\")\n-            self.send_and_verify(False, \"sendp([Ether(src=get_if_hwaddr('%s'), dst='00:1B:21:8E:B2:30')/IPv6(src='FE80:0:0:0:200:1FF:FE00:200', dst='3555:5555:6666:6666:7777:7777:8888:8888')/UDP(sport=1024,dport=1024)/Raw(load='%s')], iface='%s')\" % (self.dut_rx_interface, self.payload, self.dut_rx_interface))\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv6-udp src FE80:0:0:0:200:1FF:FE00:200 1024 dst 3555:5555:6666:6666:7777:7777:8888:8888 1024  tos 2  ttl 40 vlan 0 flexbytes (%s) drop pf queue %d fd_id %d \" % (self.dut_ports[0], self.flexbytes, 2, 1), \"testpmd>\")\n-            self.send_and_verify(True, \"sendp([Ether(src=get_if_hwaddr('%s'), dst='00:1B:21:8E:B2:30')/IPv6(src='FE80:0:0:0:200:1FF:FE00:200', dst='3555:5555:6666:6666:7777:7777:8888:8888')/UDP(sport=1024,dport=1024)/Raw(load='%s')], iface='%s')\" % (self.dut_rx_interface, self.payload, self.dut_rx_interface))\n-\n-            # ipv6 tcp\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv6-tcp src FE80:0:0:0:200:1FF:FE00:200 32 dst 3555:5555:6666:6666:7777:7777:8888:8888 32  tos 2   ttl 40 vlan 0 flexbytes (%s) drop pf queue %d fd_id %d \" % (self.dut_ports[0], self.flexbytes, 2, 1), \"testpmd>\")\n-            self.send_and_verify(False, \"sendp([Ether(src=get_if_hwaddr('%s'), dst='00:1B:21:8E:B2:30')/IPv6(src='FE80:0:0:0:200:1FF:FE00:200', dst='3555:5555:6666:6666:7777:7777:8888:8888')/TCP(sport=32,dport=32)/Raw(load='%s')], iface='%s')\" % (self.dut_rx_interface, self.payload, self.dut_rx_interface))\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv6-tcp src FE80:0:0:0:200:1FF:FE00:200 32 dst 3555:5555:6666:6666:7777:7777:8888:8888 32  tos 2   ttl 40 vlan 0 flexbytes (%s) drop pf queue %d fd_id %d \" % (self.dut_ports[0], self.flexbytes, 2, 1), \"testpmd>\")\n-            self.send_and_verify(True, \"sendp([Ether(src=get_if_hwaddr('%s'), dst='00:1B:21:8E:B2:30')/IPv6(src='FE80:0:0:0:200:1FF:FE00:200', dst='3555:5555:6666:6666:7777:7777:8888:8888')/TCP(sport=32,dport=32)/Raw(load='%s')], iface='%s')\" % (self.dut_rx_interface, self.payload, self.dut_rx_interface))\n-\n-            # ipv6 frag\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv6-frag src FE80:0:0:0:200:1FF:FE00:200 dst 3555:5555:6666:6666:7777:7777:8888:8888  tos 2 proto 20 ttl 40 vlan 0 flexbytes (%s) drop pf queue %d fd_id %d \" % (self.dut_ports[0], self.flexbytes, 2, 1), \"testpmd>\")\n-            self.send_and_verify(False, \"sendp([Ether(src=get_if_hwaddr('%s'), dst='00:1B:21:8E:B2:30')/IPv6(src='FE80:0:0:0:200:1FF:FE00:200', dst='3555:5555:6666:6666:7777:7777:8888:8888', nh=44)/IPv6ExtHdrFragment()/Raw(load='%s')], iface='%s')\" % (self.dut_rx_interface, self.payload, self.dut_rx_interface))\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv6-other src FE80:0:0:0:200:1FF:FE00:200 dst 3555:5555:6666:6666:7777:7777:8888:8888  tos 2 proto 20 ttl 40 vlan 0 flexbytes (%s) drop pf queue %d fd_id %d \" % (self.dut_ports[0], self.flexbytes, 3, 1), \"testpmd>\")\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  del flow ipv6-frag src FE80:0:0:0:200:1FF:FE00:200 dst 3555:5555:6666:6666:7777:7777:8888:8888  tos 2 proto 20 ttl 40 vlan 0 flexbytes (%s) drop pf queue %d fd_id %d \" % (self.dut_ports[0], self.flexbytes, 2, 1), \"testpmd>\")\n-            self.send_and_verify(True, \"sendp([Ether(src=get_if_hwaddr('%s'), dst='00:1B:21:8E:B2:30')/IPv6(src='FE80:0:0:0:200:1FF:FE00:200', dst='3555:5555:6666:6666:7777:7777:8888:8888', nh=44)/IPv6ExtHdrFragment()/Raw(load='%s')], iface='%s')\" % (self.dut_rx_interface, self.payload, self.dut_rx_interface))\n-\n-            self.dut.send_expect(\"quit\", \"# \", 30)\n-\n-    def test_ipv4_tos_proto_ttl(self):\n-        \"\"\"\n-        Expand Flow Director for fortville to support ipv4 TOS, ipv4 PROTO, ipv4 TTL\n-        \"\"\"\n-        if not self.nic in [\"fortville_eagle\", \"fortville_spirit\", \"fortville_spirit_single\", \"fortville_25g\", \"carlsville\", \"foxville\"]:\n-            self.verify(False, \"This case only support fortville nic\")\n-        self.dut.kill_all()\n-        self.dut.send_expect(\"%s -c %s -n 4 -- -i --portmask=%s --disable-rss --rxq=4 --txq=4 --nb-cores=4 --nb-ports=1 --pkt-filter-mode=perfect\" % (self.path, self.coreMask, utils.create_mask([self.dut_ports[0]])), \"testpmd>\", 120)\n-        self.dut.send_expect(\"set verbose 1\", \"testpmd>\")\n-        self.dut.send_expect(\"set fwd rxonly\", \"testpmd>\")\n-\n-        self.fdir_set_rule()\n-        self.fdir_get_flexbytes()\n-        # fwd comand testing\n-        self.fdir_type = \" \"\n-        self.dut.send_expect(\"set_fdir_input_set %d ipv4-other none select\" % self.dut_ports[0], \"testpmd>\")\n-        self.dut.send_expect(\"set_fdir_input_set %d ipv4-other src-ipv4 add\" % self.dut_ports[0], \"testpmd>\")\n-        self.dut.send_expect(\"set_fdir_input_set %d ipv4-other dst-ipv4 add\" % self.dut_ports[0], \"testpmd>\")\n-            \n-        # test add and remove  tso rule\n-        self.dut.send_expect(\"set_fdir_input_set %d ipv4-other ipv4-tos add\" % self.dut_ports[0], \"testpmd>\")\n-        self.dut.send_expect(\"flow_director_filter %d mode IP add flow ipv4-other src 192.168.1.1 dst 192.168.1.2 \\\n-                              tos 16 proto 255 ttl 255 vlan 0 flexbytes (%s) fwd pf queue 1 fd_id 1\" \n-                              % (self.dut_ports[0], self.flexbytes), \"testpmd>\")\n-        self.dut.send_expect(\"flow_director_filter %d mode IP add flow ipv4-other src 192.168.1.1 dst 192.168.1.2 \\\n-                              tos 8 proto 255 ttl 255 vlan 0 flexbytes (%s) fwd pf queue 2 fd_id 2\" \n-                              % (self.dut_ports[0], self.flexbytes), \"testpmd>\")\n-            \n-        self.send_and_verify(True, \"sendp([Ether(src=get_if_hwaddr('%s'), dst='00:1B:21:8E:B2:30') \\\n-                             /IP(src='192.168.1.1', dst='192.168.1.2', tos=16, proto=255, ttl=255) \\\n-                             /Raw(load='%s')], iface='%s')\" \\\n-                             % (self.dut_rx_interface, self.payload, self.dut_rx_interface), queueid = 1)\n-        self.send_and_verify(True, \"sendp([Ether(src=get_if_hwaddr('%s'), dst='00:1B:21:8E:B2:30') \\\n-                             /IP(src='192.168.1.1', dst='192.168.1.2', tos=8, proto=255, ttl=255) \\\n-                             /Raw(load='%s')], iface='%s')\" \\\n-                             % (self.dut_rx_interface, self.payload, self.dut_rx_interface), queueid = 2)\n-\n-        self.dut.send_expect(\"flow_director_filter %d mode IP del flow ipv4-other src 192.168.1.1 dst 192.168.1.2 \\\n-                              tos 16 proto 255 ttl 255 vlan 0 flexbytes (%s) fwd pf queue 1 fd_id 1\"\n-                              % (self.dut_ports[0], self.flexbytes), \"testpmd>\")\n-        self.dut.send_expect(\"flow_director_filter %d mode IP del flow ipv4-other src 192.168.1.1 dst 192.168.1.2 \\\n-                              tos 8 proto 255 ttl 255 vlan 0 flexbytes (%s) fwd pf queue 2 fd_id 2\"\n-                              % (self.dut_ports[0], self.flexbytes), \"testpmd>\")\n-\n-        self.send_and_verify(True, \"sendp([Ether(src=get_if_hwaddr('%s'), dst='00:1B:21:8E:B2:30') \\\n-                             /IP(src='192.168.1.1', dst='192.168.1.2', tos=16, proto=255, ttl=255) \\\n-                             /Raw(load='%s')], iface='%s')\" \\\n-                             % (self.dut_rx_interface, self.payload, self.dut_rx_interface), queueid = 0)\n-        self.send_and_verify(True, \"sendp([Ether(src=get_if_hwaddr('%s'), dst='00:1B:21:8E:B2:30') \\\n-                             /IP(src='192.168.1.1', dst='192.168.1.2', tos=8, proto=255, ttl=255) \\\n-                             /Raw(load='%s')], iface='%s')\" \\\n-                             % (self.dut_rx_interface, self.payload, self.dut_rx_interface), queueid = 0)\n-\n-        # test add and remove proto rule\n-        self.dut.send_expect(\"set_fdir_input_set %d ipv4-other ipv4-proto add\" % self.dut_ports[0], \"testpmd>\")\n-        self.dut.send_expect(\"flow_director_filter %d mode IP add flow ipv4-other src 192.168.1.1 dst 192.168.1.2 \\\n-                              tos 16 proto 253 ttl 255 vlan 0 flexbytes (%s) fwd pf queue 1 fd_id 1\"\n-                              % (self.dut_ports[0], self.flexbytes), \"testpmd>\")\n-        self.dut.send_expect(\"flow_director_filter %d mode IP add flow ipv4-other src 192.168.1.1 dst 192.168.1.2 \\\n-                              tos 16 proto 254 ttl 255 vlan 0 flexbytes (%s) fwd pf queue 2 fd_id 2\"\n-                              % (self.dut_ports[0], self.flexbytes), \"testpmd>\")\n-\n-        self.send_and_verify(True, \"sendp([Ether(src=get_if_hwaddr('%s'), dst='00:1B:21:8E:B2:30') \\\n-                             /IP(src='192.168.1.1', dst='192.168.1.2', tos=16, proto=253, ttl=255) \\\n-                             /Raw(load='%s')], iface='%s')\" \\\n-                             % (self.dut_rx_interface, self.payload, self.dut_rx_interface), queueid = 1)\n-        self.send_and_verify(True, \"sendp([Ether(src=get_if_hwaddr('%s'), dst='00:1B:21:8E:B2:30') \\\n-                             /IP(src='192.168.1.1', dst='192.168.1.2', tos=16, proto=254, ttl=255) \\\n-                             /Raw(load='%s')], iface='%s')\" \\\n-                             % (self.dut_rx_interface, self.payload, self.dut_rx_interface), queueid = 2)\n-\n-        self.dut.send_expect(\"flow_director_filter %d mode IP del flow ipv4-other src 192.168.1.1 dst 192.168.1.2 \\\n-                              tos 16 proto 253 ttl 255 vlan 0 flexbytes (%s) fwd pf queue 1 fd_id 1\"\n-                              % (self.dut_ports[0], self.flexbytes), \"testpmd>\")\n-        self.dut.send_expect(\"flow_director_filter %d mode IP del flow ipv4-other src 192.168.1.1 dst 192.168.1.2 \\\n-                              tos 16 proto 254 ttl 255 vlan 0 flexbytes (%s) fwd pf queue 2 fd_id 2\"\n-                              % (self.dut_ports[0], self.flexbytes), \"testpmd>\")\n-\n-        self.send_and_verify(True, \"sendp([Ether(src=get_if_hwaddr('%s'), dst='00:1B:21:8E:B2:30') \\\n-                             /IP(src='192.168.1.1', dst='192.168.1.2', tos=16, proto=253, ttl=255) \\\n-                             /Raw(load='%s')], iface='%s')\" \\\n-                             % (self.dut_rx_interface, self.payload, self.dut_rx_interface), queueid = 0)\n-        self.send_and_verify(True, \"sendp([Ether(src=get_if_hwaddr('%s'), dst='00:1B:21:8E:B2:30') \\\n-                             /IP(src='192.168.1.1', dst='192.168.1.2', tos=16, proto=254, ttl=255) \\\n-                             /Raw(load='%s')], iface='%s')\" \\\n-                             % (self.dut_rx_interface, self.payload, self.dut_rx_interface), queueid = 0)\n-\n-        # test add and remove ttl rule\n-        self.dut.send_expect(\"set_fdir_input_set %d ipv4-other ipv4-ttl add\" % self.dut_ports[0], \"testpmd>\")\n-        self.dut.send_expect(\"flow_director_filter %d mode IP add flow ipv4-other src 192.168.1.1 dst 192.168.1.2 \\\n-                              tos 16 proto 255 ttl 32 vlan 0 flexbytes (%s) fwd pf queue 1 fd_id 1\"\n-                              % (self.dut_ports[0], self.flexbytes), \"testpmd>\")\n-        self.dut.send_expect(\"flow_director_filter %d mode IP add flow ipv4-other src 192.168.1.1 dst 192.168.1.2 \\\n-                              tos 16 proto 255 ttl 64 vlan 0 flexbytes (%s) fwd pf queue 2 fd_id 2\"\n-                              % (self.dut_ports[0], self.flexbytes), \"testpmd>\")\n-\n-        self.send_and_verify(True, \"sendp([Ether(src=get_if_hwaddr('%s'), dst='00:1B:21:8E:B2:30') \\\n-                             /IP(src='192.168.1.1', dst='192.168.1.2', tos=16, proto=255, ttl=32) \\\n-                             /Raw(load='%s')], iface='%s')\" \\\n-                             % (self.dut_rx_interface, self.payload, self.dut_rx_interface), queueid = 1)\n-        self.send_and_verify(True, \"sendp([Ether(src=get_if_hwaddr('%s'), dst='00:1B:21:8E:B2:30') \\\n-                             /IP(src='192.168.1.1', dst='192.168.1.2', tos=16, proto=255, ttl=64) \\\n-                             /Raw(load='%s')], iface='%s')\" \\\n-                             % (self.dut_rx_interface, self.payload, self.dut_rx_interface), queueid = 2)\n-\n-        self.dut.send_expect(\"flow_director_filter %d mode IP del flow ipv4-other src 192.168.1.1 dst 192.168.1.2 \\\n-                              tos 16 proto 255 ttl 32 vlan 0 flexbytes (%s) fwd pf queue 1 fd_id 1\"\n-                              % (self.dut_ports[0], self.flexbytes), \"testpmd>\")\n-        self.dut.send_expect(\"flow_director_filter %d mode IP del flow ipv4-other src 192.168.1.1 dst 192.168.1.2 \\\n-                              tos 16 proto 255 ttl 64 vlan 0 flexbytes (%s) fwd pf queue 2 fd_id 2\"\n-                              % (self.dut_ports[0], self.flexbytes), \"testpmd>\")\n-\n-        self.send_and_verify(True, \"sendp([Ether(src=get_if_hwaddr('%s'), dst='00:1B:21:8E:B2:30') \\\n-                             /IP(src='192.168.1.1', dst='192.168.1.2', tos=16, proto=255, ttl=32) \\\n-                             /Raw(load='%s')], iface='%s')\" \\\n-                             % (self.dut_rx_interface, self.payload, self.dut_rx_interface), queueid = 0)\n-        self.send_and_verify(True, \"sendp([Ether(src=get_if_hwaddr('%s'), dst='00:1B:21:8E:B2:30') \\\n-                             /IP(src='192.168.1.1', dst='192.168.1.2', tos=16, proto=255, ttl=64) \\\n-                             /Raw(load='%s')], iface='%s')\" \\\n-                             % (self.dut_rx_interface, self.payload, self.dut_rx_interface), queueid = 0)\n-\n-    def test_fdir_ipv6_tc(self):\n-        \"\"\"\n-        Expand Flow Director for fortville to support ipv6 TC, next-header, hop-limits\n-        \"\"\"\n-        if not self.nic in [\"fortville_eagle\", \"fortville_spirit\", \"fortville_spirit_single\", \"fortville_25g\", \"carlsville\", \"foxville\"]:\n-            self.verify(False, \"This case only support fortville nic\")\n-        self.dut.kill_all()\n-        self.dut.send_expect(\"%s -c %s -n 4 -- -i --portmask=%s --disable-rss --rxq=4 --txq=4 --nb-cores=4 --nb-ports=1 --pkt-filter-mode=perfect\" % (self.path, self.coreMask, utils.create_mask([self.dut_ports[0]])), \"testpmd>\", 120)\n-        self.dut.send_expect(\"set verbose 1\", \"testpmd>\")\n-        self.dut.send_expect(\"set fwd rxonly\", \"testpmd>\")\n-\n-        self.fdir_set_rule()\n-        self.fdir_get_flexbytes()\n-        # fwd comand testing\n-        self.fdir_type = \" \"\n-        self.dut.send_expect(\"set_fdir_input_set %d ipv6-other none select\" % self.dut_ports[0], \"testpmd>\")\n-        self.dut.send_expect(\"set_fdir_input_set %d ipv6-other src-ipv6 add\" % self.dut_ports[0], \"testpmd>\")\n-        self.dut.send_expect(\"set_fdir_input_set %d ipv6-other dst-ipv6 add\" % self.dut_ports[0], \"testpmd>\")\n-\n-        # test add and remove ipv6 tc rule\n-        self.dut.send_expect(\"set_fdir_input_set %d ipv6-other ipv6-tc add\" % self.dut_ports[0], \"testpmd>\")\n-        self.dut.send_expect(\"flow_director_filter %d mode IP add flow ipv6-other src 2000::1 dst 2000::2 \\\n-                              tos 16 proto 255 ttl 255 vlan 0 flexbytes (%s) fwd pf queue 1 fd_id 1\"\n-                              % (self.dut_ports[0], self.flexbytes), \"testpmd>\")\n-        self.dut.send_expect(\"flow_director_filter %d mode IP add flow ipv6-other src 2000::1 dst 2000::2 \\\n-                              tos 8 proto 255 ttl 255 vlan 0 flexbytes (%s) fwd pf queue 2 fd_id 2\"\n-                              % (self.dut_ports[0], self.flexbytes), \"testpmd>\")\n-\n-        self.send_and_verify(True, \"sendp([Ether(src=get_if_hwaddr('%s'), dst='00:1B:21:8E:B2:30') \\\n-                             /IPv6(src='2000::1', dst='2000::2', tc=16, nh=255, hlim=64) \\\n-                             /Raw(load='%s')], iface='%s')\" \\\n-                             % (self.dut_rx_interface, self.payload, self.dut_rx_interface), queueid = 1)\n-        self.send_and_verify(True, \"sendp([Ether(src=get_if_hwaddr('%s'), dst='00:1B:21:8E:B2:30') \\\n-                             /IPv6(src='2000::1', dst='2000::2', tc=8, nh=255, hlim=64) \\\n-                             /Raw(load='%s')], iface='%s')\" \\\n-                             % (self.dut_rx_interface, self.payload, self.dut_rx_interface), queueid = 2)\n-\n-        self.dut.send_expect(\"flow_director_filter %d mode IP del flow ipv6-other src 2000::1 dst 2000::2 \\\n-                              tos 16 proto 255 ttl 255 vlan 0 flexbytes (%s) fwd pf queue 1 fd_id 1\"\n-                              % (self.dut_ports[0], self.flexbytes), \"testpmd>\")\n-        self.dut.send_expect(\"flow_director_filter %d mode IP del flow ipv6-other src 2000::1 dst 2000::2 \\\n-                              tos 8 proto 255 ttl 255 vlan 0 flexbytes (%s) fwd pf queue 2 fd_id 2\"\n-                              % (self.dut_ports[0], self.flexbytes), \"testpmd>\")\n-\n-        self.send_and_verify(True, \"sendp([Ether(src=get_if_hwaddr('%s'), dst='00:1B:21:8E:B2:30') \\\n-                             /IPv6(src='2000::1', dst='2000::2', tc=16, nh=255, hlim=64) \\\n-                             /Raw(load='%s')], iface='%s')\" \\\n-                             % (self.dut_rx_interface, self.payload, self.dut_rx_interface), queueid = 0)\n-        self.send_and_verify(True, \"sendp([Ether(src=get_if_hwaddr('%s'), dst='00:1B:21:8E:B2:30') \\\n-                             /IPv6(src='2000::1', dst='2000::2', tc=8, nh=255, hlim=255) \\\n-                             /Raw(load='%s')], iface='%s')\" \\\n-                             % (self.dut_rx_interface, self.payload, self.dut_rx_interface), queueid = 0)\n-\n-        # test add and remove ipv6-next-header  rule\n-        self.dut.send_expect(\"set_fdir_input_set %d ipv6-other ipv6-next-header add\" % self.dut_ports[0], \"testpmd>\")\n-        self.dut.send_expect(\"flow_director_filter %d mode IP add flow ipv6-other src 2000::1 dst 2000::2 \\\n-                              tos 16 proto 253 ttl 255 vlan 0 flexbytes (%s) fwd pf queue 1 fd_id 1\"\n-                              % (self.dut_ports[0], self.flexbytes), \"testpmd>\")\n-        self.dut.send_expect(\"flow_director_filter %d mode IP add flow ipv6-other src 2000::1 dst 2000::2 \\\n-                              tos 16 proto 254 ttl 255 vlan 0 flexbytes (%s) fwd pf queue 2 fd_id 2\"\n-                              % (self.dut_ports[0], self.flexbytes), \"testpmd>\")\n-\n-        self.send_and_verify(True, \"sendp([Ether(src=get_if_hwaddr('%s'), dst='00:1B:21:8E:B2:30') \\\n-                             /IPv6(src='2000::1', dst='2000::2', tc=16, nh=253, hlim=64) \\\n-                             /Raw(load='%s')], iface='%s')\" \\\n-                             % (self.dut_rx_interface, self.payload, self.dut_rx_interface), queueid = 1)\n-        self.send_and_verify(True, \"sendp([Ether(src=get_if_hwaddr('%s'), dst='00:1B:21:8E:B2:30') \\\n-                             /IPv6(src='2000::1', dst='2000::2', tc=16, nh=254, hlim=64) \\\n-                             /Raw(load='%s')], iface='%s')\" \\\n-                             % (self.dut_rx_interface, self.payload, self.dut_rx_interface), queueid = 2)\n-\n-        self.dut.send_expect(\"flow_director_filter %d mode IP del flow ipv6-other src 2000::1 dst 2000::2 \\\n-                              tos 16 proto 253 ttl 255 vlan 0 flexbytes (%s) fwd pf queue 1 fd_id 1\"\n-                              % (self.dut_ports[0], self.flexbytes), \"testpmd>\")\n-        self.dut.send_expect(\"flow_director_filter %d mode IP del flow ipv6-other src 2000::1 dst 2000::2 \\\n-                              tos 16 proto 254 ttl 255 vlan 0 flexbytes (%s) fwd pf queue 2 fd_id 2\"\n-                              % (self.dut_ports[0], self.flexbytes), \"testpmd>\")\n-\n-        self.send_and_verify(True, \"sendp([Ether(src=get_if_hwaddr('%s'), dst='00:1B:21:8E:B2:30') \\\n-                             /IPv6(src='2000::1', dst='2000::2', tc=16, nh=253, hlim=64) \\\n-                             /Raw(load='%s')], iface='%s')\" \\\n-                             % (self.dut_rx_interface, self.payload, self.dut_rx_interface), queueid = 0)\n-        self.send_and_verify(True, \"sendp([Ether(src=get_if_hwaddr('%s'), dst='00:1B:21:8E:B2:30') \\\n-                             /IPv6(src='2000::1', dst='2000::2', tc=16, nh=254, hlim=255) \\\n-                             /Raw(load='%s')], iface='%s')\" \\\n-                             % (self.dut_rx_interface, self.payload, self.dut_rx_interface), queueid = 0)\n-\n-        # test add and remove ipv6-hop-limits rule\n-        self.dut.send_expect(\"set_fdir_input_set %d ipv6-other ipv6-hop-limits add\" % self.dut_ports[0], \"testpmd>\")\n-        self.dut.send_expect(\"flow_director_filter %d mode IP add flow ipv6-other src 2000::1 dst 2000::2 \\\n-                              tos 16 proto 255 ttl 32 vlan 0 flexbytes (%s) fwd pf queue 1 fd_id 1\"\n-                              % (self.dut_ports[0], self.flexbytes), \"testpmd>\")\n-        self.dut.send_expect(\"flow_director_filter %d mode IP add flow ipv6-other src 2000::1 dst 2000::2 \\\n-                              tos 16 proto 255 ttl 64 vlan 0 flexbytes (%s) fwd pf queue 2 fd_id 2\"\n-                              % (self.dut_ports[0], self.flexbytes), \"testpmd>\")\n-\n-        self.send_and_verify(True, \"sendp([Ether(src=get_if_hwaddr('%s'), dst='00:1B:21:8E:B2:30') \\\n-                             /IPv6(src='2000::1', dst='2000::2', tc=16, nh=255, hlim=32) \\\n-                             /Raw(load='%s')], iface='%s')\" \\\n-                             % (self.dut_rx_interface, self.payload, self.dut_rx_interface), queueid = 1)\n-        self.send_and_verify(True, \"sendp([Ether(src=get_if_hwaddr('%s'), dst='00:1B:21:8E:B2:30') \\\n-                             /IPv6(src='2000::1', dst='2000::2', tc=16, nh=255, hlim=64) \\\n-                             /Raw(load='%s')], iface='%s')\" \\\n-                             % (self.dut_rx_interface, self.payload, self.dut_rx_interface), queueid = 2)\n-\n-        self.dut.send_expect(\"flow_director_filter %d mode IP del flow ipv6-other src 2000::1 dst 2000::2 \\\n-                              tos 16 proto 255 ttl 32 vlan 0 flexbytes (%s) fwd pf queue 1 fd_id 1\"\n-                              % (self.dut_ports[0], self.flexbytes), \"testpmd>\")\n-        self.dut.send_expect(\"flow_director_filter %d mode IP del flow ipv6-other src 2000::1 dst 2000::2 \\\n-                              tos 16 proto 255 ttl 64 vlan 0 flexbytes (%s) fwd pf queue 2 fd_id 2\"\n-                              % (self.dut_ports[0], self.flexbytes), \"testpmd>\")\n-\n-        self.send_and_verify(True, \"sendp([Ether(src=get_if_hwaddr('%s'), dst='00:1B:21:8E:B2:30') \\\n-                             /IPv6(src='2000::1', dst='2000::2', tc=16, nh=255, hlim=32) \\\n-                             /Raw(load='%s')], iface='%s')\" \\\n-                             % (self.dut_rx_interface, self.payload, self.dut_rx_interface), queueid = 0)\n-        self.send_and_verify(True, \"sendp([Ether(src=get_if_hwaddr('%s'), dst='00:1B:21:8E:B2:30') \\\n-                             /IPv6(src='2000::1', dst='2000::2', tc=16, nh=255, hlim=64) \\\n-                             /Raw(load='%s')], iface='%s')\" \\\n-                             % (self.dut_rx_interface, self.payload, self.dut_rx_interface), queueid = 0)\n-\n-    def test_fdir_ivlan(self):\n-        \"\"\"\n-        Expand Flow Director for fortville to support ipv4 TOS, ipv4 PROTO, ipv4 TTL\n-        \"\"\"\n-        if not self.nic in [\"fortville_eagle\", \"fortville_spirit\", \"fortville_spirit_single\", \"fortville_25g\", \"carlsville\", \"foxville\"]:\n-            self.verify(False, \"This case only support fortville nic\")\n-        self.dut.kill_all()\n-        self.dut.send_expect(\"%s -c %s -n 4 -- -i --portmask=%s --disable-rss --rxq=4 --txq=4 --nb-cores=4 --nb-ports=1 --pkt-filter-mode=perfect\" % (self.path, self.coreMask, utils.create_mask([self.dut_ports[0]])), \"testpmd>\", 120)\n-        self.dut.send_expect(\"set verbose 1\", \"testpmd>\")\n-        self.dut.send_expect(\"set fwd rxonly\", \"testpmd>\")\n-\n-        self.fdir_type = \" \"\n-        self.dut.send_expect(\"set_fdir_input_set %d ipv4-udp ivlan add\" % self.dut_ports[0], \"testpmd>\")\n-        \n-\n-        self.dut.send_expect(\"flow_director_filter %d mode IP add flow ipv4-udp src 192.168.1.1 1001 dst 192.168.1.2 1002 \\\n-                              tos 2 ttl 40 vlan 1 flexbytes () fwd pf queue 1 fd_id 1\"\n-                              % self.dut_ports[0], \"testpmd>\")\n-        self.dut.send_expect(\"flow_director_filter %d mode IP add flow ipv4-udp src 192.168.1.1 1001 dst 192.168.1.2 1002\\\n-                              tos 2 ttl 40 vlan 15 flexbytes () fwd pf queue 2 fd_id 2\"\n-                              % self.dut_ports[0], \"testpmd>\")\n-        self.dut.send_expect(\"flow_director_filter %d mode IP add flow ipv4-udp src 192.168.1.1 1001 dst 192.168.1.2 1002\\\n-                              tos 2 ttl 40 vlan 255 flexbytes () fwd pf queue 3 fd_id 3\"\n-                              % self.dut_ports[0], \"testpmd>\")\n-        self.dut.send_expect(\"flow_director_filter %d mode IP add flow ipv4-udp src 192.168.1.1 1001 dst 192.168.1.2 1002\\\n-                              tos 2 ttl 40 vlan 4095 flexbytes () fwd pf queue 3 fd_id 4\"\n-                              % self.dut_ports[0], \"testpmd>\")\n-\n-        self.send_and_verify(True, 'sendp([Ether(src=get_if_hwaddr(\"%s\"), dst=\"00:1B:21:8E:B2:30\") \\\n-                             /Dot1Q(id=0x8100,vlan=1) \\\n-                             /IP(src=\"192.168.1.1\", dst=\"192.168.1.2\", tos=2, proto=17, ttl=40) \\\n-                             /UDP(sport=1001,dport=1002) \\\n-                             /Raw(load=\"X\"*20)], iface=\"%s\")' \\\n-                             % (self.dut_rx_interface, self.dut_rx_interface), queueid = 1)\n-\n-        self.send_and_verify(True, 'sendp([Ether(src=get_if_hwaddr(\"%s\"), dst=\"00:1B:21:8E:B2:30\") \\\n-                             /Dot1Q(id=0x8100,vlan=15) \\\n-                             /IP(src=\"192.168.1.1\", dst=\"192.168.1.2\", tos=2, proto=17, ttl=40) \\\n-                             /UDP(sport=1001,dport=1002) \\\n-                             /Raw(load=\"X\"*20)], iface=\"%s\")' \\\n-                             % (self.dut_rx_interface, self.dut_rx_interface), queueid = 2)\n-        self.send_and_verify(True, 'sendp([Ether(src=get_if_hwaddr(\"%s\"), dst=\"00:1B:21:8E:B2:30\") \\\n-                             /Dot1Q(id=0x8100,vlan=255) \\\n-                             /IP(src=\"192.168.1.1\", dst=\"192.168.1.2\", tos=2, proto=17, ttl=40) \\\n-                             /UDP(sport=1001,dport=1002) \\\n-                             /Raw(load=\"X\"*20)], iface=\"%s\")' \\\n-                             % (self.dut_rx_interface, self.dut_rx_interface), queueid = 3)\n-        self.send_and_verify(True, 'sendp([Ether(src=get_if_hwaddr(\"%s\"), dst=\"00:1B:21:8E:B2:30\") \\\n-                             /Dot1Q(id=0x8100,vlan=4095) \\\n-                             /IP(src=\"192.168.1.1\", dst=\"192.168.1.2\", tos=2, proto=17, ttl=40) \\\n-                             /UDP(sport=1001,dport=1002) \\\n-                             /Raw(load=\"X\"*20)], iface=\"%s\")' \\\n-                             % (self.dut_rx_interface, self.dut_rx_interface), queueid = 3)\n-\n-        self.dut.send_expect(\"flow_director_filter %d mode IP del flow ipv4-udp src 192.168.1.1 1001 dst 192.168.1.2 1002\\\n-                              tos 2 ttl 40 vlan 1 flexbytes () fwd pf queue 1 fd_id 1\"\n-                              % self.dut_ports[0], \"testpmd>\")\n-        self.dut.send_expect(\"flow_director_filter %d mode IP del flow ipv4-udp src 192.168.1.1 1001 dst 192.168.1.2 1002\\\n-                              tos 2 ttl 40 vlan 15 flexbytes () fwd pf queue 2 fd_id 2\"\n-                              % self.dut_ports[0], \"testpmd>\")\n-        self.dut.send_expect(\"flow_director_filter %d mode IP del flow ipv4-udp src 192.168.1.1 1001 dst 192.168.1.2 1002\\\n-                              tos 2 ttl 40 vlan 255 flexbytes () fwd pf queue 3 fd_id 3\"\n-                              % self.dut_ports[0], \"testpmd>\")\n-        self.dut.send_expect(\"flow_director_filter %d mode IP del flow ipv4-udp src 192.168.1.1 1001 dst 192.168.1.2 1002\\\n-                              tos 2 ttl 40 vlan 4095 flexbytes () fwd pf queue 3 fd_id 4\"\n-                              % self.dut_ports[0], \"testpmd>\")\n-\n-        self.send_and_verify(True, 'sendp([Ether(src=get_if_hwaddr(\"%s\"), dst=\"00:1B:21:8E:B2:30\") \\\n-                             /Dot1Q(id=0x8100,vlan=1) \\\n-                             /IP(src=\"192.168.1.1\", dst=\"192.168.1.2\", tos=2, proto=17, ttl=40) \\\n-                             /UDP(sport=1001,dport=1002) \\\n-                             /Raw(load=\"X\"*20)], iface=\"%s\")' \\\n-                             % (self.dut_rx_interface, self.dut_rx_interface), queueid = 0)\n-\n-        self.send_and_verify(True, 'sendp([Ether(src=get_if_hwaddr(\"%s\"), dst=\"00:1B:21:8E:B2:30\") \\\n-                             /Dot1Q(id=0x8100,vlan=15) \\\n-                             /IP(src=\"192.168.1.1\", dst=\"192.168.1.2\", tos=2, proto=17, ttl=40) \\\n-                             /UDP(sport=1001,dport=1002) \\\n-                             /Raw(load=\"X\"*20)], iface=\"%s\")' \\\n-                             % (self.dut_rx_interface, self.dut_rx_interface), queueid = 0)\n-        self.send_and_verify(True, 'sendp([Ether(src=get_if_hwaddr(\"%s\"), dst=\"00:1B:21:8E:B2:30\") \\\n-                             /Dot1Q(id=0x8100,vlan=255) \\\n-                             /IP(src=\"192.168.1.1\", dst=\"192.168.1.2\", tos=2, proto=17, ttl=40) \\\n-                             /UDP(sport=1001,dport=1002) \\\n-                             /Raw(load=\"X\"*20)], iface=\"%s\")' \\\n-                             % (self.dut_rx_interface, self.dut_rx_interface), queueid = 0)\n-        self.send_and_verify(True, 'sendp([Ether(src=get_if_hwaddr(\"%s\"), dst=\"00:1B:21:8E:B2:30\") \\\n-                             /Dot1Q(id=0x8100,vlan=4095) \\\n-                             /IP(src=\"192.168.1.1\", dst=\"192.168.1.2\", tos=2, proto=17, ttl=40) \\\n-                             /UDP(sport=1001,dport=1002) \\\n-                             /Raw(load=\"X\"*20)], iface=\"%s\")' \\\n-                             % (self.dut_rx_interface, self.dut_rx_interface), queueid = 0)\n-\n-\n-\n-    def failed_test_fdir_flush(self):\n-        \"\"\"\n-        FDir flush in Fortville.\n-        \"\"\"\n-\n-        self.dut.kill_all()\n-\n-        self.dut.send_expect(\"%s -c %s -n 4 -- -i --portmask=%s --disable-rss  --rxq=8 --txq=8 --nb-cores=16 --nb-ports=2  --pkt-filter-mode=perfect\" % (self.path, self.all_cores_mask, utils.create_mask([self.dut_ports[0]])), \"testpmd>\", 120)\n-\n-        self.dut.send_expect(\"set verbose 1\", \"testpmd>\")\n-        self.dut.send_expect(\"set fwd rxonly\", \"testpmd>\")\n-\n-        # set up a fdir rule and check guarant_count\n-        self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv4-other src 192.168.0.1 dst 192.168.0.2  tos 2 proto 20 ttl 40 vlan 0 flexbytes () fwd pf queue %d fd_id %d \" % (self.dut_ports[0], 2, 1), \"testpmd>\")\n-        out = self.dut.send_expect(\"show port fdir all\", \"testpmd>\")\n-        result_scanner = r\"guarant_count: 1\"\n-        scanner = re.compile(result_scanner, re.DOTALL)\n-        m = scanner.search(out)\n-        if m:\n-            self.verify(1, \"Pass\")\n-        else:\n-            self.verify(0, \"Fail\")\n-\n-        # flush all fdir rule and check guarant_count\n-        out = self.dut.send_expect(\"flush_flow_director %s\" % self.dut_ports[0], \"testpmd>\")\n-        result_scanner = r\"guarant_count: 1\"\n-        scanner = re.compile(result_scanner, re.DOTALL)\n-        m = scanner.search(out)\n-        if m:\n-            self.verify(0, \"Fail\")\n-        else:\n-            self.verify(1, \"Pass\")\n-\n-    def increment_ip_address(self, addr, val):\n-        \"\"\"\n-        Returns the IP address from a given one, like\n-        192.168.1.1 ->193.168.1.1\n-        If disable ip hw chksum, csum routine will increase ip\n-        \"\"\"\n-        ip2int = lambda ipstr: struct.unpack('!I', socket.inet_aton(ipstr))[0]\n-        x = ip2int(addr)\n-        int2ip = lambda n: socket.inet_ntoa(struct.pack('!I', n))\n-        return int2ip(x + 1)\n-\n-    def fdir_perf_set_rules(self, num_rules):\n-\n-        src_ip_temp = self.src_ip\n-        dst_ip_temp = self.dst_ip\n-        for i in range(num_rules):\n-            src_ip_temp = self.increment_ip_address(src_ip_temp, 1)\n-            dst_ip_temp = self.increment_ip_address(dst_ip_temp, 1)\n-            self.dut.send_expect(\"flow_director_filter %s mode IP  add flow ipv4-other src %s  dst %s  tos 2 proto 20 ttl 40 vlan 0 flexbytes (%s) fwd pf queue %d fd_id %d \" % (self.dut_ports[0], src_ip_temp, dst_ip_temp, self.flexbytes, i % self.queue, i), \"testpmd>\")\n-\n-    def fdir_perf_set_flows(self, num_flows, frame_size):\n-        \"\"\"\n-        Fdir Performance Benchmarking set Ixia flows\n-        \"\"\"\n-        flows = []\n-        src_ip_temp = self.src_ip\n-        dst_ip_temp = self.dst_ip\n-        print(\"*src_ip_temp = \" + src_ip_temp + \"dst_ip_temp = \" + dst_ip_temp)\n-        flows.append(\"Ether(src='52:00:00:00:00:00', dst='00:1B:21:8E:B2:30')/IP(src='%s',dst='%s')/UDP(sport=%d,dport=%d)/Raw(load='%s' + 'X'*(%d - 42 - %d))\" % (src_ip_temp, dst_ip_temp, 1021, 1021, self.payload, frame_size, self.flexlength))\n-        self.scapyCmds.append('wrpcap(\"/root/test1.pcap\", [%s])' % ','.join(flows))\n-        flows = []\n-        flows.append(\"Ether(src='52:00:00:00:00:01', dst='00:1B:21:8E:B2:31')/IP(src='%s',dst='%s')/UDP(sport=%d,dport=%d)/Raw(load='%s' + 'X'*(%d - 42 - %d))\" % (src_ip_temp, dst_ip_temp, 1021, 1021, self.payload, frame_size, self.flexlength))\n-        self.scapyCmds.append('wrpcap(\"/root/test2.pcap\", [%s])' % ','.join(flows))\n-\n-    def perf_fdir_performance_2ports(self, test_type, num_rules, num_flows):\n-        \"\"\"\n-        fdir Performance Benchmarking with 2 ports.\n-        \"\"\"\n-        # prepare traffic generator input\n-        tgen_input = []\n-\n-        tgen_input.append((self.tester.get_local_port(self.dut_ports[0]),\n-                          self.tester.get_local_port(self.dut_ports[1]),\n-                          \"/root/test1.pcap\"))\n-        tgen_input.append((self.tester.get_local_port(self.dut_ports[1]),\n-                          self.tester.get_local_port(self.dut_ports[0]),\n-                          \"/root/test2.pcap\"))\n-\n-        print(\"self.ports_socket=%s\" % (self.ports_socket))\n-        # run testpmd for each core config\n-        for test_cycle in self.test_cycles:\n-            print(\"******************test cycles*********************\\n\")\n-            core_config = test_cycle['cores']\n-\n-            core_list = self.dut.get_core_list(core_config, socket=self.ports_socket)\n-\n-            if len(core_list) > 2:\n-                self.queues = len(core_list) / 2\n-            else:\n-                self.queues = 1\n-\n-            core_mask = utils.create_mask(core_list)\n-            port_mask = utils.create_mask([self.dut_ports[0], self.dut_ports[1]])\n-\n-            if test_type == \"fdir_disable\":\n-                command_line = \"%s -c 0xff00ff -n %d -- -i --rxq=2 --txq=2  --rxd=512 --txd=512 --burst=32 --rxfreet=64 --txfreet=64 --mbcache=256 \\\n-                --portmask=%s --nb-cores=4 --nb-ports=2 --rss-ip\\\n-                \" % (self.path, self.dut.get_memory_channels(), port_mask)\n-            else:\n-                command_line = \"%s -c 0xff00ff -n %d -- -i --rxq=2 --txq=2  --rxd=512 --txd=512 --burst=32 --rxfreet=64 --txfreet=64 --mbcache=256 \\\n-                --portmask=%s --nb-cores=4 --nb-ports=2 --rss-ip\\\n-                --pkt-filter-mode=perfect\" % (self.path, self.dut.get_memory_channels(), port_mask)\n-\n-            info = \"Executing PMD using %s\\n\" % test_cycle['cores']\n-            self.logger.info(info)\n-            self.rst_report(info, annex=True)\n-            self.rst_report(command_line + \"\\n\\n\", frame=True, annex=True)\n-\n-            out = self.dut.send_expect(command_line, \"testpmd> \", 100)\n-            print(out)\n-\n-            self.fdir_get_flexbytes()\n-\n-            if test_type in [\"fdir_noflex\", \"fdir_2flex\", \"fdir_16flex\"]:\n-                self.fdir_set_rule()\n-                self.fdir_perf_set_rules(num_rules)\n-            out = self.dut.send_expect(\"start\", \"testpmd> \")\n-            print(out)\n-            for frame_size in self.frame_sizes:\n-                print(\"******************frame size = %d*********************\\n\" % (frame_size))\n-                wirespeed = self.wirespeed(self.nic, frame_size, 2)\n-                # create pcap file\n-                self.logger.info(\"Running with frame size %d \" % frame_size)\n-                self.fdir_perf_set_flows(num_flows, frame_size)\n-\n-                self.scapy_execute()\n-\n-                \"\"\"\n-                tgen_input.append([self.tester.get_local_port(self.dut_ports[0]),\n-                          self.tester.get_local_port(self.dut_ports[1]),\n-                          \"test.pcap\", (512.00 / wirespeed * 100.00), 1])\n-                tgen_input.append([self.tester.get_local_port(self.dut_ports[1]),\n-                          self.tester.get_local_port(self.dut_ports[0]),\n-                          \"test.pcap\", (512.00 / wirespeed * 100.00), 1])\n-                \"\"\"\n-\n-                \"\"\"\n-                # create pcap file\n-                self.logger.info(\"Running with frame size %d \" % frame_size)\n-                self.fdir_perf_set_flows(num_flows, frame_size)\n-\n-                self.tester.scapy_execute()\n-                \"\"\"\n-\n-                # run traffic generator\n-                streams = self.pktgen_helper.prepare_stream_from_tginput(tgen_input, 100,\n-                                                    None, self.tester.pktgen)\n-                _, pps = self.tester.pktgen.measure_throughput(stream_ids=streams)\n-                \"\"\"\n-                _, pps, _ = self.throughputRate(tgen_input)\n-                \"\"\"\n-\n-                out = self.dut.send_expect(\"show port stats all\", \"testpmd> \", timeout=60)\n-                print(out)\n-\n-                pps /= 1000000.0\n-                test_cycle['Mpps'][frame_size] = pps\n-                test_cycle['pct'][frame_size] = pps * 100 / wirespeed\n-\n-            self.dut.send_expect(\"stop\", \"testpmd> \")\n-            self.dut.send_expect(\"quit\", \"# \", 30)\n-            sleep(5)\n-\n-        for n in range(len(self.test_cycles)):\n-            for frame_size in self.frame_sizes:\n-                self.verify(self.test_cycles[n]['Mpps'][\n-                            frame_size] > 0, \"No traffic detected\")\n-\n-        # Print results\n-        self.result_table_create(self.table_header)\n-        for frame_size in self.frame_sizes:\n-            table_row = [frame_size]\n-            for test_cycle in self.test_cycles:\n-                table_row.append(test_cycle['Mpps'][frame_size])\n-                table_row.append(test_cycle['pct'][frame_size])\n-\n-            self.result_table_add(table_row)\n-\n-        self.result_table_print()\n-\n-    def test_perf_fdir_performance_2ports(self):\n-        \"\"\"\n-        fdir Performance Benchmarking with 2 ports.\n-        \"\"\"\n-        for test_type in self.test_types:\n-            print(\"***************\\n\")\n-            print(test_type)\n-            print(\"***************\\n\")\n-            if test_type in [\"fdir_enable\", \"fdir_disable\"]:\n-                num_rules = 0\n-                num_flows = 64\n-                print(\"************%d rules/%d flows********************\" % (num_rules, num_flows))\n-                self.perf_fdir_performance_2ports(test_type, num_rules, num_flows)\n-            elif test_type in [\"fdir_noflexbytes\", \"fdir_2flexbytes\", \"fdir_16flexbytes\"]:\n-                for flows in self.flows:\n-                    num_rules = flows[\"rules\"]\n-                    num_flows = flows[\"flows\"]\n-                    print(\"************%d rules/%d flows********************\" % (num_rules, num_flows))\n-                    self.perf_fdir_performance_2ports(test_type, num_rules, num_flows)\n-\n-    def tear_down(self):\n-        \"\"\"\n-        Run after each test case.\n-        \"\"\"\n-        self.end_scapy()\n-\n-    def tear_down_all(self):\n-        \"\"\"\n-        Run after each test suite.\n-        \"\"\"\n-        pass\n",
    "prefixes": [
        "V1",
        "3/3"
    ]
}