MXGE(4)

πŸ“¦ version 15.1, in freebsd 14.5, freebsd 15.1, nixpkgs unstable

MXGE(4) πŸ’…

okay so this is the mxge(4) page from the Kernel Interfaces Manual, and it's giving β€œMyricom Myri10GE 10 Gigabit Ethernet adapter driver” realness. Buckle up bestie, we're doing facts with flavor. 🫢

πŸ’– NAME πŸ’–

mxge β€” Myricom Myri10GE 10 Gigabit Ethernet adapter driver. No cap, that's the whole name section. ✨

✨ 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. It 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. Read the docs, bestie β€” they're literally there for you. πŸŽ€

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. Big packets, big vibes. πŸ¦‹

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). Set them before boot like you're picking your fit for the day. πŸ‘‘

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.

Heads up: lower CPU overhead sounds cute, but spurious interrupts are not the slay you think they are. πŸ™ˆ

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.
Fr fr: those first two are fatal. The firmware one is non-fatal but still a mood killer, because you'll be in 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. Vintage but still iconic. ⭐

πŸ’œ AUTHORS πŸ’œ

The mxge driver was written by Andrew Gallatin <gallatin@FreeBSD.org>. We love a credited icon. πŸŽ€


πŸŽ€ Cute sign-off: source/version is Debian, dated February 13, 2008, for MXGE(4) β€” mwah! πŸ’‹

πŸ“¦ where this page comes from