Custom Open vSwitch Actions

A short tutorial on extending Open vSwitch.

For a project I’ve been working on (reimplementing some past work), being able to easily enable pushback at various points in the network is fairly important. For this, I wanted to try something I’d both learn from and be able to use as a springboard for later development and testing – mininet (and by extension, Open vSwitch) seemed like a good fit. Part of this requires a new feature to be hacked on top of OpenFlow: probabilistic packet dropping. I’ve written this short walkthrough/tutorial on the process for the benefit of anyone looking to make their own modifications. A full repository is included here.

[EDIT 2019-03-27]: Updated for OVS revision 8e73833.


WebRTC-powered peer-to-peer onion routing.

Shallot implements a basic decentralised onion routing scheme designed for use within browser applications, by using a modification of the Chord protocol as a backbone network and file-storage system. This is built upon the experimental WebRTC Data Channels recently added to browsers to offer true peer-to-peer connectivity between users. The system is compatible with both NodeJS and browser-based environments, relying upon one server node as an entry-point. Shallot was my Honours project—the above link directs to the project dissertation.