  Software defined networking (SDN) has emerged as a promising paradigm for
making the control of communication networks flexible. SDN separates the data
packet forwarding plane, i.e., the data plane, from the control plane and
employs a central controller. Network virtualization allows the flexible
sharing of physical networking resources by multiple users (tenants). Each
tenant runs its own applications over its virtual network, i.e., its slice of
the actual physical network. The virtualization of SDN networks promises to
allow networks to leverage the combined benefits of SDN networking and network
virtualization and has therefore attracted significant research attention in
recent years. A critical component for virtualizing SDN networks is an SDN
hypervisor that abstracts the underlying physical SDN network into multiple
logically isolated virtual SDN networks (vSDNs), each with its own controller.
We comprehensively survey hypervisors for SDN networks in this article. We
categorize the SDN hypervisors according to their architecture into centralized
and distributed hypervisors. We furthermore sub-classify the hypervisors
according to their execution platform into hypervisors running exclusively on
general-purpose compute platforms, or on a combination of general-purpose
compute platforms with general- or special-purpose network elements. We
exhaustively compare the network attribute abstraction and isolation features
of the existing SDN hypervisors. As part of the future research agenda, we
outline the development of a performance evaluation framework for SDN
hypervisors.
