Data-plane programmability is now mainstream, both in the form of programmable switches and smart network-interface cards (NICs). 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 can support 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-209.
翻译:数据- 飞机编程程序现已成为主流, 其形式为可编程开关和智能网络界面卡(NICs) 。 随着可编程网络设备使用案例数量的增加, 每个设备都需要同时支持多个包处理模块。 这些模块很可能是独立开发的, 例如由不同团队开发的测量和安全模块, 或者云租客将包处理卸载到NIC。 因此, 我们需要隔离机制以确保同一设备上的模块不相互干扰。 本文提供了一个系统 Menshen, 用于类似 RMT/ PISA 结构的可编程组合处理管道的模块间隔离。 门包含一组轻质硬件原始元素, 可以添加到 RMT 管道中, 以及一个编译器来利用这些原始元素。 我们用 NetFPGA 开关和 Crondum FFGA NI 平台以及使用开放源 P4-16 参考汇编器的 Menshenshen支持多个模块, 我们显示 Menshen可以同时支持多个模块, 允许一个在RMT/ PIS 的常规版本中快速更新一个软硬件, 。