ixy.py is a Python rewrite of the ixy userspace network driver.
It is designed to be readable, idiomatic Python code.
It supports Intel 82599 10GbE (ixgbe family) and Virtio NICs.
Install python3.6 or higher.
From source:
# Install Python 3.7.2 (To be adapted accordingly for the version of choice)
PYTHON_VERSION=3.7.2
PYTHON_DIR="Python-$PYTHON_VERSION"
wget "https://www.python.org/ftp/python/$PYTHON_VERSION/$PYTHON_DIR.tgz"
tar xvf "$PYTHON_DIR.tgz"
rm "$PYTHON_DIR.tgz"
cd $PYTHON_DIR
./configure --enable-optimizations
make -j8
sudo make altinstall
cd ..
rm -fr $PYTHON_DIRInstall pip
wget https://bootstrap.pypa.io/get-pip.py
python3.7 get-pip.py
rm -f get-pip.pyCreate a virtual environment
python3.7 -m venv venv
source venv/bin/activateInstall cython
pip install cythonor (from the project directory)
pip install -r <path-to-project-directory>/requirements-dev.txtInstall ixypy
pip install <path-to-project-directory>Enable hugepages
sudo ./setup-hugetables.shRun one of the sample applications in the following way:
python ixy-fwd.py <pci_1> <pci_2>or
python ixy-pktgen.py <pci>ixypy is not production-ready. Do not use it in critical environments. DMA may corrupt memory.
Check out the other ixy implementations