用于处理分组的方法和装置的制作方法

文档序号:7907923阅读:205来源:国知局
专利名称:用于处理分组的方法和装置的制作方法
技术领域
本发明涉及计算机和通信系统,尤其是路由器和交换机;更具体地说,本发明涉及基于从分组内提取出的信息和例如但不局限于输入接口特性的上下文(context)指示对分组进行处理,并可以包括基于指示了上下文和从所接收的分组内提取出的信息的矢量执行关联存储器的查找操作。
背景技术
通信产业正迅速改变以适应新兴技术和不断增长的用户需求。用户对新应用和已有应用的改进性能的需求正促使通讯网络和系统供应商采用具有更高速度和容量(例如,更宽的带宽)的网络和系统。在实现这些目标的努力中,一种很多通信供应者采用的普遍方法是采用分组交换技术。越来越多地利用各种分组技术,如IP(Internet Protocol,网际协议),建立和扩充公共和私有的通讯网络。
例如交换机或者路由器的网络设备一般基于一个或多个标准接收、处理和前向转发或丢弃分组,这些标准包括分组使用的协议的类型、分组的地址(例如,源、目的地、群组)和被请求服务的类型或质量。此外,在每个分组上一般执行一个或多个安全操作。但在这些操作可被执行前,在该分组上一般必须执行分组分类的操作。
访问控制列表(ACL,Access Control Lists)和前向转发决策等等所需要的分组分类是交换机和路由器设计中要求很高的部分。由于分组的速率和分组分类的数量不断增长,对所接收的分组进行分组分类正在变得越来越困难。例如,ACL要求按照以ACL规则进行顺序搜索的语义,在分组的流标签的字段的子集上匹配分组。IP前向转发需要最长的前缀匹配。
分组分类的公知方法包括使用定制的专用集成电路(ASIC)、定制电路、软件或固件控制的处理器、二元和三元内容可寻址存储器(CAM,content-addressable memories)。使用可编程的软件或固件由于提供了一定程度的灵活性而具有一些优势,当新协议和服务加入到现存的网络之后,它们就变得格外重要了。用户一般希望使用他们现有的硬件(例如,路由器、交换机等等)支持这些新协议和服务。然而,公知的软件和固件实现方法相对较慢,而且一般会设置一个可能与新要求不兼容的性能约束。使用分组分类的不同应用,例如安全访问控制、服务质量等等,一般需要执行在源和目的地的端口号、协议和/或其他报头(header)字段等许多的匹配以识别对应的网络流。
在公知的现有系统中,从所接收的分组中提取一个或多个字段。这些一个或多个提取出来的字段一般包括源和目的地地址、端口号和其他可能的字段,一般包括在一个分组的报头或流标签中。这些提取出的字段以它们原有的格式,可能还与其他数据一起被提供给在执行分组分类中执行查找操作的CAM。因为CAM比较昂贵,尤其在空间和功率消耗方面,并且在输入查找词的宽度上受到限制。一个公知的系统通过一个或多个逻辑功能或操作,预处理包含在分组内的某些信息以产生用作查找词一部分的矢量。该矢量减少了在全部原有的信息包含于查找词的情况下所需要的比特的数量。然而,这种公知的预处理仅仅对包含在所接收的分组内的信息进行操作,而不对从任何其它的源处而来的信息进行操作。
对ACL编程可能是一项复杂并且/或者冗余的任务。一般,每个网络,甚至有可能每个主机系统都需要一系列相互独立的ACL条目。一个公知的系统通过把虚拟局域网(VLAN,Virtual Local Area Network)标识符分配给实体(例如,网络、主机和路由器接口),减少了ACL的总体数量。通过把ACL的VLAN标识符映射到一个共享的VLAN标签上,而这个共享的VLAN标签被用于识别一个公共的ACL或者它的多个条目,那么该公共的ACL就可以被多个实体共享。
然而,在许多情况下,在不同接口上使用的ACL由于诸如它们可能具有不同的安全需求等原因而不相同。同样,不同的接口可能属于不同的子网并使用不同的IP地址;因此,举例来说,相互独立的ACL条目必须被用来验证从一个接口发送出来的分组的源地址与该接口的地址匹配。这样就产生了困难,特别在拨号公共网络的情况下,连接的计算机和用户各不相同,要确保一个由被连接的计算机发出的分组被授权(例如,它的源地址对应着拨号系统分配给它的地址),唯一可用的机制就是对每个接口使用独立的ACL,由于每个独立的ACL必须被单独编程,这种机制可能是非常繁重和昂贵的。需要新的方法和装置以使在其它目的之外,允许对附加的操作和/或功能共享一个ACL。

发明内容
公开了一种方法和装置,基于从分组内提取出的信息和例如但不局限于输入接口特性的上下文指示对分组进行处理,还可以包括基于指示了上下文和从所接收的分组内提取出的信息的矢量执行关联存储器的查找操作。在一个实施例中,当上下文矢量提供了因为变动的上下文,例如但不局限于不同的接口、源地址和虚拟网络地址所需的独特处理的结果的指示时,多个接口共享一个公共的访问控制列表。一个实施例包括了输入接口电路、上下文指示符发生器、查找词字段发生器和关联存储器。输入接口电路接收分组。上下文指示符发生器产生对应于输入接口电路的特性的上下文矢量。查找词字段发生器基于分组产生一个或多个查找词矢量。关联存储器基于一个查找词执行查找操作,该查找词包括所述的一个或多个查找词矢量和上下文矢量。在一个实施例中,基于关联存储器的结果直接处理分组。在一个实施例中,根据基于关联存储器结果的存储器查找操作的结果对分组进行处理。在一个实施例中,存储器查找操作的结果和一个由上下文得出的值被用于形成第二次存储器查找操作中所使用的地址,而这个结果被用于处理分组。


所附的权利要求详细地阐明了本发明的特征。通过下面结合附图的详细说明,可以最好地理解本发明及其优点。
图1A是一个实施例的方框图,该实施例基于所接收的分组的上下文和该分组本身产生一个一般用于关联存储器中查找操作的上下文矢量;
图1B是一个实施例的方框图,该实施例基于所接收的分组的上下文和该分组本身产生一个上下文矢量,该上下文矢量一般用于关联存储器中的查找操作,并在存储器查找操作中作为基地址或偏移地址;图2是一个实施例的方框图,该实施例基于所接收的分组的上下文和该分组本身产生一个一般用于关联存储器中查找操作的上下文矢量;图3是用于一个实施例的上下文指示符发生器和它的输入及输出信号的方框图;图4是用于一个实施例的上下文指示符发生器和它的输入及输出信号的方框图;图5A图示了用在一个实施例中,基于所接收的分组的上下文和该分组本身产生一个一般用于关联存储器中查找操作的上下文矢量的过程;图5B图示了用在一个实施例中,根据基于分组的上下文的关联存储器的结果对该分组进行处理的过程;图5C图示了用在一个实施例中,根据基于分组的上下文索引进入计算机可读介质的结果对分组进行处理的过程。
具体实施例方式
公开的系统和方法基于从分组内提取出的信息和例如但不局限于输入接口特性的上下文指示对分组进行处理,还可以包括基于指示了上下文和从所接收的分组内提取出的信息的矢量执行关联存储器的查找操作。这里所描述的实施例包括了各种元件或限制,其中没有一个元件或限制被认为是关键性的元件或限制。每一项权利要求独立完整地陈述本发明的一个方案。此外,所描述的一些实施例包括,但不限于,系统、网络、集成电路芯片、嵌入式处理器、ASIC(Appl ication Specific IntegratedCircuit,特定用途集成电路)、方法和包含指令的计算机可读介质。以下描述的实施例实现了在本发明范围和原则内的不同方案和构造,其中图说明了示例性的非限制性的构造。
术语“分组”使用在这里指所有类型的分组或者任何其它单位的信息或数据,包括,但不限于,固定长度的信元、可变长度的分组,其中每一个可以或不可以分为更小的分组或信元。术语“分组”使用在这里也指分组本身或分组指示,例如,但不限于,分组或分组报头的全部或部分、数据结构值、指针或索引,或者分组的任何其他部分或标识。而且,这些分组可以包含一种或多种类型的信息,包括,但不限于,语音、数据、视频和音频信息。在这里术语“项目”用来指分组或者任何其它单位或段的信息或数据。短语“处理分组”和“分组处理”一般指的是基于分组执行某些步骤或动作,并且可以包括或不包括修改和/或前向转发分组。
术语“系统”在这里通用于描述任何数目的组件、元件、子系统、设备、分组交换元件、分组交换机、路由器、网络、计算机和/或通信设备或机构、或其组件的组合。术语“计算机”在这里通用于描述任何数目的计算机,包括,但不限于,个人电脑、嵌入式处理器和系统、控制逻辑、ASIC、芯片、工作站、大型机等。术语“设备”在这里通用于描述任何类型的机构,包括计算机或系统或其组成部分。术语“任务”和“过程”在这里通用于描述任何类型的运行的程序,包括,但不限于,计算机进程、任务、线程、执行应用程序、操作系统、用户进程、设备驱动程序、本地码、机器或其他语言等,并且可以是交互的和/或非交互的、本地和/或远程执行的、在前台和/或后台执行的、在用户和/或操作系统地址空间内执行的、一个例程库和/或独立的应用程序,并且不限于任何特定存储器分区技术。图中所示的步骤、连接和信号与信息的处理,包括,但不限于,任何框图、流程图和消息队列表,在保持在本发明范围和原则内的其他实施例中,可以以相同或不同的串行或并行次序和/或由不同组件和/或进程、线程等,和/或通过不同的连接并结合其他功能来执行。
此外,术语“网络”和“通信机制”在这里通用于描述一个或多个网络、通信媒体或通信系统,包括,但不限于,因特网,私有或公共电话,蜂窝状的、无线的、卫星的、电缆的、局域、城域的和/或广域的网络,通过电缆的电连接、总线等等,以及例如消息传送、进程间通信、共享存储器等的内部通信机构。
术语“存储机构”包括任何类型的存储器、存储设备或其他用于以任何形式保存指令或数据的机构。“计算机可读介质”是一个可扩展的术语,包括了任何存储器、存储设备、存储机构、和包括了例如网络接口卡及其缓存的接口和设备的其他存储和信令机构,以及任何通信设备和所接收和传送的信号,和计算机化的系统能够解释、接收和/或传送的其它当前和发展中的技术。术语“存储器”包括任何随机访问存储器(RAM)、只读存储器(ROM)、闪存、集成电路和/或其他存储器组件或元件。术语“存储设备”包括任何固态存储介质、盘驱动器、磁盘、网络化的服务、磁带驱动器和其他存储设备。存储器和存储设备可以存储由处理器和/或控制逻辑执行的计算机可执行指令,和由处理器和/或控制逻辑操纵的数据。术语“数据结构”是一个可扩展的术语,指任何数据元素、变量、数据结构、数据库、和/或能应用于数据以方便解释该数据或对其执行操作的一个或多个或一个组织的体系(scheme),例如,但不限于,存储器位置或设备、集合、队列、树结构、堆栈、列表、链接列表、数组、表格、指针等。一个数据机构一般保存在存储机构中。术语“关联存储器”指的是所有类型的公知的或开发出来的关联存储器,包括但不局限于二元(binary)和三元(ternary)内容可寻址存储器、哈希(hash)表、TRIE和其他数据结构等等。
术语“一个实施例”在这里用来指一个特定的实施例,其中每次提到“一个实施例”可能指的是不同的实施例,在这里描述关联特性、元件和/或限制时,重复使用该术语并不导致每个实施例必须包括的一套累积的关联特性、元件和/或限制,虽然某个实施例一般可以包括所有这些特性、元件和/或限制。此外,短语“用于xxx的装置”一般包括包含了用于执行xxx的计算机可执行指令的计算机可读介质。
此外,术语“第一”、“第二”等在这里通常用来代表不同单元(如,第一元件、第二元件)。在这里使用这些术语不一定意味一个排序,如一个单元或事件比另一个发生或到来得更早,而是提供一个区别特定单元的机制。此外,短语“基于x”和“响应于x”用来表示最小的一组项目x,从它衍生或引起了某些事物,其中“x”是可延伸的,并且不一定描述在其上执行操作等等的一个完整列表的项目。另外,短语“耦合到”用来表示两个元件或设备之间的一定程度的直接或间接连接,而耦合设备修改或不修改被耦合的信号或通信的信息。术语“子集”用来表示包括了一个集合中元素的全部、少于全部的组。此外,术语“或”在这里用来表示连续项目中的一个或多个,包括全部,的或然选择。
公开的方法和装置基于从分组内提取出的信息和例如但不局限于输入接口特性的上下文指示对分组进行处理,还可以包括基于指示了上下文和从所接收的分组内提取出的信息的矢量执行关联存储器的查找操作。在一个实施例中,基于所接收的分组的上下文和分组本身产生上下文矢量,一般用于但不局限在关联存储器中的查找操作。在一个实施例中,当上下文矢量提供了因为变动的上下文,例如但不局限于不同的接口、源地址和虚拟网络地址所需的独特处理的结果的指示时,多个接口共享一个公共的访问控制列表。
一个实施例包括了输入接口电路、上下文指示符发生器、查找词字段发生器和关联存储器。输入接口电路接收分组。上下文指示符发生器产生对应于输入接口电路的特性的上下文矢量。查找词字段发生器基于分组产生一个或多个查找词矢量。关联存储器基于一个包括了所述的一个或多个查找词矢量和上下文矢量的查找词执行查找操作。
在一个实施例中,输入接口电路的特征是所分配的地址。在一个实施例中,所分配的地址是所分配的源地址,所述的分组包含了分组源地址,而上下文指示符发生器基于所分配的源地址和分组源地址产生上下文矢量。在一个实施例中,上下文指示符识别所述的分组源地址是否对应于所分配的源地址。在一个实施例中,所分配的地址是一个所分配的虚拟网络地址,分组包含了分组源地址,而上下文指示符发生器基于所分配的虚拟网络地址和分组源地址产生上下文矢量。在一个实施例中,上下文指示符识别所述的分组源地址是否对应于所分配的虚拟网络地址。在一个实施例中,该虚拟网络地址包含多个因特网协议(IP)子网。在一个实施例中,输入接口电路终止一次模拟或数字电话通话,上下文矢量用来指示在该通话中发送的分组是否被授权使用特定的源地址、源端口和/或特定的协议来发送;和/或是否发送到了特定的目的地地址和/或目的地端口。在一个实施例中,输入接口终止顺序的多个模拟或数字电话通话,在顺序的多个模拟或数字电话通话之间所分配的地址互不相同。在一个实施例中,上下文指示符发生器包括一个处理元件组中的一个或多个元件,该处理元件组包括移位寄存器、宏、定制电路、处理器、存储器、计算机可读介质和专用集成电路(ASIC)。
在一个实施例中,基于上下文和查找词矢量,由关联存储器的查找操作产生第一部分地址,基于输入接口的上下文产生第二部分地址。基于第一和第二部分地址执行存储器查找操作,其中一般情况下,这些部分地址之一用作基地址,而另一个用作偏移值。该存储器查找操作的结果接着被用来处理对应的分组。
在一个实施例中,接收到一个上下文指示和一个分组的源地址。基于上下文指示和源地址产生上下文矢量,上下文矢量指示了源地址是否与上下文指示相匹配。从分组中提取出一个或多个查找值。产生一个包含了上下文矢量和所述的一个或多个查找值的查找词,而且该查找词在执行查找操作当中被用作关联存储器的输入。
在一个实施例中,上下文指示是一个所分配的地址。在一个实施例中,该地址是IP主机地址。在一个实施例中,该地址是IP子网地址。在一个实施例中,所分配的地址是虚拟网络地址。在一个实施例中,该虚拟网络地址包括多个IP子网。在一个实施例中,接收到第二分组的第二源地址和第二上下文指示,第二上下文矢量基于第二上下文指示和第二源地址产生,其中,第二上下文指示与所述的上下文指示不同,第二源地址与所述的源地址不同,而所述的上下文矢量与第二上下文矢量相同。
图1A是包括一个实施例的装置的方框图,该装置用于基于所接收的分组的上下文和该分组本身产生一个一般用于关联存储器中查找操作的上下文矢量。分组101由输入接口电路105从任意的源,通过任意的通信机制接收到。在一个实施例中,输入接口电路包含了终止数字和模拟拨号电话的元件。输入接口电路产生一个上下文指示107(例如,一个诸如接口标识、所分配的分组或者虚拟LAN源地址等等的接口特征),它被上下文指示符发生器110接收。另外,输入接口电路105前向转发分组信息109(例如,分组报头、整个分组、它的所选择的字段或者部分等等)给上下文指示符发生器110和查找词字段发生器114。注意,提供给上下文指示符发生器110和查找词字段发生器114的分组信息109可以是不同的。
上下文指示符发生器110基于上下文指示107和分组信息109产生上下文矢量111,它一般指示了有关安全性、服务等级或其他任何可能特征的经处理或计算得出的某个结果。在一个实施例中,上下文矢量111指示一个分组的被标识出的源是否允许从输入接口电路105发送出去。查找词字段发生器114提取出它的字段或部分以产生查找词矢量115,该矢量与上下文矢量111结合起来产生一个查找词117。关联存储器120基于查找词117执行查找操作以产生查找结果121,该查找结果121一般被提供给存储器122以产生结果125。基于结果125,分组处理器127判断是否以及如何前向转发所接收的分组103,该被前向转发的分组被标为分组129。
图1B是一个类似于图1A所示的装置的方框图,其中存储器122产生第一部分地址131(例如,基地址或者偏移值),而第二部分地址130(例如,基地址或者偏移值)从一般由输入接口电路105产生的上下文指示107或者其他指示中得出。例如加法器,甚至仅仅是物理导线的地址计算机制132把第一部分地址131和第二部分地址130结合成地址133,该地址133被存储器134(或者其他计算机可读介质)用来产生处理结果135,而该处理结果135被分组处理器136用来修改或者前向转发分组137。在一个实施例中,第二部分地址130对应于一个用作基地址或偏移地址的虚拟LAN标识符,该虚拟LAN标识符与处理对应的VLAN标识符的结果结合起来产生第一部分地址131。
图2图示了用在一个实施例中的系统,该系统基于所接收的分组的上下文和该分组本身产生一个一般用于关联存储器207中查找操作的上下文矢量。在一个实施例中,系统(包括上下文指示符发生器)200包括处理器201、存储器202、存储设备203,和用于接收和发射分组或其他已处理信息的接口204,以及通过一个或多个通信机制209(出于图示的目的,显示为总线)耦合到一起的关联存储器和可选择的附属存储器207。
系统200的各种实施例可以包含更多或较少的元件。系统200的操作一般由处理器201控制来使用存储器202和存储设备203以执行一项或多项任务和进程,例如基于访问控制列表(ACL)对关联存储器和可选择的附属存储器207编程,产生上下文指示,使用上下文信息和从所接收的分组中提取的信息,产生被提供给产生查找结果的关联存储器和可选择的附属存储器207的查找词,以及基于该查找结果处理所接收的分组或其他信息。
存储器202是一类计算机可读介质,一般包括随机访问存储器(RAM)、只读存储器(ROM)、闪存、集成电路和/或其他存储组件。存储器202一般存储由处理器201执行的计算机可执行指令和/或由处理器201为了实现根据本发明一个实施例的功能而处理的数据。存储设备203是另一类计算机可读介质,一般包括了固态存储介质、硬盘驱动器、磁盘、网络化的服务、磁带驱动器和其他存储设备。存储设备203一般存储由处理器201执行的计算机可执行指令和/或由处理器201为了实现根据本发明一个实施例的功能而处理的数据。
图3图示了上下文指示符发生器310的一个实施例的方框图。在一个实施例中,上下文指示符发生器310接收上下文指示300,包括接口、主机和/或VLAN地址和/或标识符;源IP地址301、目的地IP地址302和目的地端口号303。在一个实施例中,上下文指示符发生器310产生上下文矢量311(例如一个或多个比特),该上下文矢量311指示了对于上下文指示300,(a)源地址是否被授权,(b)目的地地址是否被授权,和/或(c)目的地端口是否被授权。
图4图示了用在一个实施例中的上下文指示符发生器410。上下文指示符发生器410接收一个或多个接口特征401和分组信息402(例如,源、目的地和/或服务信息),其被存储在移位寄存器412中。处理元件414(例如控制、宏、定制电路、比较器、处理器、计算机可读介质等)用来处理所接收的信息以产生上下文矢量420。在一个实施例中,接口特征401包括VLAN标识符,它指示出所授权的源或目的地地址的范围。使用通用的数据处理技术(例如掩码、移位、计算、比较等等),产生上下文矢量420以指示分组信息402在接口特征401指示的上下文中是否被授权。
图5A图示了用在一个实施例中的过程,该过程基于一个所接收的分组的上下文和该分组本身产生一个一般用于关联存储器中查找操作的上下文矢量。处理开始于过程框500,并前进到过程框502,在这里接收诸如输入接口特征的上下文指示。接着,在过程框504接收分组。在过程框506,基于上下文指示和分组产生上下文矢量。在一个实施例中,上下文矢量就是指示了一个已授权或未授权分组的单独一个比特。在过程框508,从分组内提取出一个或多个查找值(例如比特、字节、字段等等)。在过程框510产生一个包含有上下文矢量和一个或多个查找值的查找词。在过程框512把查找词提供给关联存储器,而查找操作在过程框514开始。处理接着返回过程框502。注意,在一个实施例中,由于上下文指示对于多个所接收的分组保持相同,处理返回过程框504。
图5B图示了用在一个实施例中的过程,该过程根据基于分组上下文的关联存储器的结果对该分组进行处理。处理在过程框540开始并前进到过程框542,在这里收到关联存储器的命中指示。接着,在过程框544,基于关联存储器的结果,从存储器或其他计算机可读介质中产生一个查找结果。接下来,在过程框546,该查找结果被用来对分组进行处理。处理返回过程框542。
图5C图示了用在一个实施例中的过程,该过程根据基于分组的上下文索引进入计算机可读介质的结果对分组进行处理。处理开始于过程框560并前进到过程框562,在这里收到关联存储器的命中指示。接着,在过程框564,基于关联存储器的结果从存储器或其他计算机可读介质中产生第一部分地址(例如基地址或偏移地址)。接下来,在过程框566,基于该分组的输入接口或其他源的上下文指示或其他特征计算出或者产生第二部分地址(例如基地址或偏移地址),然后基于第一和第二部分地址计算出或者产生存储器地址。接下来,在过程框568,基于存储器地址,从存储器或其他计算机可读介质中产生查找结果;在过程框570,该查找结果被用来处理分组。处理返回过程框562。
从可以应用本发明原理的众多可能的实施例来看,可以理解,在这里参考图画/图形说明的多个实施例及它们的众多方面仅仅是示意性的,不应该被认为限定了本发明的范围。例如,对本领域的技术人员显而易见的是,许多的过程框操作可以被重新排序,在其他操作之前、之后,或基本上并发执行。同样,许多不同形式的数据结构也许会用在不同的实施例中。这里说明的本发明把所有这样的实施例视为属于下而的权利要求和它的等同范围之内。
权利要求
1.一种用于处理分组的装置,该装置包括用于接收分组的输入接口电路;耦合到输入接口电路的上下文指示符发生器,用于基于输入接口电路的特征和该分组的第一子集产生上下文矢量;耦合到输入接口电路的查找词字段发生器,用于基于该分组的第二子集产生一个或多个查找词;和耦合到上下文指示符发生器和查找词字段发生器的关联存储器,用于基于一个查找词执行一次查找操作,该查找词包括所述的一个或多个查找词矢量和上下文矢量。
2.如权利要求1所述的装置,其中,输入接口电路的特征包含所分配的因特网协议地址。
3.如权利要求1所述的装置,其中,输入接口电路的特征包含所分配的地址。
4.如权利要求3所述的装置,其中,所分配的地址包括所分配的源地址;并且其中,所述的分组的第一子集包括分组源地址。
5.如权利要求4所述的装置,其中,所述的上下文指示符识别所述的分组源地址是否与所分配的源地址匹配。
6.如权利要求5所述的装置,其中,所分配的源地址包括因特网协议源地址。
7.如权利要求3所述的装置,其中,所分配的地址是所分配的虚拟网络地址;其中,所述的分组的第一子集包括分组源地址;并且其中,上下文指示符发生器基于所分配的虚拟网络地址和分组源地址产生上下文矢量。
8.如权利要求7所述的装置,其中,上下文指示符识别所述的分组源地址是否对应于所分配的虚拟网络地址;
9.如权利要求8所述的装置,其中,所述的虚拟网络地址包括多个因特网协议子网。
10.如权利要求3所述的装置,其中,所述的输入接口终止顺序的多个模拟或数字电话通话;并且其中,在顺序的多个模拟或数字电话通话之间所分配的地址互不相同。
11.如权利要求1所述的装置,其中,上下文指示符发生器包括一个处理元件组中的一个或多个,该处理元件组包括移位寄存器、宏、定制电路、处理器、存储器、计算机可读介质和专用集成电路。
12.如权利要求1所述的装置,还包括用于接收所述的关联存储器的查找结果并产生处理结果的存储器;和基于该处理结果处理分组的分组处理器。
13.如权利要求1所述的装置,还包括用于接收所述的关联存储器的查找结果和产生第一部分地址的存储器;和基于第一部分地址和上下文指示产生处理结果的第二存储器。
14.如权利要求13所述的装置,还包括用来基于上下文指示修改或者前向转发所述分组的分组处理器。
15.如权利要求13所述的装置,其中,所述的上下文指示包括虚拟网络标识符。
16.一种用于处理分组的方法,该方法包括接收上下文指示;接收该分组的源地址;基于上下文指示和源地址产生上下文矢量,该上下文矢量指示所述的源地址是否与所述的上下文指示匹配;从分组中提取一个或多个查找值;产生包括了上下文矢量和所述的一个或多个查找值的查找词;提供查找词给关联存储器;和使用查找词在关联存储器中开始查找操作。
17.如权利要求16所述的方法,其中,所述的上下文指示是所分配的地址。
18.如权利要求17所述的方法,其中,所述的地址是因特网协议主机地址。
19.如权利要求17所述的方法,其中所述的地址是因特网协议子网络地址。
20.如权利要求17所述的方法,其中,所述的所分配的地址是虚拟网络地址。
21.如权利要求20所述的方法,其中,所述的虚拟网络地址包括多个因特网协议子网。
22.如权利要求16所述的方法,还包括接收第二上下文指示;接收第二分组的第二源地址;和基于第二上下文指示和第二源地址产生第二上下文矢量;其中,第二上下文指示与所述的上下文指示不同;其中,第二源地址与所述的源地址不同;其中,所述的上下文矢量与第二上下文矢量相同。
23.一种用于处理分组的方法,该方法包括在输入接口上接收分组;产生对应输入接口特征的上下文矢量;基于该分组产生一个或多个查找词矢量;和基于查找词在关联存储器中开始查找操作,该查找词包括所述的一个或多个查找词矢量和上下文矢量。
24.如权利要求23所述的方法,还包括基于在关联存储器中所述的查找操作的查找结果,执行存储器查找操作以产生处理结果;和基于该处理结果修改或前向转发所述的分组。
25.如权利要求23所述的方法,还包括基于在关联存储器中所述的查找操作的查找结果,执行存储器查找操作以产生第一部分地址;基于所述的输入接口的特征得出第二部分地址;基于所述的第一部分地址执行第二存储器查找操作以产生处理结果;和基于该处理结果修改或前向转发所述的分组。
26.一种用于处理分组的装置,该装置包括用于接收分组的装置;用于产生对应用于接收分组的装置的特征的上下文矢量的装置;用于基于该分组产生一个或多个查找词矢量的装置;和用于基于查找词在关联存储器中开始查找操作的装置,该查找词包括所述的一个或多个查找词矢量和上下文矢量。
27.如权利要求26所述的装置,其中,用于接收分组的装置的特征是所分配的地址。
28.如权利要求27所述的装置,其中,所分配的地址是所分配的源地址;和其中,所述的分组包括分组源地址;其中,用于产生上下文矢量的装置包括基于所分配的源地址和分组源地址产生上下文矢量的装置。
29.如权利要求28所述的装置,其中,上下文标识符识别所述的分组源地址是否对应于所分配的源地址。
30.如权利要求27所述的装置,其中,所分配的地址是所分配的虚拟网络地址;其中,所述的分组包括分组源地址;和其中,用于产生上下文矢量的装置包括基于所分配的虚拟网络地址和分组源地址产生上下文矢量的装置。
31.如权利要求30所述的装置,其中,所述的上下文指示符识别所述的分组源地址是否对应于所分配的虚拟网络地址。
32.如权利要求31所述的装置,其中,所述的虚拟网络地址包括多个因特网协议子网。
33.一种用于处理分组的装置,该装置包括用于接收上下文指示的装置;用于接收该分组的源地址的装置;用于基于上下文指示和源地址产生上下文矢量的装置,该上下文矢量指示所述的源地址是否与所述的上下文指示匹配;用于从分组中提取一个或多个查找值的装置;用于产生包括了上下文矢量和所述的一个或多个查找值的查找词的装置;用于给关联存储器提供查找词的装置;和用于使用查找词在关联存储器中开始查找操作的装置。
34.如权利要求33所述的装置,其中,所述的上下文指示是所分配的地址。
35.如权利要求34所述的装置,其中,所述的地址是因特网协议主机地址。
36.如权利要求34所述的装置,其中,所述的地址是因特网协议子网地址。
37.如权利要求34所述的装置,其中,所分配的地址是虚拟网络地址。
38.如权利要求37所述的装置,其中,所述的虚拟网络地址包括多个因特网协议子网。
全文摘要
本发明公开了基于从分组中提取的信息和上下文指示处理分组的方法和装置。一般用于关联存储器查找操作的上下文矢量,基于所接收的分组的上下文和该分组本身产生。在一个实施例中,由于上下文矢量提供了因为变动的上下文,例如但不局限于不同的接口、源地址和虚拟网络地址,所需的独特处理的结果的指示,多个接口可以共享一个公共的访问控制列表。一种实现包括了输入接口电路、上下文指示符发生器、查找词字段发生器和关联存储器。上下文指示符发生器产生对应输入接口电路特征的上下文矢量。查找词字段发生器基于分组产生一个或多个查找词。关联存储器基于上下文矢量和查找词矢量执行查找操作。
文档编号H04L29/06GK1462136SQ0312226
公开日2003年12月17日 申请日期2003年4月24日 优先权日2002年5月31日
发明者文卡特斯瓦尔·拉奥·普莱拉 申请人:思科技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1