Project Description

Introduction

PacketCord.io is a framework designed to let you write your own switch, router, firewall, IPS, VPN or whatever else network function you can imagine. Build it as an application, as a container, or as a virtual machine - and deploy it the way you like.

It was started by engineers, experienced in both embedded development and networking, advocating the idea that network functionality should not come from 3rd party software and hardware appliances with vendor specific CLIs or APIs, but from the development environment and framework.

Project Structure

PacketCord.io is structured to strike a balance between modularity, functionality, and simplicity, and is organised into the following sub-libraries:

TOP
  • CORD-FLOW - Packet processing library
  • CORD-CRYPTO - Encryption library
  • CORD-CRAFT - Packet crafting and injection library

Code Organisation

We are following OOP-style of C coding, utilising encapsulation, abstraction and polymorphism without sacrificing the packet processing performance.

OOP

Technogy Stack

The PacketCord.io evolves around:

  • Linux Sockets (including AF_PACKET, AF_INET and AF_XDP families)
  • cBPF and eBPF/XDP
  • DPDK
  • Hardware acceleration (planned)
  • Bare-metal transceivers (planned)