Chaining-Box: A Transparent Service Function Chaining Architecture Leveraging BPF
Matheus Salgueiro Castanho, Cristina K. Dominicini, Magnos Martinello, Marcos A. M. Vieira · IEEE Transactions on Network and Service Management · 2021
Current Service Function Chaining (SFC) architectures are tailor-made for specific environments and platforms, often relying on SFC support on network devices or specialized frameworks. Thus, the service plane and the data plane are tightly coupled, which hinders innovation. For example, prototyping new SFC protocols usually requires re-implementing service functions (SFs) or modifying network devices. To address these issues, we propose Chaining-Box, a new SFC architecture based on a simple idea: implementing all the SFC functionality as a sequence of stages. This is done in a fully transparent manner without changing neither SFs nor network devices. Stages are implemented using BPF, a technology that allows user-defined programs to run inside the Linux kernel. The stages run as packets traverse the kernel stack and implement all SFC actions to provide the chaining. A proof-of-concept of Chaining-Box is implemented as a prototype, which demonstrates a decrease of 20%-40% in latency in comparison with similar proposals. The results also show equivalent performance when compared with OVS-based SFC, but allowing the bridges to be SFC-agnostic.