test suite reviews and discussions
 help / color / mirror / Atom feed
* [dts] Adding support for a new NIC on DTS
@ 2015-09-02 22:35 Eric Kadison
  2015-09-06  0:48 ` Liu, Yong
  0 siblings, 1 reply; 5+ messages in thread
From: Eric Kadison @ 2015-09-02 22:35 UTC (permalink / raw)
  To: dts

Hi everyone,
I'm trying to add support for a new NIC to DTS.  It is clear that the driver needs to be identified in the settings.py file (by adding to the NICS dict the device name (as the key) and PCI ID (as the value), and then adding the kernel driver name (as value) to the same key in the DRIVERS dict).  Did I miss anything?

After entering my DUT host computer information in crbs.py, and setting up execution.cfg, I expected some basic tests to run.  The hello_world test ran successfully, but it does not bind my ports to the igb_uio driver.  So no test that tries to run I/O runs.  In fact, it looks like the code in the project_dpdk.py file in set_target tries to bind the NIC to the kernel driver.  Can anyone point me at a solution?

Test configuration use DTS from the master branch and DPDK 2.0.

Eric Kadison

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [dts] Adding support for a new NIC on DTS
  2015-09-02 22:35 [dts] Adding support for a new NIC on DTS Eric Kadison
@ 2015-09-06  0:48 ` Liu, Yong
  2015-09-10  4:25   ` Eric Kadison
  0 siblings, 1 reply; 5+ messages in thread
From: Liu, Yong @ 2015-09-06  0:48 UTC (permalink / raw)
  To: Eric Kadison, dts

Hi Eric,
Can you show your settings in execution.cfg? By default NIC port type is "cfg" which mean DTS will only load ports which defined in conf/ports.cfg.

Here is one sample for port configuration file. Setting "pci" mean the pci address of DUT port, "peer" mean the opposite test port pci address.
[root@dpdk-test38 dts]# cat conf/ports.cfg
[DUT IP]
ports=
    pci=87:00.0,peer=07:00.0;
    pci=87:00.1,peer=07:00.1;


> -----Original Message-----
> From: dts [mailto:dts-bounces@dpdk.org] On Behalf Of Eric Kadison
> Sent: Thursday, September 03, 2015 6:36 AM
> To: dts@dpdk.org
> Subject: [dts] Adding support for a new NIC on DTS
> 
> Hi everyone,
> I'm trying to add support for a new NIC to DTS.  It is clear that the
> driver needs to be identified in the settings.py file (by adding to the
> NICS dict the device name (as the key) and PCI ID (as the value), and then
> adding the kernel driver name (as value) to the same key in the DRIVERS
> dict).  Did I miss anything?
> 
> After entering my DUT host computer information in crbs.py, and setting up
> execution.cfg, I expected some basic tests to run.  The hello_world test
> ran successfully, but it does not bind my ports to the igb_uio driver.  So
> no test that tries to run I/O runs.  In fact, it looks like the code in
> the project_dpdk.py file in set_target tries to bind the NIC to the kernel
> driver.  Can anyone point me at a solution?
> 
> Test configuration use DTS from the master branch and DPDK 2.0.
> 
> Eric Kadison

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [dts] Adding support for a new NIC on DTS
  2015-09-06  0:48 ` Liu, Yong
@ 2015-09-10  4:25   ` Eric Kadison
  2015-09-10  5:36     ` Xu, Qian Q
  2015-09-10  5:57     ` Liu, Yong
  0 siblings, 2 replies; 5+ messages in thread
From: Eric Kadison @ 2015-09-10  4:25 UTC (permalink / raw)
  To: 'Liu, Yong', dts

Hi Yong,
Thank you for your reply.  My execution.cfg contains:
[Execution1]
crbs=10.13.241.80
test_suites=
# hello_world,
# l3fwd
 jumboframes
targets=
 x86_64-native-linuxapp-gcc
parameters=nic_type=BRCM57304:func=true:perf=false
drivername=igb_uio

Note that:
 - The DUT_PORT_MAP is built correctly.  So the discovery process on the DUT has found my NIC and discovered the correct connections to the Tester.  The ports.cfg file has not been changed from its default.
 - The NIC is bound to our PMC correctly.  This is clear in the output log.  At DTS completion, the kernel driver is reloaded properly.
 - As you can see, I have figured out that the "drivername" argument is required and must contain the name of the uio driver.  My settings.py file contains the driver name of the kernel driver for my NIC (not the PMD).
 - As you can see, I've tried the l3fwd and the jumboframes test suites.  Neither works.  The helloworld test was successful.
 - The l3fwd test performs setup and then runs no test cases.  It appears that DTS will only run the test cases if called out on the command line, though I don't know why??  When I tried to add a test case function name to the command line, it still ran nothing.  
 - The jumboframes test executes, but reports errors.  We are investigating whether or not these errors might be actual errors in our PMD or NIC or the test case code, but other (non-DTS) tests for jumbo frames have passed.  The errors are on all the jumbo test cases (the nojumbo test case passes).  One test case fails with a Timeout on the "show port stats 0 " command.  The log files and the test_results.xls file both show the passes and failures.

A few questions:
1. Should we expect the jumboframes test case to pass with an arbitrary NIC with a working PMD?
2. What is needed to make the l3fwd test case execute?
3. Can you suggest a test  suite that should run without being customized to a specific NIC?
4. It appears that the conf directory contains a collection of configuration files that may be needed under certain circumstances.  Can you either define when these are needed or point me to documentation that so defines?

Thank you,
Eric Kadison

> -----Original Message-----
> From: Liu, Yong [mailto:yong.liu@intel.com]
> Sent: Saturday, September 05, 2015 5:48 PM
> To: Eric Kadison; dts@dpdk.org
> Subject: RE: Adding support for a new NIC on DTS
> 
> Hi Eric,
> Can you show your settings in execution.cfg? By default NIC port type is "cfg"
> which mean DTS will only load ports which defined in conf/ports.cfg.
> 
> Here is one sample for port configuration file. Setting "pci" mean the pci
> address of DUT port, "peer" mean the opposite test port pci address.
> [root@dpdk-test38 dts]# cat conf/ports.cfg [DUT IP] ports=
>     pci=87:00.0,peer=07:00.0;
>     pci=87:00.1,peer=07:00.1;
> 
> 
> > -----Original Message-----
> > From: dts [mailto:dts-bounces@dpdk.org] On Behalf Of Eric Kadison
> > Sent: Thursday, September 03, 2015 6:36 AM
> > To: dts@dpdk.org
> > Subject: [dts] Adding support for a new NIC on DTS
> >
> > Hi everyone,
> > I'm trying to add support for a new NIC to DTS.  It is clear that the
> > driver needs to be identified in the settings.py file (by adding to
> > the NICS dict the device name (as the key) and PCI ID (as the value),
> > and then adding the kernel driver name (as value) to the same key in
> > the DRIVERS dict).  Did I miss anything?
> >
> > After entering my DUT host computer information in crbs.py, and
> > setting up execution.cfg, I expected some basic tests to run.  The
> > hello_world test ran successfully, but it does not bind my ports to
> > the igb_uio driver.  So no test that tries to run I/O runs.  In fact,
> > it looks like the code in the project_dpdk.py file in set_target tries
> > to bind the NIC to the kernel driver.  Can anyone point me at a solution?
> >
> > Test configuration use DTS from the master branch and DPDK 2.0.
> >
> > Eric Kadison

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [dts] Adding support for a new NIC on DTS
  2015-09-10  4:25   ` Eric Kadison
@ 2015-09-10  5:36     ` Xu, Qian Q
  2015-09-10  5:57     ` Liu, Yong
  1 sibling, 0 replies; 5+ messages in thread
From: Xu, Qian Q @ 2015-09-10  5:36 UTC (permalink / raw)
  To: Eric Kadison, Liu, Yong, dts

Eric, 
See my comments below inline. 

Thanks
Qian

-----Original Message-----
From: dts [mailto:dts-bounces@dpdk.org] On Behalf Of Eric Kadison
Sent: Thursday, September 10, 2015 12:25 PM
To: Liu, Yong; dts@dpdk.org
Subject: Re: [dts] Adding support for a new NIC on DTS

Hi Yong,
Thank you for your reply.  My execution.cfg contains:
[Execution1]
crbs=10.13.241.80
test_suites=
# hello_world,
# l3fwd
 jumboframes
targets=
 x86_64-native-linuxapp-gcc
parameters=nic_type=BRCM57304:func=true:perf=false
[Qian]If you are using the port.cfg for the port configuration, can set as:nic_type=cfg
drivername=igb_uio

Note that:
 - The DUT_PORT_MAP is built correctly.  So the discovery process on the DUT has found my NIC and discovered the correct connections to the Tester.  The ports.cfg file has not been changed from its default.
 - The NIC is bound to our PMC correctly.  This is clear in the output log.  At DTS completion, the kernel driver is reloaded properly.
 - As you can see, I have figured out that the "drivername" argument is required and must contain the name of the uio driver.  My settings.py file contains the driver name of the kernel driver for my NIC (not the PMD).
 - As you can see, I've tried the l3fwd and the jumboframes test suites.  Neither works.  The helloworld test was successful.
- The l3fwd test performs setup and then runs no test cases.  It appears that DTS will only run the test cases if called out on the command line, though I don't know why??  When I tried to add a test case function name to the command line, it still ran nothing.  
[Qian] L3fwd is the performance test suite, in your above execution.cfg file, you set perf=false, then it will not execute performance test "test_perf_xxx", all performance tests will be like" test_perf_xxx"; besides, in our l3fwd performance case, we use the Ixia as packet generator, and config the ixia port in the conf/ixia.cfg, if you have ixia, you can connect your NIC ports to the ixia and run. 
 - The jumboframes test executes, but reports errors.  We are investigating whether or not these errors might be actual errors in our PMD or NIC or the test case code, but other (non-DTS) tests for jumbo frames have passed.  The errors are on all the jumbo test cases (the nojumbo test case passes).  One test case fails with a Timeout on the "show port stats 0 " command.  The log files and the test_results.xls file both show the passes and failures.

A few questions:
1. Should we expect the jumboframes test case to pass with an arbitrary NIC with a working PMD?
2. What is needed to make the l3fwd test case execute?
[Qian] set perf=true, and connect it to Ixia ports, configure conf/ixia.cfg. 
3. Can you suggest a test  suite that should run without being customized to a specific NIC?
4. It appears that the conf directory contains a collection of configuration files that may be needed under certain circumstances.  Can you either define when these are needed or point me to documentation that so defines?

Thank you,
Eric Kadison

> -----Original Message-----
> From: Liu, Yong [mailto:yong.liu@intel.com]
> Sent: Saturday, September 05, 2015 5:48 PM
> To: Eric Kadison; dts@dpdk.org
> Subject: RE: Adding support for a new NIC on DTS
> 
> Hi Eric,
> Can you show your settings in execution.cfg? By default NIC port type is "cfg"
> which mean DTS will only load ports which defined in conf/ports.cfg.
> 
> Here is one sample for port configuration file. Setting "pci" mean the 
> pci address of DUT port, "peer" mean the opposite test port pci address.
> [root@dpdk-test38 dts]# cat conf/ports.cfg [DUT IP] ports=
>     pci=87:00.0,peer=07:00.0;
>     pci=87:00.1,peer=07:00.1;
> 
> 
> > -----Original Message-----
> > From: dts [mailto:dts-bounces@dpdk.org] On Behalf Of Eric Kadison
> > Sent: Thursday, September 03, 2015 6:36 AM
> > To: dts@dpdk.org
> > Subject: [dts] Adding support for a new NIC on DTS
> >
> > Hi everyone,
> > I'm trying to add support for a new NIC to DTS.  It is clear that 
> > the driver needs to be identified in the settings.py file (by adding 
> > to the NICS dict the device name (as the key) and PCI ID (as the 
> > value), and then adding the kernel driver name (as value) to the 
> > same key in the DRIVERS dict).  Did I miss anything?
> >
> > After entering my DUT host computer information in crbs.py, and 
> > setting up execution.cfg, I expected some basic tests to run.  The 
> > hello_world test ran successfully, but it does not bind my ports to 
> > the igb_uio driver.  So no test that tries to run I/O runs.  In 
> > fact, it looks like the code in the project_dpdk.py file in 
> > set_target tries to bind the NIC to the kernel driver.  Can anyone point me at a solution?
> >
> > Test configuration use DTS from the master branch and DPDK 2.0.
> >
> > Eric Kadison

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [dts] Adding support for a new NIC on DTS
  2015-09-10  4:25   ` Eric Kadison
  2015-09-10  5:36     ` Xu, Qian Q
@ 2015-09-10  5:57     ` Liu, Yong
  1 sibling, 0 replies; 5+ messages in thread
From: Liu, Yong @ 2015-09-10  5:57 UTC (permalink / raw)
  To: Eric Kadison, dts

Eric,
Some comments below. If need us to support on suite debug, the log file is required to check root cause.

> -----Original Message-----
> From: Eric Kadison [mailto:ekadison@broadcom.com]
> Sent: Thursday, September 10, 2015 12:25 PM
> To: Liu, Yong; dts@dpdk.org
> Subject: RE: Adding support for a new NIC on DTS
> 
> Hi Yong,
> Thank you for your reply.  My execution.cfg contains:
> [Execution1]
> crbs=10.13.241.80
> test_suites=
> # hello_world,
> # l3fwd
>  jumboframes
> targets=
>  x86_64-native-linuxapp-gcc
> parameters=nic_type=BRCM57304:func=true:perf=false
> drivername=igb_uio
> 
> Note that:
>  - The DUT_PORT_MAP is built correctly.  So the discovery process on the
> DUT has found my NIC and discovered the correct connections to the Tester.
> The ports.cfg file has not been changed from its default.
>  - The NIC is bound to our PMC correctly.  This is clear in the output log.
> At DTS completion, the kernel driver is reloaded properly.
>  - As you can see, I have figured out that the "drivername" argument is
> required and must contain the name of the uio driver.  My settings.py file
> contains the driver name of the kernel driver for my NIC (not the PMD).

Yes, this argument is for kernel driver for the NIC. DTS also can support driver "vfio-pci". 

>  - As you can see, I've tried the l3fwd and the jumboframes test suites.
> Neither works.  The helloworld test was successful.
>  - The l3fwd test performs setup and then runs no test cases.  It appears
> that DTS will only run the test cases if called out on the command line,
> though I don't know why??  When I tried to add a test case function name
> to the command line, it still ran nothing.

Here is easy to confuse, when DTS run performance test here should be "perf=true".

>  - The jumboframes test executes, but reports errors.  We are
> investigating whether or not these errors might be actual errors in our
> PMD or NIC or the test case code, but other (non-DTS) tests for jumbo
> frames have passed.  The errors are on all the jumbo test cases (the
> nojumbo test case passes).  One test case fails with a Timeout on the
> "show port stats 0 " command.  The log files and the test_results.xls file
> both show the passes and failures.

Here we need the log file to further check. I guess maybe packet length different from default NIC.
> 
> A few questions:
> 1. Should we expect the jumboframes test case to pass with an arbitrary
> NIC with a working PMD?

We do not expect every feature can work on an arbitrary NIC.
If the NIC support some feature, we can add this information in conf/dpdk_test_case_checklist.xls.
When run those suites, DTS will skip for not supported.

> 2. What is needed to make the l3fwd test case execute?

If there's no IXIA machine in your environment, DTS require one independent tester CRB which will run dpdk based pktgen. 
Driver igb_uio should also be placed at tester's root directory. 

> 3. Can you suggest a test  suite that should run without being customized
> to a specific NIC?

I suggest to run testpmd suite, for it only check forwarded packet.
There's no special setting required in this suite.

> 4. It appears that the conf directory contains a collection of
> configuration files that may be needed under certain circumstances.  Can
> you either define when these are needed or point me to documentation that
> so defines?
> 
Thanks for remind, we add few configurations for different scenarios recently.
There's document missing here, we will add documents soon.

> Thank you,
> Eric Kadison
> 
> > -----Original Message-----
> > From: Liu, Yong [mailto:yong.liu@intel.com]
> > Sent: Saturday, September 05, 2015 5:48 PM
> > To: Eric Kadison; dts@dpdk.org
> > Subject: RE: Adding support for a new NIC on DTS
> >
> > Hi Eric,
> > Can you show your settings in execution.cfg? By default NIC port type is
> "cfg"
> > which mean DTS will only load ports which defined in conf/ports.cfg.
> >
> > Here is one sample for port configuration file. Setting "pci" mean the
> pci
> > address of DUT port, "peer" mean the opposite test port pci address.
> > [root@dpdk-test38 dts]# cat conf/ports.cfg [DUT IP] ports=
> >     pci=87:00.0,peer=07:00.0;
> >     pci=87:00.1,peer=07:00.1;
> >
> >
> > > -----Original Message-----
> > > From: dts [mailto:dts-bounces@dpdk.org] On Behalf Of Eric Kadison
> > > Sent: Thursday, September 03, 2015 6:36 AM
> > > To: dts@dpdk.org
> > > Subject: [dts] Adding support for a new NIC on DTS
> > >
> > > Hi everyone,
> > > I'm trying to add support for a new NIC to DTS.  It is clear that the
> > > driver needs to be identified in the settings.py file (by adding to
> > > the NICS dict the device name (as the key) and PCI ID (as the value),
> > > and then adding the kernel driver name (as value) to the same key in
> > > the DRIVERS dict).  Did I miss anything?
> > >
> > > After entering my DUT host computer information in crbs.py, and
> > > setting up execution.cfg, I expected some basic tests to run.  The
> > > hello_world test ran successfully, but it does not bind my ports to
> > > the igb_uio driver.  So no test that tries to run I/O runs.  In fact,
> > > it looks like the code in the project_dpdk.py file in set_target tries
> > > to bind the NIC to the kernel driver.  Can anyone point me at a
> solution?
> > >
> > > Test configuration use DTS from the master branch and DPDK 2.0.
> > >
> > > Eric Kadison

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2015-09-10  5:57 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-09-02 22:35 [dts] Adding support for a new NIC on DTS Eric Kadison
2015-09-06  0:48 ` Liu, Yong
2015-09-10  4:25   ` Eric Kadison
2015-09-10  5:36     ` Xu, Qian Q
2015-09-10  5:57     ` Liu, Yong

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).