From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by dpdk.org (Postfix) with ESMTP id 915D458F6 for ; Mon, 17 Apr 2017 08:05:29 +0200 (CEST) Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 16 Apr 2017 23:05:28 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.37,213,1488873600"; d="scan'208";a="1156936900" Received: from unknown (HELO dpdk-fedora20.icx.intel.com) ([10.240.176.135]) by fmsmga002.fm.intel.com with ESMTP; 16 Apr 2017 23:05:27 -0700 From: Lijuan Tu To: dts@dpdk.org Cc: Lijuan Tu Date: Mon, 17 Apr 2017 14:06:50 +0800 Message-Id: <1492409210-18669-1-git-send-email-lijuanx.a.tu@intel.com> X-Mailer: git-send-email 1.9.3 Subject: [dts] [PATCH v1] tests vf_jumboframe: revise cases to support i350 X-BeenThere: dts@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: test suite reviews and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Apr 2017 06:05:30 -0000 1. revise cases to support i350, refer to: DPDK-1117 2. dpdk vf enable crc-strip as default 3. Port should bind to default driver rather than igb_uio. 4. clear vm resouces after case or suite end. Signed-off-by: Lijuan Tu --- tests/TestSuite_vf_jumboframe.py | 94 +++++++++++++++++++--------------------- 1 file changed, 44 insertions(+), 50 deletions(-) diff --git a/tests/TestSuite_vf_jumboframe.py b/tests/TestSuite_vf_jumboframe.py index d32990a..d7241ff 100644 --- a/tests/TestSuite_vf_jumboframe.py +++ b/tests/TestSuite_vf_jumboframe.py @@ -60,7 +60,7 @@ class TestVfJumboFrame(TestCase): for port in ports: netdev = self.dut.ports_info[port]['port'] driver_now = netdev.get_nic_driver() - if driver == "": + if driver == None: driver = netdev.default_driver if driver != driver_now: netdev.bind_driver(driver=driver) @@ -118,18 +118,20 @@ class TestVfJumboFrame(TestCase): def destroy_vm_env(self): if getattr(self, 'vm', None): - self.vm_dut.kill_all() + if getattr(self, 'vm_dut', None): + self.vm_dut.kill_all() self.vm_testpmd = None self.vm_dut_ports = None # destroy vm0 self.vm.stop() + self.dut.virt_exit() + time.sleep(3) self.vm = None - if getattr(self, 'used_dut_port', None): + if getattr(self, 'used_dut_port', None) != None: self.dut.destroy_sriov_vfs_by_port(self.used_dut_port) self.used_dut_port = None - - self.bind_nic_driver(self.dut_ports[:1], driver="igb_uio") + self.bind_nic_driver(self.dut_ports[:1], driver='default') self.env_done = False @@ -172,11 +174,16 @@ class TestVfJumboFrame(TestCase): if received: self.verify((rx_pkts == 1) and (tx_pkts == 1), "Packet forward assert error") + if self.kdriver == "ixgbe": self.verify((rx_bytes + 4) == pktsize, "Rx packet size should be packet size - 4") else: self.verify(rx_bytes == pktsize, "Tx packet size should be equal to packet size") - self.verify((tx_bytes + 4) == pktsize, "Tx packet size should be packet size - 4") + + if self.kdriver == "igb": + self.verify(tx_bytes == pktsize, "Tx packet size should be packet size") + else: + self.verify((tx_bytes + 4) == pktsize, "Tx packet size should be packet size - 4") else: self.verify(rx_err == 1 or tx_pkts == 0, "Packet drop assert error") @@ -185,15 +192,10 @@ class TestVfJumboFrame(TestCase): This case aims to test transmitting normal size packet without jumbo enable """ # should enable jumbo on host - if self.kdriver == "ixgbe": - self.dutobj = self.dut.ports_info[self.port]['port'] - self.dutobj.enable_jumbo(framesize=ETHER_STANDARD_MTU) - time.sleep(2) + self.dutobj = self.dut.ports_info[self.port]['port'] + self.dutobj.enable_jumbo(framesize=ETHER_STANDARD_MTU) - if self.kdriver == "i40e": - self.vm_testpmd.start_testpmd("Default", "--max-pkt-len=%d --port-topology=loop --crc-strip --txqflags=0x0" % (ETHER_STANDARD_MTU)) - else: - self.vm_testpmd.start_testpmd("Default", "--max-pkt-len=%d --port-topology=loop --txqflags=0x0" % (ETHER_STANDARD_MTU)) + self.vm_testpmd.start_testpmd("Default", "--max-pkt-len=%d --port-topology=loop --txqflags=0x0" % (ETHER_STANDARD_MTU)) self.vm_testpmd.execute_cmd("set fwd mac") self.vm_testpmd.execute_cmd("start") @@ -210,15 +212,10 @@ class TestVfJumboFrame(TestCase): packet forwrding should be support correct. """ # should enable jumbo on host - if self.kdriver == "ixgbe": - self.dutobj = self.dut.ports_info[self.port]['port'] - self.dutobj.enable_jumbo(framesize=ETHER_JUMBO_FRAME_MTU) - time.sleep(2) + self.dutobj = self.dut.ports_info[self.port]['port'] + self.dutobj.enable_jumbo(framesize=ETHER_JUMBO_FRAME_MTU) - if self.kdriver == "i40e": - self.vm_testpmd.start_testpmd("Default", "--max-pkt-len=%d --port-topology=loop --crc-strip --txqflags=0x0" % (ETHER_JUMBO_FRAME_MTU)) - else: - self.vm_testpmd.start_testpmd("Default", "--max-pkt-len=%s --port-topology=loop --txqflags=0x0" % (ETHER_JUMBO_FRAME_MTU)) + self.vm_testpmd.start_testpmd("Default", "--max-pkt-len=%d --port-topology=loop --txqflags=0x0" % (ETHER_JUMBO_FRAME_MTU)) self.vm_testpmd.execute_cmd("set fwd mac") self.vm_testpmd.execute_cmd("start") @@ -235,20 +232,24 @@ class TestVfJumboFrame(TestCase): jumbo frame support. """ # should enable jumbo on host - if self.kdriver == "ixgbe": - self.dutobj = self.dut.ports_info[self.port]['port'] - self.dutobj.enable_jumbo(framesize=ETHER_STANDARD_MTU) - time.sleep(2) + self.dutobj = self.dut.ports_info[self.port]['port'] + self.dutobj.enable_jumbo(framesize=ETHER_STANDARD_MTU) - if self.kdriver == "i40e": - self.vm_testpmd.start_testpmd("Default", "--port-topology=loop --crc-strip --txqflags=0x0" ) - else: - self.vm_testpmd.start_testpmd("Default", "--port-topology=loop --txqflags=0x0") + self.vm_testpmd.start_testpmd("Default", "--port-topology=loop --txqflags=0x0" ) self.vm_testpmd.execute_cmd("set fwd mac") self.vm_testpmd.execute_cmd("start") - self.jumboframes_send_packet(ETHER_STANDARD_MTU + 1, False) + # On igb, for example i350, refer to :DPDK-1117 + # For PF, the max-pkt-len = mtu + 18 + 4(VLAN header len). + # For VF, the real max-pkt-len = the given max-pkt-len + 4(VLAN header len). + # This behavior is levelraged from kernel driver. + # And it means max-pkt-len is always 4 bytes longer than assumed. + + if self.kdriver == "igb": + self.jumboframes_send_packet(ETHER_STANDARD_MTU + 1 + 4, False) + else: + self.jumboframes_send_packet(ETHER_STANDARD_MTU + 1, False) self.vm_testpmd.execute_cmd("stop") self.vm_testpmd.quit() @@ -259,15 +260,10 @@ class TestVfJumboFrame(TestCase): packet can be forwarded correct. """ # should enable jumbo on host - if self.kdriver == "ixgbe": - self.dutobj = self.dut.ports_info[self.port]['port'] - self.dutobj.enable_jumbo(framesize=ETHER_JUMBO_FRAME_MTU) - time.sleep(2) + self.dutobj = self.dut.ports_info[self.port]['port'] + self.dutobj.enable_jumbo(framesize=ETHER_JUMBO_FRAME_MTU) - if self.kdriver == "i40e": - self.vm_testpmd.start_testpmd("Default", "--max-pkt-len=%d --port-topology=loop --crc-strip --txqflags=0x0" % (ETHER_JUMBO_FRAME_MTU)) - else: - self.vm_testpmd.start_testpmd("Default", "--max-pkt-len=%s --port-topology=loop --txqflags=0x0" % (ETHER_JUMBO_FRAME_MTU)) + self.vm_testpmd.start_testpmd("Default", "--max-pkt-len=%d --port-topology=loop --txqflags=0x0" % (ETHER_JUMBO_FRAME_MTU)) self.vm_testpmd.execute_cmd("set fwd mac") self.vm_testpmd.execute_cmd("start") @@ -285,20 +281,19 @@ class TestVfJumboFrame(TestCase): packet which the length bigger than MTU can not be forwarded. """ # should enable jumbo on host - if self.kdriver == "ixgbe": - self.dutobj = self.dut.ports_info[self.port]['port'] - self.dutobj.enable_jumbo(framesize=ETHER_JUMBO_FRAME_MTU) - time.sleep(2) + self.dutobj = self.dut.ports_info[self.port]['port'] + self.dutobj.enable_jumbo(framesize=ETHER_JUMBO_FRAME_MTU) - if self.kdriver == "i40e": - self.vm_testpmd.start_testpmd("Default", "--max-pkt-len=%d --port-topology=loop --crc-strip --txqflags=0x0" % (ETHER_JUMBO_FRAME_MTU)) - else: - self.vm_testpmd.start_testpmd("Default", "--max-pkt-len=%s --port-topology=loop --txqflags=0x0" % (ETHER_JUMBO_FRAME_MTU)) + self.vm_testpmd.start_testpmd("Default", "--max-pkt-len=%d --port-topology=loop --txqflags=0x0" % (ETHER_JUMBO_FRAME_MTU)) self.vm_testpmd.execute_cmd("set fwd mac") self.vm_testpmd.execute_cmd("start") - self.jumboframes_send_packet(ETHER_JUMBO_FRAME_MTU + 1, False) + # On 1G NICs, when the jubmo frame MTU set as 9000, the software adjust it to 9004. + if self.kdriver == "igb": + self.jumboframes_send_packet(ETHER_JUMBO_FRAME_MTU + 4 + 1, False) + else: + self.jumboframes_send_packet(ETHER_JUMBO_FRAME_MTU + 1, False) self.vm_testpmd.execute_cmd("stop") self.vm_testpmd.quit() @@ -307,8 +302,7 @@ class TestVfJumboFrame(TestCase): """ Run after each test case. """ - self.vm_dut.kill_all() - pass + self.destroy_vm_env() def tear_down_all(self): """ -- 1.9.3