devnp-i82544.so

Driver for Intel 825* Gigabit Ethernet LAN adapters

Syntax:

io-pkt-variant -d i82544 [option[,option ...]] ... &

where variant is one of v4, v4-hc, or v6-hc.

Runs on:

Neutrino

Options:

Note: Use commas, not spaces, to separate the options.
did=0xXXXX
Detect only devices with this specific PCI Device ID. The default is automatically detected on supported hardware.
duplex=0|1
Half (0) or full (1) duplex mode. The default is automatically detected on supported hardware. If you specify duplex, specify speed as well; if duplex alone is specified, it is ignored and both speed and duplex are auto-negotiated.

You can also use ifconfig -m and ifconfig wmX media to set this.

irq=N
IRQ of the interface. The default is automatically detected on supported hardware.
irq_thresh=X
The maximum number of interrupts per second to be generated. The default is 9000. This reduces CPU consumption by limiting how often interrupts occur, which is especially helpful on slower processors.
mac=XXXXXXXXXXXX
The MAC address of the controller. The default is automatically detected on supported hardware.
nomulticast
Disable the driver from sending or receiving multicast packets. By default, multicast is enabled.
pause_rx_disable
Disregard received pause (flow control) frames.
pause_rx_enable
Always act on received pause (flow control) frames.
pause_tx_disable
Never transmit pause (flow control) frames.
pause_tx_enable
Always transmit pause (flow control) frames.
pci=0xXXXX
Detect only devices at this specific PCI index.
receive=num
The number of receive descriptors; the default is 512.
rx_abs=X
The receive interrupt absolute delay time multiplier. The default is 92, and the maximum is 200.
rx_delay=X
The receive interrupt delay time multiplier (×1.024 ns). The default is 23, and the maximum is 50.
speed=10|100|1000
The media data rate (10Mbit, 100Mbit, or Gigabit operation). The default is automatically detected on supported hardware. If you specify speed, specify duplex as well; if speed alone is specified, the specified speed is correctly set, but duplex defaults to half (0).

You can also use ifconfig -m and ifconfig wmX media to set this.

transmit=N
The number of transmit descriptors; the default is 4096.
verbose or verbose=num
Be verbose. Specify num for more verbosity (num can be 1-4; the higher the number, the more detailed the output). The output goes to slogger; invoke sloginfo to view it.
vid=0xXXXX
Detect only devices with this specific PCI Vendor ID.

Description:

The devnp-i82544.so driver manages the Intel 82540, 82541, 82544, 82545, 82546, 82547, 82571, and 82572 Gigabit Ethernet LAN adapters. This is a native io-pkt driver; its interface names are in the form wmX, where X is an integer.

The devnp-e1000.so and devnp-i82544.so drivers are similar:

Transmit Segmentation Offload (TSO) allows the stack to send very large TCP buffers down to the driver, and the driver takes care of carving them up into individual IP packets of the right size. This can greatly reduce the CPU usage for transmitting large amounts of data.

Note: If the device enumerators (see enum-devices) don't recognize your device, try explicitly specifying the device ID with the did option when you start the driver.

Some devices support hardware checksums, although some might do so in only one direction; to determine if your device does, type:

ifconfig wmX

and look for the following in the list of supported options:

You can then use ifconfig to enable or disable whichever of these options your device supports.

Note: Native io-pkt and ported NetBSD drivers don't put entries into the /dev/io-net namespace, so a waitfor command for such an entry won't work properly in buildfiles or scripts. Use if_up -p instead; for example, instead of waitfor /dev/io-net/wm0, use if_up -p wm0.

The SQE (Squelch Test Errors) counter — one of the fields reported by nicinfo — isn't applicable to devnp-i82544.so, so this driver uses it in a non-standard way. You can lose packets because:

Other drivers add the two together, but this driver uses the SQE counter for internal Rx FIFO overruns, which generally indicate excessive bus latency, perhaps misconfigured link-level flow control, or even misconfigured Rx FIFO watermarks.

Examples:

Start io-pkt using the devnp-i82544.so driver and the full TCP/IP stack:

io-pkt -d i82544 -p tcpip
ifconfig wm0 10.1.0.184