[dts] [PATCH] add --crc-strip param when starting i40evf driver testpmd

Lin, Xueqin xueqin.lin at intel.com
Wed Mar 8 03:51:30 CET 2017


Thanks for review, reply as below.

Best regards,
Xueqin


-----Original Message-----
From: Liu, Yong 
Sent: Wednesday, March 8, 2017 9:34 AM
To: Lin, Xueqin <xueqin.lin at intel.com>; dts at dpdk.org
Cc: Lin, Xueqin <xueqin.lin at intel.com>
Subject: RE: [dts] [PATCH] add --crc-strip param when starting i40evf driver testpmd

Hi Xueqin,
Some comments below.

> -----Original Message-----
> From: dts [mailto:dts-bounces at dpdk.org] On Behalf Of Xueqin Lin
> Sent: Tuesday, March 07, 2017 11:41 AM
> To: dts at dpdk.org
> Cc: Lin, Xueqin <xueqin.lin at intel.com>
> Subject: [dts] [PATCH] add --crc-strip param when starting i40evf 
> driver testpmd
> 
> ---
>  framework/pmd_output.py | 14 +++++++++++++-
>  1 file changed, 13 insertions(+), 1 deletion(-)
> 
> diff --git a/framework/pmd_output.py b/framework/pmd_output.py index 
> 13dcaef..7585088 100644
> --- a/framework/pmd_output.py
> +++ b/framework/pmd_output.py
> @@ -31,9 +31,10 @@
> 
>  import os
>  import re
> +import settings
>  from settings import TIMEOUT,PROTOCOL_PACKET_SIZE  from utils import 
> create_mask
> -
> +from serializer import Serializer
> 
>  class PmdOutput():
> 
> @@ -43,6 +44,7 @@ class PmdOutput():
> 
>      def __init__(self, dut):
>          self.dut = dut
> +        self.NAME = '%s' %dut

Please check with pep8, should be space after "%".

>          self.dut.testpmd = self
>          self.rx_pkts_prefix = "RX-packets:"
>          self.rx_missed_prefix = "RX-missed:"
> @@ -100,6 +102,16 @@ class PmdOutput():
>          return self.command
> 
>      def start_testpmd(self, cores, param='', eal_param='', socket=0):
> +        # add --crc-strip param to start testpmd for i40evf driver in VM
> +        if "virt_dut" in self.NAME:
> +            serializer = Serializer()
> +            ports_info = serializer.load('dut_port_info')

Can't load dut port info without set serialize filename.
And cached info in dut_port_info is only scanned dut PF devices, VF devices won't be in it.

I have verified these codes, could load dut port info successfully.
cached info in dut_port_info not only scan dut PF devices, if starting qemu, it caches VF devices info instead.

Suggest use this logic:

If white list option in eal command:
	Get devices list
Else:
	Get list of Ethernet devices which bound to self.drivername
	ls --file-type --color=never -a /sys/module/igb_uio/drivers/pci\:igb_uio/ |grep -v module | grep @
	if black list in eal param
		remove blacked device from the list

for device in device list:
	get default driver by GetNicObj(domain_id, bus_id, devfun_id)
	if 'i40evf' is the default driver:
		add crc-strip option


> +            for port in ports_info:
> +                pci_id = port['type']
> +                driver = settings.get_nic_driver(pci_id)
> +            if driver == "i40evf":
> +                if "--crc-strip" not in param:
> +                    param += " --crc-strip"
>          # in dpdk2.0 need used --txqflags param to open hardware features
>          if "--txqflags" not in param:
>              param += " --txqflags=0"
> --
> 2.5.5



More information about the dts mailing list