PIaFFE: A Place-as-you-go In-network Framework for Flexible Embedding of VNFs
Diego Rossi Mafioletti, Cristina K. Dominicini, Magnos Martinello, Moisés R. N. Ribeiro, Rodolfo da Silva Villaça · 2020
Network Function Virtualization (NFV) ambitiously aims at shifting functionalities from proprietary hardware to commodity servers as well as providing a common platform for the consolidation of network management. In practice, however, network architects have not massively subscribed to NFV so far. One possible reason for the slow adoption of NFV is the trade-off between commoditization and end-to-end performance in core networks. On the other hand, the ever-increasing disparity between bandwidth requirements and computing power is already pushing network architects toward NFV. By using innetworking processors to co-execute parts of tenant's applications in the cloud, it is possible to offload packet processing tasks. We can also save end-host server CPU cores, while achieving lower latency for service requests. However, applications with an in-networking processor bring two main challenges: flexible programmability and manageable offloading constraints. This work proposes PIaFFE: a framework that uses P4 language for decomposing and deploying Virtual Network Functions (VNFs) into small embedded Network Functions (eNFs) on in-network processors. Our key contribution is allowing the correct balance between hardware capabilities from a programmable NIC, and the flexibility of traditional VNFs on vCPUs. It is only made possible by a novel multi-level chaining scheme in PIaFFE. An experimental use case focuses on the chaining of three eNFs and multi-tenant ready hypervisor, where the percentage of packet processing sharing with a VNF is varied for one of them. As a result, the appropriate offload factor can be found for different traffic conditions for either maximum throughput or minimum latency.