[dts] [PATCH v2 00/28] DTS support for Cavium NICs

Angela Czubak aczubak at caviumnetworks.com
Mon Apr 10 19:08:54 CEST 2017


Changes done to run DTS for Cavium NICs

1) Cavium devices with 177d:a034 and 177d:0011 PCI IDs are added to NICs list, both of which are supported by thunder-nicvf driver
2) When appending pci devices info, the only Cavium NICs appended are the ones with 10Gb/s linkspeed
3) For arm64 architecture the hugepage size is detected and if it is 524288, then lesser amount of hugepages is acquired
4) Created a method in Dut class for getting the right binding script (if someone chooses to use older DPDK version)
5) Checking link is done via IPv4 ping alternately, so that DUT can be a system without IPv6 (previously link was detected solely by checking if an interface obtained an IPv6 address and then by using ping6). This also makes force binding necessary, as those interfaces are detected as active.
6) Checking whether vfio-pci was loaded using lsmod can be deceptive. If someone decides to use DPDK on a system with modules built into the kernel, then this approach will fail. Instead, DPDK binding script can be used and if it shows that vfio-pci can be used, DTS proceeds, otherwise it send with an error due to a failed assertion.
7) Modifying tests and config for Cavium NICs
8) Added support for Cavium NICs to choose only cards with specified linkspeed
9) Skipping recompling DPDK in TestSuite_pmd.py if the driver is not meant for FVL

Changes since initial version:
- Added support for Cavium NICs to choose only cards with specified linkspeed
- Skipping recompling DPDK in TestSuite_pmd.py if the driver is not meant for FVL
- Setting max-pkt-len before setting vlan stripping off in TestSuite_shutdown_api.py when testing jumbo frames


Angela Czubak (28):
  framework settings: Adding cavium PCI IDs and drivers
  framework dut and project_dpdk: using correct available binding
    scripts
  framework dut and project_dpdk: binding smaller number of hugepages
    for     arm64
  framework crb: Appending only 10G devices for cavium
  framework project_dpdk: asserting loading vfio-pci by using DPDK    
    binding script
  framework: checking link with IPv4 ping
  tests: ipv4_reassembly - added splitting result in tcpdump_command
  framework: getting DPDK binding script moved to a method in dut
  tests: Modified tests to take cavium nics into account
  tests: checksum_offload - fixes
  tests: dynamic_config - taking into account cavium NICs
  tests: fdir - skipping fdir tests for Cavium NICs
  tests: ieee1588 - skipping ieee1588_enable test for Cavium NICs
  tests: jumboframes - skipping jumboframes tests testing bigger than   
     allowed frames for Cavium NICs
  tests: l2fwd - fixes to run on two cards (same NIC) and expecting    
    "L2FWD: entering main loop" instead of "memory mapped"
  tests: link_status_interrupt - skipping    
    test_link_status_interrupt_port_available for Cavium NICs
  tests: link_status_interrupt - skipping tests verifying adding MAC    
    addresses for Cavium NICs
  tests: pmdpcap - modifying the right config file + importing utils    
    after scapy
  tests: pmdrssreta - skipping tests for Cavium NICs
  tests: queue_start_stop - taking into account cavium NICs
  tests: quota_watermark - skipping tests for Cavium NICs
  tests: short_live - taking into account cavium NICs + fixes
  tests: tso - taking into account cavium NICs
  tests: uni_pkt - taking into account cavium NICs
  tests: unit_tests_dump - taking into account cavium NICs
  tests: unit_tests_lpm - asking for lesser amount of hugepages if they 
       are 524288kB
  framework: Adding linkspeed parameter for Cavium NICs
  tests: pmd - Recompiling DPDK only if that is relevant

 conf/dpdk_support_test_case.xls     | Bin 25600 -> 8704 bytes
 conf/dpdk_test_case_checklist.xls   | Bin 31232 -> 21504 bytes
 doc/dts_gsg/config.rst              |   4 +
 framework/crb.py                    |  12 +-
 framework/dts.py                    |   5 +
 framework/dut.py                    |  52 ++++++---
 framework/pmd_output.py             |   4 +
 framework/project_dpdk.py           |  18 ++-
 framework/settings.py               |   5 +
 framework/test_capabilities.py      |   9 ++
 framework/test_case.py              |   7 +-
 framework/tester.py                 |  11 ++
 nics/net_device.py                  |   8 +-
 tests/TestSuite_checksum_offload.py |  38 +++----
 tests/TestSuite_dynamic_config.py   |  10 +-
 tests/TestSuite_ipv4_reassembly.py  |   2 +-
 tests/TestSuite_l2fwd.py            |   4 +-
 tests/TestSuite_pmd.py              |   5 +-
 tests/TestSuite_pmdpcap.py          |  13 ++-
 tests/TestSuite_queue_start_stop.py |   5 +-
 tests/TestSuite_short_live.py       |  44 ++++++--
 tests/TestSuite_shutdown_api.py     |  31 ++---
 tests/TestSuite_tso.py              |  10 +-
 tests/TestSuite_uni_pkt.py          | 219 ++++++++++++++++++++++++------------
 tests/TestSuite_unit_tests_dump.py  |  17 ++-
 tests/TestSuite_unit_tests_lpm.py   |   9 +-
 26 files changed, 383 insertions(+), 159 deletions(-)
 create mode 100644 framework/test_capabilities.py

-- 
2.7.4



More information about the dts mailing list