CN114726788A - 应用于dpu的报文传输方法及相关装置 - Google Patents

应用于dpu的报文传输方法及相关装置 Download PDF

Info

Publication number
CN114726788A
CN114726788A CN202210484748.8A CN202210484748A CN114726788A CN 114726788 A CN114726788 A CN 114726788A CN 202210484748 A CN202210484748 A CN 202210484748A CN 114726788 A CN114726788 A CN 114726788A
Authority
CN
China
Prior art keywords
flow table
data message
data
field
matching field
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.)
Granted
Application number
CN202210484748.8A
Other languages
English (en)
Other versions
CN114726788B (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.)
Shenzhen Xingyun Zhilian Technology Co ltd
Original Assignee
Shenzhen 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 Shenzhen Xingyun Zhilian Technology Co ltd filed Critical Shenzhen Xingyun Zhilian Technology Co ltd
Priority to CN202210484748.8A priority Critical patent/CN114726788B/zh
Publication of CN114726788A publication Critical patent/CN114726788A/zh
Application granted granted Critical
Publication of CN114726788B publication Critical patent/CN114726788B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/74Address processing for routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/38Flow based routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • 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
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

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

Abstract

本申请提供一种应用于DPU的报文传输方法及相关装置,包括:通过硬件模块接收第一数据报文,确定第一数据报文的业务类型;若确定硬件模块存储的流表中不存在与第一数据报文匹配的流表项,将第一数据报文和第一数据报文的业务类型发送至软件模块;通过软件模块获取第一数据报文对应的第一格式的流表,并根据第一数据报文的业务类型确定第一数据报文的有效匹配字段;通过软件模块根据第一数据报文的有效匹配字段,将第一格式的流表转换为第二格式的流表;通过软件模块将第一数据报文对应的第二格式的流表传输给硬件模块;通过硬件模块根据第一数据报文对应的第二格式的流表,传输第一数据报文所属的数据流。实施本申请,可节省硬件存储空间。

Description

应用于DPU的报文传输方法及相关装置
技术领域
本申请涉及计算机网络技术领域,尤其涉及一种应用于DPU的报文传输方法及相关装置。
背景技术
软件定义网络(Software Defined Network,SDN)是一种新型网络创新架构,与其相关的OpenFlow技术可以将原本由交换机/路由器控制的数据包转发过程,转化为由OpenFlow交换机(OpenFlow Switch)和控制服务器(Controller)分别完成的独立过程,从而实现了网络流量的灵活控制。
OpenFlow交换机利用流表(Flow Table)来存储数据包的转发规则。流表包括匹配域(用于匹配数据包的关键字段key)和动作域(用于指示对数据包进行操作的操作指令action)。目前智能网卡(如DPU(Data Processing Unit,数据处理单元))可以实现流表的卸载,即利用卸载到智能网卡中的硬件流表对后续流量进行快速查找和转发处理,提升数据转发的效率。智能网卡中存储的硬件流表可以包括将多个流表串接起来组成的多级流表,多级流表中的每张表都有序号,数据包通过跳转指令按照流表序号递增的方向在多个流表之间进行匹配。
现有的多级流表中每个流表的匹配域是固定的,因而分配给流表匹配域的存储空间也是固定的,但有时流表匹配域中实际有效的字段并没有占用所有的存储空间,可能会产生内存空洞,因此会导致宝贵的硬件存储空间的浪费。
发明内容
为解决上述问题,本申请实施例公开了一种应用于DPU的报文传输方法及相关装置,可以在流表卸载后节省硬件存储空间。
第一方面,本申请提供一种应用于DPU的报文传输方法,所述方法包括:
通过硬件模块接收第一数据报文,确定所述第一数据报文的业务类型;
在确定所述硬件模块存储的流表中不存在与所述第一数据报文匹配的流表项的情况下,通过所述硬件模块将所述第一数据报文和所述第一数据报文的业务类型发送至软件模块;
通过所述软件模块获取所述第一数据报文对应的第一格式的流表,并根据所述第一数据报文的业务类型确定所述第一数据报文的有效匹配字段,所述第一格式的流表的第一匹配域占用的空间大小为预设数值;
通过所述软件模块根据所述第一数据报文的有效匹配字段,将所述第一格式的流表转换为第二格式的流表,其中,所述第二格式的流表的第二匹配域包括所述第一数据报文的业务类型和所述第一数据报文的有效匹配字段,所述第二匹配域占用的空间小于所述第一匹配域占用的空间;
通过所述软件模块将所述第一数据报文对应的第二格式的流表传输给所述硬件模块;
通过所述硬件模块根据所述第一数据报文对应的第二格式的流表,传输所述第一数据报文所属的数据流。
在一种可能的实施方式中,所述通过硬件模块接收第一数据报文,确定所述第一数据报文的业务类型,包括:
获取所述第一数据报文的标识信息,所述第一数据报文的标识信息包括所述第一数据报文的有效匹配字段;
根据所述标识信息,确定所述第一数据报文的业务类型。
在一种可能的实施方式中,所述通过所述硬件模块根据所述第一数据报文对应的第二格式的流表,传输所述第一数据报文所属的数据流,包括:
在接收到第二数据报文的情况下,通过所述硬件模块确定所述第二数据报文的业务类型,所述第二数据报文所属的数据流与所述第一数据报文所属的数据流相同;
根据所述第二数据报文的业务类型,查找所述硬件模块中存储的流表,所述硬件模块中存储的流表包括所述第一数据报文对应的所述第二格式的流表;
根据所述第一数据报文对应的所述第二格式的流表,对所述第二数据报文执行相应操作。
在一种可能的实施方式中,所述方法还包括:
在确定所述第一数据报文对应的第二格式的流表与所述软件模块中的第三数据报文对应的流表满足流表合并条件的情况下,通过所述软件模块将所述第一数据报文对应的第二格式的流表与所述第三数据报文对应的流表合并,获得目标流表;其中,所述流表合并条件包括:两个流表各自的匹配域具有重复字段,且合并后得到的流表占用的空间小于预设的单流表所占空间;
所述通过所述软件模块将所述第一数据报文对应的第二格式的流表传输给所述硬件模块,包括:
通过所述软件模块将所述目标流表传输给所述硬件模块;
所述通过所述硬件模块根据所述第一数据报文对应的第二格式的流表,传输所述第一数据报文所属的数据流,包括:
通过所述硬件模块根据所述目标流表,传输所述第一数据报文或所述第三数据报文所属的数据流。
在一种可能的实施方式中,所述目标流表的动作域中包括分隔标志,所述通过所述硬件模块根据所述目标流表,传输所述第一数据报文或所述第三数据报文所属的数据流,包括:
在接收到第四数据报文的情况下,通过所述硬件模块确定所述第四数据报文的业务类型和所述第四数据报文的有效匹配字段,所述第四数据报文所属的数据流与所述第一数据报文所属的数据流或所述第三数据报文的所属的数据流相同;
根据所述第四数据报文的业务类型查找所述硬件模块中存储的流表,所述硬件模块中存储的流表包括所述目标流表;
确定所述目标流表为所述第四数据报文匹配的流表;
在所述第四数据报文的有效匹配字段与所述目标流表中的匹配域包括的匹配字段完全相同的情况下,根据所述目标流表中的动作域,对所述第四数据报文执行相应操作;
在所述第四数据报文的有效匹配字段与所述目标流表中的匹配域包括的匹配字段部分相同的情况下,根据所述第四数据报文的有效匹配字段、所述目标流表的匹配域以及所述分隔标志,从所述目标流表的动作域中确定目标动作,对所述第四数据报文执行所述目标动作对应的操作,所述分隔标志用于区分所述第一数据报文和所述第三数据报文分别对应的动作。
在一种可能的实施方式中,所述目标流表的匹配域和动作域均包括两个分隔标志,所述根据所述第四数据报文的有效匹配字段、所述目标流表的匹配域以及所述分隔标志,从所述目标流表的动作域中确定目标动作,包括:
若所述第四数据报文的有效匹配字段包括所述目标流表的匹配域中的第一匹配字段和第二匹配字段,但不包括第三匹配字段,则将所述目标流表的动作域中第二个分隔标志之前的动作,确定为所述目标动作;其中,所述第一匹配字段包括所述匹配域的第一个分隔标志之前的字段,所述第二匹配字段包括所述匹配域的第一个分隔标志之后和第二个分隔标志之前的字段,所述第三匹配字段包括所述匹配域的第二个分隔标志之后的字段;
若所述第四数据报文的有效匹配字段包括所述目标流表的匹配域中的所述第一匹配字段和所述第三匹配字段,但不包括所述第二匹配字段,则将所述目标流表的动作域中第一个分隔标志之前的动作,以及第二个分隔标志之后的动作,确定为所述目标动作。
第二方面,本申请提供一种报文传输装置,包括:
接收单元,用于通过硬件模块接收第一数据报文;
第一确定单元,用于确定所述第一数据报文的业务类型;
发送单元,用于在确定所述硬件模块存储的流表中不存在与所述第一数据报文匹配的流表项的情况下,通过所述硬件模块将所述第一数据报文和所述第一数据报文的业务类型发送至软件模块;
获取单元,用于通过所述软件模块获取所述第一数据报文对应的第一格式的流表;
第二确定单元,用于根据所述第一数据报文的业务类型确定所述第一数据报文的有效匹配字段,所述第一格式的流表的第一匹配域占用的空间大小为预设数值;
转换单元,用于通过所述软件模块根据所述第一数据报文的有效匹配字段,将所述第一格式的流表转换为第二格式的流表,其中,所述第二格式的流表的第二匹配域包括所述第一数据报文的业务类型和所述第一数据报文的有效匹配字段,所述第二匹配域占用的空间小于所述第一匹配域占用的空间;
传输单元,用于通过所述软件模块将所述第一数据报文对应的第二格式的流表传输给所述硬件模块;
报文传输单元,用于通过所述硬件模块根据所述第一数据报文对应的第二格式的流表,传输所述第一数据报文所属的数据流。
在一种可能的设计中,所述第一确定单元具体用于:
获取所述第一数据报文的标识信息,所述第一数据报文的标识信息包括所述第一数据报文的有效匹配字段;
根据所述标识信息,确定所述第一数据报文的业务类型。
在一种可能的设计中,所述报文传输单元具体用于:
在接收到第二数据报文的情况下,通过所述硬件模块确定所述第二数据报文的业务类型,所述第二数据报文所属的数据流与所述第一数据报文所属的数据流相同;
根据所述第二数据报文的业务类型,查找所述硬件模块中存储的流表,所述硬件模块中存储的流表包括所述第一数据报文对应的所述第二格式的流表;
根据所述第一数据报文对应的所述第二格式的流表,对所述第二数据报文执行相应操作。
在一种可能的设计中,所述装置还包括:
合并单元,用于在确定所述第一数据报文对应的第二格式的流表与所述软件模块中的第三数据报文对应的流表满足流表合并条件的情况下,通过所述软件模块将所述第一数据报文对应的第二格式的流表与所述第三数据报文对应的流表合并,获得目标流表;其中,所述流表合并条件包括:两个流表各自的匹配域具有重复字段,且合并后得到的流表占用的空间小于预设的单流表所占空间;
所述传输单元具体用于:
通过所述软件模块将所述目标流表传输给所述硬件模块;
所述报文传输单元具体用于:
通过所述硬件模块根据所述目标流表,传输所述第一数据报文或所述第三数据报文所属的数据流。
在一种可能的设计中,所述目标流表的动作域中包括分隔标志,所述报文传输单元具体用于:
在接收到第四数据报文的情况下,通过所述硬件模块确定所述第四数据报文的业务类型和所述第四数据报文的有效匹配字段,所述第四数据报文所属的数据流与所述第一数据报文所属的数据流或所述第三数据报文的所属的数据流相同;
根据所述第四数据报文的业务类型查找所述硬件模块中存储的流表,所述硬件模块中存储的流表包括所述目标流表;
确定所述目标流表为所述第四数据报文匹配的流表;
在所述第四数据报文的有效匹配字段与所述目标流表中的匹配域包括的匹配字段完全相同的情况下,根据所述目标流表中的动作域,对所述第四数据报文执行相应操作;
在所述第四数据报文的有效匹配字段与所述目标流表中的匹配域包括的匹配字段部分相同的情况下,根据所述第四数据报文的有效匹配字段、所述目标流表的匹配域以及所述分隔标志,从所述目标流表的动作域中确定目标动作,对所述第四数据报文执行所述目标动作对应的操作,所述分隔标志用于区分所述第一数据报文和所述第三数据报文分别对应的动作。
在一种可能的设计中,所述目标流表的匹配域和动作域均包括两个分隔标志,所述报文传输单元具体用于:
若所述第四数据报文的有效匹配字段包括所述目标流表的匹配域中的第一匹配字段和第二匹配字段,但不包括第三匹配字段,则将所述目标流表的动作域中第二个分隔标志之前的动作,确定为所述目标动作;其中,所述第一匹配字段包括所述匹配域的第一个分隔标志之前的字段,所述第二匹配字段包括所述匹配域的第一个分隔标志之后和第二个分隔标志之前的字段,所述第三匹配字段包括所述匹配域的第二个分隔标志之后的字段;
若所述第四数据报文的有效匹配字段包括所述目标流表的匹配域中的所述第一匹配字段和所述第三匹配字段,但不包括所述第二匹配字段,则将所述目标流表的动作域中第一个分隔标志之前的动作,以及第二个分隔标志之后的动作,确定为所述目标动作。
第三方面,本申请提供一种电子设备,包括:存储器、处理器和网络接口,其中所述存储器、所述处理器和所述网络接口被相互可通信地连接;其中所述存储器存储有程序指令;所述程序指令被所述处理器执行时,使所述处理器执行如第一方面以及第一方面中任一可能的实现方式描述的方法。
第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序;当所述计算机程序在一个或多个处理器上运行时,执行如第一方面以及第一方面中任一可能的实现方式描述的方法。
本申请实施例中,通过硬件模块获取第一数据报文(即数据流首包)的业务类型并发送给软件模块;并在获取第一数据报文对应的第一格式的流表后,根据上述业务类型对应的有效匹配字段,将第一格式的流表转换为第二格式的流表,使得第二格式的流表的第二匹配域占用的空间小于第一格式的流表的第一匹配域占用的空间;再将第一数据报文对应的第二格式的流表传输给硬件模块以实现后续针对该数据流的传输。通过流表的格式转换,可以实现流表的动态压缩,减少因通配字段或内存空洞造成的空间浪费,在流表卸载后节省硬件存储空间。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的一种应用于DPU的报文传输方法的***结构图;
图2为本申请实施例提供的一种应用于DPU的报文传输方法的流程示意图;
图3a为本申请实施例提供的一种流表的匹配域的结构示意图;
图3b为现有技术中的一种流表的匹配域的结构示意图;
图3c为现有技术中的另一种流表的匹配域的结构示意图;
图4为本申请实施例提供的另一种应用于DPU的报文传输方法的流程示意图;
图5为本申请实施例提供的一种报文传输装置的结构示意图;
图6为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步详细描述。
本申请的说明书、权利要求书及附图中的术语“第一”和“第二”等仅用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、***、产品或设备等,没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元等,或可选地还包括对于这些过程、方法、产品或设备等固有的其它步骤或单元。
在本文中提及的“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现上述短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员可以显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上,“至少两个(项)”是指两个或三个及三个以上,“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”。
下面结合附图对本发明进行详细描述。
请参阅图1,图1为本申请实施例提供的一种应用于DPU的报文传输方法的***结构图。如图1所示,所述报文传输方法可以应用于报文传输装置/设备,此报文传输装置包括软件模块和硬件模块,其中,软件模块可以实现报文传输装置的流表管理功能,硬件模块可以实现该报文传输装置的数据快转功能。硬件模块可以包括但不限于现场可编程逻辑门阵列(Field Programmable Gate Array,FPGA)或者专用集成电路(Application SpecificIntegrated Circuit,ASIC)等,软件模块可以包括但不限于嵌入式处理器(Embedded CPU,ECPU)等。可理解的,上述报文传输装置可以为具有标准网卡功能和软件定义能力的DPU(Data Processing Unit,数据处理单元),上述DPU可以视为一种智能网卡,因而本申请提到的智能网卡不限制为狭义的普通智能网卡(Smart NIC)。
请参阅图2,图2为本申请实施例提供的一种应用于DPU的报文传输方法的流程示意图,如图2所示,该方法包括以下步骤201-步骤206:
步骤201,通过硬件模块接收第一数据报文,确定所述第一数据报文的业务类型。
一般情况下,数据报文通过上述报文传输装置的网络接口先进入上述硬件模块,而该硬件模块通过查找其中存储的硬件流表,确定是否存在与该数据报文匹配的流表项,然后根据查找结果来确定对数据报文的下一步操作。而本申请实施例中,为了方便进行流表查找,在接收第一数据报文后,确定第一数据报文的业务类型。该业务类型可以用于指示对数据报文的具体业务处理逻辑,示例性的,该业务类型可以包括但不限于二层转发业务、三层转发业务等。数据报文的业务类型不同,则对该数据报文进行流表匹配时关注的匹配字段(简称数据报文的有效匹配字段)不同,也就是说,数据报文的业务类型和数据报文的有效匹配字段具有对应关系,该对应关系可以预先确定并存储在上述报文传输装置的硬件模块和软件模块中。
在一个实施例中,通过硬件模块接收第一数据报文,确定所述第一数据报文的业务类型,可以包括以下步骤:获取所述第一数据报文的标识信息,所述第一数据报文的标识信息包括所述第一数据报文的有效匹配字段;根据所述标识信息,确定所述第一数据报文的业务类型。
具体的,第一数据报文的标识信息包括该第一数据报文的输入端口和第一数据报文本身的信息(即头部中包括的信息,如源MAC、目的MAC、源IP、目的IP、协议类型等)。根据第一数据报文的标识信息,可以确定第一数据报文的业务类型具体为哪一种。可理解的,上述第一数据报文的标识信息中包括上述有效匹配字段,也即包括流表匹配时需关注的匹配字段。
步骤202,在确定所述硬件模块存储的流表中不存在与所述第一数据报文匹配的流表项的情况下,通过所述硬件模块将所述第一数据报文和所述第一数据报文的业务类型发送至软件模块。
本申请实施例中,在确定所述硬件模块存储的流表中不存在与所述第一数据报文匹配的流表项的情况下,可以确定第一数据报文为数据流首包,此时报文传输装置的硬件模块可以将第一数据报文上送,以获得第一数据报文对应的流表。具体的,所述软件模块将第一数据报文和其业务类型一起发送至软件模块,以使得软件模块根据自身存储的流表规则或OpenFlow控制器下发的流表规则,获得第一数据报文对应的流表。
步骤203,通过所述软件模块获取所述第一数据报文对应的第一格式的流表,并根据所述第一数据报文的业务类型确定所述第一数据报文的有效匹配字段。
其中,所述第一格式的流表的第一匹配域占用的空间大小为预设数值。
本申请实施例中,软件模块根据自身存储的流表规则或OpenFlow控制器下发的流表规则,先获得第一数据报文对应的第一格式的流表,该第一格式的流表的第一匹配域占用的空间是预设的固定值,该固定值是预先分配给流表匹配域的,可以为80字节、40字节等。可理解的,当第一数据报文的有效匹配字段包括的字段的个数较少时,该第一格式的流表的第一匹配域占用的空间并没有完全被利用,可能存在内存空洞或被通配字段占用,后续将该第一格式的流表卸载到硬件模块可能会造成硬件模块中的空间浪费。
步骤204,通过所述软件模块根据所述第一数据报文的有效匹配字段,将所述第一格式的流表转换为第二格式的流表。
其中,所述第二格式的流表的第二匹配域包括所述第一数据报文的业务类型和所述第一数据报文的有效匹配字段,所述第二匹配域占用的空间小于所述第一匹配域占用的空间。
本申请实施例中,当第一数据报文的有效匹配字段包括的字段的个数较少时,可以将上述第一格式的流表转换为第二格式的流表,这两种格式的流表均用于表示对第一数据报文所属的数据流的转发规则,但是第二格式的流表的第二匹配域与第一格式的流表的第一匹配域相比,占用的空间更小。如图3a所示,第二格式的流表的第二匹配域中包括第一数据报文的业务类型和第一数据报文的有效匹配字段,而第一格式的流表的第一匹配域包括第一数据报文的有效匹配字段,还可能包括其他通配字段(如图3b),或者第一匹配域占用的内存中存在内存空洞(如图3c)。
步骤205,通过所述软件模块将所述第一数据报文对应的第二格式的流表传输给所述硬件模块。
本申请实施例中,获得上述第一数据报文的第二格式的流表后,可以将其传输给硬件模块,也即将该条流表卸载到硬件上,以便后续对第一数据报文所属的数据流进行硬件快转,提高转发效率。
步骤206,通过所述硬件模块根据所述第一数据报文对应的第二格式的流表,传输所述第一数据报文所属的数据流。
本申请实施例中,若后续硬件模块接收到第一数据报文所属的数据流中的其他数据报文,则利用该硬件模块中存储的上述第一数据报文对应的第二格式的流表,对这些数据报文进行相应转发操作。
具体的,所述通过所述硬件模块根据所述第一数据报文对应的第二格式的流表,传输所述第一数据报文所属的数据流,可以包括以下步骤:
在接收到第二数据报文的情况下,通过所述硬件模块确定所述第二数据报文的业务类型,所述第二数据报文所属的数据流与所述第一数据报文所属的数据流相同;
根据所述第二数据报文的业务类型,查找所述硬件模块中存储的流表,所述硬件模块中存储的流表包括所述第一数据报文对应的所述第二格式的流表;
根据所述第一数据报文对应的所述第二格式的流表,对所述第二数据报文执行相应操作。
可理解的,上述第二数据报文与第一数据报文所属的数据流相同,也即第二数据报文为所述第一数据报文所属的数据流中的其他数据报文,因此,在接收到第二数据报文的情况下,先确定第二数据报文的业务类型,然后根据该业务类型进行流表查找。由于第二数据报文和第一数据报文属于同一数据流,因此两者的业务类型相同。经过流表查找可以确定硬件模块中第二数据报文匹配的流表即为上述第一数据报文对应的第二格式的流表。根据该第一数据报文对应的第二格式的流表包括的动作域,对第二数据报文执行该动作域包括的动作所指示的相应操作。具体的,该操作包括但不限于转发到端口、转发到队列、丢弃、修改报文信息等操作。
本申请实施例中,通过硬件模块获取第一数据报文(即数据流首包)的业务类型并发送给软件模块;并在获取第一数据报文对应的第一格式的流表后,根据上述业务类型对应的有效匹配字段,将第一格式的流表转换为第二格式的流表,使得第二格式的流表的第二匹配域占用的空间小于第一格式的流表的第一匹配域占用的空间;再将第一数据报文对应的第二格式的流表传输给硬件模块以实现后续针对该数据流的传输。通过流表的格式转换,可以实现流表的动态压缩,减少因通配字段或内存空洞造成的空间浪费,在流表卸载后节省硬件存储空间。
本申请实施例还提供的另一种应用于DPU的报文传输方法,该报文传输方法可以在上述步骤201-步骤204之后执行,包括以下步骤401-步骤403,如图4所示,所述方法包括:
步骤401,在确定所述第一数据报文对应的第二格式的流表与所述软件模块中的第三数据报文对应的流表满足流表合并条件的情况下,通过所述软件模块将所述第一数据报文对应的第二格式的流表与所述第三数据报文对应的流表合并,获得目标流表。
其中,所述流表合并条件包括:两个流表各自的匹配域具有重复字段,且合并后得到的流表占用的空间小于预设的单流表所占空间。
本申请实施例中,在软件模块获得第一数据报文对应的第二格式的流表的情况下,进一步确定软件模块中存储的其他流表是否与该第一数据报文对应的第二格式的流表满足流表合并条件,若确定满足流表合并条件,则不执行上述步骤205-步骤206,即不直接将第一数据报文对应的第二格式的流表传输给硬件模块,而是执行步骤401-步骤403,将流表进行合并,得到目标流表后再传输给硬件模块,以进一步节省硬件模块中的存储资源。可理解的,一般在两条流表较短且合并后能节省空间的情况下,才进行合并,因此在合并前需要判断是否满足上述流表合并条件,从而保证合并后得到的流表(即目标流表)比合并前的两个流表所占用的空间更少。
此外,由于第一数据报文对应的第二格式的流表的第二匹配域中包括业务类型,而第三数据报文对应的流表的匹配域中也包括业务类型,因此合并后得到的目标流表也包括业务类型。目标流表的业务类型可以为合并前的两个流表的业务类型的集合,以便于后续接收到第一数据报文所属的数据流或第三数据报文所属的数据流时根据数据报文的业务类型进行流表查找时可以命中目标流表;目标流表的业务类型也可以为与合并前的两个流表的业务类型都不同的新业务类型,但该目标流表的业务类型和合并前的两个流表的业务类型均满足匹配关系,且该匹配关系预先存储在硬件模块和软件模块中,以便于后续接收到第一数据报文所属的数据流或第三数据报文所属的数据流时根据数据报文的业务类型进行流表查找时可以命中目标流表。
步骤402,通过所述软件模块将所述目标流表传输给所述硬件模块。
本申请实施例中,在进行流表合并之后,获得目标流表,可以将目标流表传输给硬件模块,以便后续根据该目标流表对同一数据流的其他数据报文进行相应操作。
步骤403,通过所述硬件模块根据所述目标流表,传输所述第一数据报文或所述第三数据报文所属的数据流。
本申请实施例中,硬件流表获得目标流表后,可以根据该目标流表来传输第一数据报文或第三数据报文所属的数据流。
在一个实施例中,所述目标流表的动作域中包括分隔标志,所述通过所述硬件模块根据所述目标流表,传输所述第一数据报文或所述第三数据报文所属的数据流,包括以下步骤:
在接收到第四数据报文的情况下,通过所述硬件模块确定所述第四数据报文的业务类型和所述第四数据报文的有效匹配字段,所述第四数据报文所属的数据流与所述第一数据报文所属的数据流或所述第三数据报文的所属的数据流相同;
根据所述第四数据报文的业务类型查找所述硬件模块中存储的流表,所述硬件模块中存储的流表包括所述目标流表;
确定所述目标流表为所述第四数据报文匹配的流表;
在所述第四数据报文的有效匹配字段与所述目标流表中的匹配域包括的匹配字段完全相同的情况下,根据所述目标流表中的动作域,对所述第四数据报文执行相应操作;
在所述第四数据报文的有效匹配字段与所述目标流表中的匹配域包括的匹配字段部分相同的情况下,根据所述第四数据报文的有效匹配字段、所述目标流表的匹配域以及所述分隔标志,从所述目标流表中的动作域中确定目标动作,对所述第四数据报文执行所述目标动作对应的操作,所述分隔标志用于区分所述第一数据报文和所述第三数据报文分别对应的动作。
具体的,目标流表为合并后的流表,而合并前的两个流表可以分为以下情况:(1)某一个流表的匹配域中的所有匹配字段(这里的匹配字段不包括业务类型)均包含于另一个流表的匹配域;(2)两个流表的匹配域具有重复的匹配字段,也各自有其他不同的匹配字段。那么,情况(1)对应的目标流表的匹配域包括的匹配字段=合并前的其中一个流表(该流表匹配域包括另一个流表的匹配域中的匹配字段)的匹配域包括的匹配字段,情况(2)对应的目标流表的匹配域包括的匹配字段=合并前的两个流表的匹配域包括的匹配字段之和(目标流表中每个匹配字段都不重复)。因此,第四数据报文的有效匹配字段可以与目标流表中的匹配域包括的匹配字段完全相同,或者,第四数据报文的有效匹配字段也可以与目标流表中的匹配域包括的匹配字段部分相同。
在完全相同的情况下,直接可以执行目标流表的动作域中包括的动作。
而在部分相同的情况下,需要确定目标流表的动作域中哪些动作为目标动作,再根据目标动作执行相应操作。可理解的,上述目标动作与目标流表的动作域中的分隔标志有关,也就是说,目标流表通过设置分隔标志将动作域中包括的动作进行区分,方便第四数据报文根据其所属的数据流,在目标流表中的动作域找到对应的动作。
在一个实施例中,所述目标流表的匹配域和动作域均包括两个分隔标志,所述根据所述第四数据报文的有效匹配字段、所述目标流表的匹配域以及所述分隔标志,从所述目标流表的动作域中确定目标动作,包括以下过程:
若所述第四数据报文的有效匹配字段包括所述目标流表的匹配域中的第一匹配字段和第二匹配字段,但不包括第三匹配字段,则将所述目标流表的动作域中第二个分隔标志之前的动作,确定为所述目标动作;其中,所述第一匹配字段包括所述匹配域的第一个分隔标志之前的字段,所述第二匹配字段包括所述匹配域的第一个分隔标志之后和第二个分隔标志之前的字段,所述第三匹配字段包括所述匹配域的第二个分隔标志之后的字段;
若所述第四数据报文的有效匹配字段包括所述目标流表的匹配域中的所述第一匹配字段和所述第三匹配字段,但不包括所述第二匹配字段,则将所述目标流表的动作域中第一个分隔标志之前的动作,以及第二个分隔标志之后的动作,确定为所述目标动作。
具体的,上述目标流表的匹配域和动作域包括的分隔标志可以是占用较少空间(例如1bit)的特殊标志。而上述目标流表的匹配域包括的两个分隔标志可以是表现形式相同的标志,但它们所处的位置不同。通过识别目标流表匹配域中分隔标志的位置,可以确定匹配字段与哪个数据流(如第一数据报文或第三数据报文所属的数据流)对应。可理解的,上述目标流表匹配域中的第一匹配字段,可以对应为上述合并前的两个流表的匹配域包括的重复的匹配字段;而第二匹配字段,对应为合并前某流表(这里简称A流表)匹配域包括的除重复的匹配字段之外的其他匹配字段;第三匹配字段,对应为合并前另一个流表(这里简称B流表)匹配域包括的除重复的匹配字段之外的其他匹配字段。两个分隔标志分别位于第一匹配字段与第二匹配字段之间、第二匹配字段和第三匹配字段之间。这样,利用目标流表中的两个分隔标志实现了对第一匹配字段、第二匹配字段和第三匹配字段的分隔。可理解的,若合并前的某一个流表的匹配域包括的匹配字段均包含于另一个流表的匹配域,那么第二匹配字段或第三匹配字段可能不包含任何匹配字段,此时两个分隔标记依然存在,本申请不对第二匹配字段和第三匹配字段包括的匹配字段个数进行限制。
相应的,上述目标流表的动作域中的两个分隔标志可以与上述匹配域中的两个分隔标志对应,即第一个分隔标志之前的动作,对应为未合并的两个流表的动作域包括的重复的动作;第一个分隔标志之后,第二个分隔标志之前的动作,对应为其中一个流表(A流表)的动作域包括的除上述重复的动作外的独有动作;而第二个分隔标志之后的动作,对应为另一个流表(B流表)的动作域包括的除上述重复的动作外的独有动作。因此,可以根据上述第四数据报文的有效匹配字段和目标流表的匹配域包括的匹配字段之间的匹配关系,从目标流表的动作域中确定目标动作,从而实现根据命中的合并后的流表对第四数据报文进行相应操作,达到既能实现流表的查找转发作用,又能节省硬件存储空间的效果。
在一个实施例中,上述目标流表的匹配域还可以包括第一位置信息和第二位置信息,而目标流表的动作域还可以包括第三位置信息和第四位置信息,其中,上述四个位置信息分别指示上述合并前的两个流表包括的匹配字段和动作的长度,第一位置信息和第三位置信息与合并前的其中一个流表相关(A流表),第二位置信息和第四位置信息与合并前的另一个流表相关(B流表)。示例性的,上述第一位置信息、第二位置信息、第三位置信息、第四位置信息均可以为偏移值offset。
本实施例中,通过利用目标流表的匹配域和动作域中的分隔标志来区分合并前的两个流表各自的匹配字段和动作,并结合第一位置信息、第二位置信息、第三位置信息以及第四位置信息快速确定匹配字段和动作的位置,便于找到与第一数据报文或第三数据报文对应的目标动作,进而可以依据目标流表来对第四数据报文进行相应的转发操作,在实现流表合并节省硬件存储空间的情况下保证流表的查找准确性和查找效率。
可理解的,上述步骤401-步骤403也可单独执行,即在软件模块中的流表满足流表合并条件的情况下,即进行流表合并,这样可以实现节省存储空间的目的。
本申请实施例中,针对已完成动态压缩的第一数据报文对应的第二格式的流表,若确定该流表与软件模块中的其他流表进一步满足流表合并条件,则将两个流表进行合并,再下发至硬件模块,从而可以节省硬件存储空间。
请参阅图5,图5为本申请实施例提供的一种报文传输装置的结构示意图,如图5所示,该报文传输装置包括:
接收单元501,用于通过硬件模块接收第一数据报文;
第一确定单元502,用于确定所述第一数据报文的业务类型;
发送单元503,用于在确定所述硬件模块存储的流表中不存在与所述第一数据报文匹配的流表项的情况下,通过所述硬件模块将所述第一数据报文和所述第一数据报文的业务类型发送至软件模块;
获取单元504,用于通过所述软件模块获取所述第一数据报文对应的第一格式的流表;
第二确定单元505,用于根据所述第一数据报文的业务类型确定所述第一数据报文的有效匹配字段,所述第一格式的流表的第一匹配域占用的空间大小为预设数值;
转换单元506,用于通过所述软件模块根据所述第一数据报文的有效匹配字段,将所述第一格式的流表转换为第二格式的流表,其中,所述第二格式的流表的第二匹配域包括所述第一数据报文的业务类型和所述第一数据报文的有效匹配字段,所述第二匹配域占用的空间小于所述第一匹配域占用的空间;
传输单元507,用于通过所述软件模块将所述第一数据报文对应的第二格式的流表传输给所述硬件模块;
报文传输单元508,用于通过所述硬件模块根据所述第一数据报文对应的第二格式的流表,传输所述第一数据报文所属的数据流。
在一种可能的设计中,所述第一确定单元502具体用于:
获取所述第一数据报文的标识信息,所述第一数据报文的标识信息包括所述第一数据报文的有效匹配字段;
根据所述标识信息,确定所述第一数据报文的业务类型。
在一种可能的设计中,所述报文传输单元508具体用于:
在接收到第二数据报文的情况下,通过所述硬件模块确定所述第二数据报文的业务类型,所述第二数据报文所属的数据流与所述第一数据报文所属的数据流相同;
根据所述第二数据报文的业务类型,查找所述硬件模块中存储的流表,所述硬件模块中存储的流表包括所述第一数据报文对应的所述第二格式的流表;
根据所述第一数据报文对应的所述第二格式的流表,对所述第二数据报文执行相应操作。
在一种可能的设计中,所述装置还包括:
合并单元,用于在确定所述第一数据报文对应的第二格式的流表与所述软件模块中的第三数据报文对应的流表满足流表合并条件的情况下,通过所述软件模块将所述第一数据报文对应的第二格式的流表与所述第三数据报文对应的流表合并,获得目标流表;其中,所述流表合并条件包括:两个流表各自的匹配域具有重复字段,且合并后得到的流表占用的空间小于预设的单流表所占空间;
所述传输单元507具体用于:
通过所述软件模块将所述目标流表传输给所述硬件模块;
所述报文传输单元508具体用于:
通过所述硬件模块根据所述目标流表,传输所述第一数据报文或所述第三数据报文所属的数据流。
在一种可能的设计中,所述目标流表的动作域中包括分隔标志,所述报文传输单元508具体用于:
在接收到第四数据报文的情况下,通过所述硬件模块确定所述第四数据报文的业务类型和所述第四数据报文的有效匹配字段,所述第四数据报文所属的数据流与所述第一数据报文所属的数据流或所述第三数据报文的所属的数据流相同;
根据所述第四数据报文的业务类型查找所述硬件模块中存储的流表,所述硬件模块中存储的流表包括所述目标流表;
确定所述目标流表为所述第四数据报文匹配的流表;
在所述第四数据报文的有效匹配字段与所述目标流表中的匹配域包括的匹配字段完全相同的情况下,根据所述目标流表中的动作域,对所述第四数据报文执行相应操作;
在所述第四数据报文的有效匹配字段与所述目标流表中的匹配域包括的匹配字段部分相同的情况下,根据所述第四数据报文的有效匹配字段、所述目标流表的匹配域以及所述分隔标志,从所述目标流表的动作域中确定目标动作,对所述第四数据报文执行所述目标动作对应的操作,所述分隔标志用于区分所述第一数据报文和所述第三数据报文分别对应的动作。
在一种可能的设计中,所述目标流表的匹配域和动作域均包括两个分隔标志,所述报文传输单元508具体用于:
若所述第四数据报文的有效匹配字段包括所述目标流表的匹配域中的第一匹配字段和第二匹配字段,但不包括第三匹配字段,则将所述目标流表的动作域中第二个分隔标志之前的动作,确定为所述目标动作;其中,所述第一匹配字段包括所述匹配域的第一个分隔标志之前的字段,所述第二匹配字段包括所述匹配域的第一个分隔标志之后和第二个分隔标志之前的字段,所述第三匹配字段包括所述匹配域的第二个分隔标志之后的字段;
若所述第四数据报文的有效匹配字段包括所述目标流表的匹配域中的所述第一匹配字段和所述第三匹配字段,但不包括所述第二匹配字段,则将所述目标流表的动作域中第一个分隔标志之前的动作,以及第二个分隔标志之后的动作,确定为所述目标动作。
请参阅图6,图6为本申请实施例提供的一种电子设备的结构示意图。如图6所示,上述电子设备包括存储器601、处理器602和网络接口603。其中,该存储器601、处理器602和网络接口603通过总线实现彼此之间的通信连接。电子设备可以为上述图1中的报文传输装置。
其中,存储器601用于提供存储空间,存储空间中可以存储操作***和计算机程序等数据。存储器601包括但不限于是随机存储记忆体(random access memory,RAM)、只读存储器(read-only memory,ROM)、可擦除可编程只读存储器(erasable programmable readonly memory,EPROM)、或便携式只读存储器(compact disc read-only memory,CD-ROM)。该存储器601用于存储应用程序及数据。
处理器602是进行算术运算和逻辑运算的模块,可以是中央处理器(centralprocessing unit,CPU)、显卡处理器(graphics processing unit,GPU)、嵌入式处理器或微处理器(microprocessor unit,MPU)等处理模块中的一种或者多种的组合。
存储器601中存储有计算机程序,处理器602调用存储器601中存储的计算机程序,使电子设备实现如本申请上述各实施例所示的报文传输方法。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当该计算机程序在一个或多个处理器上运行时,可以实现上述方法实施例所示的方法。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法、装置和***,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的;例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式;例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解实现该实施例方法中的全部或部分流程,该流程可以由计算机程序来指令相关的硬件完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如该各方法实施例的流程。而前述的存储介质包括:ROM或随机存储记忆体RAM、磁碟或者光盘等各种可存储程序代码的介质。

Claims (10)

1.一种应用于DPU的报文传输方法,其特征在于,所述方法包括:
通过硬件模块接收第一数据报文,确定所述第一数据报文的业务类型;
在确定所述硬件模块存储的流表中不存在与所述第一数据报文匹配的流表项的情况下,通过所述硬件模块将所述第一数据报文和所述第一数据报文的业务类型发送至软件模块;
通过所述软件模块获取所述第一数据报文对应的第一格式的流表,并根据所述第一数据报文的业务类型确定所述第一数据报文的有效匹配字段,所述第一格式的流表的第一匹配域占用的空间大小为预设数值;
通过所述软件模块根据所述第一数据报文的有效匹配字段,将所述第一格式的流表转换为第二格式的流表,其中,所述第二格式的流表的第二匹配域包括所述第一数据报文的业务类型和所述第一数据报文的有效匹配字段,所述第二匹配域占用的空间小于所述第一匹配域占用的空间;
通过所述软件模块将所述第一数据报文对应的第二格式的流表传输给所述硬件模块;
通过所述硬件模块根据所述第一数据报文对应的第二格式的流表,传输所述第一数据报文所属的数据流。
2.如权利要求1所述的方法,其特征在于,所述通过硬件模块接收第一数据报文,确定所述第一数据报文的业务类型,包括:
获取所述第一数据报文的标识信息,所述第一数据报文的标识信息包括所述第一数据报文的有效匹配字段;
根据所述标识信息,确定所述第一数据报文的业务类型。
3.如权利要求1或2所述的方法,其特征在于,所述通过所述硬件模块根据所述第一数据报文对应的第二格式的流表,传输所述第一数据报文所属的数据流,包括:
在接收到第二数据报文的情况下,通过所述硬件模块确定所述第二数据报文的业务类型,所述第二数据报文所属的数据流与所述第一数据报文所属的数据流相同;
根据所述第二数据报文的业务类型,查找所述硬件模块中存储的流表,所述硬件模块中存储的流表包括所述第一数据报文对应的所述第二格式的流表;
根据所述第一数据报文对应的所述第二格式的流表,对所述第二数据报文执行相应操作。
4.如权利要求1或2所述的方法,其特征在于,所述方法还包括:
在确定所述第一数据报文对应的第二格式的流表与所述软件模块中的第三数据报文对应的流表满足流表合并条件的情况下,通过所述软件模块将所述第一数据报文对应的第二格式的流表与所述第三数据报文对应的流表合并,获得目标流表;其中,所述流表合并条件包括:两个流表各自的匹配域具有重复字段,且合并后得到的流表占用的空间小于预设的单流表所占空间;
所述通过所述软件模块将所述第一数据报文对应的第二格式的流表传输给所述硬件模块,包括:
通过所述软件模块将所述目标流表传输给所述硬件模块;
所述通过所述硬件模块根据所述第一数据报文对应的第二格式的流表,传输所述第一数据报文所属的数据流,包括:
通过所述硬件模块根据所述目标流表,传输所述第一数据报文或所述第三数据报文所属的数据流。
5.如权利要求4所述的方法,其特征在于,所述目标流表的动作域中包括分隔标志,所述通过所述硬件模块根据所述目标流表,传输所述第一数据报文或所述第三数据报文所属的数据流,包括:
在接收到第四数据报文的情况下,通过所述硬件模块确定所述第四数据报文的业务类型和所述第四数据报文的有效匹配字段,所述第四数据报文所属的数据流与所述第一数据报文所属的数据流或所述第三数据报文的所属的数据流相同;
根据所述第四数据报文的业务类型查找所述硬件模块中存储的流表,所述硬件模块中存储的流表包括所述目标流表;
确定所述目标流表为所述第四数据报文匹配的流表;
在所述第四数据报文的有效匹配字段与所述目标流表中的匹配域包括的匹配字段完全相同的情况下,根据所述目标流表中的动作域,对所述第四数据报文执行相应操作;
在所述第四数据报文的有效匹配字段与所述目标流表中的匹配域包括的匹配字段部分相同的情况下,根据所述第四数据报文的有效匹配字段、所述目标流表的匹配域以及所述分隔标志,从所述目标流表的动作域中确定目标动作,对所述第四数据报文执行所述目标动作对应的操作,所述分隔标志用于区分所述第一数据报文和所述第三数据报文分别对应的动作。
6.如权利要求5所述的方法,其特征在于,所述目标流表的匹配域和动作域均包括两个分隔标志,所述根据所述第四数据报文的有效匹配字段、所述目标流表的匹配域以及所述分隔标志,从所述目标流表的动作域中确定目标动作,包括:
若所述第四数据报文的有效匹配字段包括所述目标流表的匹配域中的第一匹配字段和第二匹配字段,但不包括第三匹配字段,则将所述目标流表的动作域中第二个分隔标志之前的动作,确定为所述目标动作;其中,所述第一匹配字段包括所述匹配域的第一个分隔标志之前的字段,所述第二匹配字段包括所述匹配域的第一个分隔标志之后和第二个分隔标志之前的字段,所述第三匹配字段包括所述匹配域的第二个分隔标志之后的字段;
若所述第四数据报文的有效匹配字段包括所述目标流表的匹配域中的所述第一匹配字段和所述第三匹配字段,但不包括所述第二匹配字段,则将所述目标流表的动作域中第一个分隔标志之前的动作,以及第二个分隔标志之后的动作,确定为所述目标动作。
7.一种报文传输装置,其特征在于,包括:
接收单元,用于通过硬件模块接收第一数据报文;
第一确定单元,用于确定所述第一数据报文的业务类型;
发送单元,用于在确定所述硬件模块存储的流表中不存在与所述第一数据报文匹配的流表项的情况下,通过所述硬件模块将所述第一数据报文和所述第一数据报文的业务类型发送至软件模块;
获取单元,用于通过所述软件模块获取所述第一数据报文对应的第一格式的流表;
第二确定单元,用于根据所述第一数据报文的业务类型确定所述第一数据报文的有效匹配字段,所述第一格式的流表的第一匹配域占用的空间大小为预设数值;
转换单元,用于通过所述软件模块根据所述第一数据报文的有效匹配字段,将所述第一格式的流表转换为第二格式的流表,其中,所述第二格式的流表的第二匹配域包括所述第一数据报文的业务类型和所述第一数据报文的有效匹配字段,所述第二匹配域占用的空间小于所述第一匹配域占用的空间;
传输单元,用于通过所述软件模块将所述第一数据报文对应的第二格式的流表传输给所述硬件模块;
报文传输单元,用于通过所述硬件模块根据所述第一数据报文对应的第二格式的流表,传输所述第一数据报文所属的数据流。
8.如权利要求7所述的报文传输装置,其特征在于,还包括:
合并单元,用于在确定所述第一数据报文对应的第二格式的流表与所述软件模块中的第三数据报文对应的流表满足流表合并条件的情况下,通过所述软件模块将所述第一数据报文对应的第二格式的流表与所述第三数据报文对应的流表合并,获得目标流表;其中,所述流表合并条件包括:两个流表各自的匹配域具有重复字段,且合并后得到的流表占用的空间小于预设的单流表所占空间;
所述传输单元,具体用于:
通过所述软件模块将所述目标流表传输给所述硬件模块;
所述报文传输单元,具体用于:
通过所述硬件模块根据所述目标流表,传输所述第一数据报文或所述第三数据报文所属的数据流。
9.一种电子设备,其特征在于,包括:存储器、处理器和网络接口,其中所述存储器、所述处理器和所述网络接口被相互可通信地连接;其中所述存储器存储有程序指令;所述程序指令被所述处理器执行时,使所述处理器执行如权利要求1-6中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序;当所述计算机程序在一个或多个处理器上运行时,执行如权利要求1-6中任一项所述的方法的步骤。
CN202210484748.8A 2022-05-06 2022-05-06 应用于dpu的报文传输方法及相关装置 Active CN114726788B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210484748.8A CN114726788B (zh) 2022-05-06 2022-05-06 应用于dpu的报文传输方法及相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210484748.8A CN114726788B (zh) 2022-05-06 2022-05-06 应用于dpu的报文传输方法及相关装置

Publications (2)

Publication Number Publication Date
CN114726788A true CN114726788A (zh) 2022-07-08
CN114726788B CN114726788B (zh) 2024-02-02

Family

ID=82230629

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210484748.8A Active CN114726788B (zh) 2022-05-06 2022-05-06 应用于dpu的报文传输方法及相关装置

Country Status (1)

Country Link
CN (1) CN114726788B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115099978A (zh) * 2022-08-25 2022-09-23 深圳星云智联科技有限公司 一种数据处理方法及装置
CN115150203A (zh) * 2022-09-02 2022-10-04 珠海星云智联科技有限公司 数据处理的方法、装置、计算机设备和存储介质
CN115460145A (zh) * 2022-08-15 2022-12-09 阿里云计算有限公司 转发规则下发方法、智能网卡及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104702509A (zh) * 2015-03-31 2015-06-10 杭州华三通信技术有限公司 一种隔离sdn协议报文和数据报文的方法及装置
CN105515965A (zh) * 2014-09-25 2016-04-20 杭州华为数字技术有限公司 一种传输数据的方法及传输设备
US20170111259A1 (en) * 2014-06-30 2017-04-20 Huawei Technologies Co.,Ltd. Flow entry configuration method, apparatus, and system
CN109962832A (zh) * 2017-12-26 2019-07-02 华为技术有限公司 报文处理的方法和装置
CN111510329A (zh) * 2020-04-10 2020-08-07 全球能源互联网研究院有限公司 一种电力sdn控制器中处理报文的方法及流表匹配模块
CN111740909A (zh) * 2020-06-19 2020-10-02 联想(北京)有限公司 一种报文处理方法、装置、网络传输设备及报文处理***
CN112866111A (zh) * 2019-11-28 2021-05-28 北京京东尚科信息技术有限公司 流表管理的方法和装置
CN113542125A (zh) * 2018-03-31 2021-10-22 华为技术有限公司 一种基于集成流表转发报文的方法及装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170111259A1 (en) * 2014-06-30 2017-04-20 Huawei Technologies Co.,Ltd. Flow entry configuration method, apparatus, and system
CN105515965A (zh) * 2014-09-25 2016-04-20 杭州华为数字技术有限公司 一种传输数据的方法及传输设备
CN104702509A (zh) * 2015-03-31 2015-06-10 杭州华三通信技术有限公司 一种隔离sdn协议报文和数据报文的方法及装置
CN109962832A (zh) * 2017-12-26 2019-07-02 华为技术有限公司 报文处理的方法和装置
CN113542125A (zh) * 2018-03-31 2021-10-22 华为技术有限公司 一种基于集成流表转发报文的方法及装置
CN112866111A (zh) * 2019-11-28 2021-05-28 北京京东尚科信息技术有限公司 流表管理的方法和装置
CN111510329A (zh) * 2020-04-10 2020-08-07 全球能源互联网研究院有限公司 一种电力sdn控制器中处理报文的方法及流表匹配模块
CN111740909A (zh) * 2020-06-19 2020-10-02 联想(北京)有限公司 一种报文处理方法、装置、网络传输设备及报文处理***

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115460145A (zh) * 2022-08-15 2022-12-09 阿里云计算有限公司 转发规则下发方法、智能网卡及存储介质
WO2024037366A1 (zh) * 2022-08-15 2024-02-22 阿里云计算有限公司 转发规则下发方法、智能网卡及存储介质
CN115099978A (zh) * 2022-08-25 2022-09-23 深圳星云智联科技有限公司 一种数据处理方法及装置
CN115150203A (zh) * 2022-09-02 2022-10-04 珠海星云智联科技有限公司 数据处理的方法、装置、计算机设备和存储介质
CN115150203B (zh) * 2022-09-02 2022-11-15 珠海星云智联科技有限公司 数据处理的方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
CN114726788B (zh) 2024-02-02

Similar Documents

Publication Publication Date Title
CN114726788A (zh) 应用于dpu的报文传输方法及相关装置
CN102104541B (zh) 报头处理引擎
US10432506B2 (en) Data processing method and apparatus
US9774532B2 (en) Information processing system, information processing apparatus and control method of information processing system
CN107295036A (zh) 一种数据发送方法及数据合并设备
CN113746749A (zh) 网络连接设备
CN109525495B (zh) 一种数据处理装置、方法和fpga板卡
CN114285781B (zh) Srv6业务流量统计方法、装置、电子设备及介质
CN111294235A (zh) 数据处理方法、装置、网关及可读存储介质
CN111740910A (zh) 一种报文处理方法、装置、网络传输设备及报文处理***
CN112702254B (zh) 报文处理方法、装置及电子设备
CN116074253B (zh) 一种报文链式转发方法及装置
CN114363256A (zh) 基于网卡的报文解析方法以及相关装置
CN116886789A (zh) 数据传输方法、装置、设备及介质
CN113259271B (zh) 报文交换方法和报文交换***
CN113839874A (zh) 一种获取路由表项的方法和装置
CN113596038B (zh) 数据包解析的方法和服务器
CN108234359B (zh) 传输报文的***和方法
EP4203395A1 (en) Packet forwarding method and apparatus, and computer-readable storage medium
CN112367261B (zh) 一种报文转发方法及装置、分布式设备
CN112866208B (zh) 表项配置方法、报文处理方法、装置、设备及存储介质
CN115460145A (zh) 转发规则下发方法、智能网卡及存储介质
CN115277641A (zh) 地址共享方法及装置、电子设备、存储介质
CN115278395A (zh) 一种网络交换设备、数据流处理控制方法及相关设备
CN114143385A (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