Driver for Intel 825* Gigabit Ethernet LAN adapters
io-pkt-variant -d i82544 [option[,option ...]] ... &
where variant is one of v4, v4-hc, or
v6-hc.
Neutrino
|
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
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.
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:
- devnp-i82544.so has performance
optimizations (TSO and interrupt thresholding options) that
may make it a better performing candidate for some hardware
- devnp-e1000.so likely supports more hardware
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.
|
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:
- ip4csum, ip4csum-rx, ip4csum-tx
- tcp4csum, tcp4csum-rx, tcp4csum-tx
- tcp6csum, tcp6csum-rx, tcp6csum-tx
- udp4csum, udp4csum-rx, udp4csum-tx
- udp6csum, udp6csum-rx, udp6csum-tx
You can then use
ifconfig
to enable or disable whichever of these options your device supports.
|
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:
- you ran out of descriptors (the NIC was able to buffer the packet,
but there was no CPU RAM available)
or:
- the NIC was unable to buffer the packet because it overran its internal
Rx FIFO
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.
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
devn-*,
devnp-*,
ifconfig,
io-pkt,
nicinfo