MXGE(4)
π mxge(4) β the Myricom Myri10GE 10 Gigabit Ethernet adapter driver π
okay bestie, sit down, hydrate, because we're about to talk about the mxge driver and honestly? she's iconic. this is the manual page for mxge(4), the thing that makes your fancy 10 Gigabit Ethernet card go brrr. let's get into it π¦
β¨ SYNOPSIS β¨
so there's two ways to get her running. option one: bake her right into the kernel. drop these lines in your kernel configuration file:
device firmware
device mxge
orrrr, if you're feeling modular and want to load her at boot time as a module instead, put these 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"
no cap, those firmware ones matter, don't skip them π
πΈ DESCRIPTION πΈ
the mxge driver provides support for PCI Express 10 Gigabit Ethernet adapters based on the Myricom LANai Z8E chip. and the feature list? she ate:
- Transmit/Receive checksum offload
- Jumbo Frames
- TCP segmentation offload (TSO)
- Large Receive Offload (LRO)
for further hardware information, see http://www.myri.com/. yes, that's a real URL, it's giving vintage but we respect it π
got questions about hardware requirements? go read the documentation that came with your Myri10GE adapter, bestie. and heads up: all hardware requirements listed apply to use with FreeBSD. every single one.
Support for Jumbo Frames is provided via the interface MTU setting. if you pick an MTU larger than 1500 bytes with the ifconfig(8) utility, you configure the adapter to receive and transmit Jumbo Frames. and the maximum MTU size for Jumbo Frames is 9000. that's the ceiling, don't push past it β¨
for more info on configuring this device, see ifconfig(8).
π₯ HARDWARE π₯
the mxge driver supports 10 Gigabit Ethernet adapters based on the Myricom LANai Z8E chips, and here's the whole roster, no one left out:
- 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 π
you can set these tunables at the loader(8) prompt before booting the kernel, or you can just store them in loader.conf(5). your call, both slay.
hw.mxge.flow_control_enabledβ whether or not hardware flow control is enabled on the adapter. the default value is1.hw.mxge.intr_coal_delayβ this value delays the generation of all interrupts, measured in units of 1 microsecond. the default value is30.hw.mxge.skip_pio_readβ this value determines whether or not the driver may omit doing a PIO read in the interrupt handler, the one that ensures the interrupt line has been deasserted when using xPIC interrupts. a non-zero value may result in lower CPU overhead β but it may also result in spurious interrupts, so pick your poison wisely π the default value is0. also important: 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 is1. 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 ofhw.mxge.rss_hashtype. using multiple slices requires that your motherboard and your Myri10GE NIC both be capable of MSI-X. and good news for the vintage girlies: 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. heads up though: this tunable is ignored when using just a single slice. the legal values for this tunable are:- Hash on the source and destination IPv4 addresses.
- Hash on source and destination IPv4 addresses and if the packet is TCP, then also hash on the TCP source and destination ports.
- Hash on the TCP or UDP source ports. this is the default value.
and yes, the list literally goes 1, 2, 4. that's not me skipping 3, that's the manpage. periodt π
π 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 one is a non-fatal initialization error, but it will result in running in a reduced performance mode. so like, she'll live, but she won't be thriving π
π«Ά 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β©. be specific, bestie, they need the deets β¨
π SEE ALSO π
altq(4), arp(4), netintro(4), ng_ether(4), ifconfig(8)
β HISTORY β
the mxge device driver first appeared in FreeBSD 6.3. a legend from the jump π
π AUTHORS π
the mxge driver was written by Andrew Gallatin β¨gallatin@FreeBSD.orgβ©. thank you for your service king π
and that's the whole page, bestie!! this one's from the Debian manual set, dated February 13, 2008 β so like, yes, she's an elder, but she's still serving. go forth and 10-Gigabit responsibly π§π
π¦ where this page comes from
- debian bookworm: freebsd-manpages 12.2-1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- debian trixie: freebsd-manpages 12.2-2 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu jammy: freebsd-manpages 12.2-1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu noble: freebsd-manpages 12.2-1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu questing: freebsd-manpages 12.2-2
- ubuntu resolute: freebsd-manpages 12.2-2build1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu stonking: freebsd-manpages 12.2-2build1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- Copyright (c) 2006, Myricom Inc
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms