Files
RedBear-OS/drivers/net/ixgbed
Red Bear OS 717bc436be ixgbed: use MSI-X (via pci_allocate_interrupt_vector) when available
The previous code unconditionally required a legacy INTX line, which
on bare metal is missing for nearly every modern 82599/X540/X550
board that has its IRQ lines wired to MSI-X only. pcid_interface
allocates MSI-X when the device advertises it, falls back to MSI,
then to legacy INTX, so the change preserves every existing path
while unlocking the much higher line-rate headroom of MSI-X
per-vector queuing that the device's enable_msix_interrupt code
already implements in device.rs.

The IRQ-acknowledge-and-write pattern is unchanged: the kernel
masks the line on delivery, we must re-arm unconditionally or a
foreign interrupt on a shared line leaves the line masked forever.
2026-07-26 17:28:21 +09:00
..

ixgbed (a.k.a. ixy.rs on Redox)

ixgbed is the Redox port of ixy.rs, a Rust rewrite of the ixy userspace network driver. It is designed to be readable, idiomatic Rust code. It supports Intel 82599 10GbE NICs (ixgbe family).

Features

  • first 10 Gbit/s network driver on Redox
  • transmitting 250 times faster than e1000 / rtl8168 driver
  • MSI-X interrupts (not supported by Redox yet)
  • less than 1000 lines of code for the driver
  • documented code

Build instructions

See the Redox README for build instructions.

To run ixgbed on Redox (in case the driver is not shipped with Redox anymore)

  • clone this project into cookbook/recipes/drivers/source/
  • create an entry for ixgbed in cookbook/recipes/drivers/source/Cargo.toml
  • check if your ixgbe device is included in config.toml
  • touch filesystem.toml in Redox's root directory, build Redox and run it

Usage

To test the driver's transmit and forwarding capabilities, have a look at rheinfall, a simple packet generator / forwarder application.

Docs

ixgbed contains documentation that can be created and viewed by running

cargo doc --open