I fixed the bug in the switch with the help of Joe, and now I have a working implementation of the switch on openvswitch.
Now I am looking at what features I can add to it, and how to do some of those. Considering starting with link aggregation or port security for something nice and easy. Though I am really unsure how the interface for setting them up should work..
There are a couple of bugs to do with macs changing port that I need to straighten out. Dealing with the vms for tests is a bit of a nuisance.