Very good list from Ben
set and verify all supported link speeds (auto-negotiate, 10Mbps fixed, 100Mbps fixed,
1Gbps, full/half duplex, etc)
set & verify various MTUs
At each speed, generate maximum amount of packets:
tx only
rx only
tx + rx
Could use pktgen for this as it does not ARP or do other protocol things
would complicate rx-only and tx-only testing.
Could also do randomized packet sizes or step through a bunch of different
sizes.
Could randomize rates and other things with pktgen as well.
Determine number of dropped & errored packets at each phase.
This should be verified by counting the number of packets transmitted
v/s received and coorelated against any drop/error counters that the
driver reports.
Generate TCP & UDP traffic at various speeds to make sure it handles
protocols correctly too.
Run a similar battery of tests against 802.1Q VLANS on the
interfaces in question.
Phone notes from sch:
- driver see the results of the ioctls
- other place to look
- Windows hardware qual stuff.
-- Tech Net
---
Two API's
- ioctl's
- netlink
- ethtool - most should support it.
Range or packet size
Range of frequency
if you a send file - scatter-gather io
- differnet format of socket buffer
- header as part of socket buffer,
- list of DMA mappings
- single vector vs list.
- list is user pages
Look at packetgen - way to generate bunches of packets inside kernel
- malformed/bad CRC - hard to do
- long/short frames - hard to do
1. does it work reliably
2. do all the up/down transitions happen
3. Look at interfaces w/security hat.
4. buffer overflows -
5. 64 bit - PPC/ differnet IO arch
6. Big machines
7. big/small 32bit/>4GB
8. Physical/Virtual -
9. Talk to Jeff Garzik - What is common breakage?
More Rough notes
reas of interest:
- Administrative tasks ( ioctls, setup/teardown )
- setting basic parameters ( address, MAC )
- modifying transmission parameters
- Robustness/Recovery ( bad line, disconnection )
- Reporting ( traffic and error statistics )
- kernel level tools
packetgen
loopback
- user space tools
ethtool
tcpdump
ifconfig
Notes on ifconfig
- can check basic status
- test inet.inet6,ipx addressing
- Fields that can be set:
- arp (on/off)
- MTS size
- interface metric
- adding/removing ipv6 address
- promisicuous mode
- all-multicast mode ( do we care? )
- remap IRQ ( if available )
- io_addr
- mem_start ( not many devices )
- IFF_BROADCAST flag
- transmit queue length
Other notes - corbett's snull driver -
- can be ported to 2.6 ?
- if doing single-machine stuff, must consider
localhost issues ( faking none-local )