Data-plane programmability is now mainstream, both in the form of programmable switches and smart network-interface cards (SmartNICs). As the number of use cases for programmable network devices grows, each device will need to support multiple packet-processing modules simultaneously. These modules are likely to be independently developed, e.g., measurement and security modules developed by different teams, or cloud tenants offloading packet processing to a NIC. Hence, we need isolation mechanisms to ensure that modules on the same device do not interfere with each other. This paper presents a system, Menshen, for inter-module isolation on programmable packet-processing pipelines similar to the RMT/PISA architecture. Menshen consists of a set of lightweight hardware primitives that can be added to an RMT pipeline and a compiler to take advantage of these primitives. We prototype the Menshen hardware using the NetFPGA switch and Corundum FPGA NIC platforms and the Menshen software using the open-source P4-16 reference compiler. We show that Menshen supports multiple modules simultaneously, allows one module to be quickly updated without disrupting other modules, and consumes a modest amount of additional hardware resources relative to an RMT pipeline. We have open sourced the code for Menshen's hardware and software at https://github.com/anonymous-submission-855. Although we do not have an ASIC implementation of Menshen, we believe its primitives are simple enough that they can be added to an ASIC realization of RMT as well.
翻译:数据- 飞机编程程序现已成为主流, 其形式为可编程的开关和智能网络界面卡( SmartNICs) 。 随着可编程网络设备使用案例数量的增加, 每个设备都需要同时支持多个包处理模块。 这些模块很可能是独立开发的, 例如, 由不同团队开发的测量和安全模块, 或云租客将包处理卸载到NIC。 因此, 我们需要隔离机制以确保同一设备上的模块不相互干扰。 本文提供了一个系统, Menshen, 用于与 RMT/ PISA 结构类似的可编程组合处理管道的模块间隔离。 Menshen 由一组轻量的硬件原始模块组成, 可以添加到 RMT 管道中, 利用这些原始版本。 我们用 NetFPGA 开关和 Crontemdum FICA 平台和 Menshenshen软件来支持多个模块。 我们显示, Menshen支持多个模块的多个模块, 允许一个简单的RMT A- 8 软模块快速更新到一个硬化的版本。