当前位置: 首页 > 专利查询>英特尔公司专利>正文

对分组处理管道进行编程制造技术

技术编号:37915762 阅读:10 留言:0更新日期:2023-06-21 22:38
本公开涉及对分组处理管道进行编程。本文描述的示例涉及一种分组处理设备,其包括使用虚拟交换机进行配置的可编程分组处理管道。在一些示例中,可编程分组处理管道是经由虚拟交换机从多个控制平面接收配置以配置分组处理动作。在一些示例中,虚拟交换机是提供虚拟执行环境间通信。在一些示例中,可编程分组处理管道使用编程语言进行配置。管道使用编程语言进行配置。管道使用编程语言进行配置。

【技术实现步骤摘要】
对分组处理管道进行编程
[0001]相关申请
[0002]本申请要求2021年12月19日提交的美国临时申请63/291,409的优先权的权益。该申请的内容以其整体并入本文。


[0003]本公开涉及对分组处理管道进行编程。

技术介绍

[0004]开放虚拟交换(OVS)是Linux基金会项目,其提供了多层软件虚拟交换机,该多层软件虚拟交换机可以在服务器上执行的虚拟机以及不同服务器上执行的虚拟机之间传送分组流量。传入或传出虚拟机的分组可通过OVS或虚拟交换机进行路由。关于路由分组,OVS支持IEEE 802.3ad链路聚合组(LAG)、IEEE 802.3ad链路聚合控制协议(LACP)、隧穿、端口绑定和其他联网特征,以及访问控制列表(ACL)和服务质量(QoS)策略。

技术实现思路

[0005]本公开的一个方面提供了至少一个非暂时性计算机可读介质,包括存储在其上的指令,所述指令在由一个或多个处理器执行时使得所述一个或多个处理器执行以下操作:执行虚拟交换机来提供来自多个控制平面的配置,以配置要由分组处理设备的可编程管道执行的分组处理动作,其中,所述虚拟交换机提供虚拟执行环境间通信,并且其中,所述可编程管道使用编程语言而被配置。
[0006]本公开的另一方面提供了一种装置,包括:分组处理设备,包括使用虚拟交换机而被配置的可编程分组处理管道,其中:所述可编程分组处理管道经由所述虚拟交换机从多个控制平面接收配置以配置分组处理动作,所述虚拟交换机提供虚拟执行环境间通信,并且所述可编程分组处理管道使用编程语言而被配置。
[0007]本公开的又一方面提供了一种方法,包括:由多个控制平面编程使用虚拟交换机对分组处理设备的可编程分组处理管道进行编程。
附图说明
[0008]图1描绘了示例系统。
[0009]图2描绘了示例系统。
[0010]图3描绘了示例系统。
[0011]图4描绘了示例系统。
[0012]图5描绘了示例过程。
[0013]图6描绘了示例分组处理设备。
[0014]图7描绘了示例交换机。
[0015]图8描绘了示例系统。
[0016]图9描绘了示例系统。
具体实施方式
[0017]在某些情况下,虚拟软件交换机在主机处理器上执行。云服务提供商(CSP)尝试尽可能释放主机处理器资源,以便CSP可以将对主机处理器核心的利用出租给其客户。编程协议无关分组处理器(P4)是一种协议和平台无关的域特定语言,用于描述联网管道。在供应商将联网设备(例如,分组处理设备)交付给客户之后,客户可以使用基于P4的程序来配置设备。
[0018]与针对其匹配动作规则未被编程到分组处理管道中的流相关联的分组可以在分组处理设备处向Openflow控制器触发异常,以供Openflow控制器指示如何处理该分组。异常分组可以由数据平面开发套件(DPDK)轮询模式驱动程序(PMD)来检测。
[0019]在某些情况下,使用用于虚拟交换机的Openflow控制器来提供用于基于P4处理流的分组的规则可能导致丢失由基于P4的编程指定的规则的细节。例如,有关最长前缀匹配或通配符匹配的规则的细节可能丢失。例如,vRouting应用程序应用最长前缀匹配,而防火墙应用程序可能利用通配符匹配。在规则的细节丢失的情况下,尽管基于P4的规则指示处理某些分组的方式,但在分组处理管道处处理此类分组可能触发向Openflow控制器生成异常,这可能增加分组处理的延迟并利用可用于其他目的的主机处理器资源。
[0020]虚拟交换机的操作可以从由主机处理器执行卸载到由分组处理设备的可编程硬件管道执行。虚拟交换机可以通过将配置从另一种语言或诸如Openflow之类的其他语义转换为基于P4的配置,来从多个控制平面配置分组处理设备的可编程硬件管道的操作。分组处理设备的可编程硬件管道可以被配置为观察分组和联网状态并实施控制平面策略和分组转发行为。在一些示例中,可编程硬件管道可以被配置为执行负载平衡和遥测收集。通过将诸如OpenFlow表的配置之类的虚拟交换机操作卸载到分组处理设备中的表,可以释放处理器核心资源以用于其他用途。
[0021]图1描绘了OVS的实施方式的示例。ofproto层为控制器提供了Openflow接口,以将流和其他配置卸载到OVS虚拟交换机中。ofproto层可以管理桥接接口,该接口包括Openflow管道(例如,流表),端口和接口定义和用于连接跟踪、隧穿、镜像、采样、加密操作和LAG的全局配置。ofproto层下面的层经由数据路径接口(dpif)(例如,Open vSwitch或数据平面开发套件(DPDK))提供到数据路径的接口。内核层可以经由netdev提供者接口在用户空间和网络接口控制器(NIC)之间提供接口。
[0022]图2描绘了与ofproto层并行运行的P4proto层的示例概述。符合OVS的控制器ovs

p4ctl 202可以使用P4proto 204来配置符合P4的运行时。P4proto 204可以用命令行接口(CLI)而被配置以编程P4流和配置表。P4proto 204可以执行解析以基于流和配置表来创建P4管道P4Info文件。P4proto 204可以配置和管理Linux netdev设备,诸如端口、接口、隧道、虚拟端口等。数据路径接口(dpif)214可以向可编程设备208的p4可编程网络接口设备管道提供P4可编程数据路径。P4可编程数据路径可以符合P4

DPDK。尽管关于P4描述了示例,但是可以使用其它编程语言,诸如C、Python、DOCA
TM
、Broadcom网络编程语言(NPL)、Linux eBPF、或x86兼容的可执行二进制文件或其它可执行二进制文件。虽然关于OVS描述了示例,但是其他示例可以使用VPP、Stratum或其他
VM到VM通信交换机。
[0023]图3描绘了可以与虚拟交换机软件堆栈一起使用的P4proto层的示例概述。多个控制平面可以用于用诸如P4之类的分组处理管道编程语言一起对网络接口设备进行编程。例如,多个控制平面可以用于使用符合P4的语义对可编程NIC 320的分组处理管道进行编程。多个P4运行时客户端可以连接和编程NIC 320的一个或多个P4可编程管道。
[0024]在一些示例中,虚拟交换机可以包括符合OVS的软件堆栈。例如,作为第一控制平面的一部分,第一控制器302可以实现Openflow控制器并用各种配置来配置虚拟交换机的OVS ofproto层304。在一些示例中,OVS配置可以被映射到P4表,如本文所述。OVS配置的示例包括VXLAN配置(例如,启用或禁用对VXLAN的使用)。
[0025]作为第二控制平面的一部分,第二控制器310可以对虚拟交换机的p4proto层312进行编程。在一些示例中,由第一控制平面和第二控制平面提供的配置都可以涉及针对流的一个或多个分组的切换操作。P4本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.至少一个非暂时性计算机可读介质,包括存储在其上的指令,所述指令在由一个或多个处理器执行时使得所述一个或多个处理器执行以下操作:执行虚拟交换机来提供来自多个控制平面的配置,以配置要由分组处理设备的可编程管道执行的分组处理动作,其中,所述虚拟交换机提供虚拟执行环境间通信,并且其中,所述可编程管道使用编程语言而被配置。2.如权利要求1所述的计算机可读介质,其中,所述虚拟交换机与Open vswitch、VPP或Stratum相符。3.如权利要求1所述的计算机可读介质,其中,所述多个控制平面中的至少一个控制平面的编程语言包括OpenFlow,并且该编程语言包括以下各项中的一项或多项:编程协议无关分组处理器(P4),C,Python,Broadcom网络编程语言(NPL),Linux eBPF,或x86兼容的可执行二进制文件或其他可执行二进制文件。4.如权利要求1所述的计算机可读介质,包括存储在其上的指令,所述指令在由一个或多个处理器执行时使得所述一个或多个处理器执行以下操作:接收表条目格式的配置,以及以与接收到的表条目格式相符的格式,用来自所述多个控制平面中的一个或多个控制平面的至少一个配置来配置所述可编程管道。5.如权利要求1所述的计算机可读介质,其中,所述多个控制平面包括以下各项中的两项或更多项:虚拟交换机控制器,用于所述可编程管道的运行时服务器,或内核控制器。6.如权利要求5所述的计算机可读介质,其中,所述虚拟交换机控制器用与以下各项中的一项或多项相关的头部字段值匹配和一个或多个关联动作来配置所述可编程管道:端口选择,分组镜像的启用,或VXLAN利用。7.如权利要求5所述的计算机可读介质,其中,用于所述可编程管道的运行时服务器用与以下各项中的一项或多项相关的头部字段值匹配和关联动作来配置所述可编程管道:隧道,镜像,安全组,连接跟踪,转发,用于确定统计信息的流采样,或链路聚合组(LAG)。8.如权利要求5所述的计算机可读介质,其中,所述内核控制器用以下各项中的一项或多项来配置所述可编程管道:路由确定和隧穿。9.如权利要求1至8中任一项所述的计算机可读介质,其中,所述分组处理设备包括以下各项中的一项或多项:网络接口控制器(NIC),启用远程直接存储器访问(RDMA)的NIC,SmartNIC,路由器,交换机,转发元件,基础设施处理单元(IPU),或数据处理单元(DPU)。10.一种装置,包括:分组处理设备,包括使用虚拟交换机而被配置的可编程分组处理管道,其中:所述可编程分组处理管道经由所述虚拟交换机从多个控制平面接收配置以配置分组处理动作,所述虚拟交换机提供虚拟执行环境间通信,并且所述可编程分组处理管道使用编程语言而被配置。11.如权利要求10所述的装置,其中,所述虚拟交换机与Open vSwitch、VPP或Stratum相符。12.如权利要求10所述的装置,其中,所述多个控制平面中的至少一个控制平面的编程语言包括OpenFlow,并且该编程语言包括以下各项中的一项或多项:编程协议无关分组处
理器(P4),...

【专利技术属性】
技术研发人员:纳姆拉塔
申请(专利权)人:英特尔公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1