The Ixy network driver re-written in C#
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


ixy.cs is a C# rewrite of the ixy userspace network driver. It is designed to be readable, idiomatic C# code. It supports Intel 82599 10GbE NICs (ixgbe family).


  • See Ixy documentation

Build instructions

Install the .NET Core SDK (if you're on Ubuntu 16.10, you can use the script).

Clone this repository and build the driver:


This will build the driver in debug and release configuration and compile the C code.

Set up hugepages

sudo ./


Run the packet generator demo

sudo dotnet bin/release/netcoreapp2.0/IxyCs.dll pktgen PCI_ADDRESS


sudo dotnet bin/release/netcoreapp2.0/IxyCs.dll fwd PCI_1 PCI_2

Replace PCI_ADDRESS with the fully qualified PCI address of your NIC, which is typically prefixed with 0000:

Using dotnet run or the debug configuration severely decreases performance!


src/Ixgbe/IxgbeDevice.cs contains the core logic. The demos are in src/Demo. The Ixgbe/IxgbeDefs.cs file contains a huge amount of NIC-related constants. Most of these are not used in this driver.


ixy.cs is licensed under the MIT license.


Ixy.cs is not production-ready. Do not use it in critical environments or on any systems with data you don't want to lose!

Other languages

Check out the other ixy implementations.