针对层信息的可配置提取处理大协议层的方法以及设备的制造方法

文档序号:9567194阅读:329来源:国知局
针对层信息的可配置提取处理大协议层的方法以及设备的制造方法
【技术领域】
[0001] 本发明设及一种网络数据包。更具体地,本发明设及一种针对层信息的可配置提 取处理大协议层的方法W及设备。
【背景技术】
[0002] 网络数据包包括多个业务层或协议层,其中每一个层都与其他层独立。虽然传统 的硬件实施提供解析能力,但是传统的硬件实施不够灵活并且资源低效。运种不灵活性和 低效性的一个限制是各个层的最大长度。运种限制由必须被构建在硬件中的字段选择电 路所支配。进入硬件的逻辑与最大层长度成正比。例如,为了从层中W可编程的方式提取 "T"总字节,其中该层可W具有"L"字节的大小,该层所需要的字节MUX的总数为T*化:1) 个MUX。由此,"L"越大,字段选择电路的大小就越大,运就增加了硬件成本。如果解析器引 擎能够处理数据包中的多个层,那么总MUX结构成本就是字段选择电路的大小乘W解析器 引擎所支持的层的数目。

【发明内容】

[0003] 用于处理大协议层的装置的实施例设及优化字段选择电路的实施。运种实施在解 析数据包时为硬件解析器引擎提供类似软件的灵活性。该实施限制每一层的大小并且将任 何超出该大小的层分离为较小的层。解析器引擎如同从非分离层提取数据一样从分离的层 提取数据并且接着将所提取的数据级联为最终的结果。
[0004] 在一个方面,提供一种实施解析器引擎的方法。该方法包括:基于协议层将数据包 的层进行分离,使得数据包的协议层的每一个都分隔开。在一些实施例中,将数据包的层分 离包括将数据包的每个协议层的层类型存储在第一阵列中并且将数据包的每一个协议层 所结束的位置的偏移存储在第二阵列中。 阳〇化]所述方法包括进一步将数据包的协议层中具有大于预定大小的大小的协议层的 每一个分离为多个层。基于进一步的分离对第一阵列和第二阵列进行更新。在一些实施例 中,预定大小为软件限定的。
[0006] 所述方法包括处理所有的分离层。在一些实施例中,处理所有的分离层包括将分 离层的每一层归纳为通用格式并且从所归纳的分离层的每一层选择内容。在一些实施例 中,从所归纳的分离层的每一层选择内容包括将来自通用命令集合中的至少一个应用到所 归纳的分离层从而从所归纳的分离层提取字段。在一些实施例中,通用命令集合中的每一 个都与协议层中的特定字段无关。
[0007] 在一些实施例中,所述方法包括来自处理的级联结果被加W级联从而形成令牌, 其中所述令牌被用于数据包的进一步处理。
[0008] 在一些实施例中,所述方法包括将位矢量应用到来自处理的结果从而形成针对哈 希函数的输入,其中所述哈希函数的输出是标识数据包应当采用等价多径路由中的哪个等 价多径路由的唯一签名。
[0009] 在另一方面,提供一种实施解析器引擎的方法。所述方法包括基于协议层将数据 包的层进行分离从而使得数据包的协议层的每一个都分隔开。
[0010] 所述方法还包括保持与协议层的每一个的层类型W及协议层的每一个所结束的 位置的偏移有关的信息。在一些实施例中,与层类型有关的信息存储在第一阵列中,与偏移 有关的信息存储在第二阵列中。
[0011] 所述方法还包括将数据包的协议层中任何具有大于预定大小的大小的协议层进 一步分离为第一部分和第二部分,其中第一部分具有预定大小。预定大小为软件限定的。
[0012] 所述方法还包括基于进一步的分离对信息进行更新。在一些实施例中,对信息进 行更新包括:将与第一部分和第二部分的层类型有关的信息存储在第一阵列的序列元素 中,并且将与第一部分和第二部分的偏移有关的信息存储在第二阵列的序列元素中。
[0013] 所述方法还包括:基于确定第二部分具有大于预定大小的大小,对第二部分重复 进一步分离的步骤和更新的步骤。
[0014] 所述方法还包括处理所有的分离层。在一些实施例中,在处理之前,将分离层的每 一个归纳为通用格式。在一些实施例中,处理分离层包括从所归纳的层中提取数据。
[0015] 在另一个方面,提供了一种实现网络交换机的方法。所述方法包括基于协议层对 数据包进行解析,由此初始化第一阵列和第二阵列。在一些实施例中,解析数据包包括标识 数据包中的每一层的层类型,将每一层的层类型存储在第一阵列中,标识数据包中每一层 所结束的位置的偏移,并且将每一层所结束的位置的偏移存储在第二阵列中。在一些实施 例中,所述方法包括将第一阵列和第二阵列存储在网络交换机的存储器中。
[0016] 所述方法还包括:将第一阵列的每个元素与可编程寄存器进行比较,W确定 与该元素相关联的层是否需要被分离。在一些实施例中,可编程寄存器包括:层类型 (lay&rType)字段,其指示何者与相对应的输入相匹配;分离长度(SplitLength)字段,其 指示相对应的层应当W其而被分离的偏移;W及新层类型(newLayerType)字段,其指示新 分离层的层类型值。在一些实施例中,在对数据包进行解析之前,该方法包括经由软件对层 类型字段、分离长度字段W及新层类型字段进行编程。
[0017] 所述方法还包括,基于确定与该元素相关联的层需要被分离,来分离该层。
[0018] 所述方法还包括:根据分离来对第一阵列和第二阵列进行更新,并且从与第一阵 列的每个元素相关联的层提取数据。
[0019] 在一些实施例中,所述方法包括将所提取的数据结合W由此形成最终结果。在一 些实施例中,将位矢量应用到来自逻辑AND运算的结果,其中对来自层的所提取的数据W 及位掩码应用逻辑AND运算中的每一个。
[0020] 在另一个实施例中,提供一种解析器引擎。该解析器引擎包括:电路,其被配置为 基于协议层对数据包的层进行分离,使得数据包的协议层的每一个被分隔开,进一步将数 据包的协议层中具有大于预定大小的大小的每个协议层分离为多个层,并且对所有的分离 层进行处理。
[0021] 在一些实施例中,保持与协议层的每一个的层类型W及协议层的每一个所结束的 位置的偏移有关的信息。在将数据包的协议层中具有大于预定大小的大小的每个协议层进 一步分离为多个层后,对该信息进行更新。
[0022] 在一些实施例中,所述电路还被配置为:将来自处理的结果加W级联从而形成令 牌,其中所述令牌被用于数据包的进一步处理。
[0023] 在一些实施例中,所述电路还被配置为:将位矢量应用到来自处理的结果,W形成 针对哈希函数的输入。
【附图说明】
[0024] 如附图所说明的,从W下关于本发明示例性实施例的更为具体的描述,前述内容 将会变得明显,其中贯穿各个示图的相同的参考标号指代相同的部分。所列附图未必按照 比例绘制,其关注点在于阐释本发明的实施例。
[00巧]图1图示了根据本发明的一些实施例的解析器引擎的方法。
[0026] 图2图示了根据本发明的一些实施例的解析器引擎的另一方法。
[0027] 图3图示了根据本发明的一些实施例的网络交换机的方法。
【具体实施方式】
[0028] 在下面的描述中,列出了各种细节用于解释。然而,本领域的技术人员应当意识 至IJ,本发明可W无需使用运些特定的细节而实施。运样,本发明并不意在限于所示出的实施 例,而是应当被赋予与运里所描述的原则和特征相一致的最宽广的范围。
[0029] 用于处理大协议层的装置的实施例设及一种优化字段选择电路的实施。运种实施 在解析数据包时为硬件解析器引擎提供类似软件的灵活性。该实施限制每一层的大小并且 将超过该大小的任何层分离为较小的层。解析器引擎如同从非分离层提取数据一样从分离 的层提取数据并且接着将所提取的数据级联为最终的结果。
[0030] 例如网络交换机的网络设备能够对网络业务进行切换/路由。所述网络交换机包 括至少一个输入/进入端口和至少一个输出/出去端口,用于接收和发送数据包。在一些 实施例中,网络交换机还包括解析器和重写器。解析器可W包括一个或多个解析器引擎,W 识别网络数据包的内容,并且重写器可W包括一个或多个重写引擎,W在数据包被从网络 交换机发送出去之前对数据包进行修改。解析器引擎(多个解析器引擎)W及重写器引擎 (多个重写器引擎)是灵活的并且在可编程的基础
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1