OpenFlow switching enables flexible management of enterprise network switches and experiments on regular network traffic. OpenFlow switches are in charge of packet forwarding, whereas a controller sets up switch forwarding tables on a per-flow basis, to enable flow isolation and resource slicing.
The present work deals with Open vSwitch, a software implementation for Linux platforms of an OpenFlow switch. The current implementation includes both a specific kernel-module and a totally userspace version of the program. The bulk of the code is written in platform-independent C and is easily portable to other environments.
In the first part of the work we perform the porting of the userspace version of the software to FreeBSD. Then, being the obtained performance unsatisfying, we proceeded reorganizing portion of the code and eliminating some inefficiencies. This led to performance about ten times greater
Finally, combining OVS with netmap, a recently developed framework for very fast access to network packets, we have been able to further increase the program performance of about four times, with peaks of 3.0 Mpps.