/!\ WIP ALERT /!\
This reprository is under active developpement and is subject to heavy modifications.
Packetgraph library is build upon DPDK making a collection of network bricks you can connect to form a network graph. The goal of this project is to provides a low-latency software defined network. Everyone is free to use this library to build up there own network infrastructure.
Here are current developped bricks available in packetgraph:
- switch: a layer 2 switch
- vhost: allow to connect a vhost NIC to a virtual machine (virtio based)
- firewall: allow to filter traffic passing through it (based on NPF)
- diode: only let packets pass in one direction
- hub: act as a hub device, passing packets to all connected bricks
- nic: allow to pass packets to a NIC of the system (accelerated by DPDK)
- print: a basic print brick to show packets flowing through it
- antispoof: a basic mac and arp anti-spoofing brick
- vtep: VXLAN Virtual Terminal End Point switching packets on virtual LANs
Here are some possible graphics you can do with paquetgraph. You will find some implementations in "examples" folder.
In order to reduce dependencies, the project has been splitted in several libs:
- A "core" library on which all bricks relies on.
- Each brick is a library.
A global cmake script is available in the root dir to ease building of all packetgraph libraries but you may check each libraries to build them :)
If you have all dependencies of all bricks installed, you can just:
$ mkdir build
$ export RTE_SDK=/your/path/to/dpdk
$ cmake ..
$ make
to build a specific brick (diode for example):
$ mkdir build
$ export RTE_SDK=/your/path/to/dpdk
$ cmake ..
$ make diode
Packetgraph is an open-source project, feel free to contact us on IRC:
server: irc.freenode.org
chan: #betterfly