[dts] Adding support for a new NIC on DTS

Eric Kadison ekadison at broadcom.com
Thu Sep 10 06:25:21 CEST 2015

Hi Yong,
Thank you for your reply.  My execution.cfg contains:
# hello_world,
# l3fwd

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 at intel.com]
> Sent: Saturday, September 05, 2015 5:48 PM
> To: Eric Kadison; dts at 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 at 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 at dpdk.org] On Behalf Of Eric Kadison
> > Sent: Thursday, September 03, 2015 6:36 AM
> > To: dts at 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

More information about the dts mailing list