OVS开放编程
应用场景
OVS开放编程支持外部开发者基于华为DPU卡的OVS业务进行扩展定制,外部开发者可以在OVS的match-actions机制上,实现自定义报文解析、自定义流表、流表key/action和自定义pipeline能力。
实现原理
OVS开放可编程,底层依托OVS提供的match-actions业务逻辑,支持报文转发处理的pipeline构建。
OVS开放编程,在match-actions的底层运行逻辑基础上,开放自定义报文解析、自定义流表(含key/action逻辑)。同时提供JUMP逻辑,支持开发者将多个match-actions单元组织成一个pipeline,来表达更加复杂的报文处理转发逻辑,理论上可以实现对报文转发处理范畴内的任意操作,具有较好的扩展性。
图1 编译流程


DSL提供了源到源的方式,将DSL语言翻译成微码C语言,再经过微码编译器完成C语言到DPU/NIC固件二进制的编译工作,根据微码数据面开放编程接口将用户自定义微码插入数据面执行逻辑中。
DSL语言翻译过程中,还产生了hydrainfo文件,该文件类似P4(一种网络设备的特定领域语言)的p4info.txt文件,是用DSL编写的数据面程序向控制面暴露的流表信息接口,主要用于控制面对数据面下发流表时,定义流表的key组成元组信息、可选的action列表及其相关的action data信息。
父主题: 关键特性