virtualizing the data plane through source code merging
Virtualization is a key technology that enables multiple research groups to test new protocols simultaneously on the same physical network and also allows service providers to incrementally add new services. In this paper we focus on virtualization of the data plane, allowing for customized packet handling in each virtual network. Much work has been done on virtualization technology. However, this has been focused on the user application experience or on a fixed networking stack. Rather than running custom data planes in user space or running separate guest operating systems, both of which come at a performance hit, we propose running a single kernel-level custom data-plane by synthesizing the configuration of the per-virtual-network data planes. In this paper we present this idea using Click, where packet processing is specified as an interconnection of fixed networking tasks. We then demonstrate the idea using an unvirtualized Linux kernel as the target platform, showing how we provided isolation between the customized data plane.
virtualization routing virtual router architecture