【技术实现步骤摘要】
本专利技术涉及一种处理分组报头的报头处理引擎。
技术介绍
现代数据分组网络中的计算机系统通常根据在网络的全部层中运行的多个不同 的协议,从管理数据流业务质量的协议,到确定数据分组逻辑结构的协议,再到确定网络结 构上的全形式数据分组的物理信令的协议,来交换数据。因此一个典型的网络数据分组在 计算机系统中形成数据分组时会具有嵌套式的多个报头。通常数据分组在开放系统互联 (OSI)模型的第2至5层的每一层包括一个或更多个报头。例如,通过建立了逻辑VLAN的以太网传输的TCP/IP数据分组会具有与以下所示 相近的嵌套报头结构以太网 /VLAN/IP/TCP另外,分组可在以上结构中包括第5层报头,例如NetBIOS报头。数据分组的报头把处理该数据分组的计算机系统需要的全部信息告诉该计算机 系统,以便计算机系统将数据分组中的有效载荷数据正确地路由到其目的地,并且对数据 分组的发送方进行适当的响应。没有了分组报头,有效载荷数据就单单是一串没有任何上 下文的比特序列,计算机系统不知道怎样处理数据。因此,计算机系统接收数据分组时,必 须处理数据分组的报头以便确定对数据分组做何处理。通常,一些报头处理在终端系统的软件中完成,一些报头处理在硬件中完成。软件 处理通常遵循分层协议栈模型,连续的报头被依次剥离和处理。相反的,硬件处理只处理一 部分报头,或者将报头的组合作为单独的实体来处理,以便执行要求的操作。硬件中的报头 处理对于路由分组数据、加快分组传递或者操纵分组报头特别有用。硬件中的报头处理通常在网络接口设备中进行。各个数据分组被接收后,网络接 口设备解析数据分组的报头并 ...
【技术保护点】
1.一种用于网络接口设备的报头处理引擎,所述网络接口设备具有用于保存各具有一个或更多个报头的一个或更多个数据分组的缓存,所述报头处理引擎包括:命令存储器;报头识别器,其被配置为解析存储在所述缓存中的数据分组的报头,以识别所述数据分组中各个报头的类型和位置;构造器单元,其对所述数据分组的报头进行读取访问;以及处理器,其包括执行流水线;所述报头识别器进一步被配置为对各个报头进行以下操作:(a)根据所述报头的类型来选择存储在所述命令存储器中的一个或更多个命令;和(b)为所述构造器单元形成一个或更多个用于识别被选择的命令和所述报头在数据分组中的位置的消息;如果所述构造器单元执行为所述数据分组的报头而选择的命令,则所述命令将共同地使得所述构造器单元产生一数据结构,该数据结构能够操作用于使得所述处理器在无需访问所述缓存中的数据分组的情况下对所述数据分组的报头实施处理;并且所述构造器单元被配置为接收所述消息并执行其中识别的命令。
【技术特征摘要】
2009.12.21 US 61/288,6421.一种用于网络接口设备的报头处理引擎,所述网络接口设备具有用于保存各具有一 个或更多个报头的一个或更多个数据分组的缓存,所述报头处理引擎包括命令存储器;报头识别器,其被配置为解析存储在所述缓存中的数据分组的报头,以识别所述数据 分组中各个报头的类型和位置;构造器单元,其对所述数据分组的报头进行读取访问;以及处理器,其包括执行流水线;所述报头识别器进一步被配置为对各个报头进行以下操作(a)根据所述报头的类型来选择存储在所述命令存储器中的一个或更多个命令;和(b)为所述构造器单元形成一个或更多个用于识别被选择的命令和所述报头在数据分 组中的位置的消息;如果所述构造器单元执行为所述数据分组的报头而选择的命令,则所述命令将共同地 使得所述构造器单元产生一数据结构,该数据结构能够操作用于使得所述处理器在无需访 问所述缓存中的数据分组的情况下对所述数据分组的报头实施处理;并且所述构造器单元被配置为接收所述消息并执行其中识别的命令。2.根据权利要求1所述的报头处理引擎,该报头处理引擎进一步包括所述处理器可访 问的共享存储器,所述构造器单元被配置为将所述数据结构写入该共享存储器。3.根据权利要求1或2所述的报头处理引擎,其中所述数据结构标识由所述处理器执 行的指令集,所述处理器被配置为访问所述数据结构并执行其中标识的指令以对所述数据 分组的报头实施处理。4.根据前述权利要求中的任意一项所述的报头处理引擎,其中所述数据结构包括所述 报头的一个或更多个部分。5.根据引用权利要求3时的权利要求4所述的报头处理引擎,其中所述数据结构只包 括执行一个或更多个所述指令所需要的那些报头部分。6.根据权利要求3-5中的任意一项所述的报头处理引擎,其中所述数据结构包括用于 唯一地表示所述数据分组的报头的序列的分组分类标识符,该分组分类标识符标识供所述 处理器执行的所述指令集。7.根据权利要求6所述的报头处理引擎,其中所述分组分类标识符表示所述处理器的 指令存储器中的存储器地址,所述处理器被配置为在读取所述分组分类标识符时访问该存 储器地址并开始执行存储在该存储器地址上的指令。8.根据权利要求6或7所述的报头处理引擎,其中所述构造器单元被配置为通过形成 对所述数据分组的报头的特定序列的表示并将该表示传递给仅其可用输出对应于有效的 报头序列的压缩引擎,来产生所述分组分类标识符,所述压缩引擎的输出是所述分组分类 标识符。9.根据引用权利要求2时的权利要求3-8中的任意一项所述的报头处理引擎,其中所 述共享存储器被配置为保存多个数据结构,各个数据结构对应于不同的数据分组。10.根据权利要求9所述的报头处理引擎,其中所述共享存储器被配置为使得所述构 造器单元和所述处理器能够同时访问不同数据结构,所述处理器对由所述构造器单元完成 的数据结构进行排他的访问。11.根据权利要求9或10所述的报头处理引擎,其中所述处理器被配置为,在开始执行 一个或更多个使得所述处理器调用不共享所述处理器的执行流水线的功能单元的预定指 令时,通过以下步骤来切换执行线程在与进行调用有关的数据分组相对应的数据结构中存储所述处理器的执行流水线的 状态;将所述共享存储器中存储的不同数据结构的状态加载到所述处理器的执行流水线中;以及执行在不同数据结构标识的指令集。12.根据权利要求11所述的报头处理引擎,其中所述处理器被配置为使得响应于对功 能单元的调用而返回的数据被写入所述处理器的选定的寄存器中,使得当所述处理器下一 次加载与进行调用有关的数据分组相对应的数据结构中存储的状态时,所述数据对执行流 水线是可用的。13.根据权利要求12所述的报头处理引擎,其中所述处理器被配置为,在调用功能单 元时,为选定的寄存器设置标记,响应于该调用而返回的数据要被写入到所述选定的寄存 器中,所述标记防止所述处理器选择该寄存器用于另一个调用直到所述标记被清除。14.根据权利要求13所述的报头处理引擎,其中所述处理器被配置为,在从所述选定 的寄存器读取数据时,清除所述标记以使得所述处理器能够选择该寄存器用于后续调用。15.根据权利要求11-14中的任意一项所述的报头处理引擎,其中至少一个预定指令 当被执行时使得所述处理器调用查找引擎或哈希引擎。16.根据权利要求9-15中的任意一项所述的报头处理引擎,其中所述处理器被配置为 响应于所述指令将所述处理器的相应输出写入各个数据结构中。17.根据权利要求3-16中的任意一项所述的报头处理引擎,其中所述数据分组是通过 网络接收的数据分组,所述网络接口设备被支持一个或更多个操作系统的数据处理系统所 支持,所述处理器被配置为响应于所述指令将标识要写入至少一部分接收到的数据分组的 数据处理系统的接收队列的数据提供给所述网络接口设备。18.—种网络接口设备,该网络接口设备包括根据权利要求17所述的报头处理引擎, 该报头处理引擎被配置为,在所述处理器完成数据分组的报头的处理时,使得所述处理器 的至少一部分输出对于分组处理引擎是可用的,所述分组处理引擎被配置为至少部分地根 据所述处理器的输出来处理保存在缓存中的数据分组。19.根据权利要求3-16中的任意一项所述的报头处理引擎,其中所述数据分组是用于 通过网络传输的部分形成的数据分组,所述网络接口设备被支持一个或更多个操作系统的 数据处理系统所支持,所述处理器被配置为响应于所述指令以完成所述数据分组的方式来 处理所述部分形成的数据分组的报头。20.根据权利要求19所述的报头处理引擎,其中所述处理器被配置为通过执行以下操 作中的一个或更多个来完成所述数据分组如果所述数据分组属于要按照服务质量协议的预定级别进行传输的数据流,则将适当 的服务质量参数写入所述数据分组中以使得所述数据分组按照该预定级别来处理;如果所述数据分组要通过虚拟LAN来传输,则将适当的虚拟LAN参数写入所述数据分 组中以使得通过该虚拟LAN来路由所述数据分组;以及如果所述数据分组从所述网络接口设备的虚拟接口始发,则执行分组过滤以确保所述 数据分组只在所述数据分组的目的地址是该虚拟接口允许访问的网络端点时被传输到网 络中。21.根据前述权利要求中的任意一项所述的报头处理引擎,其中所述数据分组的各个 报头包括根据网络数据协议而格式化的数据比特集,各个数据比特集位于所述数据分组的 嵌套报头、所述数据分组的页脚或者所述数据分组中的任意其它点中。22.—种报头处理引擎,用于对各具有多个报头的数据分组的序列进行报头处理,该报 头处理引擎包括报头识别器,其被配置为解析数据分组的序列中各个数据分组的报头,并且为各个数 据分组形成一个或更多个指示所述数据分组中各个报头的类型和位置的消息,所述报头识 别器被配置为依次解析数据分组;以及处理器,其被配置为根据为该数据分组而形成的一个或更多个消息来对序列中各个数 据分组执行报头处理,并在其输出依次提供处理后的数据分组;其中所述报头识别器和所述处理器被配置为并行操作以使得所述处理器不按次序地 对所述数据分组进行报头处理。23.根据权利要求22所述的报头处理引擎,其中所述报头识别器和所述处理器操作为 使得在所述处理器处理数据分组的序列中的一个数据分组时,所述报头识别器解析所述序 列中的另一个数据分组。24.根据权利要求22-23中的任意一项所述的报头处理引擎,其中所述报头识别器被 配置为依次地解析所述数据分组的报头,并在识别出所述数据分组中各个报头的类型和位 置时,为所述处理器形成包括该报头的类型和该报头在所述数据分组中的位置的消息。25.根据权利要求22-24中的任意一项所述的报头处理引擎,其中所述报头识别器被 配置为通过检测所述数据分组的报头中的一个或更多个预定的比特序列来识别各个报头 在所述数据分组中的位置。26.根据权利要求25所述的报头处理引擎,其中所述预定的比特序列指示报头的开始 或结尾。27.根据权利要求22-26中的任意一项...
【专利技术属性】
技术研发人员:史蒂夫·波普,大卫·里多克,迪米特里·凯塔莱夫,德里克·罗伯茨,
申请(专利权)人:索乐弗莱尔通讯公司,
类型:发明
国别省市:US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。