get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 97592,
    "url": "https://patches.dpdk.org/api/patches/97592/?format=api",
    "web_url": "https://patches.dpdk.org/project/dts/patch/20210831082220.47375-3-yufengx.mo@intel.com/",
    "project": {
        "id": 3,
        "url": "https://patches.dpdk.org/api/projects/3/?format=api",
        "name": "DTS",
        "link_name": "dts",
        "list_id": "dts.dpdk.org",
        "list_email": "dts@dpdk.org",
        "web_url": "",
        "scm_url": "git://dpdk.org/tools/dts",
        "webscm_url": "http://git.dpdk.org/tools/dts/",
        "list_archive_url": "https://inbox.dpdk.org/dts",
        "list_archive_url_format": "https://inbox.dpdk.org/dts/{}",
        "commit_url_format": ""
    },
    "msgid": "<20210831082220.47375-3-yufengx.mo@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dts/20210831082220.47375-3-yufengx.mo@intel.com",
    "date": "2021-08-31T08:22:16",
    "name": "[V2,2/6] tests: remove etgen",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": false,
    "hash": "2d1998874b7ba0b43115db504dbe17c372016f9e",
    "submitter": {
        "id": 1342,
        "url": "https://patches.dpdk.org/api/people/1342/?format=api",
        "name": "Yufen.Mo",
        "email": "yufengx.mo@intel.com"
    },
    "delegate": {
        "id": 23642,
        "url": "https://patches.dpdk.org/api/users/23642/?format=api",
        "username": "lijuantu",
        "first_name": "LIjuan",
        "last_name": "Tu",
        "email": "lijuan.tu@intel.com"
    },
    "mbox": "https://patches.dpdk.org/project/dts/patch/20210831082220.47375-3-yufengx.mo@intel.com/mbox/",
    "series": [
        {
            "id": 18556,
            "url": "https://patches.dpdk.org/api/series/18556/?format=api",
            "web_url": "https://patches.dpdk.org/project/dts/list/?series=18556",
            "date": "2021-08-31T08:22:14",
            "name": "etgen: remove etgen",
            "version": 2,
            "mbox": "https://patches.dpdk.org/series/18556/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/97592/comments/",
    "check": "pending",
    "checks": "https://patches.dpdk.org/api/patches/97592/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 4F83FA0C46;\n\tTue, 31 Aug 2021 10:21:38 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 49F6F406A2;\n\tTue, 31 Aug 2021 10:21:38 +0200 (CEST)",
            "from mga04.intel.com (mga04.intel.com [192.55.52.120])\n by mails.dpdk.org (Postfix) with ESMTP id 20F19406A2\n for <dts@dpdk.org>; Tue, 31 Aug 2021 10:21:35 +0200 (CEST)",
            "from fmsmga002.fm.intel.com ([10.253.24.26])\n by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 31 Aug 2021 01:21:35 -0700",
            "from dpdk-moyufen06.sh.intel.com ([10.67.116.208])\n by fmsmga002.fm.intel.com with ESMTP; 31 Aug 2021 01:21:33 -0700"
        ],
        "X-IronPort-AV": [
            "E=McAfee;i=\"6200,9189,10092\"; a=\"216576693\"",
            "E=Sophos;i=\"5.84,365,1620716400\"; d=\"scan'208\";a=\"216576693\"",
            "E=Sophos;i=\"5.84,365,1620716400\"; d=\"scan'208\";a=\"540921796\""
        ],
        "X-ExtLoop1": "1",
        "From": "Yufen Mo <yufengx.mo@intel.com>",
        "To": "dts@dpdk.org, lijuan.tu@intel.com, yingyax.han@intel.com,\n junx.w.zhou@intel.com",
        "Cc": "Yufen Mo <yufengx.mo@intel.com>",
        "Date": "Tue, 31 Aug 2021 16:22:16 +0800",
        "Message-Id": "<20210831082220.47375-3-yufengx.mo@intel.com>",
        "X-Mailer": "git-send-email 2.21.0",
        "In-Reply-To": "<20210831082220.47375-1-yufengx.mo@intel.com>",
        "References": "<20210831082220.47375-1-yufengx.mo@intel.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[dts] [PATCH V2 2/6] tests: remove etgen",
        "X-BeenThere": "dts@dpdk.org",
        "X-Mailman-Version": "2.1.29",
        "Precedence": "list",
        "List-Id": "test suite reviews and discussions <dts.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dts>,\n <mailto:dts-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://mails.dpdk.org/archives/dts/>",
        "List-Post": "<mailto:dts@dpdk.org>",
        "List-Help": "<mailto:dts-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/dts>,\n <mailto:dts-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dts-bounces@dpdk.org",
        "Sender": "\"dts\" <dts-bounces@dpdk.org>"
    },
    "content": "remove etgen relevant source code.\n\nSigned-off-by: Yufen Mo <yufengx.mo@intel.com>\n---\n tests/TestSuite_af_xdp_2.py                   |   2 +-\n tests/TestSuite_distributor.py                |   2 -\n tests/TestSuite_efd.py                        |   1 -\n tests/TestSuite_iavf.py                       |   1 -\n tests/TestSuite_multiprocess.py               |   1 -\n tests/TestSuite_ntb.py                        |   1 -\n tests/TestSuite_packet_ordering.py            |   1 -\n tests/TestSuite_performance_thread.py         |   1 -\n tests/TestSuite_pmd.py                        |   1 -\n tests/TestSuite_rteflow_priority.py           |   1 -\n tests/TestSuite_userspace_ethtool.py          | 127 +++---------------\n tests/TestSuite_vhost_virtio_pmd_interrupt.py |   1 -\n tests/TestSuite_virtio_event_idx_interrupt.py |   1 -\n tests/TestSuite_vm_power_manager.py           |   3 +-\n tests/TestSuite_vmdq.py                       |   1 -\n tests/TestSuite_vmdq_dcb.py                   |   1 -\n 16 files changed, 23 insertions(+), 123 deletions(-)",
    "diff": "diff --git a/tests/TestSuite_af_xdp_2.py b/tests/TestSuite_af_xdp_2.py\nindex 40a3d416..bcc9a751 100644\n--- a/tests/TestSuite_af_xdp_2.py\n+++ b/tests/TestSuite_af_xdp_2.py\n@@ -45,7 +45,7 @@ class TestAfXdp(TestCase):\n         Run at the start of each test suite.\n         \"\"\"\n         #self.verify(self.nic in (\"fortville_spirit\"), \"the port can not run this suite\")\n-        self.tester.extend_external_packet_generator(TestAfXdp, self)\n+\n         self.frame_sizes = [64, 128, 256, 512, 1024, 1518]\n         self.dut_ports = self.dut.get_ports()\n         self.verify(len(self.dut_ports) >= 2, \"Insufficient ports for testing\")\ndiff --git a/tests/TestSuite_distributor.py b/tests/TestSuite_distributor.py\nindex cd88977d..09a493b3 100644\n--- a/tests/TestSuite_distributor.py\n+++ b/tests/TestSuite_distributor.py\n@@ -45,8 +45,6 @@ class TestDistributor(TestCase):\n         \"\"\"\n         Run at the start of each test suite.\n         \"\"\"\n-        self.tester.extend_external_packet_generator(TestDistributor, self)\n-\n         # reduce tx queues for enable many workers\n         self.dut.send_expect(\"sed -i -e 's/.*txRings = .*/\\\\tconst uint16_t rxRings = 1, txRings = 1;/' ./examples/distributor/main.c\", \"#\")\n         out = self.dut.build_dpdk_apps(\"./examples/distributor\")\ndiff --git a/tests/TestSuite_efd.py b/tests/TestSuite_efd.py\nindex 787733ca..7d1e0a86 100644\n--- a/tests/TestSuite_efd.py\n+++ b/tests/TestSuite_efd.py\n@@ -44,7 +44,6 @@ class TestEFD(TestCase):\n         \"\"\"\n         Run at the start of each test suite.\n         \"\"\"\n-        self.tester.extend_external_packet_generator(TestEFD, self)\n \n         self.build_server_node_efd()\n \ndiff --git a/tests/TestSuite_iavf.py b/tests/TestSuite_iavf.py\nindex 9656b4fc..adaa1304 100644\n--- a/tests/TestSuite_iavf.py\n+++ b/tests/TestSuite_iavf.py\n@@ -57,7 +57,6 @@ class TestIavf(TestCase):\n     supported_vf_driver = ['pci-stub', 'vfio-pci']\n \n     def set_up_all(self):\n-        self.tester.extend_external_packet_generator(TestIavf, self)\n         self.dut_ports = self.dut.get_ports(self.nic)\n         self.verify(len(self.dut_ports) > 1, \"Insufficient ports\")\n         self.vm0 = None\ndiff --git a/tests/TestSuite_multiprocess.py b/tests/TestSuite_multiprocess.py\nindex 743ca1f3..8752a727 100644\n--- a/tests/TestSuite_multiprocess.py\n+++ b/tests/TestSuite_multiprocess.py\n@@ -58,7 +58,6 @@ class TestMultiprocess(TestCase):\n         # self.verify('bsdapp' not in self.target, \"Multiprocess not support freebsd\")\n \n         self.verify(len(self.dut.get_all_cores()) >= 4, \"Not enough Cores\")\n-        self.tester.extend_external_packet_generator(TestMultiprocess, self)\n         self.dut_ports = self.dut.get_ports()\n         self.socket = self.dut.get_numa_id(self.dut_ports[0])\n \ndiff --git a/tests/TestSuite_ntb.py b/tests/TestSuite_ntb.py\nindex e5013132..01e10620 100644\n--- a/tests/TestSuite_ntb.py\n+++ b/tests/TestSuite_ntb.py\n@@ -55,7 +55,6 @@ class TestNtb(TestCase):\n         self.host_mac = self.ntb_host.get_mac_address(self.host_port)\n         self.client_mac = self.ntb_client.get_mac_address(self.client_port)\n \n-        self.tester.extend_external_packet_generator(TestNtb, self)\n         self.frame_sizes = [64, 128, 256, 512, 1024, 1518]\n         self.header_size = HEADER_SIZE['eth'] + HEADER_SIZE['ip'] + HEADER_SIZE['udp']\n         self.pktgen_helper = PacketGeneratorHelper()\ndiff --git a/tests/TestSuite_packet_ordering.py b/tests/TestSuite_packet_ordering.py\nindex 807a3c0d..2280b8b1 100644\n--- a/tests/TestSuite_packet_ordering.py\n+++ b/tests/TestSuite_packet_ordering.py\n@@ -48,7 +48,6 @@ class TestPacketOrdering(TestCase):\n         Executes the Packet Ordering prerequisites. Creates a simple scapy\n         packet to be used later on the tests. It also compiles the example app.\n         \"\"\"\n-        self.tester.extend_external_packet_generator(TestPacketOrdering, self)\n         self.dut_ports = self.dut.get_ports(self.nic)\n         global valports\n         valports = [_ for _ in self.dut_ports if self.tester.get_local_port(_) != -1]\ndiff --git a/tests/TestSuite_performance_thread.py b/tests/TestSuite_performance_thread.py\nindex 3ff20150..459d9a11 100644\n--- a/tests/TestSuite_performance_thread.py\n+++ b/tests/TestSuite_performance_thread.py\n@@ -47,7 +47,6 @@ class TestPerformanceThread(TestCase):\n         \"\"\"\n         Run at the start of each test suite.\n         \"\"\"\n-        self.tester.extend_external_packet_generator(TestPerformanceThread, self)\n         self.dut_ports = self.dut.get_ports(self.nic)\n         global valports\n         valports = [_ for _ in self.dut_ports if self.tester.get_local_port(_) != -1]\ndiff --git a/tests/TestSuite_pmd.py b/tests/TestSuite_pmd.py\nindex 48d35831..afc36d9f 100644\n--- a/tests/TestSuite_pmd.py\n+++ b/tests/TestSuite_pmd.py\n@@ -58,7 +58,6 @@ class TestPmd(TestCase):\n \n         PMD prerequisites.\n         \"\"\"\n-        self.tester.extend_external_packet_generator(TestPmd, self)\n \n         self.frame_sizes = [64, 72, 128, 256, 512, 1024, 1280, 1518]\n \ndiff --git a/tests/TestSuite_rteflow_priority.py b/tests/TestSuite_rteflow_priority.py\nindex 353dc8f9..b0bbf245 100644\n--- a/tests/TestSuite_rteflow_priority.py\n+++ b/tests/TestSuite_rteflow_priority.py\n@@ -42,7 +42,6 @@ from time import sleep\n from scapy.utils import struct, socket, PcapWriter\n \n import utils\n-from etgen import IxiaPacketGenerator\n from test_case import TestCase\n from settings import HEADER_SIZE\n from pmd_output import PmdOutput\ndiff --git a/tests/TestSuite_userspace_ethtool.py b/tests/TestSuite_userspace_ethtool.py\nindex fd65d718..4536b7d1 100644\n--- a/tests/TestSuite_userspace_ethtool.py\n+++ b/tests/TestSuite_userspace_ethtool.py\n@@ -41,14 +41,14 @@ import re\n from test_case import TestCase\n from packet import Packet\n import random\n-from etgen import IxiaPacketGenerator\n from settings import HEADER_SIZE\n from settings import SCAPY2IXIA\n+from pktgen import PacketGeneratorHelper\n from utils import RED\n from exception import VerifyFailure\n \n \n-class TestUserspaceEthtool(TestCase, IxiaPacketGenerator):\n+class TestUserspaceEthtool(TestCase):\n \n     def set_up_all(self):\n         \"\"\"\n@@ -76,9 +76,8 @@ class TestUserspaceEthtool(TestCase, IxiaPacketGenerator):\n         self.pause_time = 65535\n         self.frame_size = 64\n         self.pause_rate = 0.50\n-\n-        # update IxiaPacketGenerator function from local\n-        self.tester.extend_external_packet_generator(TestUserspaceEthtool, self)\n+        # create an instance to set stream field setting\n+        self.pktgen_helper = PacketGeneratorHelper()\n \n     def set_up(self):\n         \"\"\"\n@@ -635,45 +634,6 @@ class TestUserspaceEthtool(TestCase, IxiaPacketGenerator):\n \n         self.dut.send_expect(\"quit\", \"# \")\n \n-    def test_perf_port_rx_pause(self):\n-        \"\"\"\n-        Test ethtool app flow control configure\n-        \"\"\"\n-        self.dut.send_expect(self.cmd, \"EthApp>\", 60)\n-        # enable pause rx\n-        self.dut.send_expect(\"pause 0 rx\", \"EthApp\")\n-\n-        # calculate number of packets\n-        pps = self.wirespeed(self.nic, self.frame_size, 1) * 1000000.0\n-        # get line rate\n-        linerate = pps * (self.frame_size + 20) * 8\n-        # calculate default sleep time for one pause frame\n-        sleep = (1 / linerate) * self.pause_time * 512\n-        # calculate packets dropped in sleep time\n-        self.n_pkts = int((sleep / (1 / pps)) * (1 / self.pause_rate))\n-\n-        tgen_input = []\n-        headers_size = HEADER_SIZE['eth'] + HEADER_SIZE['ip'] + \\\n-            HEADER_SIZE['udp']\n-        payload_size = self.frame_size - headers_size\n-        self.tester.scapy_append('wrpcap(\"pause_rx.pcap\", [Ether()/IP()/UDP()/(\"X\"*%d)])' % payload_size)\n-        self.tester.scapy_execute()\n-        # rx and tx is the same port\n-        tester_port = self.tester.get_local_port(self.ports[0])\n-        tgen_input.append((tester_port, tester_port, \"pause_rx.pcap\"))\n-\n-        ori_func = self.config_stream\n-        self.config_stream = self.config_stream_pause_rx\n-        _, rx_pps = self.tester.traffic_generator_throughput(tgen_input)\n-        self.config_stream = ori_func\n-\n-        rate = rx_pps / pps\n-        # rate should same as expected rate\n-        self.verify(rate > (self.pause_rate - 0.01) and\n-                    rate < (self.pause_rate + 0.01), \"Failed to handle Rx pause frame\")\n-\n-        self.dut.send_expect(\"quit\", \"# \")\n-\n     def test_perf_port_tx_pause(self):\n         \"\"\"\n         Test ethtool app flow control configure\n@@ -691,78 +651,33 @@ class TestUserspaceEthtool(TestCase, IxiaPacketGenerator):\n         headers_size = HEADER_SIZE['eth'] + HEADER_SIZE['ip'] + \\\n             HEADER_SIZE['udp']\n         payload_size = self.frame_size - headers_size\n-        self.tester.scapy_append('wrpcap(\"pause_tx.pcap\", [Ether()/IP()/UDP()/(\"X\"*%d)])' % payload_size)\n+        dst_mac =  self.dut.get_mac_address(0)\n+        self.tester.scapy_append(\n+            'wrpcap(\"/root/pause_tx.pcap\", [Ether(dst=\"%s\")/IP()/UDP()/(\"X\"*%d)])' % (dst_mac, payload_size))\n         self.tester.scapy_execute()\n         # rx and tx is the same port\n         tester_port = self.tester.get_local_port(self.ports[0])\n-        tgen_input.append((tester_port, tester_port, \"pause_tx.pcap\"))\n-\n-        self.wirespeed(self.nic, self.frame_size, 1) * 1000000.0\n-        _, tx_pps = self.tester.traffic_generator_throughput(tgen_input)\n-\n+        tgen_input.append((tester_port, tester_port, \"/root/pause_tx.pcap\"))\n+\n+        # run traffic generator\n+        streams = self.pktgen_helper.prepare_stream_from_tginput(tgen_input, 100,\n+                                        None, self.tester.pktgen)\n+        traffic_opt = {'throughput_stat_flag': True}\n+        loss, rx_throughput  = self.tester.pktgen._measure_loss(\n+            stream_ids=streams, options=traffic_opt)\n+        tx_pps = rx_throughput[1]\n+        sent_pkts, recv_pkts = list(loss.values())[0][1:]\n+        self.dut.send_expect(\"quit\", \"# \")\n+        self.dut.send_expect(\"sed -i -e '/usleep(10);$/d' %s\" % main_file, \"# \")\n+        # rebuild sample app\n+        self.build_ethtool()\n         # verify ixia transmit line rate dropped\n         pps = self.wirespeed(self.nic, self.frame_size, 1) * 1000000.0\n         rate = tx_pps / pps\n         self.verify(rate < 0.1, \"Failed to slow down transmit speed\")\n-\n         # verify received packets more than sent\n-        self.stat_get_stat_all_stats(tester_port)\n-        sent_pkts = self.get_frames_sent()\n-        recv_pkts = self.get_frames_received()\n         self.verify((float(recv_pkts) / float(sent_pkts)) > 1.05, \"Failed to transmit pause frame\")\n \n-        self.dut.send_expect(\"quit\", \"# \")\n-        self.dut.send_expect(\"sed -i -e '/usleep(10);$/d' %s\" % main_file, \"# \")\n-        # rebuild sample app\n-        self.build_ethtool()\n-\n-    def config_stream_pause_rx(self, fpcap, txport, rate_percent, stream_id=1, latency=False):\n-        \"\"\"\n-        Configure IXIA stream with pause frame and normal packet\n-        \"\"\"\n-        # enable flow control on port\n-        self.add_tcl_cmd(\"port config -flowControl true\")\n-        self.add_tcl_cmd(\"port config -flowControlType ieee8023x\")\n-        self.add_tcl_cmd(\"port set %d %d %d\" % (self.chasId, txport['card'], txport['port']))\n-\n-        flows = self.parse_pcap(fpcap)\n-\n-        self.add_tcl_cmd(\"ixGlobalSetDefault\")\n-        self.add_tcl_cmd(\"stream config -rateMode usePercentRate\")\n-        self.add_tcl_cmd(\"stream config -percentPacketRate 100\")\n-        self.add_tcl_cmd(\"stream config -numBursts 1\")\n-        self.add_tcl_cmd(\"stream config -numFrames %d\" % self.n_pkts)\n-        self.add_tcl_cmd(\"stream config -dma advance\")\n-\n-        pat = re.compile(r\"(\\w+)\\((.*)\\)\")\n-        for header in flows[0].split('/'):\n-            match = pat.match(header)\n-            params = eval('dict(%s)' % match.group(2))\n-            method_name = match.group(1)\n-            if method_name in SCAPY2IXIA:\n-                method = getattr(self, method_name.lower())\n-                method(txport, **params)\n-\n-        # stream id start from 1\n-        self.add_tcl_cmd(\"stream set %d %d %d %d\" % (self.chasId, txport['card'], txport['port'], 1))\n-\n-        # pause frame stream\n-        self.add_tcl_cmd(\"stream config -rateMode usePercentRate\")\n-        self.add_tcl_cmd(\"stream config -percentPacketRate 100\")\n-        self.add_tcl_cmd(\"stream config -numBursts 1\")\n-        self.add_tcl_cmd(\"stream config -numFrames 1\")\n-        self.add_tcl_cmd(\"stream config -dma gotoFirst\")\n-\n-        self.add_tcl_cmd(\"protocol setDefault\")\n-        self.add_tcl_cmd(\"protocol config -name pauseControl\")\n-        self.add_tcl_cmd(\"pauseControl setDefault\")\n-        self.add_tcl_cmd(\"pauseControl config -da \\\"01 80 C2 00 00 01\\\"\")\n-        self.add_tcl_cmd(\"pauseControl config -pauseTime %d\" % self.pause_time)\n-        self.add_tcl_cmd(\"pauseControl config -pauseControlType ieee8023x\")\n-        self.add_tcl_cmd(\"pauseControl set %d %d %d\" % (self.chasId, txport['card'], txport['port']))\n-        self.add_tcl_cmd(\"stream set %d %d %d %d\" %\n-                         (self.chasId, txport['card'], txport['port'], 2))\n-\n     def tear_down(self):\n         \"\"\"\n         Run after each test case.\ndiff --git a/tests/TestSuite_vhost_virtio_pmd_interrupt.py b/tests/TestSuite_vhost_virtio_pmd_interrupt.py\nindex 675a15ee..5dd2f830 100644\n--- a/tests/TestSuite_vhost_virtio_pmd_interrupt.py\n+++ b/tests/TestSuite_vhost_virtio_pmd_interrupt.py\n@@ -49,7 +49,6 @@ class TestVhostVirtioPmdInterrupt(TestCase):\n         \"\"\"\n         Run at the start of each test suite.\n         \"\"\"\n-        self.tester.extend_external_packet_generator(TestVhostVirtioPmdInterrupt, self)\n         self.fix_ip = False\n         self.nb_cores = 4\n         self.queues = 4\ndiff --git a/tests/TestSuite_virtio_event_idx_interrupt.py b/tests/TestSuite_virtio_event_idx_interrupt.py\nindex 37634f05..09918992 100644\n--- a/tests/TestSuite_virtio_event_idx_interrupt.py\n+++ b/tests/TestSuite_virtio_event_idx_interrupt.py\n@@ -49,7 +49,6 @@ class TestVirtioIdxInterrupt(TestCase):\n         \"\"\"\n         Run at the start of each test suite.\n         \"\"\"\n-        self.tester.extend_external_packet_generator(TestVirtioIdxInterrupt, self)\n         self.queues = 1\n         self.nb_cores = 1\n         self.dut_ports = self.dut.get_ports()\ndiff --git a/tests/TestSuite_vm_power_manager.py b/tests/TestSuite_vm_power_manager.py\nindex fca122bb..f650ba28 100644\n--- a/tests/TestSuite_vm_power_manager.py\n+++ b/tests/TestSuite_vm_power_manager.py\n@@ -37,12 +37,11 @@ VM power manager test suite.\n import re\n import utils\n from test_case import TestCase\n-from etgen import IxiaPacketGenerator\n from settings import HEADER_SIZE\n from qemu_libvirt import LibvirtKvm\n \n \n-class TestVmPowerManager(TestCase, IxiaPacketGenerator):\n+class TestVmPowerManager(TestCase):\n \n     def set_up_all(self):\n         \"\"\"\ndiff --git a/tests/TestSuite_vmdq.py b/tests/TestSuite_vmdq.py\nindex 3f2ccde2..6dae54a4 100644\n--- a/tests/TestSuite_vmdq.py\n+++ b/tests/TestSuite_vmdq.py\n@@ -50,7 +50,6 @@ class TestVmdq(TestCase):\n         \"\"\"\n         Run at the start of each test suite.\n         \"\"\"\n-        self.tester.extend_external_packet_generator(TestVmdq, self)\n \n         self.dut_ports = self.dut.get_ports(self.nic)\n         self.verify(len(self.dut_ports) >= 2, \"Insufficient ports\")\ndiff --git a/tests/TestSuite_vmdq_dcb.py b/tests/TestSuite_vmdq_dcb.py\nindex 5f0da0fb..2a248f8c 100644\n--- a/tests/TestSuite_vmdq_dcb.py\n+++ b/tests/TestSuite_vmdq_dcb.py\n@@ -51,7 +51,6 @@ class TestVmdqDcb(TestCase):\n         \"\"\"\n         Run at the start of each test suite.\n         \"\"\"\n-        self.tester.extend_external_packet_generator(TestVmdqDcb, self)\n         self.dut_ports = self.dut.get_ports(self.nic)\n         self.verify(len(self.dut_ports) >= 2, \"Insufficient ports\")\n         self.socket = self.dut.get_numa_id(self.dut_ports[0])\n",
    "prefixes": [
        "V2",
        "2/6"
    ]
}