Towards an agile hypervisor for software-defined networks