2020年12月30日 当SONiC遇到P4
程序员文章站
2022-03-05 08:40:47
当SONiC遇到P4SONiC-P4 是SONiC中运行的P4虚拟交换机,当前的SONiC-P4是一个docker image,可以运行在任意的docker环境中。看看SONiC和P4能碰撞出什么火花。SONiC的SAI提供了SONiC软件和不同交换芯片之间的统一接口,不同的交换芯片供应商提供各自芯片闭源的SAI接口实现,这种模式导致SAI和芯片绑定,没有具体芯片的平台也就不能体验SONiC的功能。为了实现用一个统一的抽象接口来描述不同交换芯片的功能,SAI定义了几个大类的SAI目标架构SAI ta...
当SONiC遇到P4
SONiC-P4 是SONiC中运行的P4虚拟交换机,当前的SONiC-P4是一个docker image,可以运行在任意的docker环境中。
看看SONiC和P4能碰撞出什么火花。
SONiC的SAI提供了SONiC软件和不同交换芯片之间的统一接口,不同的交换芯片供应商提供各自芯片闭源的SAI接口实现,这种模式导致SAI和芯片绑定,没有具体芯片的平台也就不能体验SONiC的功能。
为了实现用一个统一的抽象接口来描述不同交换芯片的功能,SAI定义了几个大类的SAI目标架构SAI target architecture,这个架构是所有的SAI成员都认可的,SAI对不同种类和功能的交换机具体的Architecture是不同的。
P4 Program要根据Vendor提供的P4 Architecture Model编写,用vendor的P4 Compiler编译, 运行在Vendor的Target上,不同的交换芯片根据各自芯片设计的不同,有不同的Architecture Model。支持P4的交换芯片通过P4代码对芯片的pipeline行为进行编程,也就是说P4是一种对数据平面进行编程的语言。在P4的代码中,必须包含include对应目标架构的库文件。为了方便P4编程,P4也提供了一个Soft Switch实现以及对应的Architecture Model。
SONiC-P4利用P4的Soft Switch,利用P4编程实现了SAI要求的功能模型。
SONiC 和 P4 完美的结合。
本文地址:https://blog.csdn.net/weixin_44316184/article/details/111999309