  SDN efficiency is driven by the ability of controllers to process small
packets based on a global view of the network. The goal of such controllers is
thus to treat new flows coming from hundreds of switches in a timely fashion.
In this paper, we show this ideal remains impossible through the most extensive
evaluation of SDN controllers. We evaluated five state-of-the-art SDN
controllers and discovered that the most efficient one spends a fifth of his
time in packet serialization. More dramatically, we show that this limitation
is inherent to the object oriented design principle of these controllers. They
all treat each single packet as an individual object, a limitation that induces
an unaffordable per-packet overhead. To eliminate the responsibility of the
hardware from our results, we ported these controllers on a network-efficient
architecture, Tilera, and showed even worse performance. We thus argue for an
in-depth rethinking of the design of the SDN controller into a lower level
software that leverages both operating system optimizations and modern hardware
features.
