Intel IGB Ethernet Driver
A Rust-based Intel IGB Ethernet driver supporting 82576 series network controllers.
Features
- Hardware Support: Supports Intel 82576 series Ethernet controllers
- Ring Buffers: Efficient transmit and receive ring buffer implementation
- Zero-Copy: DMA-based zero-copy data transfer
Supported Devices
- Vendor ID: 0x8086 (Intel)
- Device ID:
- 0x10C9 (82576 Gigabit Network Connection)
- 0x1533 (I210 Gigabit Network Connection)
Usage Examples
Basic Initialization
First impl dma-api
use ;
;
impl_trait!
// Create driver instance
let mut igb = new?;
// Open device
igb.open?;
// Create transmit and receive rings
let = igb.new_ring?;
Sending Packets
// Prepare transmission data
let data = vec!;
let request = new_tx;
// Send packet
tx_ring.send?;
Receiving Packets
// Prepare receive buffer
let buff = vec!;
let request = new_rx;
rx_ring.submit?;
// Receive packet
if let Some = rx_ring.next_pkt
Testing
The project includes a comprehensive test suite:
# Run all tests
# Testing with U-Boot development board
References
- Intel 82576EB Gigabit Ethernet Controller Datasheet
- Intel IGB Driver Source Code
- smoltcp Network Stack
License
This project is licensed under an appropriate open source license. Please see the LICENSE file for details.