[论文解读] Unified POF Programming for Diversified SDN Data Plane
本文提出了一种统一的OpenFlow编程框架,适用于多种软件定义网络(SDN)数据平面,通过抽象指令集实现协议无关、平台无关的编程。实验表明,在基于NPU的平台上采用编译器模式实现时,性能开销比传统非SDN实现低11%,且在微代码指令数量上比解释器模式高出57%,从而在异构转发元件上实现了高性能、灵活的数据平面编程。
In many real-world OpenFlow-based SDN deployments, the ability to program heterogeneous forwarding elements built with different forwarding architectures is a desirable capability. In this paper, we discuss a data plane programming framework suitable for a flexible and protocol-oblivious data plane and show how OpenFlow can evolve to provide a generic interface for platform-independent programming and platform-specific compiling. We also show how an abstract instruction set can play a pivotal role to support different programming styles mapping to different forwarding chip architectures. As an example, we compare the compiler-mode and interpreter-mode implementations for an NPU-based forwarding element and conclude that the compiler-mode implementation can achieve a performance similar to that of a conventional non-SDN implementation. Built upon our protocol-oblivious forwarding (POF) vision, this work presents our continuous efforts to complete the ecosystem and pave the SDN evolving path. The programming framework could be considered as a proposal for the OpenFlow 2.0 standard.
研究动机与目标
- 解决使用单一抽象接口对具有不同架构(ASIC、NPU、CPU)的异构SDN转发元件进行编程的挑战。
- 实现协议无关的数据平面编程,将控制器逻辑与底层硬件细节解耦。
- 同时支持粗粒度(基于库)和细粒度(基于指令)的编程,以实现最大灵活性。
- 证明在基于NPU的平台上,对OpenFlow指令进行编译器模式编译可实现接近原生性能。
- 通过提出标准化、可扩展且面向未来的数据平面接口,为OpenFlow 2.0奠定基础。
提出的方法
- 设计一种通用的、协议无关的OpenFlow接口,包含用于数据包/元数据编辑、表访问、输出、分支及活动数据路径操作的抽象流指令。
- 引入双层编程模型:平台无关的指令集通过平台相关的编译器映射为特定目标的微代码。
- 在基于NPU的转发元件上实现解释器模式和编译器模式的编译,以对比性能和代码效率。
- 在编译器模式下将OpenFlow指令直接映射为微代码指令,以最小化指令数量并最大化吞吐量。
- 使用标准化指令集将流表匹配键与动作块解耦,通过唯一ID引用动作块以支持复用。
- 通过微代码指令数量、吞吐量(Mpps)和延迟(周期)在不同实现之间的评估来衡量性能。
实验结果
研究问题
- RQ1能否设计一种统一的、协议无关的编程接口,以支持具有异构架构的多样化SDN转发元件?
- RQ2在基于NPU的平台上,OpenFlow指令的编译器模式编译与解释器模式相比,在性能和代码效率方面有何差异?
- RQ3编译器模式实现能在多大程度上实现接近传统非SDN实现的性能?
- RQ4抽象指令集是否能在单一框架内同时支持高层级的基于库的编程和底层的流指令编程?
- RQ5微代码指令数量在决定数据平面实现性能方面起什么作用?
主要发现
- 对于基本的IPv4转发,编译器模式实现所需的微代码指令比解释器模式减少了57%。
- 在相同NPU平台上,编译器模式实现了77.5 Mpps的吞吐量,优于解释器模式的35.3 Mpps。
- 编译器模式实现仅比传统非SDN实现慢11%,证明了其接近原生性能。
- 在相同微核心数量下,编译器模式实现的吞吐量可达到解释器模式实现的两倍。
- 编译器模式与解释器模式之间的性能差距主要源于微代码指令数量,凸显了直接指令映射的重要性。
- 该框架通过标准化指令集抽象硬件特定细节,实现了平台无关的编程,同时支持基于库和细粒度编程。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。