前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >英特尔康海涛:P4和IPDK助力可编程网络

英特尔康海涛:P4和IPDK助力可编程网络

作者头像
SDNLAB
发布2022-05-27 21:17:19
1K0
发布2022-05-27 21:17:19
举报
文章被收录于专栏:SDNLABSDNLAB

5月24日,2022网络开源技术生态峰会(线上)盛大开幕,本届大会由“科创中国”未来网络专业科技服务团指导,江苏省未来网络创新研究院主办,SDNLAB社区承办。在“P4技术与应用‍”论坛上,英特尔Barefoot事业部技术总监康海涛分享了《P4和IPDK助力可编程网络》主题演讲。

康海涛首先给大家介绍了英特尔在网络领域的愿景。在未来的数据中心里网络会扮演越来越重要的角色,‍‍主要是将算力与存储互连,算力包括CPU、GPU、面向于AI的专用处理器,‍‍以及基于FPGA和FPGA ASIC化的加速器件。‍‍在服务器之上是各种标准的网卡,包括英特尔刚推出的IPU(面向基础设施的处理单元)。‍‍此前,英特尔推出了基于FPGA的IPU,以及和谷歌联合设计的基于ASIC的‍‍支持P4的IPU Mount Evans。

英特尔基于P4可编程的Tofino交换芯片系列也在一直更新,Tofino 1的处理能力从1.8T到6.4T,‍‍Tofino 2处理能力有12.8T,Tofino 3处理能力最大可达25.6T。‍‍和现有传统的交换芯片相比,Tofino交换芯片在不损失功耗性能以及成本的基础上,额外的引入了P4,可以给最终用户带来可编程性。‍‍英特尔还投资了十多年的硅光技术,主要是面向‍‍高带宽的100G、400G、硅光模块以及硅光引擎等,上图是英特尔‍‍面向网络的产品线示意图。‍‍

另外,英特尔也在基于各种各样的网络产品‍‍做端到端协同的优化,比如说端到端的网络可视化、端到端的‍‍拥塞控制、流量控制以及面向下一代的可靠传输协议等。

P4

P4(Programming Protocol-Independent Packet Processors)是对协议无关的包处理器进行编程的语言,所谓的协议无关是指用户可以基于P4代码实现现有的网络协议,或者说对现有的网络协议做一些增强扩展,甚至‍是基于用户自己的需求实现一个全新的网络协议。‍‍包处理器不仅仅包括基于Tofino的以太网可编程芯片,也包括各种各样的智能网卡、IPU、DPU以及在应用层上运行的虚拟‍交换解决方案(如OVS、‍‍DPDK、eBPF)。‍‍下图是一段P4代码片段。

‍‍P4是一个真正开放开源的生态,用户可以基于自己业务的诉求,用P4去实现所需要的数据面的转发行为。用户可以使用P4进行快速简洁的迭代开发,来实现自己的业务逻辑,‍‍同时又能保留自己和业务逻辑所相关的一些差异化。

接下来康海涛介绍了英特尔基于P4所做的一些创新,PINS是集成了P4的网络协议栈,最主要的目标是把SDN和基于P4的可编程性带到SONiC网络操作系统。‍‍SONiC是一个开放的操作系统,‍‍但如果想在SONiC的框架之上引入一些新的功能,用户就必须‍‍和业界一起定义整个管理模型,包括数据链的实现以及SAI的配置模型,‍‍过程会比较冗长。

‍‍引入P4之后,用户可以非常快的去‍‍引入一些新的功能。‍‍PINS可以让大家从现有传统的操作系统平滑地往SDN领域迁移。用户第一步可以把SONiC用作本地的控制平面做部署,然后在业务网络演练的过程中,把一部分功能SDN化,通过P4配置。‍‍最后,用户如果需要,可以把整个网络演进到SDN路径上。‍‍

上图是一个典型的PINS介绍,PINS在SONiC的基础上利用已经引入过的OpenConfig做‍固定功能的配置,更为重要的一点是它引入了‍‍P4 以及‍‍P4Runtime。‍‍它可以用P4去描述SONiC、SAI已经定义好的流水线,‍‍用P4定义好之后,就可以用P4Runtime去管理配置现有‍‍SAI所定义的表以及对象。‍‍PINS可以灵活引入一些新的功能,支持用户的差异化。‍‍另外由于P4 有非常好的协议无关性,所以即使一个设备已经在线上部署,仍然可以做到快速且不中断业务的软件升级以及扩展。

‍‍下图是PINS的整体架构。‍‍PINS在SONiC中引入了P4Runtime模块,来处理从远端控制器下发的‍‍P4Runtime的各种对象以及源数据。英特尔在Application DB里增加了P4Runtime,‍‍用来管理各种各样的P4对应的对象。‍‍在SWSS容器里引入了P4Orch,‍‍作为Application DB和ASIC DB之间的桥梁,可以把‍‍最上层基于P4的对象配置到ASIC DB里,然后‍‍再通过标准的SDK接口下发到对应的底层平台,同时P4Orch也可以管理一些状态的通知。

PINS从引入之初就得到了整个业界的认可,现在有很多项目在并行开发,可以基于PINS做接入网的路由器多协议平台,包括面向固网的BNG,‍‍以及面向5G接入网的UPF的功能。基于PINS架构SONiC也可以很好的支持虚拟网络。‍‍

‍‍IPDK

IPDK是一个开源的、与厂商无关的驱动程序和API框架,可管理由CPU、IPU、DPU或交换机构建的基础设施。‍‍IPDK能够利用现有的一些工具‍‍以及平台,包括DPDK、SPDK、P4以及SONiC和PINS来满足不同基础设施应用的需求。‍‍这些基础设施应用包括网络虚拟化、存储虚拟化,‍‍以及容器网络所对应的K8S。‍‍‍‍IPDK还可以支撑各种各样的工作负载的卸载以及加速,包括防火墙、‍‍入侵检测系统、5G、边缘计算、网络可视化层面的加速。基于‍‍IPDK框架‍‍‍‍,基础设施应用程序的用户可以根据对功能和性能的不同要求,把自己的应用在各种具有不同能力的平台之间做一个无缝的切换。‍‍

‍‍IPDK是‍‍基于用例驱动的一个框架,‍‍基于对业务逻辑和框架的不同需求,可以简化框架的定义,优化IPDK框架‍‍以及底下不同的转发平台,‍‍IPDK的开发以及管理都是遵循开源开放的标准‍。‍‍另外也提供了一些预先编译好的容器,‍‍用户可以直接运行来评估‍‍IPDK。

IPDK包括两大开放接口,一种是Infrastructure Application Interface(基础设施应用接口),另一种是Target Abstraction Interface (TAI)(目标设备抽象接口)。基础设施应用接口是IPDK的北向接口,代表支持的不同RPC接口,包括P4Runtime、OpenConfig‍‍以及面向SPDK协议的RPC接口等。‍‍目标设备抽象接口是南向接口,基础设施应用程序可以通过此接口管理调度设备资源。

超融合可编程网络平台

超融合可编程网络平台把Server和Switch‍‍融合在一起,包含了全可编程的架构,由‍‍服务器级双路至强CPU、Tofino的交换芯片,以及可以选配的FPGA‍‍或IPU组成的,它上面可以运行IPDK或者PINS/SONiC。整个平台‍‍有非常好的灵活性,可应用于算力网络、云网融合、边缘计算等场景。‍‍

最后康海涛希望英特尔提供的网络产品线以及各种各样的开放平台,能给用户在业务上‍‍带来更多的价值。

【活动专栏】

【转载须知】

若转载文章为原创文章,可在相应文章下或公众号后台留言;其他非转载类文章须在文首以不小于14号字体标明转载自SDNLAB

【投稿】

欢迎SDN、NFV、SD-WAN、智能网卡、确定性网络、TSN、5G 网络切片等网络方向的观点类、新闻类、技术类稿件。

联系人:kk__wu(微信号)

投稿邮箱:pub@sdnlab.com

详情请参考:SDNLAB原创文章奖励计划

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-05-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 SDNLAB 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档