Skip to content

Packetgraph library is a collection of network bricks you can connect to form a network graph.

Notifications You must be signed in to change notification settings

outscale-nts/packetgraph

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

/!\ WIP ALERT /!\

This reprository is under active developpement and is subject to heavy modifications.

Packetgraph

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

Examples

Here are some possible graphics you can do with paquetgraph. You will find some implementations in "examples" folder.

A simple firewall

A switch with several nics around

Virtual machines bridged with the NIC

Virtual machines connected to a vxlan and protected by a firewall

Building

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

Question ? Contact us !

Packetgraph is an open-source project, feel free to contact us on IRC:

server: irc.freenode.org

chan: #betterfly

About

Packetgraph library is a collection of network bricks you can connect to form a network graph.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 86.4%
  • CMake 11.6%
  • Shell 1.4%
  • C++ 0.6%