CN116366534B - 基于硬件卸载的组播流量复制的方法以及相关装置 - Google Patents

基于硬件卸载的组播流量复制的方法以及相关装置 Download PDF

Info

Publication number
CN116366534B
CN116366534B CN202310627011.1A CN202310627011A CN116366534B CN 116366534 B CN116366534 B CN 116366534B CN 202310627011 A CN202310627011 A CN 202310627011A CN 116366534 B CN116366534 B CN 116366534B
Authority
CN
China
Prior art keywords
replication
multicast
flow
node
linked list
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202310627011.1A
Other languages
English (en)
Other versions
CN116366534A (zh
Inventor
刘先锋
余兆国
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhuhai Xingyun Zhilian Technology Co Ltd
Original Assignee
Zhuhai Xingyun Zhilian Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhuhai Xingyun Zhilian Technology Co Ltd filed Critical Zhuhai Xingyun Zhilian Technology Co Ltd
Priority to CN202310627011.1A priority Critical patent/CN116366534B/zh
Publication of CN116366534A publication Critical patent/CN116366534A/zh
Application granted granted Critical
Publication of CN116366534B publication Critical patent/CN116366534B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/16Multipoint routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/20Support for services
    • H04L49/208Port mirroring
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请公开了一种基于硬件卸载的组播流量复制的方法以及相关装置。所述方法包括:接收首包流量;当控制带数据平面开发工具包的虚拟交换机对所述首包流量执行首包流程时,生成组播流量复制精确流表;将命中的组播流量复制精确流表下发到数据处理单元的可编程器件中;当再接收到对应的流时,经由所述数据处理单元命中流表,所述流表的动作是组播复制;所述组播复制动作出含有一个组播复制TBL中复制链表的首结点索引ID;提取所述首结点索引ID到组播复制TBL找到首结点;经由所述首结点,逐步找到所述复制链表中所有的节点;经由所述复制链表完成流量复制。采用本申请,极大提升了组播流量复制性能。

Description

基于硬件卸载的组播流量复制的方法以及相关装置
技术领域
本申请属于互联网技术领域,主要涉及了一种基于硬件卸载的组播流量复制的方法以及相关装置。
背景技术
目前,业界软件定义网络可以通过配置网络通信协议流表来实现单个输入端口进入的流量,通过从一个组播组出,该组播组可以看作多个流量出口。使用组播流量复制功能会消耗更多的系统资源和带宽,并且增加网络的延迟。
现有技术中,针对组播流量复制功能,都是依靠软件虚拟交换机完成复制,软件压力大,处理效率低。
发明内容
本申请的一个目的在于提供了一种基于硬件卸载的组播流量复制的方法以及相关装置,其优势在于,能极大程度为软件减负,提供更好的复制性能,减少中央处理器的消耗。
为实现上述目的,第一方面,本申请提供一种基于硬件卸载的组播流量复制的方法,应用于基于硬件卸载的组播流量复制系统,所述基于硬件卸载的组播流量复制系统包括数据处理单元和带数据平面开发工具包的虚拟交换机,包括以下步骤:
接收首包流量;
当控制所述带数据平面开发工具包的虚拟交换机对所述首包流量执行首包流程时,生成组播流量复制精确流表;
经由所述带数据平面开发工具包的虚拟交换机将命中的组播流量复制精确流表下发到所述数据处理单元的可编程器件中;
当再接收到对应的流时,经由所述数据处理单元命中流表,所述流表的动作是组播复制;
所述组播复制动作出含有一个组播复制TBL中复制链表的首结点索引ID;
经由组播复制操作,提取所述首结点索引ID到组播复制TBL找到首结点;
经由所述首结点,逐步找到所述复制链表中所有的节点;
经由所述复制链表完成流量复制。
可以理解,接收首包流量;当控制所述带数据平面开发工具包的虚拟交换机对所述首包流量执行首包流程时,生成组播流量复制精确流表;经由所述带数据平面开发工具包的虚拟交换机将命中的组播流量复制精确流表下发到所述数据处理单元的可编程器件中;当再接收到对应的流时,经由所述数据处理单元命中流表,所述流表的动作是组播复制;所述组播复制动作出含有一个组播复制TBL中复制链表的首结点索引ID;经由组播复制操作,提取所述首结点索引ID到组播复制TBL找到首结点;经由所述首结点,逐步找到所述复制链表中所有的节点;经由所述复制链表完成流量复制,能够提升组播流量复制的效率。
在一个可能的示例中,所述当控制所述带数据平面开发工具包的虚拟交换机对所述首包流量执行首包流程时,生成组播流量复制精确流表包括:
控制数据平面开发工具集接收数据,命中提前下发的组播流量复制的流表规则,所述流表规则包括第一条规则和第二条规则;
所述第一条规则是命中流表的key与组播复制action;
所述第二条规则是需要执行流量复制的出口dport信息以及报文编辑的索引信息。
可以理解,控制数据平面开发工具集接收数据,命中提前下发的组播流量复制的流表规则,所述流表规则包括第一条规则和第二条规则;所述第一条规则是命中流表的key与组播复制action;所述第二条规则是需要执行流量复制的出口dport信息以及报文编辑的索引信息,能够大幅度提升组播流量复制精确流表的生成效率。
在一个可能的示例中,所述第一条规则是命中流表的key与组播复制action,包括以下步骤:
所述action的数据是组播复制TBL中复制链表首结点的索引ID;
经由所述ID,组播复制action在组播复制TBL中找到复制链表的首结点。
可以理解,所述action的数据是组播复制TBL中复制链表首结点的索引ID;经由所述ID,组播复制action在组播复制TBL中找到复制链表的首结点,能够优化第一条规则的处理过程。
在一个可能的示例中,所述action的数据是组播复制TBL中复制链表首结点的索引ID,包括:
所述组播复制TBL为组播复制模块提供复制的信息;
经由组播复制action找到复制的链表,执行复制动作;
所述组播复制TBL由软件进行动态增删。
可以理解,所述组播复制TBL为组播复制模块提供复制的信息;经由组播复制action找到复制的链表,执行复制动作;所述组播复制TBL由软件进行动态增删,能够优化组播复制的过程。
在一个可能的示例中,所述经由所述带数据平面开发工具包的虚拟交换机将命中的组播流量复制精确流表下发到所述数据处理单元的可编程器件中,包括:
经由DPDK的控制平面,将命中的组播流量复制的流表通过带数据平面开发工具包的虚拟交换机的卸载应用程序接口下发到现场可编程逻辑门阵列中。
可以理解,经由DPDK的控制平面,将命中的组播流量复制的流表通过带数据平面开发工具包的虚拟交换机的卸载应用程序接口下发到现场可编程逻辑门阵列中,能够优化流表的下发效率。
在一个可能的示例中,所述组播复制动作出含有一个组播复制TBL中复制链表的首结点索引ID,包括以下步骤:
基于所述首结点索引ID到组播复制表中获取组播复制链表;
基于所述复制链表对所述流做复制。
可以理解,基于所述首结点索引ID到组播复制表中获取组播复制链表;基于所述复制链表对所述流做复制,能够优化组播复制的效率。
在一个可能的示例中,所述基于所述首结点索引ID到组播复制表中获取组播复制链表,包括以下步骤:
所述组播复制表中表项成员包括port、valid、next和tail;
所述port表示复制的出口;
所述valid判断节点是否被使用;
所述next表示当前节点的next指针,指向复制的下一个节点;
所述tail表示当前节点是否为最后一个节点。
可以理解,所述组播复制表中表项成员包括port、valid、next和tail;所述port表示复制的出口;所述valid判断节点是否被使用;所述next表示当前节点的next指针,指向复制的下一个节点;所述tail表示当前节点是否为最后一个节点,能够提升组播复制链表的获取效率。
第二方面,一种基于硬件卸载的组播流量复制的装置,包括用于执行第一方面或者第一方面任一实施方式提供的方法的模块。
第三方面,一种基于硬件卸载的组播流量复制的设备,包括处理器、存储器以及一个或至少一个程序,其中,所述一个或至少一个程序被存储在所述存储器中,并且被配置由所述处理器执行,所述程序包括用于执行第一方面或者第一方面任一实施方式提供的方法的指令。
第四方面,一种计算机可读存储介质,所述计算机可读存储介质存储计算机程序,所述计算机程序使得计算机执行以实现第一方面或者第一方面任一实施方式提供的方法。
实施本申请,将具有如下有益效果:
接收首包流量;当控制所述带数据平面开发工具包的虚拟交换机对所述首包流量执行首包流程时,生成组播流量复制精确流表;经由所述带数据平面开发工具包的虚拟交换机将命中的组播流量复制精确流表下发到所述数据处理单元的可编程器件中;当再接收到对应的流时,经由所述数据处理单元命中流表,所述流表的动作是组播复制;所述组播复制动作出含有一个组播复制TBL中复制链表的首结点索引ID;经由组播复制操作,提取所述首结点索引ID到组播复制TBL找到首结点;经由所述首结点,逐步找到所述复制链表中所有的节点;经由所述复制链表完成流量复制,因此能极大程度为软件减负,提供更好的复制性能,减少中央处理器的消耗。
附图说明
为了更清楚地说明本申请或现有技术中的技术方案,下面将对本申请或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些例子,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以基于这些附图获得其他的附图。其中:
图1为本申请提供的一种基于硬件卸载的组播流量复制的应用场景图;
图2为本申请提供的一种开启流表卸载应用的示意图;
图3为本申请提供的一种组播流量复制卸载的程序框图;
图4为本申请提供的一种硬件转发的主要程序框图;
图5为本申请提供的一种基于硬件卸载的组播流量复制的流程示意图;
图6为本申请提供的一种基于硬件卸载的组播流量复制装置的结构示意图;
图7为本申请提供的一种基于硬件卸载的组播流量复制设备的结构图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的例子仅仅是本申请一部分例子,而不是全部。基于本申请中的例子,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他例子,都属于本申请保护的范围。
本申请中的术语“1”和“2”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个例子中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
请参见图1,图1为本申请提供的一种基于硬件卸载的组播流量复制的应用场景图。如图1所示,该应用场景图包括用户101、电子设备102和服务器103。需要说明的是,图1所示的系统中的各个设备的数量、各个设备的形态和用户的数量用于举例,并不构成对本申请的限定,一个用户可以使用多个电子设备。
其中,用户101是实际操作电子设备102的用户,以控制电子设备102执行相应的操作。电子设备102可以是图1所示的笔记本电脑,还可以是个人计算机(personal computer,PC)、一体机、掌上电脑、平板电脑(pad)、台式机电脑、智能手机、智能电视播放终端和便捷式设备等。PC端的电子设备,例如一体机等,其操作系统可以包括但不限于Linux系统、Unix系统、Windows系列系统(例如Windows xp、Windows 7等)等操作系统。移动端的电子设备,例如智能手机等,其操作系统可以包括但不限于安卓系统、IOS(苹果手机的操作系统)、Window系统等操作系统。
下面介绍本申请提供的基于硬件卸载的组播流量复制的方法,该方法可以由基于硬件卸载的组播流量复制装置执行,该装置可由软件和/或硬件实现,一般可集成在电子设备或服务器中。
请参见图2,图2为本申请提供的一种开启流表卸载应用的示意图。第一电子设备201可以安装如图2所示的开启流表卸载应用202,第一电子设备201的使用者为用户,当用户对第一电子设备201中所安装的开启流表卸载应用202执行触发操作(例如,点击开启流表卸载应用202的图标)时,第一电子设备201可以启动所安装的开启流表卸载应用202,并进入开启流表卸载应用202之中,当用户使用完该应用以后,也可以点击桌面203回到第一电子设备201的初始界面。
请参见图3,图3为本申请提供的一种组播流量复制卸载的程序框图。如图所示,包括以下内容,
S301:首包upcall。
S302:ovs解析报文进行流量复制。
S303:生成组播流量复制流表key+action(dport1+dport2+dport3)。
S304:卸载流表。
S305:结束。
S306:action是组播复制。
S307:结束。
S308:将组播流表下发到现场可编程逻辑门阵列。
S309:将组播复制成员下发到现场可编程逻辑门阵列。
S310:结束。
其详细过程如下:首包走upcall上送流程;ovs收到报文以后,解析报文,之后执行流量复制操作;当开启了流表卸载时,将生成的精确流量和组播流量复制精确流表,通过offload接口下发到硬件现场可编程逻辑门阵列;根据ovs流表的key+action,将精确流表下发到现场可编程逻辑门阵列流表匹配模块,下发给硬件的key为ovs精确流量的key,action为执行流量复制动作,action的data为组播复制模块的首结点索引ID;然后根据ovs的action,多个出口dport,将每个dport(组播成员)下发到组播复制模块,成员在组播复制模块通过链表方式管理;组播流量复制流表卸载后,相同流量硬件直接复制。
请参见图4,图4为本申请提供的一种硬件转发的主要程序框图。如图所示,包括以下内容,
S401:硬件首包。
S402:根据报文匹配流表,流表action为组播复制。
S403:命中流表。
S404:软件复制。
S405:结束。
S406:提取流表action的data:组播复制模块链表索引ID。
S407:根据组播链表索引ID到组播复制模块找到首结点,执行流量复制。
S408:复制后的流量发送到对应vnet。
S409:结束。
图中简明地表示出了硬件转发的主要程序框图,其更为详细过程如下,硬件收到报文,根据报文匹配流表,如果命中,则进行硬件流量复制;流表action动作为组播流量复制,并提取动作的data:组播复制模块链表的首结点索引ID;根据首结点索引ID,在组播复制模块找到首结点,执行复制动作(每个节点都会记录下一个节点位置,只要找到首结点就可以通过当前节点的next找到下一个成员)。
请参照图5,图5为本申请提供的一种基于硬件卸载的组播流量复制的流程示意图。以该方法应用于基于硬件卸载的组播流量复制过程进行举例说明,该基于硬件卸载的组播流量复制装置可以包括服务器或电子设备。该方法包括如下步骤S501-S508,其中,
S501:接收首包流量。
举一个例子来说,硬件收到eth发送的首包流量,根据报文匹配流表,当未命中时,则走软件转发,走首包上送流程。
S502:当控制所述带数据平面开发工具包的虚拟交换机对所述首包流量执行首包流程时,生成组播流量复制精确流表。
举一个例子来说,OVS全称为Open vSwitch,它是一个支持多层数据转发的高质量虚拟交换机,主要部署在服务器上,相比传统交换机具有很好的编程扩展性,同时具备传统交换机实现的网络隔离和数据转发功能,运行在每个实现虚拟化的物理机器上,并提供远程管理。OVS提供了两种在虚拟化环境中远程管理的协议:一个是OpenFlow,通过流表来管理交换机的行为,一个是OVSDB管理协议,用来暴露交换机的端口状态。其中OpenFlow协议可用于定于SDN网络,实现网络转发平面和控制平面分离。OVS与传统的网络部署中的物理交换机充当的角色相似,可进行划分局域网、搭建隧道和模拟路由。
OVS主要包含三个基本组件:ovs-vswtichd、ovsdb-server、openvswitch.ko。ovs-vswitchd组件是交换机的主要模块,运行在用户态,其主要负责基本的转发逻辑、地址学习和外部物理端口绑定等,还可以运用OVS自带的工具采用openflow协议对交换机进行远程配置和管理。ovsdb-server组件是存储OVS的网桥等配置、日志以及状态的轻量级数据库。它与ovs-vswitchd都是以一个单独的进程存在于系统中。ovsdb是一个可提供持久化存储的数据库,可借助其中的工具配置OVS交换机,配置信息将保存在ovsdb中,设备重启后,相关OVS配置不会丢失。ovs-vswitchd组件与ovsdb-server组件间的通信采用ovsdb管理协议,通信内容包括加载配置信息,同时将运行过程中变化的OVS的配置信息保存到数据库中。openvswitch.ko组件运行在内核态,属于快速转发平面,主要负责流表匹配、报文修改、隧道封装、转发或者上送,并且维护底层转发表。在原始OVS中,报文首先经过该组件完成报文解析和封装、转发规则匹配,若找到转发规则不再经过用户空间,直接转发。否则转交用户空间的ovs-vswitchd组件进行处理。ovs-vswitchd组件与openvswitch.ko组件之间采用netlink执行进程间的通信。netlink是一种进程间通信机制,可用于处理用户态和内核态的通信。
举一个例子来说,DPDK加速的OVS使得,从OVS连接的某个网络端口接收到的报文不需要openvswitch.ko内核态的处理,报文通过DPDK PMD驱动直接到达用户态ovs-vswitchd里。一般而言,DPDK加速的OVS数据流转发的具体流程为:OVS的ovs-vswitchd接收到从OVS连接的某个网络端口发来的数据包,从数据包中提取源/目的IP、源/目的MAC、端口等信息;OVS在用户态查看精确流表和模糊流表,如果命中,则直接转发;如果还不命中,在SDN控制器接入的情况下,经过OpenFlow协议,通告给控制器,由控制器处理;控制器下发新的流表,该数据包重新发起选路和匹配;报文转发,结束。
在一种可能的示例中,步骤S502包括以下步骤A1-A3:
A1:控制数据平面开发工具集接收数据,命中提前下发的组播流量复制的流表规则,所述流表规则包括第一条规则和第二条规则。
举一个例子来说,流表是芯片中一张张转发表,每张流表都是由很多流表项组成,流表项是流表的最小单位,每条流表项对应了网络中传输的一条流,流表项的组成部分是指控制器和交换机之间传输的数据结构,是对流表项的逻辑描述,不是跟芯片转发表中的实际字段一一对应。
A2:所述第一条规则是命中流表的key与组播复制action。
举一个例子来说,key值信息是匹配流表的前提,key值中包括很多的信息,包括源MAC地址、目的MAC地址、协议类型、源IP地址、目的IP地址和端口号等信息,所有的key值都可以从数据包中提取到。
在一种可能的示例中,步骤A2包括以下步骤A21-A22:
A21:所述action的数据是组播复制TBL中复制链表首结点的索引ID。
在一种可能的示例中,步骤A21包括以下步骤A211-A213:
A211:所述组播复制TBL为组播复制模块提供复制的信息。
举一个例子来说,组播复制TBL主要为mcc模块提供复制的信息,通过mcc action找到复制的链表,执行复制动作;同时该模块也可由软件进行动态增删(OVS流表卸载与老化使用)。
A212:经由组播复制action找到复制的链表,执行复制动作。
A213:所述组播复制TBL由软件进行动态增删。
A22:经由所述ID,组播复制action在组播复制TBL中找到复制链表的首结点。
A3:所述第二条规则是需要执行流量复制的出口dport信息以及报文编辑的索引信息。
S503:经由所述带数据平面开发工具包的虚拟交换机将命中的组播流量复制精确流表下发到所述数据处理单元的可编程器件中。
在一种可能的示例中,步骤S503包括以下步骤B1,
B1:经由DPDK的控制平面,将命中的组播流量复制的流表通过带数据平面开发工具包的虚拟交换机的卸载应用程序接口下发到现场可编程逻辑门阵列中。
举一个例子来说,现场可编程逻辑门阵列(Field Programmable Gate Array,FPGA)是一种以数字电路为主的集成芯片,它是作为专用集成电路领域中的一种半定制电路而出现的,其内部的大部分电路功能都可以根据需求进行更改,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。与传统模式的芯片设计相比,FPGA并非单纯局限于研究以及设计芯片,而是针对较多领域产品都能借助特定芯片模型予以优化设计。常见FPGA的应用领域有算法加速、视频图像处理、通信领域、医疗领域和安防领域等。
S504:当再接收到对应的流时,经由所述数据处理单元命中流表,所述流表的动作是组播复制。
举一个例子来说,流就是在一段时间内经过同一个网络的一系列具有相同属性的顺序发送的报文集合。
举一个例子来说,数据处理单元即DPU,它的全称为Data Processing Unit,它是以数据为中心构造的专用处理器,采用软件定义技术路线支撑基础设施层资源虚拟化,支持存储、安全和服务质量管理等基础设施层服务。数据处理单元的出现是异构计算的一个阶段性标志,数据处理单元是应用驱动的体系结构设计的又一典型案例,与GPU不同的是,数据处理单元面向的应用更加底层,数据处理单元要解决的核心问题是基础设施的“降本增效”,即将“CPU处理效率低下、GPU处理不了”的负载卸载到专用数据处理单元,从而提升整个计算系统的效率,降低整体系统的总体拥有成本。数据处理单元的核心功能就是网络数据处理,既包括网络协议的分析,也可以是直接满足应用需求的加工计算。随之可以减少22%到80%的CPU性能,因此也被称为“卸载”(offload),完整的数据处理单元芯片本身也通常会被集成到板卡(网卡)上。
需要说明的是,在此方案中,不对数据处理单元的作用进行限定,举例而言,数据处理单元最直接的作用是作为CPU的卸载引擎,接管网络虚拟化和硬件资源池化等基础设施层服务,释放CPU的算力到上层应用。数据处理单元也可以成为新的数据网关,将安全隐私提升到一个新的高度。在网络环境下,网络接口是理想的隐私的边界,但是加密和解密算法开销都很大,例如国密标准的非对称加密算法SM2、哈希算法SM3和对称分组密码算法SM4。如果用CPU来处理,就只能做少部分数据量的加密。在未来,随着区块链承载的业务的逐渐成熟,运行共识算法POW,验签等也会消耗掉大量的CPU算力。而这些都可以通过将其固化在数据处理单元中来实现,甚至数据处理单元将成为一个可信根。数据处理单元也可以成为存储的入口,将分布式的存储和远程访问本地化。随着固态硬盘性价比逐渐可接受,部分存储迁移到固态硬盘器件上已经成为可能,传统的面向机械硬盘的SATA协议并不适用于固态硬盘存储,所以,将固态硬盘通过本地PCIe或高速网络接入系统就成为必选的技术路线。这些新的协议处理都可以集成在数据处理单元中,以实现对CPU的透明处理。进而,数据处理单元将可能承接各种互连协议控制器的角色,在灵活性和性能方面达到一个更优的平衡点。数据处理单元也可以成为算法加速的沙盒,成为最灵活的加速器载体。数据处理单元可以结合FPGA等可编程器件,使得可定制硬件将有更大的发挥空间,“软件硬件化”将成为常态,异构计算的潜能将因各种数据处理单元的普及而彻底发挥出来。
S505:所述组播复制动作出含有一个组播复制TBL中复制链表的首结点索引ID。
在一种可能的示例中,步骤S505包括以下步骤C1-C2:
C1:基于所述首结点索引ID到组播复制表中获取组播复制链表。
在一种可能的示例中,步骤C1包括以下步骤C11-C15:
C11:所述组播复制表中表项成员包括port、valid、next和tail;
C12:所述port表示复制的出口;
C13:所述valid判断节点是否被使用;
举一个例子来说,当对valid置1时,表示该节点被占用;当流表老化时,对该节点的valid置0。
C14:所述next表示当前节点的next指针,指向复制的下一个节点;
C15:所述tail表示当前节点是否为最后一个节点。
C2:基于所述复制链表对所述流做复制。
S506:经由组播复制操作,提取所述首结点索引ID到组播复制TBL找到首结点。
S507:经由所述首结点,逐步找到所述复制链表中所有的节点。
举一个例子来说,每个节点都会记录下一个节点位置,只要找到首结点就可以通过当前节点的next找到下一个成员。
S508:经由所述复制链表完成流量复制。
举一个例子来说,组播复制组对应三个出口dport,port_id分别为1、2和3,那么将这三个dport对应的信息通过链表的方式下发到MCC TBL。再举一个例子来说,链表首结点为1,然后节点1指向了节点3,节点3又指向了节点5,最后节点5的tail为1表示尾节点,表示复制动作结束。最后复制的动作为首结点1-3-5,三个节点分别存储对应的出口port_id,后续MCC通过这个复制链表会将流量复制三份,并且每份流量都会记录对应的出口。
需要说明说的是,当出现流表老化或者删除的情况时,系统会重新触发卸载。
请参见图6,图6为本申请提供的一种基于硬件卸载的组播流量复制装置的结构示意图。基于上述的系统架构,该基于硬件卸载的组播流量复制装置600可以为服务器,也可以为服务器中的单元。该装置600,至少包括:接收单元601、生成单元602、发送单元603、处理单元604、提取单元605和查找单元606,其中,
接收单元601用于接收首包流量。
当控制所述带数据平面开发工具包的虚拟交换机对所述首包流量执行首包流程时,生成单元602用于生成组播流量复制精确流表。
发送单元603经由所述带数据平面开发工具包的虚拟交换机将命中的组播流量复制精确流表下发到所述数据处理单元的可编程器件中。
当再接收到对应的流时,处理单元604命中流表,所述流表的动作是组播复制;经由所述组播复制动作出含有一个组播复制TBL中复制链表的首结点索引ID;经由所述复制链表完成流量复制。
提取单元605经由组播复制操作,提取所述首结点索引ID到组播复制TBL找到首结点。
查找单元606经由所述首结点,逐步找到所述复制链表中所有的节点。
在一个可能的示例中,基于硬件卸载的组播流量复制装置600控制数据平面开发工具集接收数据,命中提前下发的组播流量复制的流表规则,所述流表规则包括第一条规则和第二条规则;所述第一条规则是命中流表的key与组播复制action;所述第二条规则是需要执行流量复制的出口dport信息以及报文编辑的索引信息。
在一个可能的示例中,在基于硬件卸载的组播流量复制装置600中,所述action的数据是组播复制TBL中复制链表首结点的索引ID;经由所述ID,组播复制action在组播复制TBL中找到复制链表的首结点。
在一个可能的示例中,基于硬件卸载的组播流量复制装置600经由所述组播复制TBL为组播复制模块提供复制的信息;经由组播复制action找到复制的链表,执行复制动作;所述组播复制TBL由软件进行动态增删。
在一个可能的示例中,基于硬件卸载的组播流量复制装置600经由DPDK的控制平面,将命中的组播流量复制的流表通过带数据平面开发工具包的虚拟交换机的卸载应用程序接口下发到现场可编程逻辑门阵列中。
在一个可能的示例中,基于硬件卸载的组播流量复制装置600根据所述首结点索引ID到组播复制表中获取组播复制链表;根据所述复制链表对所述流做复制。
在一个可能的示例中,在基于硬件卸载的组播流量复制装置600中,所述组播复制表中表项成员包括port、valid、next和tail;所述port表示复制的出口;所述valid判断节点是否被使用;所述next表示当前节点的next指针,指向复制的下一个节点;所述tail表示当前节点是否为最后一个节点。
请参见图7,图7为本申请提供的一种基于硬件卸载的组播流量复制设备的结构图。如图7所示,该基于硬件卸载的组播流量复制设备700包括处理器701、存储器702、通信接口704以及至少一个程序703。上述至少一个程序703被存储在上述存储器702中,并且被配置由上述处理器701执行,上述至少一个程序703包括用于执行以下步骤的指令:
接收首包流量;
当控制所述带数据平面开发工具包的虚拟交换机对所述首包流量执行首包流程时,生成组播流量复制精确流表;
经由所述带数据平面开发工具包的虚拟交换机将命中的组播流量复制精确流表下发到所述数据处理单元的可编程器件中;
当再接收到对应的流时,经由所述数据处理单元命中流表,所述流表的动作是组播复制;
所述组播复制动作出含有一个组播复制TBL中复制链表的首结点索引ID;
经由组播复制操作,提取所述首结点索引ID到组播复制TBL找到首结点;
经由所述首结点,逐步找到所述复制链表中所有的节点;
经由所述复制链表完成流量复制。
在一个可能的示例中,所述至少一个程序703具体用于执行以下步骤的指令:
控制数据平面开发工具集接收数据,命中提前下发的组播流量复制的流表规则,所述流表规则包括第一条规则和第二条规则;
所述第一条规则是命中流表的key与组播复制action;
所述第二条规则是需要执行流量复制的出口dport信息以及报文编辑的索引信息。
在一个可能的示例中,所述至少一个程序703具体用于执行以下步骤的指令:
所述action的数据是组播复制TBL中复制链表首结点的索引ID;
经由所述ID,组播复制action在组播复制TBL中找到复制链表的首结点。
在一个可能的示例中,所述至少一个程序703具体用于执行以下步骤的指令:
所述组播复制TBL为组播复制模块提供复制的信息;
经由组播复制action找到复制的链表,执行复制动作;
所述组播复制TBL由软件进行动态增删。
在一个可能的示例中,所述至少一个程序703具体用于执行以下步骤的指令:
经由DPDK的控制平面,将命中的组播流量复制的流表通过带数据平面开发工具包的虚拟交换机的卸载应用程序接口下发到现场可编程逻辑门阵列中。
在一个可能的示例中,所述至少一个程序703具体用于执行以下步骤的指令:
基于所述首结点索引ID到组播复制表中获取组播复制链表;
基于所述复制链表对所述流做复制。
在一个可能的示例中,所述至少一个程序703具体用于执行以下步骤的指令:
所述组播复制表中表项成员包括port、valid、next和tail;
所述port表示复制的出口;
所述valid判断节点是否被使用;
所述next表示当前节点的next指针,指向复制的下一个节点;
所述tail表示当前节点是否为最后一个节点。
本领域技术人员可以理解,为了便于说明,图7中仅示出了一个存储器702和处理器701。在实际的终端或服务器中,可以存在多个处理器和存储器。存储器也可以称为存储介质或者存储设备等,本申请对此不做限制。
应理解,在本申请中,处理器可以是中央处理单元(Central Processing Unit,简称CPU),该处理器还可以是其他通用处理器、数字信号处理器(Digital SignalProcessing ,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现成可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器还可以采用通用的微处理器、图形处理器(graphics processing unit,GPU)或者一个或多个集成电路,用于执行相关程序,以实现本申请所需执行的功能。
处理器701还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本申请的各个步骤可以通过处理器701中硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器701可以实现或者执行本申请中的公开的各方法、步骤及逻辑框图。结合本申请所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存和只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器702,处理器701读取存储器702中的信息,结合其硬件完成本申请的方法、装置及存储介质包括的单元所需执行的功能。
还应理解,本申请中提及的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-OnlyMemory,简称ROM)、可编程只读存储器(Programmable ROM,简称PROM)、可擦除可编程只读存储器(Erasable PROM,简称EPROM)、电可擦除可编程只读存储器(Electrically EPROM,简称EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,简称RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,简称SRAM)、动态随机存取存储器(Dynamic RAM,简称DRAM)、同步动态随机存取存储器(Synchronous DRAM,简称SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,简称DDR SDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,简称ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,简称SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,简称DR RAM)。该存储器还可以是只读光盘(Compact Disc Read-Only Memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在的,通过总线与处理器相连接。存储器也可以和处理器集成在一起,存储器可以存储程序,当存储器中存储的程序被处理器执行时,处理器用于执行上述实施例中的各个步骤。
需要说明的是,当处理器为通用处理器、DSP、ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件时,存储器(存储模块)集成在处理器中。应注意,本文描述的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器、闪存、只读存储器、可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤,为避免重复,这里不再详细描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各种说明性逻辑块(illustrative logical block,简称ILB)和步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机编程的程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在处理器上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请所述的流程或功能。所述计算机可以是通用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输,也可以从一个网站站点、计算机、服务器或数据中心通过有线方式向手机处理器进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘)等。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。

Claims (7)

1.一种基于硬件卸载的组播流量复制的方法,应用于基于硬件卸载的组播流量复制系统,所述基于硬件卸载的组播流量复制系统包括数据处理单元和带数据平面开发工具包的虚拟交换机,其特征在于,包括以下步骤:
接收首包流量;
当控制所述带数据平面开发工具包的虚拟交换机对所述首包流量执行首包流程时,生成组播流量复制精确流表;
经由DPDK的控制平面,将命中的组播流量复制的流表通过带数据平面开发工具包的虚拟交换机的卸载应用程序接口下发到现场可编程逻辑门阵列中;
当再接收到对应的流时,经由所述数据处理单元命中流表,所述流表的动作是组播复制;
所述组播复制动作含有一个组播复制TBL中复制链表的首结点索引ID;
基于所述首结点索引ID到组播复制表中获取组播复制链表;
基于所述复制链表对所述流做复制;
经由组播复制操作,提取所述首结点索引ID到组播复制TBL找到首结点;
经由所述首结点,逐步找到所述复制链表中所有的节点;
经由所述复制链表完成流量复制。
2.根据权利要求1所述的方法,其特征在于,所述当控制所述带数据平面开发工具包的虚拟交换机对所述首包流量执行首包流程时,生成组播流量复制精确流表包括:
控制数据平面开发工具集接收数据,命中提前下发的组播流量复制的流表规则,所述流表规则包括第一条规则和第二条规则;
所述第一条规则是命中流表的key与组播复制action;
所述第二条规则是需要执行流量复制的出口dport信息以及报文编辑的索引信息。
3.根据权利要求2所述的方法,其特征在于,所述所述第一条规则是命中流表的key与组播复制action,包括以下步骤:
所述action的数据是组播复制TBL中复制链表首结点的索引ID;
经由所述ID,组播复制action在组播复制TBL中找到复制链表的首结点。
4.根据权利要求3所述的方法,其特征在于,所述所述action的数据是组播复制TBL中复制链表首结点的索引ID,包括:
所述组播复制TBL为组播复制模块提供复制的信息;
经由组播复制action找到复制的链表,执行复制动作;
所述组播复制TBL由软件进行动态增删。
5.根据权利要求1所述的方法,其特征在于,所述基于所述首结点索引ID到组播复制表中获取组播复制链表,包括以下步骤:
所述组播复制表中表项成员包括port、valid、next和tail;
所述port表示复制的出口;
所述valid判断节点是否被使用;
所述next表示当前节点的next指针,指向复制的下一个节点;
所述tail表示当前节点是否为最后一个节点。
6.一种基于硬件卸载的组播流量复制的设备,其特征在于,包括处理器、存储器以及一个或至少一个程序,其中,所述一个或至少一个程序被存储在所述存储器中,并且被配置由所述处理器执行,所述程序包括用于执行如权利要求1-5中任一项所述方法的指令。
7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储计算机程序,所述计算机程序使得计算机执行以实现如权利要求1-5中任一项所述的方法。
CN202310627011.1A 2023-05-31 2023-05-31 基于硬件卸载的组播流量复制的方法以及相关装置 Active CN116366534B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310627011.1A CN116366534B (zh) 2023-05-31 2023-05-31 基于硬件卸载的组播流量复制的方法以及相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310627011.1A CN116366534B (zh) 2023-05-31 2023-05-31 基于硬件卸载的组播流量复制的方法以及相关装置

Publications (2)

Publication Number Publication Date
CN116366534A CN116366534A (zh) 2023-06-30
CN116366534B true CN116366534B (zh) 2023-08-22

Family

ID=86905319

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310627011.1A Active CN116366534B (zh) 2023-05-31 2023-05-31 基于硬件卸载的组播流量复制的方法以及相关装置

Country Status (1)

Country Link
CN (1) CN116366534B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107925677A (zh) * 2015-09-26 2018-04-17 英特尔公司 用于卸载数据对象复制以及服务功能链管理的技术
CN109962832A (zh) * 2017-12-26 2019-07-02 华为技术有限公司 报文处理的方法和装置
CN113821310A (zh) * 2021-11-19 2021-12-21 阿里云计算有限公司 数据处理方法、可编程网卡设备、物理服务器及存储介质
CN115150328A (zh) * 2022-09-07 2022-10-04 珠海星云智联科技有限公司 一种流表硬件卸载方法、设备及介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9998324B2 (en) * 2015-09-30 2018-06-12 Nicira, Inc. Logical L3 processing for L2 hardware switches
US10243841B2 (en) * 2016-06-06 2019-03-26 Cisco Technology, Inc. Multicast fast reroute at access devices with controller implemented multicast control plane
WO2018192884A1 (en) * 2017-04-18 2018-10-25 Deutsche Telekom Ag Method for enhanced handling of multicast data streams within a broadband access network of a telecommunications network, telecommunications network, and system for enhanced handling of multicast data streams within a broadband access network of a telecommunications network, program and computer program product
US11784922B2 (en) * 2021-07-03 2023-10-10 Vmware, Inc. Scalable overlay multicast routing in multi-tier edge gateways

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107925677A (zh) * 2015-09-26 2018-04-17 英特尔公司 用于卸载数据对象复制以及服务功能链管理的技术
CN109962832A (zh) * 2017-12-26 2019-07-02 华为技术有限公司 报文处理的方法和装置
CN113821310A (zh) * 2021-11-19 2021-12-21 阿里云计算有限公司 数据处理方法、可编程网卡设备、物理服务器及存储介质
CN115150328A (zh) * 2022-09-07 2022-10-04 珠海星云智联科技有限公司 一种流表硬件卸载方法、设备及介质

Also Published As

Publication number Publication date
CN116366534A (zh) 2023-06-30

Similar Documents

Publication Publication Date Title
US10997106B1 (en) Inter-smartNIC virtual-link for control and datapath connectivity
CN109690512B (zh) 具有触发操作的gpu远程通信
US20090271172A1 (en) Emulating A Computer Run Time Environment
US11588734B2 (en) Systems for providing an LPM implementation for a programmable data plane through a distributed algorithm
CN114615212A (zh) 应用级网络排队
US9535702B2 (en) Asset management device and method in a hardware platform
US9253089B2 (en) System and method for routing using path identifiers
US11593136B2 (en) Resource fairness enforcement in shared IO interfaces
US11182150B2 (en) Zero packet loss upgrade of an IO device
US20180267727A1 (en) Access method and device for random access memories, control chip and storage medium
US11258707B1 (en) Systems for building data structures with highly scalable algorithms for a distributed LPM implementation
US20220166718A1 (en) Systems and methods to prevent packet reordering when establishing a flow entry
CN116366534B (zh) 基于硬件卸载的组播流量复制的方法以及相关装置
US10911261B2 (en) Method, apparatus and system for hierarchical network on chip routing
CN116032837A (zh) 一种流表卸载方法及装置
CN109088913B (zh) 请求数据的方法和负载均衡服务器
CN116599892B (zh) 一种服务器系统、路由方法、装置及电子设备和存储介质
CN113542156B (zh) 报文传输方法、装置、终端设备以及存储介质
US11637812B2 (en) Dynamic forward proxy chaining
CN117714398B (zh) 一种数据传输系统、方法、电子设备及存储介质
WO2021054612A1 (ko) 전자 장치 및 이의 제어 방법
CN117579547A (zh) 报文路由加速方法、装置、主设备及介质
CN116860488A (zh) 一种进程通信方法和相关装置
CN116980354A (zh) 一种数据处理方法、装置、计算机设备以及可读存储介质
CN117687795A (zh) 用于远程直接内存访问的硬件卸载方法、设备及介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant