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 )