This is a distributed SDN controller built on top of Beehive. It supports OpenFlow but can be easily extended for other southbound protocols.
Beehive network controller is high throughput, fault-tolerant and, more importantly, can automatically optimize itself after a fault:
Beehive network controller supports different forwarding and routing methods, has automated discovery, end-to-end paths, and isolation.
You can find an implementation of Kandoo in the kandoo package.