CN105323164B - 减少灵活的解析器中的延迟的方法及其装置 - Google Patents

减少灵活的解析器中的延迟的方法及其装置 Download PDF

Info

Publication number
CN105323164B
CN105323164B CN201510229770.8A CN201510229770A CN105323164B CN 105323164 B CN105323164 B CN 105323164B CN 201510229770 A CN201510229770 A CN 201510229770A CN 105323164 B CN105323164 B CN 105323164B
Authority
CN
China
Prior art keywords
parser
parser engine
packet
engine
packets
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
CN201510229770.8A
Other languages
English (en)
Other versions
CN105323164A (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 CN105323164A publication Critical patent/CN105323164A/zh
Application granted granted Critical
Publication of CN105323164B publication Critical patent/CN105323164B/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
    • H04L45/00Routing or path finding of packets in data switching networks

Landscapes

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

Abstract

用于减少灵活的解析器中的延迟的装置的实施例涉及一种对该解析器内的每个解析器引擎进行优化的实施方式。分组进入该解析器。如果需要处理,则解析器引擎中的每个解析器引擎处理该分组。否则,该解析器引擎简单地将该分组转发通过而无需处理该分组,由此减少了延迟。每个解析器引擎包括存储器。该存储器存储旁路数据和状况信息,该状况信息指示了针对这个分组的解析是否完成并且因此后续的解析器引擎不需要进一步的处理。每个解析器引擎还包括计数器,该计数器每当分组进入该解析器引擎时递增,并且每当分组离开该解析器引擎时递减。分组基于解析器引擎的计数器以及该分组的状况信息来旁路该解析器引擎。

Description

减少灵活的解析器中的延迟的方法及其装置
技术领域
本发明涉及网络分组。特别地,本发明涉及一种减少灵活的解析器中的延迟的方法及其装置。
背景技术
图1图示了解析器100的框图。如图1中所示出的,解析器100包括串联放置的N个解析器引擎105。串联放置的该N个解析器引擎105允许解析器100以高线路速率进行解析。进入解析器100的网络分组由这N个解析器引擎105中的每个解析器引擎处理。每个解析器引擎105具有经过它的某个延迟。因此,如果每个解析器引擎105具有T个周期的延迟,则经过解析器100存在总延迟N*T个时钟。行进经过解析器100的每个网络分组将招致这个固定的延迟。然而,在网络中,并不是所有的分组都要求由该多个解析器引擎105所提供的所有处理。
发明内容
用于减少灵活的解析器中的延迟的装置的实施例涉及一种对该解析器内的每个解析器引擎进行优化的实施方式。分组进入该解析器。如果需要处理,则解析器引擎中的每个解析器引擎处理该分组。否则,该解析器引擎简单地将该分组转发通过而无需处理该分组,由此减少了延迟。每个解析器引擎包括存储器。该存储器存储旁路数据和状况信息,该状况信息指示了针对这个分组的解析是否完成并且因此后续的解析器引擎不需要进一步的处理。每个解析器引擎还包括计数器,该计数器每当分组进入该解析器引擎时递增,并且每当分组离开该解析器引擎时递减。分组基于解析器引擎的计数器以及该分组的状况信息来旁路该解析器引擎。
在一个方面中,提供了一种实施解析器引擎的方法。该方法包括:接收数据,其中该数据包括传入分组以及与该传入分组有关的状况信息;以及确定该状况信息是否指示第一状况。在一些实施例中,该第一状况是解析完成。
该方法还包括:基于该状况信息指示该第一状况的确定,当该解析器引擎当前没有正在处理一个或多个其他分组时,经由该解析器引擎的第一路由来传输该数据。在一些实施例中,该第一路由是旁路路由,该旁路路由用以通过该解析器引擎来发送该传入分组而无需被该解析器引擎处理。
在一些实施例中,该方法还包括:基于该状况信息指示该第一状况的确定,当该解析器引擎当前正在处理一个或多个其他分组时,等待经由该解析器引擎的该第一路由来传输该数据。
在一些实施例中,该方法还包括:基于该状况信息没有指示该第一状况的确定,经由该解析器引擎的第二路由来传输该传入分组。在一些实施例中,该第二路由是用以处理该传入分组的处理路由。在一些实施例中,该方法还包括:在该解析器引擎处理该传入分组之后,更新该状况信息。
在一些实施例中,该方法还包括:维持计数器,其中该计数器在每次分组进入该解析器引擎时递增,并且在每次分组离开该解析器引擎时递减。在一些实施例中,该计数器被用来确定该解析器引擎是否正在忙于处理其他分组。
在另一方面中,提供了一种实施解析器引擎的方法。该方法包括:维持每源端口的计数器以及接收数据,其中该数据包括传入分组以及与该传入分组有关的状况信息。
该方法还包括:确定该状况信息是否指示第一状况。在一些实施例中,该第一状况是解析完成。
该方法还包括:基于该状况信息指示该第一状况的确定,当该解析器引擎当前没有正在处理也利用与识别该传入分组利用的相同端口识别的一个或多个其他分组时,经由该解析器引擎的第一路由来传输该数据。在一些实施例中,该第一路由是旁路路由,该旁路路由用以通过该解析器引擎来发送该传入分组而无需被该解析器引擎处理。
在一些实施例中,该方法还包括:基于该状况信息指示该第一状况的确定,当该解析器引擎当前正在处理也利用与识别该传入分组利用的相同端口识别的一个或多个其他分组时,等待经由该解析器引擎的该第一路由来传输该数据。
在一些实施例中,该方法还包括:基于该状况信息没有指示该第一状况的确定,经由该解析器引擎的第二路由来传输该传入分组。在一些实施例中,该第二路由是用以处理该传入分组的处理路由。在一些实施例中,该方法还包括:在经由该第二路由传输该传入分组之前,递增与识别该传入分组利用的源端口相关联的计数器。在一些实施例中,该方法还包括:在经由该第二路由传输该传入分组之后,确定对该传入分组的解析是否完成并且递减与识别该传入分组利用的源端口相关联的计数器。
在又另一方面中,提供了一种解析器的方法。该解析器包括一连串的多个解析器引擎。该方法包括:通过该多个解析器引擎中的每个解析器引擎来发送数据,其中该数据包括传入分组以及该传入分组的状况信息。
该方法还包括:该多个解析器引擎中的每个解析器引擎基于发生的第一事件和第二事件,来确定是否通过该解析器引擎来发送该数据。在一些实施例中,该第一事件是处理完成,并且该第二事件是该解析器引擎当前没有正在忙于处理一个或多个其他分组。
该方法还包括:该多个解析器引擎中的每个解析器引擎基于发生的第三事件,来确定是否处理该传入分组。在一些实施例中,该第三事件是处理未完成。
在一些实施例中,该方法还包括:该多个解析器引擎中的每个解析器引擎维持计数器,其中该计数器在每次分组进入该解析器引擎时递增,并且在每次分组离开该解析器引擎时递减。
在一些实施例中,该方法还包括:该多个解析器引擎中的每个解析器引擎维持每源端口的计数器,其中与该源端口相关联的计数器在利用源端口识别的分组每次进入该解析器引擎时递增,并且在利用源端口识别的分组每次离开该解析器引擎时递减。
在又另一方面中,提供了一种解析器。该解析器包括多个解析器引擎。在一些实施例中,解析器引擎中的每个解析器引擎是无状态的。通常,每个解析器引擎包括:处理路由,其中该处理路由处理传入分组;以及旁路路由,其中该旁路路由通过该解析器引擎来发送该传入分组而无需被该解析器引擎处理。取决于该传入分组的状况和该解析引擎的状况,而经由该处理路由或者该旁路路由来传输进入该解析器引擎的传入分组。
在一些实施例中,当该传入分组的该状况是解析未完成时,经由处理路由来传输该传入分组,并且该状况在此后被更新。
在一些实施例中,当该传入分组的该状况是解析完成并且该解析引擎的该状况是当前没有正在处理一个或多个其他分组时,经由旁路路由来传输该传入分组。
在一些实施例中,当该传入分组的该状况是解析完成并且该解析引擎的该状况是当前正在处理一个或多个其他分组时,在该解析器引擎结束处理该一个或多个其他分组之后,经由该旁路路由来传输该传入分组。
在一些实施例中,当该传入分组的该状况是解析完成并且该解析引擎的该状况是当前没有正在处理利用与识别该传入分组利用的相同源端口识别的一个或多个其他分组时,经由旁路路由来传输该传入分组。
在一些实施例中,当该传入分组的该状况是解析完成并且该解析引擎的该状况是当前正在处理利用与识别该传入分组利用的相同源端口识别的一个或多个其他分组时,在该解析器引擎结束处理该一个或多个其他分组之后,经由旁路路由来传输该传入分组。
在一些实施例中,每个解析器引擎还包括计数器,其中该计数器在每次分组进入该解析器引擎时递增,并且在每次分组离开该解析器引擎时递减。可替换地,每个解析器引擎还包括每端口的计数器,其中该计数器在利用相关联的端口识别的分组每次进入该解析器引擎时递增,并且在利用相关联的端口识别的分组每次离开该解析器引擎时递减。
在又另一方面中,提供了一种解析器。该解析器包括多个解析器引擎。通常,每个解析器引擎包括存储器,其中该存储器存储分组的旁路信息。每个解析器引擎还包括:至少一个计数器,用以保持对当前正在被该解析器引擎处理的分组的数目的跟踪。每个解析器引擎还包括处理路由,其中该处理路由处理分组。每个解析器引擎还包括旁路路由,其中该旁路路由通过该解析器引擎来发送分组而无需被该解析器引擎处理,其中取决于该分组的状况和该解析引擎的状况,而经由该处理路由或者该旁路路由来传输进入该解析器引擎的分组。在一些实施例中,该解析器引擎的该状况取决于该至少一个计数器。
在一些实施例中,由TCAM和SRAM来形成该旁路路由,其中该SRAM存储旁路数据和该分组的状况。
附图说明
根据如在附图中所图示的本发明的示例实施例的以下更加特定的描述,前述内容将是明显的,在附图中,贯穿不同的视图,相似的参考字符指代相同的部分。这些示图不一定按比例绘制,替代地,重点被放在图示出本发明的实施例上。
图1图示了一个解析器的框图。
图2图示了根据本发明的一些实施例的示例性解析器的框图。
图3图示了根据本发明的一些实施例的解析器引擎的框图。
图4图示了根据本发明的一些实施例的解析器引擎的方法。
图5图示了根据本发明的一些实施例的解析器引擎的另一方法。
图6图示了根据本发明的一些实施例的解析器的方法。
具体实施方式
在以下的描述中,阐述了许多细节用于解释的目的。然而,本领域的普通技术人员将认识到,本发明能够无需使用这些具体细节而被实行。因此,本发明不意图被限制于所示出的实施例,而是将符合与本文所描述的原理和特征相一致的最宽范围。
用于减少灵活的解析器中的延迟的装置的实施例涉及一种对该解析器内的每个解析器引擎进行优化的实施方式。分组进入解析器。如果需要处理,则解析器引擎中的每个解析器引擎处理该分组。否则,该解析器引擎简单地将该分组转发通过而无需处理该分组,由此减少了延迟。每个解析器引擎包括存储器。该存储器存储旁路数据和状况信息,该状况信息指示了针对这个分组的解析是否完成并且因此后续的解析器引擎不需要进一步的处理。每个解析器引擎还包括计数器,该计数器每当分组进入该解析器引擎时递增,并且每当分组离开该解析器引擎时递减。分组基于解析器引擎的计数器和该分组的状况信息而旁路该解析器引擎。
网络设备(诸如网络交换机)能够交换/路由网络流量。网络交换机包括用于接收和传输分组的至少一个输入/传入端口以及至少一个输出/传出端口。在一些实施例中,网络交换机还包括解析器和重写器。解析器能够包括一个或多个解析器引擎以识别网络分组的内容,并且重写器能够包括一个或多个重写引擎以在分组从网络交换机传输出去之前修改它们。该(些)解析器引擎和该(些)重写器引擎是灵活的并且在可编程的基础上进行操作。
图2图示了根据本发明的一些实施例的示例性解析器200的框图。简略地说,解析器200通常使用TCAM(三态内容可寻址存储器)和存储器(诸如SRAM静态随机访问存储器)的组合来识别、查找分组中的字段。
解析器200包括一连串的多个解析器引擎205。该多个解析器引擎205包括至少一个SKPU 205a和多个KPU 205b。在一些实施例中,解析器引擎205中的每个解析器引擎是无状态的。
在一些实施例中,去往解析器200的传入数据来自输入映射,而来自解析器200的传出数据去往层提取映射。在一些实施例中,该输入映射将网络流映射至解析器。在一些实施例中,该层抽取映射由网络交换机的其他硬件引擎使用。
图3图示了根据本发明的一些实施例的解析器引擎300的框图。在一些实施例中,图2的解析器引擎205中的每个解析器引擎类似地被配置为解析器引擎300。解析器引擎300包括处理路径,该处理路径具有八个时钟的延迟,但是可能存在更多或更少时钟的延迟,这取决于硬件约束和要求。解析器引擎300包括由TCAM 305和SRAM 310所形成的旁路路径。在解析器引擎300内,SRAM 310存储旁路数据和分组的状况信息。该状况信息指示了针对这个分组的解析是否完成并且因此后续的解析器引擎不需要进一步的处理。
解析器引擎300还包括计数器。该计数器每当分组进入该解析器引擎时递增,并且每当分组离开该解析器引擎时递减。表格1中示出了用于这个计数器的示例性伪代码。
表格1
Figure BDA0000713155550000071
来自前一级的分组计数和状况信息(例如,解析是否完毕)两者都被用来对解析器引擎300进行旁路,这被反映在表格2中所示出的示例性伪代码中。
表格2
Figure BDA0000713155550000072
图4图示了根据本发明的一些实施例的解析器引擎的方法400。在步骤405处,数据被接收。该数据包括传入分组以及与该传入分组有关的状况信息。该状况信息通常指示对该传入分组的解析是否完成。
在步骤410处,确定该状况信息是否指示第一状况。该第一状况是来自前一级的解析完成或完毕。
在步骤415处,基于该状况信息指示第一状况的确定,当解析器引擎当前没有正在处理一个或多个其他分组时,经由该解析器引擎的第一路由来传输该数据。在一些实施例中,计数器被维持。该计数器在每次分组进入该解析器引擎时递增,并且在每次分组离开该解析器引擎时递减。在一些实施例中,该计数器被用来确定解析器引擎是否正在忙于处理其他分组。在一些实施例中,该第一路由是用以通过解析器引擎来发送传入分组而无需被解析器引擎处理的旁路路由。
基于该状况信息指示该第一状况的确定,当解析器引擎当前正在处理一个或多个其他分组时,在该解析器引擎结束处理该一个或多个其他分组之后,经由该解析器引擎的第一路由来传输该数据。
基于该状况信息没有指示该第一状况的确定,经由解析器引擎的第二路由来传输传入数据。该第二路由是用以处理传入分组的处理路由。在解析器引擎处理传入分组之后,该状况信息被更新。
在一些实施例中,解析器能够处置多个源端口。一种代价稍微更高但更有效的实施方式是维持每源端口的计数器,而不是单个计数器用于所有的源端口。因为对横跨源端口的分组的重排序不存在约束,所以即使解析器引擎正在处理来自其他无关端口的分组,这种实施方式也允许该解析器引擎被旁路,这被反映在表格3中所示出的示例性伪代码中。
表格3
Figure BDA0000713155550000091
图5图示了根据本发明的一些实施例的解析器引擎的另一方法500。在步骤505处,每源端口的计数器被维持。
在步骤510处,数据被接收。该数据包括传入分组以及与该传入分组有关的信息。该信息包括与该传入分组有关的状况信息。该状况信息指示来自前一级的解析是否完成或完毕。
在步骤515处,确定该状况信息是否指示第一状况。该第一状况是解析完成。
在步骤520处,基于该状况信息指示该第一状况的确定,当解析器引擎当前没有正在处理也利用与识别传入分组利用的相同端口识别的一个或多个其他分组时,经由解析器引擎的第一路由来传输该数据。在一些实施例中,与识别传入分组利用的源端口相关联的计数器被用来确定解析器引擎是否正在忙于处理利用该源端口识别的其他分组。该第一路由是用以通过解析器引擎来发送传入分组而无需被解析器引擎处理的旁路路由。
基于该状况信息指示该第一状况的确定,当解析器引擎当前正在处理也利用与识别传入分组利用的相同端口识别的一个或多个其他分组时,在解析器引擎结束处理该一个或多个其他分组之后,经由解析器引擎的第一路由来传输该数据。
基于该状况信息没有指示该第一状况的确定,经由解析器引擎的第二路由来传输传入分组。该第二路由是用以处理传入分组的处理路由。在经由第二路由传输传入分组之前,与识别该传入分组利用的源端口相关联的计数器递增。在经由第二路由传输传入分组之后,确定对传入分组的解析是否完成,并且与识别传入分组利用的源端口相关联的计数器递减。
图6图示了根据本发明的一些实施例的解析器的方法600。该解析器包括一连串的多个解析器引擎。在步骤605处,通过该多个解析器引擎中的每个解析器引擎来发送数据。该数据通常包括传入分组以及该传入分组的状况信息。
在步骤610处,该多个解析器引擎中的每个解析器引擎基于发生的第一事件和第二事件,来确定是否通过该解析器引擎来发送该数据。该第一事件是处理完成,并且该第二事件是该解析器引擎当前没有忙于处理一个或多个其他分组。
在步骤615处,该多个解析器引擎中的每个解析器引擎基于发生的第三事件来确定是否处理该传入分组。该第三事件是处理未完成。
在一些实施例中,该多个解析器引擎中的每个解析器引擎维持计数器。该计数器在每次分组进入该解析器引擎时递增,并且在每次分组离开该解析器引擎时递减。可替换地,该多个解析器引擎中的每个解析器引擎维持每源端口的计数器。与源端口相关联的计数器在利用源端口识别的分组每次进入该解析器引擎时递增,并且在利用源端口识别的分组每次离开该解析器引擎时递减。在一些实施例中,基于计数器来确定第二事件。
本领域的普通技术人员将认识到,也存在其他的使用和优点。尽管已经参考许多具体的细节描述了本发明,但是本领域的普通技术人员将认识到,不偏离本发明的精神,能够以其他的具体形式来体现本发明。因此,本领域的普通技术人员将理解,本发明将不由前述的说明性细节所限制,而是将由所附权利要求所限定。

Claims (23)

1.一种实施一系列的解析器引擎的方法,所述方法包括:
利用第一解析器引擎解析分组;
在第二解析器引擎处从所述第一解析器引擎接收数据,其中所述数据包括所述分组以及与所述分组有关的状况信息;
利用所述第二解析器引擎确定所述状况信息是指示第一状况还是第二状况,所述第一状况是经由一个或多个其他解析器引擎进行的一个或多个先前解析,解析已经针对所述分组被完成,所述第二状况是解析针对所述分组未完成;
至少基于所述状况信息是否指示所述第一状况,经由第一路由从所述第二解析器引擎输出所述分组,而无需利用所述第二解析器引擎解析所述分组;
如果所述状况信息指示所述第二状况,则利用所述第二解析器引擎解析所述分组;以及
基于所述状况信息指示所述第一状况的确定,当所述第二解析器引擎当前正在处理与传入分组利用相同端口识别的一个或多个其他分组时,等待经由所述第二解析器引擎的所述第一路由来传输所述数据。
2.根据权利要求1所述的方法,其中所述第一路由是旁路路由,所述旁路路由用以通过所述第二解析器引擎来发送所述传入分组而无需被所述第二解析器引擎解析。
3.根据权利要求1所述的方法,进一步包括:在所述第二解析器引擎解析所述传入分组之后,更新所述状况信息。
4.根据权利要求1所述的方法,进一步包括:维持所述第二解析器引擎内的计数器,其中所述计数器在每次分组进入所述第二解析器引擎时递增,并且在每次分组离开所述第二解析器引擎时递减。
5.根据权利要求4所述的方法,其中所述计数器被用来确定所述第二解析器引擎是否正在忙于处理其他分组。
6.一种实施解析器引擎的方法,所述方法包括:
维持解析器引擎内的多个计数器,其中所述多个计数器中的每个计数器与多个源端口中的不同源端口相关联;
利用所述计数器中的每个计数器,通过对由所述解析器引擎输入的来自与所述计数器相关联的源端口的分组的数目、和由所述解析器引擎输出的来自所述相关联的源端口的分组的数目之间的差异进行计数,确定来自所述相关联的源端口的一个或多个分组是否当前正由所述解析器引擎处理;
利用所述解析器引擎接收数据,其中所述数据包括具有头部的传入分组和关于所述传入分组的状况信息;
利用所述解析器引擎确定所述状况信息是指示第一状况还是第二状况,所述第一状况是经由一个或多个其他解析器引擎进行的一个或多个先前解析,解析已经针对所述分组被完成,所述第二状况是解析针对所述分组未完成,其中所述分组从所述解析器引擎的所述输出是经由第一路由的并且进一步基于所述状况信息是否指示所述第一状况;
如果所述状况信息指示所述第二状况,经由第二路由利用所述解析器引擎解析所述分组;
当包括所述头部的所述数据准备好由所述解析器引擎输出但是未由所述解析器引擎解析时:
如果与所述数据从其被传输的源端口相关联的计数器指示来自所述数据从其被传输的所述源端口的一个或多个其他分组当前仍然正由所述解析器引擎处理,则在所述解析器引擎完成处理所述一个或多个其他分组之后,经由所述第一路由来传输所述数据;以及
基于所述数据从其被传输的所述源端口的所述计数器指示没有来自所述数据从其被传输的所述源端口的分组当前正由所述解析器引擎处理,从所述解析器引擎输出所述数据,其中所述一个或多个其他分组具有头部和有效载荷。
7.根据权利要求6所述的方法,其中所述第一路由是旁路路由,所述旁路路由用以通过所述解析器引擎来发送所述传入分组而无需被所述解析器引擎解析。
8.根据权利要求6所述的方法,其中所述第二路由是用以解析所述传入分组的处理路由。
9.根据权利要求6所述的方法,进一步包括:在经由所述第二路由传输所述传入分组之前,递增与识别所述传入分组利用的所述源端口相关联的所述计数器。
10.根据权利要求6所述的方法,进一步包括:在经由所述第二路由传输所述传入分组之后,确定对所述传入分组的解析是否完成,并且递减与识别所述传入分组利用的所述源端口相关联的所述计数器。
11.一种用于解析器的方法,所述解析器包括一系列的多个解析器引擎,所述方法包括:
通过所述多个解析器引擎中的每个解析器引擎串行地发送数据,其中所述数据包括传入分组以及所述传入分组的状况信息;
利用所述多个解析器引擎中的一个解析器引擎确定所述状况信息是指示第一状况还是第二状况,所述第一状况是经由所述多个解析器引擎中的一个或多个其他解析器引擎进行的一个或多个先前解析,解析已经针对所述分组被完成,所述第二状况是解析针对所述分组未完成;以及
基于所述状况信息指示所述第一状况的确定,当所述多个解析器引擎中的所述一个解析器引擎当前正在处理与所述传入分组利用相同端口识别的一个或多个其他分组时,等待经由所述多个解析器引擎中的所述一个解析器引擎的第一路由来传输所述数据;
其中在接收到所述数据时:
所述多个解析器引擎中的每个解析器引擎基于所述第一状况和第三状况来确定是否不解析所述数据,所述第三状况是所述解析器引擎当前没有正在忙于处理一个或多个其他分组;
所述多个解析器引擎中的每个解析器引擎基于所述第二状况来确定是否解析所述传入分组;以及
所述多个解析器引擎中的每个解析器引擎维持每源端口的计数器,其中与所述源端口相关联的所述计数器在利用所述源端口识别的分组每次进入所述解析器引擎时递增,并且在利用所述源端口识别的分组每次离开所述解析器引擎时递减。
12.根据权利要求11所述的方法,进一步包括:所述多个解析器引擎中的每个解析器引擎维持计数器,其中所述计数器在每次分组进入所述解析器引擎时递增,并且在每次分组离开所述解析器引擎时递减。
13.一种非瞬态计算机可读介质,存储包括多个解析器引擎的解析器,其中每个解析器引擎包括:
处理路由,所述处理路由经过所述解析器引擎,其中所述处理路由利用所述解析器引擎来解析多个传入分组;以及
旁路路由,所述旁路路由经过所述解析器引擎,其中所述旁路路由通过所述解析器引擎来发送所述多个传入分组而无需被所述解析器引擎解析,其中取决于进入所述解析器引擎的所述多个传入分组中的传入分组的状况和所述解析器引擎的状况,而经由所述处理路由或者所述旁路路由来传输所述传入分组;
其中当所述传入分组的所述状况是解析完成并且所述解析器引擎的所述状况是当前正在处理与识别所述传入分组利用相同源端口识别的一个或多个其他分组时,在所述解析器引擎结束处理所述一个或多个其他分组之后,经由所述旁路路由来传输所述传入分组。
14.根据权利要求13所述的非瞬态计算机可读介质,其中所述解析器引擎中的每个解析器引擎是无状态的。
15.根据权利要求13所述的非瞬态计算机可读介质,其中当所述传入分组的所述状况是解析未完成时,经由所述处理路由来传输所述传入分组,并且所述传入分组的所述状况在此后被更新。
16.根据权利要求13所述的非瞬态计算机可读介质,其中当所述传入分组的所述状况是解析完成并且所述解析器引擎的所述状况是当前没有正在处理一个或多个其他分组时,经由所述旁路路由来传输所述传入分组。
17.根据权利要求13所述的非瞬态计算机可读介质,其中当所述传入分组的所述状况是解析完成并且所述解析器引擎的所述状况是当前正在处理一个或多个其他分组时,在所述解析器引擎结束处理所述一个或多个其他分组之后,经由所述旁路路由来传输所述传入分组。
18.根据权利要求13所述的非瞬态计算机可读介质,其中当所述解析器引擎确定所述传入分组的所述状况是解析完成,并且确定所述解析器引擎的所述状况是当前没有正在处理与识别所述传入分组利用相同源端口识别的一个或多个其他分组时,经由所述旁路路由来传输所述传入分组。
19.根据权利要求13所述的非瞬态计算机可读介质,其中每个解析器引擎还包括计数器,其中所述计数器在每次分组进入所述解析器引擎时递增,并且在每次分组离开所述解析器引擎时递减。
20.根据权利要求13所述的非瞬态计算机可读介质,其中每个解析器引擎还包括每端口的计数器,其中所述计数器在利用相关联的端口识别的分组每次进入所述解析器引擎时递增,并且在利用相关联的端口识别的分组每次离开所述解析器引擎时递减。
21.一种包括多个解析器引擎的解析器,其中每个解析器引擎包括:
存储器,其中所述存储器存储分组的旁路信息;
至少一个计数器,其跟踪当前正在被所述解析器引擎处理的分组的数目;
处理路由,其中所述处理路由利用所述解析器引擎解析分组;以及
旁路路由,其中所述旁路路由通过所述解析器引擎来发送分组而无需被所述解析器引擎解析,其中取决于进入所述解析器引擎的传入分组的状况和所述解析器引擎的状况,而经由所述处理路由或者所述旁路路由来传输所述传入分组;
其中当所述传入分组的所述状况是解析完成并且所述解析器引擎的所述状况是当前正在处理与识别所述传入分组利用相同源端口识别的一个或多个其他分组时,在所述解析器引擎结束处理所述一个或多个其他分组之后,经由所述旁路路由来传输所述传入分组。
22.根据权利要求21所述的解析器,其中所述解析器引擎的所述状况取决于所述至少一个计数器。
23.根据权利要求21所述的解析器,其中由三态内容可寻址存储器(TCAM)和静态随机访问存储器(SRAM)来形成所述旁路路由,其中所述SRAM存储旁路数据以及所述分组的所述状况。
CN201510229770.8A 2014-06-19 2015-05-07 减少灵活的解析器中的延迟的方法及其装置 Active CN105323164B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/309,773 2014-06-19
US14/309,773 US10050833B2 (en) 2014-06-19 2014-06-19 Method of reducing latency in a flexible parser and an apparatus thereof

Publications (2)

Publication Number Publication Date
CN105323164A CN105323164A (zh) 2016-02-10
CN105323164B true CN105323164B (zh) 2020-09-08

Family

ID=54870652

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510229770.8A Active CN105323164B (zh) 2014-06-19 2015-05-07 减少灵活的解析器中的延迟的方法及其装置

Country Status (4)

Country Link
US (1) US10050833B2 (zh)
CN (1) CN105323164B (zh)
HK (1) HK1220833A1 (zh)
TW (1) TW201603533A (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10848430B2 (en) * 2016-12-30 2020-11-24 Intel Corporation Flexible packet processing
US11625532B2 (en) 2018-12-14 2023-04-11 Microsoft Technology Licensing, Llc Dynamically generated content understanding system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101095310A (zh) * 2004-04-26 2007-12-26 思科技术公司 可编程分组解析处理器
CN101694627A (zh) * 2009-10-23 2010-04-14 天津大学 基于TCore可配置处理器的编译器系统
CN102104541A (zh) * 2009-12-21 2011-06-22 索乐弗莱尔通讯公司 报头处理引擎

Family Cites Families (73)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5793954A (en) 1995-12-20 1998-08-11 Nb Networks System and method for general purpose network analysis
US6088356A (en) 1997-06-30 2000-07-11 Sun Microsystems, Inc. System and method for a multi-layer network element
US5951651A (en) 1997-07-23 1999-09-14 Lucent Technologies Inc. Packet filter system using BITMAP vector of filter rules for routing packet through network
US7333484B2 (en) 1998-08-07 2008-02-19 Intel Corporation Services processor having a packet editing unit
US6606301B1 (en) 1999-03-01 2003-08-12 Sun Microsystems, Inc. Method and apparatus for early random discard of packets
ATE319249T1 (de) 2000-01-27 2006-03-15 Ibm Verfahren und vorrichtung für klassifizierung von datenpaketen
US6831917B1 (en) 2000-05-10 2004-12-14 Cisco Technology, Inc. Network address translation for multicast virtual sourcing
JP4099930B2 (ja) 2000-06-02 2008-06-11 株式会社日立製作所 ルータ装置及びvpn識別情報の設定方法
US20020076142A1 (en) 2000-08-21 2002-06-20 Song Qi Wang Optical switch and switching network
GB0023169D0 (en) * 2000-09-20 2000-11-01 Ibm Message parsing in message processing systems
DE60130367T2 (de) 2000-10-11 2008-06-12 Broadcom Corp., Irvine Verfahren zum dynamischen mischen von Paketkopfunterdrückungstechniken
US6952425B1 (en) * 2000-11-14 2005-10-04 Cisco Technology, Inc. Packet data analysis with efficient and flexible parsing capabilities
GB2371705B (en) * 2001-01-30 2003-04-23 3Com Corp Network switch with mutually coupled look-up engine and network processor
GB0107882D0 (en) * 2001-03-29 2001-05-23 Ibm Parsing messages with multiple data formats
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
US7017162B2 (en) 2001-07-10 2006-03-21 Microsoft Corporation Application program interface for network software platform
US20030037154A1 (en) 2001-08-16 2003-02-20 Poggio Andrew A. Protocol processor
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
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
US7277426B2 (en) 2002-05-24 2007-10-02 Mosaid Technologies, Inc. Method and apparatus for reordering entries in a multi probe lookup
US7408957B2 (en) 2002-06-13 2008-08-05 International Business Machines Corporation Selective header field dispatch in a network processing system
WO2004006080A2 (en) 2002-07-04 2004-01-15 Koninklijke Philips Electronics N.V. Automatically adaptable virtual keyboard
US7191241B2 (en) 2002-09-27 2007-03-13 Alacritech, Inc. Fast-path apparatus for receiving data corresponding to a TCP connection
US7367052B1 (en) 2002-12-04 2008-04-29 Cisco Technology, Inc. Access list key compression
US7415596B2 (en) 2003-01-24 2008-08-19 Gigafin Networks, Inc. Parser table/production rule table configuration using CAM and SRAM
US20050281281A1 (en) * 2003-01-24 2005-12-22 Rajesh Nair Port input buffer architecture
US7293113B1 (en) 2003-05-28 2007-11-06 Advanced Micro Devices, Inc. Data communication system with hardware protocol parser and method therefor
US7706363B1 (en) 2003-06-11 2010-04-27 Radlan Computer Communications, Ltd Method and apparatus for managing packets in a packet switched network
GB0320957D0 (en) 2003-09-08 2003-10-08 Qinetiq Ltd Document authentication
US7685436B2 (en) 2003-10-02 2010-03-23 Itt Manufacturing Enterprises, Inc. System and method for a secure I/O interface
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
US7522516B1 (en) 2004-03-30 2009-04-21 Extreme Networks, Inc. Exception handling system for packet processing system
JP4392294B2 (ja) 2004-06-15 2009-12-24 株式会社日立製作所 通信統計収集装置
US7463630B2 (en) * 2005-02-18 2008-12-09 Broadcom Corporation Multi-part parsing in a network device
US7414975B2 (en) 2005-03-24 2008-08-19 Ixia Protocol stack
US7603474B2 (en) 2005-10-05 2009-10-13 Microsoft Corporation Efficient endpoint matching using a header-to-bit conversion table
JP4887897B2 (ja) 2006-05-12 2012-02-29 富士通株式会社 パケット伝送装置、パケット転送方法及びパケット伝送システム
US9143585B2 (en) 2006-07-07 2015-09-22 Wi-Lan Inc. Method and system for generic multiprotocol convergence over wireless air interface
US7710959B2 (en) 2006-08-29 2010-05-04 Cisco Technology, Inc. Private VLAN edge across multiple switch modules
KR20090099519A (ko) 2006-12-19 2009-09-22 인터내셔널 비지네스 머신즈 코포레이션 네트워크 흐름을 분석하기 위한 장치 및 방법
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
US8054744B1 (en) 2007-10-25 2011-11-08 Marvell International Ltd. Methods and apparatus for flow classification and flow measurement
US8112800B1 (en) 2007-11-08 2012-02-07 Juniper Networks, Inc. Multi-layered application classification and decoding
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
KR101456563B1 (ko) 2008-05-14 2014-10-31 삼성전자주식회사 멀티 홉 릴레이 환경에서 대역폭 할당 요청과 할당 방법 및시스템
US9064058B2 (en) 2008-12-24 2015-06-23 Nuon, Inc. Virtualized PCI endpoint for extended systems
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
CN101621469B (zh) * 2009-08-13 2012-01-04 杭州华三通信技术有限公司 数据报文存取控制装置和方法
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
US8576713B2 (en) 2010-04-23 2013-11-05 Ixia Traffic generator with priority flow control
EP2567524B1 (en) 2010-05-03 2019-06-26 Nokia Technologies Oy Protocol overhead reduction
US9042405B1 (en) 2010-06-02 2015-05-26 Marvell Israel (M.I.S.L) Ltd. Interface mapping in a centralized packet processor for a network
US8705533B1 (en) 2010-12-10 2014-04-22 Juniper Networks, Inc. Fast packet encapsulation using templates
US8521905B2 (en) 2011-12-22 2013-08-27 Telefonaktiebolaget L M Ericsson (Publ) System for flexible and extensible flow processing in software-defined networks
US8711860B2 (en) 2011-12-22 2014-04-29 Telefonaktiebolaget L M Ericsson (Publ) Controller for flexible and extensible flow processing in software-defined networks
US9565120B2 (en) * 2012-01-30 2017-02-07 Broadcom Corporation Method and system for performing distributed deep-packet inspection
US9282173B2 (en) 2012-02-17 2016-03-08 Viavi Solutions Inc. Reconfigurable packet header parsing
US9065780B2 (en) * 2012-09-18 2015-06-23 Cisco Technology, Inc. Low latency networking device using header prediction
HUE034267T2 (en) 2012-10-17 2018-02-28 Sony Corp Data processing equipment, data processing method and program
EP2915287B1 (en) 2012-10-30 2018-12-05 Viavi Solutions Inc. Method and system for identifying matching packets
US20140153443A1 (en) 2012-11-30 2014-06-05 International Business Machines Corporation Per-Address Spanning Tree Networks
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
US9823925B2 (en) 2014-03-28 2017-11-21 Intel Corporation Instruction and logic for a logical move in an out-of-order processor
US20170048144A1 (en) 2015-08-13 2017-02-16 Futurewei Technologies, Inc. Congestion Avoidance Traffic Steering (CATS) in Datacenter Networks

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101095310A (zh) * 2004-04-26 2007-12-26 思科技术公司 可编程分组解析处理器
CN101694627A (zh) * 2009-10-23 2010-04-14 天津大学 基于TCore可配置处理器的编译器系统
CN102104541A (zh) * 2009-12-21 2011-06-22 索乐弗莱尔通讯公司 报头处理引擎

Also Published As

Publication number Publication date
TW201603533A (zh) 2016-01-16
CN105323164A (zh) 2016-02-10
US10050833B2 (en) 2018-08-14
HK1220833A1 (zh) 2017-05-12
US20150372860A1 (en) 2015-12-24

Similar Documents

Publication Publication Date Title
US9032089B2 (en) Methods and apparatus for path selection within a network based on flow duration
US20130094515A1 (en) Systems, apparatus, and methods for removing duplicate data packets from a traffic flow of captured data packets transmitted via a communication network
US20220045950A1 (en) Single lookup entry for symmetric flows
TW201543846A (zh) 用於產生查找和進行判定的引擎、方法和軟體定義網路
JP2003023437A (ja) パケット処理装置
US9288159B2 (en) Systems and methods for deep packet inspection with a virtual machine
JP2011514111A (ja) 通信ネットワークの直列データバスを介して当該ネットワークの加入者に到着したメッセージについての情報を格納するための方法及びフィルタ構成
CN107113282A (zh) 一种抽取数据报文的方法及装置
CN110048961B (zh) 基于asic的重复报文检测方法及系统
US7046663B1 (en) System and method for intercepting packets in a pipeline network processor
JP2010539837A (ja) 待ち行列形成方法
CN105323164B (zh) 减少灵活的解析器中的延迟的方法及其装置
US9276851B1 (en) Parser and modifier for processing network packets
US20170302596A1 (en) Segmentation and reassembly of network packets for switched fabric networks
US10430472B2 (en) Apparatus and method for collecting responses to a plurality of parallel lookup queries from a flow of packets at a network switch
EP3264716B1 (en) State transition compression mechanism to efficiently compress dfa based regular expression signatures
US8879548B2 (en) Alignment circuit and receiving apparatus
US20140301393A1 (en) Preprocessing unit for network data
US20160065457A1 (en) Flow inheritance
JP2002164924A (ja) パケット処理装置
CN111937353B (zh) 操作网络参与者方法及网络参与者
CN109347678B (zh) 一种路由环路的确定方法及装置
US10063487B2 (en) Pattern matching values of a packet which may result in false-positive matches
WO2024054283A1 (en) System and method for forwarding network traffic
CN117499510A (zh) 用于安全通信加速的设备和方法

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: 1220833

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: 20200427

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: 20200427

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: 1220833

Country of ref document: HK