CN105282133B - 从分组内容形成哈希输入的方法及其装置 - Google Patents

从分组内容形成哈希输入的方法及其装置 Download PDF

Info

Publication number
CN105282133B
CN105282133B CN201510236798.4A CN201510236798A CN105282133B CN 105282133 B CN105282133 B CN 105282133B CN 201510236798 A CN201510236798 A CN 201510236798A CN 105282133 B CN105282133 B CN 105282133B
Authority
CN
China
Prior art keywords
protocol
layer
hash
fields
extended
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
CN201510236798.4A
Other languages
English (en)
Other versions
CN105282133A (zh
Inventor
V·阿南德
T·丹尼尔
G·施密特
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.)
Kaiwei International Co
Marvell Asia Pte Ltd
Original Assignee
Marvell Asia Pte 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 Marvell Asia Pte Ltd filed Critical Marvell Asia Pte Ltd
Publication of CN105282133A publication Critical patent/CN105282133A/zh
Application granted granted Critical
Publication of CN105282133B publication Critical patent/CN105282133B/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
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/12Protocol engines
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/324Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the data link layer [OSI layer 2], e.g. HDLC

Abstract

用于从分组内容形成哈希输入的装置的实施例涉及一种用于形成哈希输入的可编程灵活解决方案,允许硬件改变以及随着将来定义更新的协议和在将来定义更新的协议时添加对于它们的支持。分组被拆分成个别层。每层被给予有助于标识该层是什么的唯一的层类型编号。基于层类型,每层被扩展成通用格式。每层具有对该层通用的哈希命令集。每个哈希命令的字段是fieldOffset、fieldLen、hashMask和hashMaskMSB。这些哈希命令允许以可编程方式提取分组中的信息。从分组的每个协议层提取的字段被级联以形成哈希层。位矢量指示哪些哈希层被用来形成哈希输入。

Description

从分组内容形成哈希输入的方法及其装置
技术领域
本发明涉及网络分组。更具体地,本发明涉及一种从分组内容形成哈希输入的方法及其装置。
背景技术
在以太网交换机中,经常需要形成用于在交换机接收的每个传入分组的唯一签名。可以在等成本多路径路由(ECMP)中使用该唯一签名,其中可以沿着多个不同目的地路径发送来自相同源的分组。为了形成这一唯一签名,当前基于硬件的实现方式定义分组中的哪些固定字段应当用作哈希输入。
发明内容
用于从分组内容形成哈希输入的装置的实施例涉及一种用于形成哈希输入的可编程的灵活解决方案。这一解决方案允许基于不同要求的硬件改变,以及随着将来定义更新的协议和在将来定义更新的协议时添加对于它们的支持。分组被拆分成个别层。每层被给予有助于标识该层是什么的唯一的层类型编号。基于层类型,每层被扩展成通用格式。每层具有该层通用的哈希命令的集合。每个哈希命令的字段是fieldOffset、fieldLen、hashMask和hashMaskMSB。这些哈希命令允许分组中的信息以可编程的方式被提取。从分组的每个协议层提取的字段被级联以形成哈希层。位矢量指示哪些哈希层用来形成哈希输入。
在一个方面中,提供一种实施解析器引擎的方法。该方法包括:标识分组的协议层;基于协议层中的每个协议层的标识将该协议层扩展成通用格式;以及从经扩展的协议层选择内容。
在一些实施例中,分组的协议层中的每个协议层基于该协议层的唯一的层类型编号而被标识。
在一些实施例中,通用格式定义协议层能够具有的所有字段的超集。
在一些实施例中,扩展协议层中的每个协议层包括:维持用于经扩展的协议层的位矢量,其中位矢量包括用于经扩展的协议层的每个字节的每字节的位;对于每个有效字段的每个字节将位标记为可用,其中每个有效字段是在分组的协议层中存在的字段;以及对于每个无效字段的每个字节将位标记为不可用,其中每个无效字段是在分组的协议层中不存在的字段。
在一些实施例中,该方法也包括使用压缩格式来表达经扩展的协议层。
在一些实施例中,该方法也包括将来自通用哈希命令的集合的至少一个通用哈希命令应用于经扩展的协议层以从经扩展的协议层提取字段。通用哈希命令中的每个通用哈希命令的字段是fieldOffset、fieldLen、hashMask和hashMaskMSB;fieldOffset指定将被提取的字段在所述经扩展的层内开始的偏移,fieldLen指定应当从该指定的偏移提取的字节的数目,hashMask是位掩码,并且hashMaskMSB指示所述位掩码是否将被应用于所提取的字段的最高有效字节或者最低有效字节。在一些实施例中,通用哈希命令中的每个通用哈希命令的字段是软件定义的。
在一些实施例中,该方法也包括:对位掩码和所提取的字段的一个字节应用逻辑AND运算,其中位掩码由至少一个哈希命令指定;至少基于逻辑AND运算的结果形成哈希输入层;以及检索位矢量,该位矢量指示经扩展的协议层中的哪些哈希输入层将用来形成向哈希函数的哈希输入。在一些实施例中,该方法也包括使用哈希输入作为向哈希函数的输入。
在另一方面中,提供一种实施网络交换机的方法。该方法包括:在网络交换机的传入端口接收分组;根据用于对应协议的通用格式来通式化分组的每个协议头部;对于每个经通式化的协议头部,从经通式化的协议头部提取一个或者多个字段;对于每个经通式化的协议头部,级联来自经通式化的协议头部的一个或者多个提取的字段以形成哈希层;以及使用位矢量以确定所有经扩展的协议层头部中的哪些哈希层将被选择用以形成哈希输入。
在一些实施例中,网络交换机包括:解析器引擎,被配置为通式化每个协议头部,从经通式化的协议头部提取一个或者多个字段,级联来自经通式化的协议头部的一个或者多个提取的字段以形成哈希层,并且使用位矢量以确定所有经扩展的协议头部中的哪些哈希层将被选择用以形成哈希输入。
在一些实施例中,通式化每个协议头部包括:解析器引擎确定协议头部的层类型和层类型的变体;解析器引擎基于层类型和变体从协议头部检测缺少的字段;以及基于检测,解析器引擎将协议头部扩展成通用格式。
在一些实施例中,提取一个或者多个字段包括将一个或者多个通用哈希命令应用于经通式化的协议头部。通用哈希命令中的每个通用哈希命令的字段是fieldOffset、fieldLen、hashMask和hashMaskMSB;fieldOffset指定将被提取的字段在所述经扩展的层内开始的偏移,fieldLen指定应当从该指定的偏移提取的字节的数目,hashMask是位掩码,并且hashMaskMSB指示所述位掩码是否将被应用于所提取的字段的最高有效字节或者最低有效字节。
在一些实施例中,在提取一个或者多个字段之后和在级联一个或者多个所提取的字段之前,该方法包括:对位掩码和所提取的字段的一个字节应用逻辑AND运算,其中位掩码由通用哈希命令指定。
在一些实施例中,在使用位矢量之前,该方法包括:使用分组的PktID对本地表进行编索引,其中该表存储用于每个已知协议层组合的位矢量。
在一些实施例中,在接收分组之前,该方法包括经由软件对一个或者多个通用哈希命令中的每个通用哈希命令的字段进行编程。
在一些实施例中,在接收分组之前,该方法包括:允许协议的通用格式的软件定义的映射;以及在网络交换机的存储器中存储软件定义的映射。
在又一方面中,提供一种网络交换机。网络交换机包括:输入端口和输出端口,用于接收和发送分组。网络交换机也包括:存储器,用于存储协议的通用格式的由软件定义的映射的集合、用于存储用于提取字段的通用哈希命令的集合、和用于存储位矢量表。网络交换机也包括:解析器引擎,用于对分组执行头部通式化过程,以根据软件定义的映射中特定于对应协议的一个软件定义的映射来通式化分组的每个协议头部,和用于从经通式化的协议头部选择内容以应用于哈希函数。可以对协议的不同变体、对不同协议或者二者使用头部通式化过程。
在一些实施例中,在分组由解析器引擎处理之后,分组包括规范化的协议层。规范化的协议层中的每个规范化的协议层是根据用于对应协议的对应通用格式被扩展的协议层。
在一些实施例中,解析器引擎还将来自通用哈希命令的集合之一的至少一个通用哈希命令应用于经通式化的协议层中的每个经通式化的协议层,以从该经通式化的协议层提取字段。在一些实施例中,通用哈希命令的集合之一是特定于对应协议的。在一些实施例中,通用哈希命令中的每个通用哈希命令的字段是软件定义的。
在一些实施例中,至少一个哈希命令指定位掩码和提取的字段的将位掩码应用于的字节位置。在一些实施例中,解析器引擎还对位掩码和所提取的字段的字节位置应用逻辑AND运算。在一些实施例中,来自该逻辑AND运算的结果被与来自其它AND运算的其它结果级联以形成哈希输入层。在一些实施例中,解析器引擎访问本地表以从中检索位矢量,用以应用于哈希输入层以形成用于哈希函数的哈希输入。
在又一方面中,提供一种解析器引擎。解析器引擎包括:电路,配置为:标识分组的协议层;基于协议层中的每个协议层的标识将该协议层扩展成通用格式;以及从经扩展的协议层选择内容用以应用于哈希函数。
在一些实施例中,分组的协议层中的每个协议层基于唯一的层类型编号来标识。在一些实施例中,通用格式定义协议层能够具有的所有字段的超集。
在一些实施例中,电路也被配置为将来自通用哈希命令的集合的至少一个通用哈希命令应用于经扩展的协议层,以从经扩展的协议层提取字段。在一些实施例中,通用哈希命令中的每个通用哈希命令的字段是fieldOffset、fieldLen、hashMask和hashMaskMSB;fieldOffset指定将被提取的字段在所述经扩展的层内开始的偏移,fieldLen指定应当从该指定的偏移提取的字节的数目,hashMask是位掩码,并且hashMaskMSB指示所述位掩码是否将被应用于所提取的字段的最高有效字节或者最低有效字节。在一些实施例中,通用哈希命令中的每个通用哈希命令的字段是软件定义的。
在一些实施例中,电路也被配置:对位掩码和所提取的字段的一个字节应用逻辑AND运算,其中位掩码由至少一个哈希命令指定;至少基于逻辑AND运算的结果形成哈希输入层;以及检索位矢量,位矢量指示经扩展的协议层中的哪些哈希输入层将被用来形成向哈希函数的哈希输入。
附图说明
根据如附图中所示的本发明的示例实施例的以下更具体描述,前文将是清楚的,在附图中,相似标号贯穿不同视图指代相同部分。附图未必按比例、代之以着重于图示本发明的实施例。
图1图示根据本发明的一些实施例的将传入分组的层进行头部扩展成通用格式的图。
图2A-2B图示根据本发明的一些实施例的协议头部的示例通式化。
图3A-3C图示根据本发明的一些实施例的协议头部的另一示例通式化。
图4A-4C图示根据本发明的一些实施例的协议头部的另一示例通式化。
图5图示根据本发明的一些实施例的从经扩展的层的提取数据的框图。
图6A-6B图示根据本发明的一些实施例的解析器引擎的方法。
图7图示根据本发明的一些实施例的网络交换机的方法。
具体实施方式
在以下描述中,出于说明的目的而阐述许多细节。然而,本领域普通技术人员将认识可以在不使用这些具体细节的情况下实现本发明。因此,本发明不旨在于局限于所示实施例、而是将被赋予与本文描述的原理和特征一致的最宽的范围。
用于从分组内容形成哈希输入的装置的实施例涉及一种用于形成哈希输入的可编程的灵活解决方案。这一解决方案允许基于不同要求的硬件改变,以及和随着将来定义更新的协议和在将来定义更新的协议时添加对于它们的支持。分组被拆分成个别层。每层被给予有助于标识该层是什么的唯一的层类型编号。基于层类型,每层被扩展成通用格式。每层具有该层通用的哈希命令的集合。每个哈希命令的字段是fieldOffset、fieldLen、hashMask和hashMaskMSB。这些哈希命令允许以分组中的信息可编程的方式被提取。从分组的每个协议层提取的字段被级联以形成哈希层。位矢量指示哪些哈希层被用来形成哈希输入。
网络设备,比如网络交换机,能够切换/路由网络流量。网络交换机包括用于接收和发送分组的至少一个输入/传入端口和至少一个输出/外传端口。在一些实施例中,网络交换机也包括解析器和重写器。解析器可以包括用于标识网络分组的内容的一个或者多个解析器引擎,并且重写器可以包括用于在分组从网络交换机被发送出之前修改它们的一个或者多个重写引擎。(多个)解析器引擎和(多个)重写引擎是灵活的并且在可编程的基础上操作。
网络交换机也包括用于存储由网络交换机使用的数据的存储器。例如存储器存储通用哈希命令的集合。简言之,通用哈希命令通常被用来从协议头部提取字段,用于形成哈希输入。对于另一示例,存储器也存储协议的通用格式的软件定义的映射。简言之,根据软件定义的映射中特定于对应协议的一个软件定义的映射来表示每个协议头部。如将变得清楚的,这些映射可以在协议的不同变体上以及在包括新协议的不同协议上被使用。对于又一示例,存储器也存储计数器和统计量。
在以太网中,分组包括多个协议层。每个协议层携带不同信息。公知的层的一些示例是:
·以太网
·PBB以太网
·ARP
·IPV4
·IPV6
·MPLS
·FCOE
·TCP
·UDP
·ICMP
·IGMP
·GRE
·ICMPv6
·VxLAN
·TRILL
·CNM
在理论上,协议层可以按照任何顺序出现。然而,这些层的仅一些公知的组合出现。这些层的有效组合的一些示例是:
·以太网
·以太网、ARP
·以太网、CNM
·以太网、FCoE
·以太网、IPV4
·以太网、IPV4、ICMP
·以太网、IPV4、IGMP
对于分组解析(和重写)操作,分组被分成层。这一拆分基于公知的层、比如以上列举的那些层来完成。层中的许多层具有在层内的字段的不同类型的组合。为了有效地处置不同的可能组合,层被扩展成通用格式。这些通用格式允许使用对层内的具体字段未知(agnostic)的命令、比如哈希命令。通用格式定义任何已知层能够具有的所有字段的超集。
图1图示根据本发明的一些实施例的将传入分组的层进行头部扩展成通用格式的图100。在图1中,传入分组包括八个头部协议层。每个协议层通常包括用于它的相应协议的头部。如以上指示的那样,更多或者更少协议层是可能的。解析器引擎能够标识每个层及其变体。如图1中所示,解析器引擎基于每个协议层的标识和变体来标识该层。规范层是指已经被扩展成其通用格式的协议层。简言之,每个规范层包括位矢量,该位矢量具有针对无效字段标记为0的位和针对有效字段标记为1的位。
假设解析器引擎已经将层标识为以太网分组头部。图2A-4C图示根据本发明的一些实施例的解析器引擎如何对以太网协议工作的示例。图2A-4C中所示的示例示范了解析器引擎能够对协议、比如以太网协议的不同变体工作。每个示例举例说明了以太网协议的传入头部及其对应的通用格式。虽然未讨论其它协议,但是注意,解析器引擎对其它协议类似地工作。
图2A图示传入分组的示例性以太网分组头部的格式200。以太网分组头部200是22字节的并且包括五个字段:源地址(SA)字段、目的地地址(DA)字段、服务VLAN标签字段、客户VLAN标签字段和以太类型字段。SA字段和DA字段各自为6字节。服务VLAN标签字段和客户VLAN标签字段各自为4字节。以太类型字段为2字节。具有以太网分组头部100的分组是以太网分组的最大变体并且具有最大22字节的大小。
解析器引擎处理以太网分组头部200并且确定没有任何字段在以太网分组头部200中缺少。以太网分组头部200的通用格式因此与以太网分组头部200的通用格式相同,因为以太网分组头部200包含所有可能字段。图2B图示位矢量205,该位矢量205代表图2A的以太网分组头部200。位矢量205的每个位对应于以太网分组头部200的22字节之一。位矢量205包含所有1,因为以太网分组头部200的所有字段有效,或者具有值,因为字段在以太网分组头部200中存在。因而,以太网分组头部200由通用格式{22'b111111_111111_1111_1111_11}表示。
图3A图示传入分组的另一示例以太网分组头部的格式300。以太网分组头部300为18字节并且仅包括四个字段:SA字段、DA字段、客户VLAN标签字段和以太类型(EtherType)字段。以太网分组头部300缺少服务VLAN标签字段。具有以太网分组头部300的分组是以太网分组的另一变化。
解析器引擎处理以太网分组头部300并且确定服务VLAN标签字段在以太网分组头部300中缺少,并且通过在以太网分组头部300的通用格式的适当位置包括缺少的服务VLAN标签字段来将以太网分组头部300扩展到它的最大22字节大小。图3B图示扩展的以太网分组头部的通用格式300’。扩展的以太网分组头部300’包括以太网协议的所有可能字段,包括缺少的服务VLAN标签字段。在扩展的以太网分组头部300’中的有效字段是SA字段、DA字段、客户VLAN标签字段和以太类型字段,因为它们在以太网分组头部300中存在。在扩展的以太网分组头部300’中的无效字段是服务VLAN标签字段,因为它在以太网分组头部300中不存在、而是被添加在扩展的以太网分组头部300’中的。
图3C图示表示图3B的扩展的以太网分组头部300’的位矢量305。位矢量305的每个位对应于扩展的以太网分组头部300’的22字节之一。位矢量305包含用于所有有效字段的1,这些有效字段是SA字段、DA字段、客户VLAN标签字段和以太类型字段。位矢量305包含用于所有无效字段的0,该无效字段仅为服务VLAN标签字段。因而,以太网分组头部300由通用格式{22'b111111_111111_0000_1111_11}表示。
图4A图示传入分组的另一示例以太网分组头部的格式400。以太网分组头部400为14字节并且仅包括三个字段:SA字段、DA字段和以太类型字段。以太网分组头部400缺少服务VLAN标签字段和客户VLAN标签字段。具有以太网分组头部400的分组是以太网分组的最小变体。
解析器引擎处理以太网头部400并且确定服务VLAN标签字段和客户VLAN标签字段在以太网分组头部400中缺少并且通过在以太网分组头部400的通用格式的适当位置处包括缺少的服务VLAN标签字段和缺少的客户VLAN标签字段来将以太网分组头部400扩展到它的最大22字节大小。图4B图示扩展的以太网分组头部的通用格式400’。扩展的以太网分组头部400’包括以太网协议的所有可能字段,包括缺少的服务VLAN标签字段和缺少的客户VLAN标签字段。扩展的以太网分组头部400’中的有效字段是SA字段、DA字段和以太类型字段,因为它们在以太网分组头部400中存在。扩展的以太网分组头部400’中的无效字段是服务VLAN标签字段和客户VLAN标签字段,因为它们在以太网分组头部400中不存在、而是被添加在扩展的以太网分组头部400’中的。
图4C图示表示图4B的扩展的以太网分组头部400’的位矢量405。位矢量405的每个位对应于扩展的以太网分组头部400’的22字节之一。位矢量405包含用于所有有效字段的1,这些有效字段是SA字段、DA字段和以太类型字段。位矢量405包含用于所有无效字段的0,该无效字段是服务VLAN标签字段和客户VLAN标签字段。因而,以太网分组头部400由通用格式{22'b111111_111111_0000_0000_11}代表。
如图2A-4C中所示,无论传入以太网头部的变化如何,一旦执行将以太网头部扩展成通用格式,字段偏移与最大大小的以太网头部(例如,图2A的以太网分组头部200)相同。头部扩展有利地允许相同软件命令集工作,而无论传入以太网头部如何,因为以太网头部被扩展成最大大小的以太网头部。这样,例如提取以太类型字段的哈希命令将总是指向相同偏移,无论接收到哪个以太网头部。
在一些实施例中,压缩格式被用来表达哪些字段在任何接收的头部中存在。紧凑格式由两个字段的组合组成、即:
·contBytes:这指示多少字节在层的开头有效;以及
·validBytes:这是指示层中的每个字节的有效性的位矢量。
例如如果contBytes为8而validBytes为4'h0111,则相应层包括有效的字节0-7、其后是空字节和三个有效字节。使用这一压缩格式有助于节省为了表示层而需要的位数。字节总数可以通过表1中所示的伪代码来计算。
表1
Figure BDA0000714899090000121
头部的通用格式在从分组头部提取字段方面产生硬件和软件灵活性。硬件能够从分组头部提取字段,而无论字段在分组头部内驻留于何处。硬件可以被软件编程用以支持新协议。软件将通用格式在硬件表中编程,用于各种头部协议。
一旦扩展协议头部,可编程哈希命令允许提取来自分组的字段。每层具有对应协议特有的N个哈希命令的集合。表2列出每个哈希命令的字段。这些字段是软件定义的。
表2
Figure BDA0000714899090000122
通用哈希命令允许以可编程方式提取分组中的信息。例如与传统实现方式比较,对于以太网,为了提取MAC DA(MAC目的地地址),哈希命令将指定偏移0和六个字节的长度。这将导致携带MAC DA的前六个字节要从层中被提取。相似地,为了提取IP DA,哈希命令将指定偏移16和四个字节的长度。这将导致携带IP DA的在偏移16处开始的四个字节将从层中被提取。
通用哈希命令使用hashMask用于位掩码运算。具体而言,hashMask掩蔽来自提取的字段的一个或者多个位。通用哈希命令也可以使用hashMaskMSB。如果hashMaskMSB被设置成1,则hashMask被应用于提取的字段的最高有效字节。如果hashMaskMSB被设置成0,则hashMask被应用于提取的字段的最低有效字节。
图5图示根据本发明的一些实施例的从扩展的层提取数据的框图500。扩展的层在图5中被标注为“层N头部(规范头部)”。解析器引擎确定的层类型被参考(referenced)在存储器中,该层类型指定用于从扩展的层提取字段的N个哈希命令中的一个或者多个哈希命令。每个哈希命令包括四个字段:fieldOffset、fieldLen、hashMask和hashMaskMSB。在图5中,第一哈希命令提取字段0并且对字段0的一个字节(字段0的最高有效字节或者最低有效字节,如hashMaskMSB所设置的)和hashMask执行逻辑AND运算,其中hashMaskMSB和hashMask由第一哈希命令指定。第二哈希命令提取字段1并且对字段1的一个字节(字段1的最高有效字节或者最低有效字节,如hashMaskMSB所设置的)和hashMask执行逻辑AND运算,其中hashMaskMSB和hashMask由第二哈希命令指定。并且第三哈希命令提取字段15并且对字段15的一个字节(字段15的最高有效字节或者最低有效字节,如hashMaskMSB所设置的)和hashMask执行逻辑AND运算,其中hashMaskMSB和hashMask由第三哈希命令指定。来自逻辑AND运算的结果被存储在图5中示为“哈希输入层N”的总线中。结果被依次地放置于彼此旁边而在结果之间无任何间隙,以形成哈希输入层。换而言之,来自逻辑AND运算的结果被级联以形成哈希输入层。
由于并非所有哈希输入层是形成哈希输入所需要的,所以独立配置指定哪些哈希输入层应当被用于形成哈希输入。具体而言,在网络交换机的存储器中存储的本地表被编程为包括每个已知协议层组合的数据。使用PktID来编索引的表包括用于每个协议层组合的位矢量。位矢量指示应当在哈希输入的形成中使用对应协议层组合或者栈的协议层中的哪些协议层。
在网络交换机接收每个分组时,解析器引擎确定该分组的PktID。这一确定基于该分组的协议层组合或者栈。在形成分组的哈希输入层之后,如以上描述的那样,本地表被用来基于与对应PktID关联的位矢量选择哈希输入层中的一个或者多个哈希输入层。
例如具有值8'b00001111的位矢量指示仅来自哈希输入层3、2、1和0的数据应当被用于形成哈希输入。对于另一示例,具有值8'b10101010的位矢量指示仅来自哈希输入层7、5、3和1的数据应当被用于形成哈希输入。
哈希命令和位矢量的组合允许以高度灵活的方式形成哈希输入。哈希输出是标识分组应当取等成本多路径路由中的哪个等成本多路径路由的唯一签名。
图6A图示根据本发明的一些实施例的解析器引擎的方法600。解析器引擎是网络交换机的部分并且标识网络分组的内容。通常,解析器引擎先通过协议层拆分分组。在步骤605,标识分组的协议层。分组的协议层中的每个协议层基于协议层的唯一的层类型编号来标识。
在步骤610,基于协议层中的每个协议层的标识将该协议层扩展成通用格式。通用格式定义协议层可以具有的所有字段的超集。为经扩展的协议层维持位矢量。位矢量包括用于经扩展的协议层的每个字节的每字节的位。对于每个有效字段的每个字节将位标记为可用,其中每个有效字段是在分组的协议层中存在的字段。对于每个无效字段的每个字节将位标记为不可用,其中每个无效字段是在分组的协议层中不存在的字段。在一些实施例中,压缩格式用来表达经扩展的协议层。
在步骤615,来自经扩展的协议层的内容被选择,以应用于哈希函数。
图6B图示根据本发明的一些实施例的解析器引擎的另一方法650。通常,解析器引擎在方法600之后执行方法650。在步骤655,来自通用哈希命令的集合的至少一个通用哈希命令被应用于经扩展的协议层,以从经扩展的协议层提取字段。通用哈希命令中的每个通用哈希命令的字段是fieldOffset、fieldLen、hashMask和hashMaskMSB;fieldOffset指定将被提取的字段在所述经扩展的层内开始的偏移,fieldLen指定应当从该指定的偏移提取的字节的数目,hashMask是位掩码,并且hashMaskMSB指示所述位掩码是否将被应用于所提取的字段的最高有效字节或者最低有效字节。通用层命令中的每个通用层命令的字段是软件定义的。
在步骤660,对位掩码和所提取的字段的一个字节应用逻辑AND运算。位掩码可以被应用于所提取的字段的最高有效字节或者最低有效直接。位掩码由至少一个哈希命令指定。
在步骤665,至少基于逻辑AND运算的结果形成哈希输入层。
在步骤670,检索位矢量。从本地表检索位矢量。位矢量指示经扩展的协议层中的哪些哈希输入层将被用来形成向哈希函数的哈希输入。哈希输入随后被用作向哈希函数的输入。哈希函数的输出是标识分组应当取ECMP路由中的哪个ECMP路由的唯一签名。
图7图示根据本发明的一些实施例的网络交换机的方法700。在一些实施例中,网络交换机允许协议的通用格式的软件定义的映射,并且在网络交换机的存储器中存储软件定义的映射。在步骤705,在网络交换机的传入端口接收分组。
在步骤710,根据用于对应协议的通用格式来通式化分组的每个协议头部。解析器引擎确定协议头部的层类型和层类型的变体。解析器引擎基于层类型和变体从协议中检测缺少的字段。基于检测,解析器引擎将协议头部扩展成通用格式。
在步骤715,对于每个通式化的协议头部,提取来自通式化的协议头部的一个或者多个字段。为了提取字段,一个或者多个通用哈希命令被应用于通式化的协议头部。通用哈希命令中的每个通用哈希命令的字段是fieldOffset、fieldLen、hashMask和hashMaskMSB;fieldOffset指定将被提取的字段在所述经扩展的层内开始的偏移,fieldLen指定应当从该指定的偏移提取的字节的数目,hashMask是位掩码,并且hashMaskMSB指示所述位掩码是否将被应用于所提取的字段的最高有效字节或者最低有效字节。
在步骤720,对于每个通式化的协议头部,来自通式化的协议头部的一个或者多个提取的字段被级联以形成哈希层。在一些实施例中,在步骤715之后和在步骤720之前,对位掩码和所提取的字段的一个字节应用逻辑AND运算。位掩码由通用哈希命令指定。
在步骤725,位矢量被用来确定所有经扩展的协议头部的哪些哈希层被选择以形成哈希输入。在一些实施例中,在步骤725之前,使用分组的PktID来对本地表进行编索引。该表存储用于每个已知协议层组合的位矢量。哈希输入被用作向哈希函数的输入。哈希函数的输出是标识分组应当取ECMP路由中的哪个ECMP路由的唯一签名。
使用哈希命令来提取来自分组的数据。层中的每个层被扩展成通用格式。头部的通用格式在从分组头部提取字段方面产生硬件和软件灵活性,因为哈希命令对在分组的层内的具体字段是不知的。不再需要在实施时间进行对将提取的相关信息在分组内落在何处的确定。
本领域普通技术人员将认识到其它使用和优点也存在。尽管已经参照许多具体细节描述本发明,但是本领域普通技术人员将认识可以以其它具体形式体现本发明而未脱离本发明的精神实质。因此,本领域普通技术人员将理解本发明不受前述示例细节限制、而是实际上将由所附权利要求限定。

Claims (38)

1.一种实施解析器引擎的方法,所述方法包括:
标识分组的一个或者多个协议层,其中所述协议层中的每一个协议层具有一个或者多个字段;
针对所述协议层中的每个协议层,基于所述协议层的标识将所述协议层扩展成预定格式,由此形成经扩展的协议层;
基于所述经扩展的协议层的层类型选择通用哈希命令的集合中的一个或者多个;以及
通过将通用哈希命令的所述集合中的所述一个或者多个应用于所述经扩展的协议层,来从所述经扩展的协议层中的每个经扩展的协议层选择内容以应用于哈希函数。
2.根据权利要求1所述的方法,其中所述协议层中的每个协议层具有唯一层类型编号并且被基于所述唯一层类型编号来标识。
3.根据权利要求1所述的方法,其中所述预定格式定义所述协议层能够具有的所有字段的超集。
4.根据权利要求1所述的方法,从所述经扩展的协议层中的每个经扩展的协议层选择内容包括将来自通用哈希命令的所述集合的所述一个或者多个中的至少一个通用哈希命令应用于所述经扩展的协议层,以从所述经扩展的协议层提取字段。
5.根据权利要求4所述的方法,其中所述通用哈希命令中的每个通用哈希命令的字段是fieldOffset、fieldLen、hashMask和hashMaskMSB;所述fieldOffset指定将被提取的字段在所述经扩展的协议层内开始的偏移,所述fieldLen指定应当从该指定的偏移提取的字节的数目,所述hashMask是位掩码,并且所述hashMaskMSB指示所述位掩码是否将被应用于所提取的字段的最高有效字节或者最低有效字节。
6.根据权利要求4所述的方法,其中所述通用哈希命令中的每个通用哈希命令的字段是软件定义的。
7.根据权利要求4所述的方法,还包括:
对位掩码和所提取的字段的一个字节应用逻辑AND运算,其中所述位掩码由所述至少一个哈希命令指定;
至少基于所述逻辑AND运算的结果形成哈希输入层;以及
检索位矢量,所述位矢量指示所述经扩展的协议层中的哪些哈希输入层将被用来形成向所述哈希函数的哈希输入。
8.根据权利要求7所述的方法,还包括使用所述哈希输入作为向所述哈希函数的输入。
9.一种实施解析器引擎的方法,所述方法包括:
标识分组的一个或者多个协议层,其中所述协议层中的每一个协议层具有一个或者多个字段;
针对所述协议层中的每个协议层,基于所述协议层的标识将所述协议层扩展成预定格式,由此形成经扩展的协议层;以及
从所述经扩展的协议层中的每个经扩展的协议层选择内容以应用于哈希函数,其中所述协议层的所述扩展包括:
维持用于所述经扩展的协议层的位矢量,其中所述位矢量包括用于所述经扩展的协议层的每个字节的位,使得所述位中的每个位对应于所述经扩展的协议层的所述字节中的一个字节;
针对所述位中的每个位,如果对应字节是所述协议层中的有效字段的一部分,则将所述位设置为第一值,其中所述有效字段中的每个有效字段是在所述协议层已经被扩展成所述经扩展的协议层之前在所述分组的所述协议层中存在的字段;以及
针对所述位中的每个位,如果对应字节是所述协议层中的无效字段的一部分,则将所述位设置为第二值,其中所述无效字段中的每个无效字段是在所述协议层已经被扩展成所述经扩展的协议层之前在所述分组的所述协议层中不存在的字段。
10.根据权利要求9所述的方法,还包括使用压缩格式以表达所述经扩展的协议层。
11.一种实施网络交换机的方法,所述方法包括:
在所述网络交换机的传入端口接收具有分组头部的分组,其中所述分组头部包含一个或者多个协议头部;
针对所述协议头部中的每个协议头部,将所述协议头部通式化成用于对应协议的预定格式,由此形成通式化的协议头部;
对于每个通式化的协议头部,从所述通式化的协议头部提取一个或者多个字段;
对于每个通式化的协议头部,级联来自所述通式化的协议头部的所述一个或者多个被提取的字段以形成哈希层;以及
使用位矢量以确定所有经扩展的协议头部中的哪些哈希层将被选择用以形成哈希输入。
12.根据权利要求11所述的方法,其中所述网络交换机包括:解析器引擎,配置为通式化每个协议头部,从通式化的协议头部提取一个或者多个字段,级联来自所述通式化的协议头部的所述一个或者多个提取的字段以形成所述哈希层,并且使用所述位矢量以确定所有经扩展的协议头部中的哪些哈希层将被选择用以形成所述哈希输入。
13.根据权利要求12所述的方法,其中所述协议头部的所述通式化包括:
所述解析器引擎确定所述协议头部的层类型和所述层类型的变体;
所述解析器引擎基于所述层类型和所述变体从所述协议头部检测缺少的字段;以及
基于所述检测,所述解析器引擎将所述协议头部扩展成所述预定格式。
14.根据权利要求11所述的方法,其中提取一个或者多个字段包括将一个或者多个通用哈希命令应用于所述通式化的协议头部。
15.根据权利要求14所述的方法,其中所述通用哈希命令中的每个通用哈希命令的字段是fieldOffset、fieldLen、hashMask和hashMaskMSB;所述fieldOffset指定将被提取的字段在所述通式化的协议头部内开始的偏移,所述fieldLen指定应当从该指定的偏移提取的字节的数目,所述hashMask是位掩码,并且所述hashMaskMSB指示所述位掩码是否将被应用于所提取的字段的最高有效字节或者最低有效字节。
16.根据权利要求14所述的方法,在接收所述分组之前还包括经由软件对所述一个或者多个通用哈希命令中的每个通用哈希命令的字段进行编程。
17.根据权利要求11所述的方法,在接收所述分组之前还包括:
允许协议的预定格式的软件定义的映射;以及
在所述网络交换机的存储器中存储所述软件定义的映射。
18.根据权利要求11所述的方法,在提取一个或者多个字段之后并且在级联所述一个或者多个提取的字段之前还包括:对位掩码和所提取的字段的一个字节应用逻辑AND运算,其中所述位掩码由通用哈希命令指定。
19.根据权利要求11所述的方法,在使用所述位矢量之前还包括:使用所述分组的分组标识符对本地表进行编索引,其中所述表存储用于每个已知协议层组合的位矢量。
20.一种网络交换机,包括:
输入端口和输出端口,用于接收和发送分组,所述分组具有包含一个或者多个协议层的头部;
存储器,用于存储针对一个或者多个协议的预定协议层格式的软件定义的映射的集合、用于存储用于从已经被转换成所述预定协议层格式中的一个预定协议层格式的所述协议层中提取期望的字段的通用哈希命令的集合、以及用于存储位矢量表;以及
解析器引擎,用于:
对所述分组中的每个分组的所述头部执行头部通式化过程以根据所述预定协议层格式中的一个预定协议层格式来通式化所述分组的所述头部的所述协议层中的每个协议层,由此形成经扩展的协议层;
基于所述经扩展的协议层的层类型选择通用哈希命令的集合中的一个或者多个;以及
用于通过将通用哈希命令的所述集合中的所述一个或者多个应用于所述经扩展的协议层,来从所述经扩展的协议层选择内容以应用于哈希函数。
21.根据权利要求20所述的网络交换机,其中对所述协议中的一个或者多个协议的协议层的不同变体使用所述头部通式化过程。
22.根据权利要求20所述的网络交换机,其中对所述协议中的不同协议使用所述头部通式化过程。
23.根据权利要求20所述的网络交换机,其中在所述分组由所述解析器引擎处理之后,所述分组包括规范化的协议层。
24.根据权利要求23所述的网络交换机,其中所述规范化的协议层中的每个规范化的协议层是基于所述分组的所述头部的所述协议层中的一个协议层来扩展的所述经扩展的协议层中的一个协议层。
25.根据权利要求20所述的网络交换机,其中所述解析器引擎还将来自所述通用哈希命令的集合中的一个集合的至少一个哈希命令应用于所述经扩展的协议层中的每个经扩展的协议层,以从所述经扩展的协议层提取一个或者多个字段。
26.根据权利要求25所述的网络交换机,其中所述通用哈希命令的集合中的所述一个集合特定于通用哈希命令的所述集合中的所述一个集合正被应用于的所述经扩展的协议层的所述协议。
27.根据权利要求25所述的网络交换机,其中要被所述通用哈希命令中的每个通用哈希命令提取的所述字段是软件定义的。
28.根据权利要求25所述的网络交换机,其中所述至少一个哈希命令指定位掩码和所提取的字段的要应用所述位掩码的字节位置。
29.根据权利要求28所述的网络交换机,其中所述解析器引擎还对所述位掩码和所提取的字段的所述字节位置应用逻辑AND运算。
30.根据权利要求29所述的网络交换机,其中来自所述逻辑AND运算的结果被与来自其它AND运算的其它结果级联,以形成哈希输入层。
31.根据权利要求30所述的网络交换机,其中所述解析器引擎访问所述位矢量表以从中检索所述位矢量中的一个位矢量,用以应用于哈希输入层以形成用于所述哈希函数的哈希输入。
32.一种包括电路的解析器引擎,所述电路被配置为:
标识分组的一个或者多个协议层,其中所述协议层中的每个协议层具有一个或者多个字段;
针对所述协议层中的每个协议层,
基于所述协议层的所述标识将所述协议层扩展成预定格式,
由此形成经扩展的协议层;
基于所述经扩展的协议层的层类型选择通用哈希命令的集合中的一个或者多个;以及
通过将通用哈希命令的所述集合中的所述一个或者多个应用于所述经扩展的协议层,来从所述经扩展的协议层选择内容以应用于哈希函数。
33.根据权利要求32所述的解析器引擎,其中所述协议层中的每个协议层具有唯一层类型编号并且被基于所述唯一层类型编号来标识。
34.根据权利要求32所述的解析器引擎,其中所述预定格式定义所述协议层能够具有的所有字段的超集。
35.根据权利要求32所述的解析器引擎,其中所述电路也被配置为将来自通用哈希命令的集合的至少一个通用哈希命令应用于所述经扩展的协议层以从所述经扩展的协议层提取一个或者多个字段。
36.根据权利要求35所述的解析器引擎,其中所述通用哈希命令中的每个通用哈希命令的字段是fieldOffset、fieldLen、hashMask和hashMaskMSB;所述fieldOffset指定将被提取的字段在所述经扩展的协议层内开始的偏移,所述fieldLen指定应当从该指定的偏移提取的字节的数目,所述hashMask是位掩码,并且所述hashMaskMSB指示所述位掩码是否将被应用于所提取的字段的最高有效字节或者最低有效字节。
37.根据权利要求35所述的解析器引擎,其中所述通用哈希命令中的每个通用哈希命令的字段是软件定义的。
38.根据权利要求35所述的解析器引擎,其中所述电路也被配置为:
对位掩码和所提取的字段的一个字节应用逻辑AND运算,其中所述位掩码由所述通用哈希命令中的至少一个通用哈希命令指定;
至少基于所述逻辑AND运算的结果形成哈希输入层;以及
检索位矢量,所述位矢量指示所述经扩展的协议层中的哪些哈希输入层将被用来形成向所述哈希函数的哈希输入。
CN201510236798.4A 2014-06-19 2015-05-11 从分组内容形成哈希输入的方法及其装置 Active CN105282133B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/309,739 2014-06-19
US14/309,739 US9438703B2 (en) 2014-06-19 2014-06-19 Method of forming a hash input from packet contents and an apparatus thereof

Publications (2)

Publication Number Publication Date
CN105282133A CN105282133A (zh) 2016-01-27
CN105282133B true CN105282133B (zh) 2020-06-23

Family

ID=53716287

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510236798.4A Active CN105282133B (zh) 2014-06-19 2015-05-11 从分组内容形成哈希输入的方法及其装置

Country Status (7)

Country Link
US (1) US9438703B2 (zh)
EP (1) EP2958284A3 (zh)
JP (1) JP6590546B2 (zh)
KR (1) KR102337513B1 (zh)
CN (1) CN105282133B (zh)
HK (1) HK1220830A1 (zh)
TW (1) TW201603534A (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10474604B2 (en) * 2016-04-01 2019-11-12 Intel Corporation Transmitting universal serial bus (USB) data over alternate mode connection
KR102050828B1 (ko) * 2018-10-26 2020-01-08 한국과학기술원 병렬 연산을 이용한 오픈 가상 스위치의 가속화 방법 및 이를 이용한 오픈 가상 스위치
US11743189B2 (en) 2020-09-14 2023-08-29 Microsoft Technology Licensing, Llc Fault tolerance for SDN gateways using network switches
CN116192730A (zh) * 2021-11-26 2023-05-30 苏州盛科通信股份有限公司 针对网络负载分担应用的灵活产生hash值的方法和系统
JP7220814B1 (ja) 2022-01-21 2023-02-10 エヌ・ティ・ティ・アドバンステクノロジ株式会社 データ取得装置及びデータ取得方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1845066A (zh) * 2006-05-16 2006-10-11 北京启明星辰信息技术有限公司 一种自动协议识别方法及系统
CN101035131A (zh) * 2007-02-16 2007-09-12 杭州华为三康技术有限公司 协议识别方法及装置
TW201246867A (en) * 2011-05-06 2012-11-16 Ralink Technology Corp Packet processing accelerator and method thereof

Family Cites Families (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5805808A (en) 1991-12-27 1998-09-08 Digital Equipment Corporation Real time parser for data packets in a communications network
US6088356A (en) 1997-06-30 2000-07-11 Sun Microsystems, Inc. System and method for a multi-layer network element
US6341129B1 (en) 1998-04-03 2002-01-22 Alteon Networks, Inc. TCP resegmentation
US7333484B2 (en) 1998-08-07 2008-02-19 Intel Corporation Services processor having a packet editing unit
FI106504B (fi) 1998-10-06 2001-02-15 Nokia Networks Oy Datan segmentointimenetelmä tietoliikennejärjestelmässä
US6789116B1 (en) 1999-06-30 2004-09-07 Hi/Fn, Inc. State processor for pattern matching in a network monitor device
JP4708650B2 (ja) 1999-12-02 2011-06-22 パナソニック株式会社 光ディスク媒体およびその記録方法、記録装置
JP3613102B2 (ja) 1999-12-14 2005-01-26 日本電気株式会社 フレーム構成方法、フレーム構成装置およびフレーム構成転送システム
JP4099930B2 (ja) 2000-06-02 2008-06-11 株式会社日立製作所 ルータ装置及びvpn識別情報の設定方法
GB0023169D0 (en) 2000-09-20 2000-11-01 Ibm Message parsing in message processing systems
US6904057B2 (en) 2001-05-04 2005-06-07 Slt Logic Llc Method and apparatus for providing multi-protocol, multi-stage, real-time frame classification
US6944168B2 (en) 2001-05-04 2005-09-13 Slt Logic Llc System and method for providing transformation of multi-protocol packets in a data stream
US7580408B2 (en) 2001-11-21 2009-08-25 Alcatel Lucent Configurable packet processor
US7236501B1 (en) 2002-03-22 2007-06-26 Juniper Networks, Inc. Systems and methods for handling packet fragmentation
US7187694B1 (en) 2002-03-29 2007-03-06 Pmc-Sierra, Inc. Generic packet parser
JP2003308206A (ja) 2002-04-15 2003-10-31 Fujitsu Ltd プロセッサ装置
US20050232303A1 (en) 2002-04-26 2005-10-20 Koen Deforche Efficient packet processing pipeline device and method
US7408957B2 (en) 2002-06-13 2008-08-05 International Business Machines Corporation Selective header field dispatch in a network processing system
US20050281281A1 (en) 2003-01-24 2005-12-22 Rajesh Nair Port input buffer architecture
US7415596B2 (en) 2003-01-24 2008-08-19 Gigafin Networks, Inc. Parser table/production rule table configuration using CAM and SRAM
US7706363B1 (en) 2003-06-11 2010-04-27 Radlan Computer Communications, Ltd Method and apparatus for managing packets in a packet switched network
WO2005036834A1 (ja) * 2003-10-10 2005-04-21 Fujitsu Limited 統計情報採取方法及び装置
US7411957B2 (en) 2004-03-26 2008-08-12 Cisco Technology, Inc. Hardware filtering support for denial-of-service attacks
US7822032B1 (en) 2004-03-30 2010-10-26 Extreme Networks, Inc. Data structures for supporting packet data modification operations
US7606263B1 (en) 2004-03-30 2009-10-20 Extreme Networks, Inc. Packet parser
US8200839B1 (en) 2004-04-30 2012-06-12 Rockstar Bidco Lp Method and apparatus for restoring service label information
JP4392294B2 (ja) 2004-06-15 2009-12-24 株式会社日立製作所 通信統計収集装置
JP4156568B2 (ja) 2004-06-21 2008-09-24 富士通株式会社 通信システムの制御方法、通信制御装置、プログラム
US7474619B2 (en) 2004-07-22 2009-01-06 International Business Machines Corporation Method and apparatus for providing fragmentation at a transport level along a transmission path
US7570661B2 (en) 2005-06-14 2009-08-04 Microsoft Corporation Script-based parser
US7603474B2 (en) 2005-10-05 2009-10-13 Microsoft Corporation Efficient endpoint matching using a header-to-bit conversion table
JP4340653B2 (ja) * 2005-12-16 2009-10-07 日本電信電話株式会社 通信処理装置及び通信処理方法
US9143585B2 (en) * 2006-07-07 2015-09-22 Wi-Lan Inc. Method and system for generic multiprotocol convergence over wireless air interface
CA2669932A1 (en) 2006-12-19 2008-06-26 International Business Machines Corporation Apparatus and method for analysing a network flow
US7822875B1 (en) 2006-12-22 2010-10-26 Marvell International Ltd. Method for flexible modifications to a packet
IL220238A (en) 2007-03-12 2014-03-31 Marvell Israel Misl Ltd A method and system for determining the location of fields in information units
US8825592B2 (en) 2008-03-12 2014-09-02 Web Access, Inc. Systems and methods for extracting data from a document in an electronic format
US7843919B2 (en) * 2008-03-20 2010-11-30 International Business Machines Corporation Ethernet virtualization using a network packet alteration
JP4962394B2 (ja) * 2008-04-21 2012-06-27 富士通株式会社 パケット転送制御装置およびパケット転送制御方法
KR101456563B1 (ko) * 2008-05-14 2014-10-31 삼성전자주식회사 멀티 홉 릴레이 환경에서 대역폭 할당 요청과 할당 방법 및시스템
US8234369B2 (en) 2008-12-23 2012-07-31 Verizon Patent And Licensing Inc. Web page response monitoring
US8902886B2 (en) * 2009-04-23 2014-12-02 International Business Machines Corporation Canonicalization of network protocol headers
US8111704B2 (en) 2009-06-26 2012-02-07 Intel Corporation Multiple compression techniques for packetized information
US9008082B2 (en) * 2009-12-07 2015-04-14 Telefonaktiebolaget L M Ericsson (Publ) Handling data packets received at a routing node
US8472438B2 (en) * 2010-04-23 2013-06-25 Telefonaktiebolaget L M Ericsson (Publ) Efficient encapsulation of packets transmitted on a packet-pseudowire over a packet switched network
US20130039278A1 (en) * 2010-05-03 2013-02-14 Nokia Corporation Protocol overhead reduction
US8537815B2 (en) 2010-06-17 2013-09-17 Apple Inc. Accelerating data routing
US8705533B1 (en) 2010-12-10 2014-04-22 Juniper Networks, Inc. Fast packet encapsulation using templates
CN102970150A (zh) * 2011-09-01 2013-03-13 日电(中国)有限公司 用于数据中心的可扩展组播转发方法和设备
US8711860B2 (en) 2011-12-22 2014-04-29 Telefonaktiebolaget L M Ericsson (Publ) Controller for flexible and extensible flow processing in software-defined networks
US8521905B2 (en) 2011-12-22 2013-08-27 Telefonaktiebolaget L M Ericsson (Publ) System for flexible and extensible flow processing in software-defined networks
US9282173B2 (en) 2012-02-17 2016-03-08 Viavi Solutions Inc. Reconfigurable packet header parsing
HUE050160T2 (hu) * 2012-10-17 2020-12-28 Sony Corp Adatfeldolgozó berendezés, adatfeldolgozó eljárás és program
US9438517B2 (en) * 2012-10-30 2016-09-06 Viavi Solutions Inc. Method and system for identifying matching packets
US9219694B2 (en) 2013-03-15 2015-12-22 Wisconsin Alumni Research Foundation Content addressable memory with reduced power consumption
US9769701B2 (en) * 2013-06-14 2017-09-19 Texas Instruments Incorporated Header compression for wireless backhaul systems
US9444914B2 (en) * 2013-09-16 2016-09-13 Annapurna Labs Ltd. Configurable parser and a method for parsing information units
US9628382B2 (en) * 2014-02-05 2017-04-18 Intel Corporation Reliable transport of ethernet packet data with wire-speed and packet data rate match

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1845066A (zh) * 2006-05-16 2006-10-11 北京启明星辰信息技术有限公司 一种自动协议识别方法及系统
CN101035131A (zh) * 2007-02-16 2007-09-12 杭州华为三康技术有限公司 协议识别方法及装置
TW201246867A (en) * 2011-05-06 2012-11-16 Ralink Technology Corp Packet processing accelerator and method thereof

Also Published As

Publication number Publication date
HK1220830A1 (zh) 2017-05-12
US9438703B2 (en) 2016-09-06
JP6590546B2 (ja) 2019-10-16
EP2958284A3 (en) 2016-01-27
CN105282133A (zh) 2016-01-27
KR20150146449A (ko) 2015-12-31
JP2016005286A (ja) 2016-01-12
TW201603534A (zh) 2016-01-16
KR102337513B1 (ko) 2021-12-09
US20150373164A1 (en) 2015-12-24
EP2958284A2 (en) 2015-12-23

Similar Documents

Publication Publication Date Title
CN105282133B (zh) 从分组内容形成哈希输入的方法及其装置
CN108063718B (zh) 报文处理方法、装置及电子设备
WO2016131422A1 (en) Flow entry generating and packet processing based on flow entry
US20150295729A1 (en) Hardware accelerator for tunnel processing
CN105282134B (zh) 从分组提取数据的方法、网络交换机及解析器
WO2017041737A1 (zh) 报文处理
US11258886B2 (en) Method of handling large protocol layers for configurable extraction of layer information and an apparatus thereof
CN105207984B (zh) 使用连续字节来表示通用格式报头的方法及其装置
JP6678401B2 (ja) 変更のためにパケットを個々のレイヤに分割し、変更後のレイヤを情報処理で継合する方法およびその装置
CN105187330B (zh) 使用唯一分组标识符来标识分组结构的方法及网络交换机
EP3255844B1 (en) Packet processing method and forwarding element
US20170187623A1 (en) Method of identifying internal destinations of network packets and an apparatus thereof
CN105282033B (zh) 允许报头层的扩展和塌缩以实现灵活修改的方法及其装置
EP2958286B1 (en) A method of using generic modification instructions to enable flexible modifications of packets and an apparatus thereof

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1220830

Country of ref document: HK

SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: California, USA

Applicant after: Cavium, Inc.

Address before: California, USA

Applicant before: Cavium, Inc.

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20200424

Address after: Singapore City

Applicant after: Marvell Asia Pte. Ltd.

Address before: Ford street, Grand Cayman, Cayman Islands

Applicant before: Kaiwei international Co.

Effective date of registration: 20200424

Address after: Ford street, Grand Cayman, Cayman Islands

Applicant after: Kaiwei international Co.

Address before: California, USA

Applicant before: Cavium, Inc.

GR01 Patent grant
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: WD

Ref document number: 1220830

Country of ref document: HK