0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

P4和P4运行时:SDN可编程性的新视野

星星科技指导员 来源:volansys 作者:Komal Shah 2022-12-08 16:36 次阅读

在软件化时代,SDN正在展开其边界,各行各业正专注于将网络控制置于金字塔顶端 - 从复杂的硬件到软件应用程序。P4已经通过提供低至ASIC的网络可编程性来控制金字塔的底部(转发平面)。近年来,一些概念和协议也开始统治金字塔的顶端(控制平面),但有了 P4,历史似乎要改变!

网络设备控制平面

控制平面是网络设备的大脑。它具有各种应用程序,可以学习和填充数据平面定义的表。在传统的网络设备中,用于配置数据包控制移动的控制平面或软件位于同一设备上。因此,对于任何更改,网络管理员必须通过单独连接到每个设备来配置交换机。为了增加复杂性,每个芯片供应商都提供了自己的专有接口/API来控制数据平面。为了使网络管理员的生活变得轻松,目标是将网络设备的控制平面和数据平面分开。这催生了SDN(软件定义网络)技术。SDN使用软件应用程序通过集中式控制器对交换机进行编程,从而解耦控制平面和数据平面。这使得通过集中式控制器配置网络变得容易。但是,由于来自不同供应商的不同接口,不可能使用单个控制平面API来控制来自不同芯片供应商的交换机ASIC。在解决这个问题的一段时间内,引入了不同的协议/标准化来使API开源。

开放流: OpenFlow是ONF(开放网络基金会)在控制平面和数据平面之间的第一个标准开源通信协议,旨在促进SDN的采用。OpenFlow是SDN网络的解决方案,它在流量方面为控制器和交换机之间提供了标准接口。流包含以表格形式组织的匹配字段、优先级和操作。提供的API是通用的,不依赖于目标,因此适用于任何与OpenFlow兼容的控制平面软件。

SAI(交换机抽象接口): SAI提供开源标准C API对OCP(开放计算项目)正式接受的网络芯片数据平面进行编程。SAI抽象了底层芯片,因此允许任何相同的控制平面软件插入任何设备,使SAI目标独立。

为什么选择 P4 运行时?

OpenFlow和SAI存在各种限制。两者都考虑到了固定交换机的设计,这使得它在未来无法扩展到新的协议。它们与目标无关,但依赖于协议。添加新协议需要大量的时间和精力以及社区参与。SAI 专为控制平面位于交换机内的交换机而设计。两者都不能使用可编程数据平面进行自我扩展。使用P4可编程数据平面时,控制平面接口没有标准。很少有供应商开发自己的专有工具来自动生成API,这些API可以从P4程序或JSON填充表。但是,对于如何定义这些 API 没有标准。因此,p4.org 决定成立API工作组,创建独立于硅的API,用于控制交换机的转发平面。P4运行时架构使其独立于协议以及底层转发交换机。同一 API 可用于控制支持不同协议的不同交换机。P4 运行时有助于控制任何转发平面,无论是固定的、半可编程的还是完全可编程的。P4 运行时可用于任何交换机,无论是本地还是远程控制平面。它足够灵活,可以同时支持 OpenFlow API 和 SAI API。

P4运行时的功能

P4 运行时 API 支持两个主要功能:

管理匹配操作表:通过添加、删除、修改、显示匹配操作表中的条目来管理数据平面的行为

更新转发平面逻辑:使用新的 P4 代码更新 P4 可编程交换机的转发行为

SDN网络中P4运行时的架构

pYYBAGORohSAcWM5AAF3CzCdnAI237.png

图 1:不同设备的 SDN 网络中的 P4 运行时流

P4 Runtime 的架构使其足够灵活,适用于本地或远程控制平面基础设施,以及固定和可编程网络设备。

对于本地控制平面,从 P4 编译器生成的 P4 运行时 API 可以直接用于控制 ASIC,包括基于 ASIC 类型(固定或可编程)的条目编程和表创建和删除。同样,对于远程控制平面,P4 编译器生成的 P4 运行时 API 可用于通过控制平面控制交换机。P4 编译器将根据控制平面的需要生成架构。

对于固定功能开关,可以首先使用 P4 语言来模拟开关的行为,然后可以使用 P4 运行时 API 来控制固定功能开关。运行时 API 可用于在由 P4 语言定义的表中插入/删除条目,这与实际硬件类似。

如果开关是可编程的,则可以将其扩展到控制所有可编程实体,例如添加新表、插入条目、删除条目以使用编译器生成的 P4 运行时 API 在运行时更新转发平面。

图 1 显示了独立于转发平面的 SDN(远程控制平面)网络中的通用 P4 运行时架构。

P4 和 P4 运行时 – SDN 可编程性的新视野

对于可编程网络设备,P4 运行时通过使用 P4 从上到下编程直到 ASIC 数据平面,开启了真正的 SDN 可编程性。P4 语言可用于描述转发管道,P4 运行时可用于控制转发和从远程更新转发逻辑运行时。借助 P4,SDN 控制器能够重新定义表、条目、解析器、匹配操作和数据包处理逻辑。从而完全控制网络。

P4 运行时提供了一种使用可编程和固定功能交换机组合构建网络的无缝方法。P4 编译器自动生成填充表所需的 API。P4 运行时使大型网络编程变得更加容易。VOLANSYS为您的网络设备提供端到端的解决方案,包括编译器开发,P4运行时与NOS的集成,添加对新功能/协议的支持以及完整的测试。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 控制器
    +关注

    关注

    112

    文章

    15223

    浏览量

    171189
  • asic
    +关注

    关注

    34

    文章

    1156

    浏览量

    119263
  • 交换机
    +关注

    关注

    19

    文章

    2437

    浏览量

    95658
收藏 人收藏

    评论

    相关推荐

    使用P4和Vivado工具简化数据包处理设计

    电子发烧友网站提供《使用P4和Vivado工具简化数据包处理设计.pdf》资料免费下载
    发表于 01-26 17:49 0次下载
    使用<b class='flag-5'>P4</b>和Vivado工具简化数据包处理设计

    如何在运行时擦除/编程UCB?

    我有一个项目需要在现场更新 SOTA。 这需要在运行时更新必要的 UCB 值。 我已经看过擦除/编程 PFLASH 和 DFLASH 的示例代码,但我还没有找到任何特定于 UCB 内存的代码。 我
    发表于 01-22 07:18

    jvm运行时内存区域划分

    JVM是Java Virtual Machine(Java虚拟机)的缩写,它是Java编程语言的运行环境。JVM的主要功能是将Java源代码转换为机器代码,并且在运行时管理Java程序的内存。JVM
    的头像 发表于 12-05 14:08 255次阅读

    如何保证它们容器运行时的安全?

    紧密耦合的容器运行时继承了主机操作系统的安全态势和攻击面。运行时或主机内核中的任何漏洞及其利用都会成为攻击者的潜在切入点。
    的头像 发表于 11-03 15:24 298次阅读

    89C51P0--P3口结构有什么不同?

    P0口是开漏的,可以实现线与功能,可做为地址总线,可以作为地址总线的低八位,P1口是普通IO口(有些单片机有特殊功能比如AD,PWM),P20口可作为地址总线的高八位,可以做普通IO口,P
    发表于 10-27 06:32

    请问STC89C51单片机型号是不是没有没有P4口的了?

    本人刚刚学习单片机,所以在书上看到的单片机是没有P4口的。但是我在淘宝或者立创商城上找到的都是有P4口的51或52单片机。 我想问问哪位大神是不是现在已经没有那种没有P4口的STC单片机了?
    发表于 10-26 06:24

    Xilinx运行时(XRT)发行说明

    电子发烧友网站提供《Xilinx运行时(XRT)发行说明.pdf》资料免费下载
    发表于 09-14 10:01 0次下载
    Xilinx<b class='flag-5'>运行时</b>(XRT)发行说明

    ch32v307记录程序运行时

    ,不仅会降低用户的体验,甚至可能会导致系统的崩溃。 因此,在程序设计和调试中,我们常常需要记录程序的运行时间,并通过不断的优化来提升程序的性能。本文将介绍如何在各种编程语言中记录程序运行时间,并分享一些提高程序性能的技巧。
    的头像 发表于 08-22 15:53 469次阅读

    JVM运行时数据区之堆内存

    说一下 JVM 运行时数据区吧,都有哪些区?分别是干什么的?
    的头像 发表于 08-19 14:35 428次阅读
    JVM<b class='flag-5'>运行时</b>数据区之堆内存

    P4全彩LED显示屏用材规格与技术参数

    P4全彩LED显示屏用材规格与技术参数 产品型号:户外P4全彩LED显示屏 LED电子显示屏  外形尺寸:256*128mm 实用范围:P4户外全彩LED显示屏广泛应用于商贸中心、购物中心、传媒中心
    的头像 发表于 08-09 20:47 1229次阅读

    可编程控制器PLC运行时出现死机的原因

    可编程控制器PLC运行时可能会出现死机的情况,这给工业生产造成不可预估的损失,因此,首先要了解PLC死机的原因,针对原因进行排查,软件或硬件错误都有可能导致PLC死机,下面分别进行介绍:
    的头像 发表于 07-03 16:16 1483次阅读

    如何设定N76E616的P4口为输入模式?

    如何设定N76E616的P4口为输入模式? 1.P42_IO_MODE_I;//PowerKey 2.LCDCON =0; //Disable the LCD 其实默认应该也是0
    发表于 06-26 08:12

    请问用N76E616 P4口做按键如何判断?

    P4口不能位寻址,要如何分别判断长按短按?
    发表于 06-21 08:24

    SD-Fabric:端到端可编程数据平面

    数据平面是应用SDN、解耦和开源的理念的另一个领域。 像P4这样的语言和编程抽象为数据平面提供了一个通用的编程模型,成为描述网络设备如何转发数据包的标准方式。数据平面
    的头像 发表于 06-15 17:17 533次阅读
    SD-Fabric:端到端<b class='flag-5'>可编程</b>数据平面

    辽宁鞍山铁矿国企项目P4户外球形屏案例

    辽宁鞍山铁矿国企项目P4户外球形屏案例 项目地点:辽宁鞍山 项目类型:施工-户外防水P4球形屏直径2米 承建单位:深圳市恒彩光电科技有限公司 完工时间:2023年6月
    的头像 发表于 06-15 16:31 429次阅读
    辽宁鞍山铁矿国企项目<b class='flag-5'>P4</b>户外球形屏案例