NAME¶
mxge
—
Myricom Myri10GE 10 Gigabit Ethernet adapter
driver
SYNOPSIS¶
To compile this driver into the kernel, place the following lines in your kernel
configuration file:
device firmware
device mxge
Alternatively, to load the driver as a module at boot time, place the following
lines in
loader.conf(5):
if_mxge_load="YES"
mxge_ethp_z8e_load="YES"
mxge_eth_z8e_load="YES"
mxge_rss_ethp_z8e_load="YES"
mxge_rss_eth_z8e_load="YES"
DESCRIPTION¶
The
mxge
driver provides support for PCI
Express 10 Gigabit Ethernet adapters based on the Myricom LANai Z8E chip. The
driver supports Transmit/Receive checksum offload, Jumbo Frames, TCP
segmentation offload (TSO) as well as Large Receive Offload (LRO). For further
hardware information, see
http://www.myri.com/.
For questions related to hardware requirements, refer to the documentation
supplied with your Myri10GE adapter. All hardware requirements listed apply to
use with
FreeBSD.
Support for Jumbo Frames is provided via the interface MTU setting. Selecting an
MTU larger than 1500 bytes with the
ifconfig(8)
utility configures the adapter to receive and transmit Jumbo Frames. The
maximum MTU size for Jumbo Frames is 9000.
For more information on configuring this device, see
ifconfig(8).
HARDWARE¶
The
mxge
driver supports 10 Gigabit Ethernet
adapters based on the Myricom LANai Z8E chips:
- Myricom 10GBase-CX4 (10G-PCIE-8A-C, 10G-PCIE-8AL-C)
- Myricom 10GBase-R (10G-PCIE-8A-R, 10G-PCIE-8AL-R)
- Myricom 10G XAUI over ribbon fiber (10G-PCIE-8A-Q, 10G-PCIE-8AL-Q)
LOADER TUNABLES¶
Tunables can be set at the
loader(8) prompt before
booting the kernel or stored in
loader.conf(5).
- hw.mxge.flow_control_enabled
- Whether or not hardware flow control is enabled on the adapter. The
default value is 1.
- hw.mxge.intr_coal_delay
- This value delays the generation of all interrupts in units of 1
microsecond. The default value is 30.
- hw.mxge.skip_pio_read
- This value determines whether or not the driver may omit doing a PIO read
in the interrupt handler which ensures that the interrupt line has been
deasserted when using xPIC interrupts. A non-zero value may result in
lower CPU overhead, however it may also result in spurious interrupts. The
default value is 0. This tunable has no effect when the device is using
MSI or MSI-X interrupts.
- hw.mxge.max_slices
- This value determines the maximum number of slices the driver will attempt
to use. The default value is 1. A slice is comprised of a set of receive
queues and an associated interrupt thread. When using multiple slices, the
NIC hashes traffic to different slices based on the value of
hw.mxge.rss_hashtype. Using multiple
slices requires that your motherboard and Myri10GE NIC both be capable of
MSI-X. Older Myri10GE NICs can be field upgraded to add MSI-X using the
"10G NIC Tool Kit" for FreeBSD which is available from
http://www.myri.com/scs/download-10g-tools.html.
- hw.mxge.rss_hashtype
- This value determines how incoming traffic is steered to different slices.
This tunable is ignored when using just a single slice. The legal values
for this tunable are:
- 1
- Hash on the source and destination IPv4 addresses.
- 2
- Hash on source and destination IPv4 addresses and if the packet is
TCP, then also hash on the TCP source and destination ports.
- 4
- Hash on the TCP or UDP source ports. This is the default value.
DIAGNOSTICS¶
- mxge%d: Unable to allocate bus resource: memory
- A fatal initialization error has occurred.
- mxge%d: Unable to allocate bus resource: interrupt
- A fatal initialization error has occurred.
- mxge%d: Could not find firmware image %s
- The appropriate firmware kld module was not installed. This is a non-fatal
initialization error, but will result in running in a reduced performance
mode.
SUPPORT¶
For general information and support, go to the Myricom support website at:
http://www.myri.com/scs/.
If an issue is identified with the released source code on the supported kernel
with a supported adapter, email the specific information related to the issue
to ⟨help@myri.com⟩.
SEE ALSO¶
altq(4),
arp(4),
netintro(4),
ng_ether(4),
ifconfig(8)
HISTORY¶
The
mxge
device driver first appeared in
FreeBSD 6.3.
AUTHORS¶
The
mxge
driver was written by
Andrew Gallatin
⟨gallatin@FreeBSD.org⟩.