NIC Driver Test Suite

Announcements

See Driver News for announcements about NIC drivers.

Related Information

NICDRV Introduction

This project is for the NIC test suites development. You can download the NIC driver test suite and learn about nic driver testing from this link. Everyone's contribution and feedback is important to this project.

NICDRV is a testsuite developed by us for NIC drivers testing. It is used to qualify the NIC's functionalities working on Solaris and supports both SPARC and X86 platforms. We analyzed the functionalities of all kinds of NICs and refined the testing criteria.

NICDRV contains necessary network applications to verify the working of NIC drivers, including network data transmission at IPv4/IPv6, transmission at promiscuous mode, transmission based on all kinds of packet length, data corruption verifying, multicast transmission, ndd-parameters setting, working-mode testing, Statistics, vlan, link aggregation, loading/unloading drivers and etc.NICDRV also include stress testing

NICDRV is implemented based on our existing Solaris Test Framework (STF), so it can be configured and executed automatically instead of running every test case manually. Test report will also be produced automatically after the test ends.

NICDRV uses code coverage analysis to evaluate test effectiveness. While the test is running, all functions of the under test NIC driver are called can be recorded by a Dtrace script. At the end of the test, the code coverage rate will be shown. Testers can know which functions of the NIC driver routine are passed and which functions aren't called. This feature of the NICDRV framework is also used in developing new test cases for NIC.

We designed NICDRV as an open test platform. The test criteria can be adjusted based on the different models of NIC. If it is a high-end NIC, like 10Gb/s NIC, used on transmitting huge network data, testers can select a set of parameters with high level to test. If the NIC is just for low-end usage, a little data being transmitted (like 10Mb/s NIC), testers can adjust the parameters to a lower level. A new set of parameters can be added into NICDRV platform for the new model of NIC as the new test criteria. And also, new test cases can be added into NICDRV easily.

What Is the Meaning of Each Test Case?

Case NameTypeRuntime (full)DescriptionPossible Causes for Failure
test00functional2 hoursData transmitting/receiving
Ftp ipv4/ipv6
A wrong root password in config.vars file
Big size files cannot be transmitted by the tested driver
Disk free space (/var > 2G)
IPv6 doesn't work
Hardware chipset error
test01functional3 hoursReceiving/transmitting under promiscuous mode
Netperf+snoop on/off
Driver cannot support the promiscuous mode
Driver cannot work stably with repeatedly promiscuous mode on/off
Sessions/connection can not be established
Timeout:performance issue to make the driver cost too much time for transmission.
Timeout: system or interface hang.
test02functional1 hourPackets lost and zero length data pending
ping all packet size
Failed to transfer one or several packets with particular length
Driver works unstably
Timeout: too slow to ping every packet
test03functional2 hoursData corruption
nfs corrupt
Found data corruption
An NFS environment mistake (e.g. S10 is different from Snv)
test04functional1 hourMulticast
IPmulticast
Failed to join multiple multicast groups
test05functional5 minutesndd interface
ndd read/write command
Some parameters of driver cannot be set by ndd
There are some new private parameters that the current NICDRV cannot support in the under test driver
test06functional3 hoursReceiving/transmitting on different duplex/speed mode
netperf on 10/100/1000Mbps duplex/speed mode
Driver cannot work stably on 10/100/1000Mbps duplex/speed mode
Failed to transfer UDP traffic
Check the failures of MAXQ
test07functional20 minutesStatistic
kstat and netstat counter check
Found statistics errors
test08functional2 hoursVLAN
VLAN plumb/FTP/nfs corrupt/MAXQ
Failed to create VLAN interface
Failed to access by rsh
Check the switch configuration if the under test interfaces are connected by a switch.
The failures of test00 test01 test02 and test03 could cause test08 to fail
Failed to create the maximum number of VLAN interface.
test09functional1 hourTrunking
nfs corrupt on trunking interface
Failed to create link aggregation
Failed to cleanup after test00-test08
The driver cannot support link aggregation, The driver based on GLDv3 is supposed to support link aggregation.
test10functional1 hourload,unload driver
Test driver load unload functionality
Driver cannot be attach/detach or plumb/unplumb
Driver cost too many memories for one interface
test11functional1 hourDR (dynamic reconfiguration) test
Test NIC driver dynamic reconfiguration support
UNSUPPORTED means the under test system cannot support the DR feature, so the test doesn't run. It's not a failure.
The main platforms that support DR: (TBD)
test12functional1 hourVNICThe VNIC works unstably if the failure is only in MAXQ
Failed to create multiple VNIC interfaces
test13functional1.5 hoursdladm (Brussels and Jumbo)dladm operations on the tested driver failed
Changing parameters failed
Cannot support jumbo frame feature
Driver works unstably in half-duplex mode.
test14functional1.5 hoursIPMI (Intelligent Platform Management Interface)IPMI configuration incorrectly
Test machine not support IPMI
netstressstress15 hoursnetperf (TCP/UDP)Driver cannot work stably for a long time, like a half day.
The under test system cannot support a certain large number of sessions.
System or interface hang could cause the test case timeout.
loadunloadstress6 hoursload/unload with netperfFound memory leaks after repeatedly loading/unloading driver
System or interface hang could cause the test case timeout.
total 41 hours  

Quick Start

auto_nicdrv readme

Install wrapper for nicdrv: auto_nicdrv_1109.tar.bz2

Source Code, Binary and Package

Community Group device_drivers: Projects > NIC Driver Test Suite  

The NICDRV i386 binary is: SUNWstc-nicdrv-20090924.i386.tar.bz2

The NICDRV SPARC binary is: SUNWstc-nicdrv-20090924.sparc.tar.bz2

The test suite source is: source/xref/test/ontest-stc2/src/suites/net/nicdrv

The test suite source is: stcnv-nicdrv-src-20090629.tar.bz2

How to Build and Use

nicdrv readme

NICDRV Baseline Report

nicdrv VersionSolaris Buildx86SPARC
2.0Opensolaris 0906Function: e1000g test report
Stress: e1000g test report
 
2.0Solaris nv114Function: e1000g test report
Stress: e1000g test report
 
2.0Solaris nv116Function: bge test reportFunction: bge test report
Stress: bge test report

Bugs

View the nicdrv bug list.

Report a bug or request a feature for NICDRV.

How to Participate

Join the discussion at NICDRV-interest at sun dot com. Hear from the experts, review archives, and post your questions.

last modified by fanyuan on 2009/11/09 07:22
Collectives
Project


© Sun Microsystems Inc. 2009
XWiki Enterprise 1.8.2.19075 - Documentation
Terms Of Use | Privacy | Trademarks | Copyright Policy | Site Guidelines | Site map | Help
Your use of this web site or any of its content or software indicates your agreement to be bound by these Terms of Use.