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_DIR
Install pip
wget https://bootstrap.pypa.io/get-pip.py
python3.7 get-pip.py
rm -f get-pip.py
Create a virtual environment
python3.7 -m venv venv
source venv/bin/activate
Install cython
pip install cython
or (from the project directory)
pip install -r <path-to-project-directory>/requirements-dev.txt
Install ixypy
pip install <path-to-project-directory>
Enable hugepages
sudo ./setup-hugetables.sh
Run 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