All Projects â†’ ixy-languages â†’ ixy.py

ixy-languages / ixy.py

Licence: MIT license
Simple userspace packet processing for educational purposes 🎓

Programming Languages

python
139335 projects - #7 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to ixy.py

uvmm
Virtual machine monitor for L4Re
Stars: ✭ 22 (-31.25%)
Mutual labels:  virtio
simonpi
A quick & dirty script to emulate Raspberry PI family devices on your laptop.
Stars: ✭ 61 (+90.63%)
Mutual labels:  virtio
vmwmouse
VMware mouse driver for Windows 3.1
Stars: ✭ 315 (+884.38%)
Mutual labels:  driver-programming
virtio
Virtio implementation in SystemVerilog
Stars: ✭ 38 (+18.75%)
Mutual labels:  virtio
Complete-Single-GPU-Passthrough
Single GPU VFIO Passthrough Guide
Stars: ✭ 385 (+1103.13%)
Mutual labels:  virtio

ixy.py

MIT licensed

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.

Build instructions

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>

Disclaimer

ixypy is not production-ready. Do not use it in critical environments. DMA may corrupt memory.

Other languages

Check out the other ixy implementations

Profiling

cProfile

cProfile

Pystats

Flamegraph

Linux perf

FlameGraph

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].