Virtualization techniques allow network resources to be shared in a flexible manner. Software defined networking separates the control plane and data plane, enabling the network to be programmed and customized. OpenFlow is an example of a standard interface that allows programming of packet forwarding hardware from a controller. FlowVisor is a network hypervisor that uses the OpenFlow protocol to virtualize network resources and provide isolation between slices allocated to different users or experiments.