[dts] [PATCH v1]vf_packet_rxtx: optimize test case
Tu, LijuanX A
lijuanx.a.tu at intel.com
Fri Nov 18 07:35:07 CET 2016
1, all nic should enable vf crc-strip ,not just forville, for HW not support
2, enable pf (igb_uio) crc-strip (DPDK-1755)
To make share pf & vf behavior the same
3, fix grammatical error
> -----Original Message-----
> From: Liu, Yong
> Sent: Friday, November 18, 2016 1:21 PM
> To: Tu, LijuanX A; dts at dpdk.org
> Cc: Tu, LijuanX A
> Subject: RE: [dts] [PATCH v1]vf_packet_rxtx: optimize test case
>
> Lijuan, few comments.
>
> > -----Original Message-----
> > From: dts [mailto:dts-bounces at dpdk.org] On Behalf Of Lijuan Tu
> > Sent: Tuesday, November 15, 2016 2:07 PM
> > To: dts at dpdk.org
> > Cc: Tu, LijuanX A
> > Subject: [dts] [PATCH v1]vf_packet_rxtx: optimize test case
> >
> > Signed-off-by: Lijuan Tu <lijuanx.a.tu at intel.com>
> > ---
> > tests/TestSuite_vf_packet_rxtx.py | 47
> > ++++++++++++++++------------------
> > -----
> > 1 file changed, 19 insertions(+), 28 deletions(-)
> >
> > diff --git a/tests/TestSuite_vf_packet_rxtx.py
> > b/tests/TestSuite_vf_packet_rxtx.py
> > index 25b03eb..62d3a3c 100644
> > --- a/tests/TestSuite_vf_packet_rxtx.py
> > +++ b/tests/TestSuite_vf_packet_rxtx.py
> > @@ -46,12 +46,13 @@ class TestVfPacketRxtx(TestCase):
> > vf0_prop = {'opt_host': self.sriov_vfs_port_0[0].pci}
> > vf1_prop = {'opt_host': self.sriov_vfs_port_1[0].pci}
> >
> > +
> > if driver == 'igb_uio':
> > # start testpmd without the two VFs on the host
> > self.host_testpmd = PmdOutput(self.dut)
> > eal_param = '-b %(vf0)s -b %(vf1)s' % {'vf0':
> > self.sriov_vfs_port_0[0].pci,
> > 'vf1':
> > self.sriov_vfs_port_1[0].pci}
> > - self.host_testpmd.start_testpmd("1S/2C/2T",
> > eal_param=eal_param)
> > + self.host_testpmd.start_testpmd("1S/2C/2T",
> > + "--crc-strip",
> > eal_param=eal_param)
> >
> > # set up VM0 ENV
> > self.vm0 = QEMUKvm(self.dut, 'vm0', 'vf_packet_rxtx') @@
> > -69,9 +70,10 @@ class TestVfPacketRxtx(TestCase):
> > def destroy_2pf_2vf_1vm_env(self):
> > if getattr(self, 'vm0', None):
> > #destroy testpmd in vm0
> > - self.vm0_testpmd.execute_cmd('stop')
> > - self.vm0_testpmd.execute_cmd('quit', '# ')
> > - self.vm0_testpmd = None
> > + if getattr(self, 'vm0_testpmd', None):
> > + self.vm0_testpmd.execute_cmd('stop')
> > + self.vm0_testpmd.execute_cmd('quit', '# ')
> > + self.vm0_testpmd = None
> > self.vm0_dut_ports = None
> > #destroy vm0
> > self.vm0.stop()
> > @@ -81,13 +83,13 @@ class TestVfPacketRxtx(TestCase):
> > self.host_testpmd.execute_cmd('quit', '# ')
> > self.host_testpmd = None
> >
> > - if getattr(self, 'used_dut_port_0', None):
> > + if getattr(self, 'used_dut_port_0', None) != None:
> Look like nothing changed, why changed it?
[lijuan] X = getattr(self, 'used_dut_port_0', None)
Here : used_dut_port_0 == 0 ,so X == 0 ,
So judgment is False, but actual it's true, we hope it will destroy vfs.
The judgment is want to check whether used_dut_port_0 defined .if not defined ,we will not destroy vfs.
>
> > self.dut.destroy_sriov_vfs_by_port(self.used_dut_port_0)
> > port = self.dut.ports_info[self.used_dut_port_0]['port']
> > port.bind_driver()
> > self.used_dut_port_0 = None
> >
> > - if getattr(self, 'used_dut_port_1', None):
> > + if getattr(self, 'used_dut_port_1', None) != None:
> > self.dut.destroy_sriov_vfs_by_port(self.used_dut_port_1)
> > port = self.dut.ports_info[self.used_dut_port_1]['port']
> > port.bind_driver()
> > @@ -110,14 +112,7 @@ class TestVfPacketRxtx(TestCase):
> > self.vm0_dut_ports = self.vm_dut_0.get_ports('any')
> > port_id_0 = 0
> > self.vm0_testpmd = PmdOutput(self.vm_dut_0)
> > - if self.kdriver == "i40e":
> > - self.vm0_testpmd.start_testpmd(VM_CORES_MASK, '--crc-strip')
> > - else:
> > - self.vm0_testpmd.start_testpmd(VM_CORES_MASK)
> > - self.vm0_testpmd.execute_cmd('port stop all')
> > - self.vm0_testpmd.execute_cmd('port config all crc-strip on')
> > - self.vm0_testpmd.execute_cmd('port start all')
> > - self.vm0_testpmd.execute_cmd('show port info all')
> > + self.vm0_testpmd.start_testpmd(VM_CORES_MASK, '--crc-strip')
> Please give some comment of this change, why other NICs now support crc-strip
> by testpmd parameter?
[lijuan] Nics (Niantic fortivlle sageville powerville) all can't disable crc-strip, but fortiville deal it as error , and other as warning.
Dpdk disable crc-strip as default. But how to deal with crc-strip is still in discussing.
Refer: http://dpdk.org/dev/patchwork/patch/16980/
>
> > pmd_vf0_mac = self.vm0_testpmd.get_port_mac(port_id_0)
> > self.vm0_testpmd.execute_cmd('set fwd mac')
> > self.vm0_testpmd.execute_cmd('start')
> > @@ -199,8 +194,9 @@ class TestVfPacketRxtx(TestCase):
> >
> > def destroy_3vf_2vm_env(self):
> > if getattr(self, 'vm0', None):
> > - self.vm0_testpmd.execute_cmd('stop')
> > - self.vm0_testpmd.execute_cmd('quit', '# ')
> > + if getattr(self, 'vm0_testpmd', None):
> > + self.vm0_testpmd.execute_cmd('stop')
> > + self.vm0_testpmd.execute_cmd('quit', '# ')
> > self.vm0_testpmd = None
> > self.vm0_dut_ports = None
> > self.vm_dut_0 = None
> > @@ -208,19 +204,20 @@ class TestVfPacketRxtx(TestCase):
> > self.vm0 = None
> >
> > if getattr(self, 'vm1', None):
> > - self.vm1_testpmd.execute_cmd('stop')
> > - self.vm1_testpmd.execute_cmd('quit', '# ')
> > + if getattr(self, 'vm1_testpmd', None):
> > + self.vm1_testpmd.execute_cmd('stop')
> > + self.vm1_testpmd.execute_cmd('quit', '# ')
> > self.vm1_testpmd = None
> > self.vm1_dut_ports = None
> > self.vm_dut_1 = None
> > self.vm1.stop()
> > self.vm1 = None
> >
> > - if getattr(self, 'host_testpmd', None):
> > + if getattr(self, 'host_testpmd', None) != None:
> > self.host_testpmd.execute_cmd('quit', '# ')
> > self.host_testpmd = 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)
> > port = self.dut.ports_info[self.used_dut_port]['port']
> > port.bind_driver()
> > @@ -243,10 +240,7 @@ class TestVfPacketRxtx(TestCase):
> > port_id_1 = 1
> >
> > self.vm0_testpmd = PmdOutput(self.vm_dut_0)
> > - if self.kdriver == "i40e":
> > - self.vm0_testpmd.start_testpmd(VM_CORES_MASK, '--crc-strip')
> > - else:
> > - self.vm0_testpmd.start_testpmd(VM_CORES_MASK)
> > + self.vm0_testpmd.start_testpmd(VM_CORES_MASK, '--crc-strip')
> > self.vm0_testpmd.execute_cmd('show port info all')
> > pmd0_vf0_mac = self.vm0_testpmd.get_port_mac(port_id_0)
> > self.vm0_testpmd.execute_cmd('set fwd mac') @@ -255,10 +249,7
> > @@ class TestVfPacketRxtx(TestCase):
> > time.sleep(2)
> >
> > self.vm1_testpmd = PmdOutput(self.vm_dut_1)
> > - if self.kdriver == "i40e":
> > - self.vm1_testpmd.start_testpmd(VM_CORES_MASK, '--crc-strip')
> > - else:
> > - self.vm1_testpmd.start_testpmd(VM_CORES_MASK)
> > + self.vm1_testpmd.start_testpmd(VM_CORES_MASK, '--crc-strip')
> > self.vm1_testpmd.execute_cmd('show port info all')
> >
> > tx_port = self.tester.get_local_port(self.dut_ports[0])
> > --
> > 1.9.3
More information about the dts
mailing list