Nimble: A Platform for Efficient and Flexible Data Plane Services in Data Centers
High throughput packet processing using general purpose CPUs enables deployment of software switches and increasingly heavy duty data plane services at end servers. This paper presents Nimble, a scale-out, per-tenant service platform for dynamic deployment of data plane services in data center networks. It uses centralized control to deploy and manage various tenant-specific data plane services within software switches running on commodity end servers. We describe the architecture of Nimble and its implementation. We extend an existing software switch to leverage hardware offload of modern NICs to create large packets and switch them in their entirety using the software switch. This boosts up the performance of the software switch (without using extra processing core), and accelerates the packet processing of data plane service chaining. Using our software switch and IDS service implementation, we demonstrate the advantages of the architecture. For example, our NICaccelerated switch can save at least 50% of kernel interrupt processing, which would otherwise not be available. It can also accelerate the IDS throughput by a factor of 1.2-8 for different types of traffic, while its centralized control plane gracefully scales up and down the IDS service according to tenant workload.