一般化管理网络处理器用表的系统和方法

文档序号:6413891阅读:102来源:国知局
专利名称:一般化管理网络处理器用表的系统和方法
技术领域
本发明涉及计算机系统,更具体地说,涉及一种方法和系统,用于提供一种机制以允许主机以一种可扩展的、灵活的方式管理诸如查询表等表。
背景技术
受不断增加的各种网络应用(如涉及因特网的那些应用)的驱动,计算机网络越来越受到关注。为了把一个网络的各部分耦合在一起或把若干网络耦合在一起,通常使用驻留在交换机、路由器和/或其他部件中的网络处理器。为了适当地控制通过网络的流量,网络处理器必须对包进行分类并完成其他使用表(如查询表)的功能。为了使用这些表,要管理这些表的性质。例如,大小、数据结构和相应的速度、位置(选择的存储器)、表中条目的插入、以及各表间的某些关系都受到控制。因此,网络管理员通常希望管理由网络处理器使用的表的性质。
图1显示用于管理网络处理器的表的传统系统10的方块图。系统10包括由网络管理员使用的传统的主处理器12以及传统的网络处理器30、40和50。传统的主处理器12通常包括一个表管理应用程序22,它至少部分地是由传统系统10的所有者开发的。网络管理员使用传统的表管理应用程序22配置、更新或以其他方式管理传统系统10中传统网络处理器30、40和50的这些表,如查询表。
传统网络处理器30、40和50通常是由传统系统10的所有者购买的。每个传统网络处理器30、40和50分别包括用于管理表(未明确地示出)的传统软件和/或固件32、42和52。此外,传统的软件和/或固件32、42和52可以是不同的。例如,传统网络处理器30、40和50可能包括来自一个特定零售商的特定型号的网络处理器的不同版本和/或可能来自其他零售商的其他型号的网络处理器。因此,传统网络处理器30、40被描述为具有软件和/或固件32和42,它们是型号X的网络处理器的不同版本,而传统的网络处理器50的软件和/或固件52是型号Y的网络处理器。因为传统的网络处理器30、40和50被设计成与不同的控制应用程序通信,每个传统网络处理器30、40和50分别利用传统的应用程序接口(API)12、14和16,它们分别专用于特定的软件和/或固件32、42和52。
传统的表管理应用程序22用于管理分别由传统网络处理器30、40和50使用的表。因此传统的表管理应用程序22包括相应的一组传统行为24、26和28,分别用于每组传统的API 12、14和16。传统的API 12、14和16被设计成分别与传统行为24、26和28通信。传统的API 12、14和16还用于分别控制相应的软件和/或固件32、42和52。这样,使用分别对应于传统的API 12、14和16的传统的行为24、26和28,传统的表管理应用程序22可以分别控制用于传统网络处理器30、40和50的表。
尽管传统的系统10能发挥其功能,但本领域普通技术人员将容易认识,传统的系统难于扩展而且可能有高的维护费用。传统网络处理器30、40和50本质上通常是异质的。因为传统网络处理器30、40和50是异质的,传统的网络处理器可能包括一个特定型号网络处理器的不同版本和/或不同型号的网络处理器。此外,特定表在每个传统的网络处理器中的使用方式可能有很大的不同。因此,不同网络处理器的软件和/或固件32、42和52通常是不同的。这样,API 12、14和16也就不同。结果,传统的表管理应用程序22的相应的行为24、26和28是截然不同的。本领域普通技术人员还将容易认识到,传统的系统10实际上可能包括大量网络处理器。于是,传统的表管理应用程序22必须兼容数目众多的传统API 12、14和16。结果,由传统主处理器20所使用并由传统系统10的所有者开发的不同的传统行为(如传统的行为24、26和28)的数量可能是大的。结果,传统的表管理应用程序22可能是复杂的,而且包括多种行为的混合,每种行为用于一种传统网络处理器型号和/或版本。这样,可能难于纳入新的网络处理器,它们可能具有以前不支持的软件和/或固件以及API。所以,传统的系统10难于扩展。因为在纳入新的软件和/或固件及其相应的API方面的困难,发展传统的表管理应用程序22并因此发展传统的系统10以便利用改进的网络处理器可能是成问题的。再有,因为支持多种传统的行为24、26和28,这使得传统的表管理应用程序22更加复杂,所以传统的系统10可能需要更高的维护费用。
因此,需要的是一种系统和方法,它允许主机以可扩展、灵活的方式管理由网络处理器使用的表。本发明满足这一需求。

发明内容
本发明提供一种方法和系统,用于管理网络中多个异质网络处理器使用的多个表。该网络还包括至少一个主处理器,它利用至少一个表管理应用程序。该方法和系统包括提供多个通用应用程序接口(API)。通用API与一个或多个控制应用程序以及异质网络处理器通信。通用API以与网络处理器无关的方式与一个或多个表管理应用程序通信,但以特定于网络处理器的方式管理异质网络处理器使用的表。这样,通用API允许一个或多个控制应用程序可以是与网络处理器无关的,并允许以特定于网络处理器的方式管理异质网络处理器使用的表。
根据这里公开的系统和方法,本发明提供一种用于管理网络处理器所用的表的通用机制。结果,客户不需维持一个用于不同类型(例如型号和/或版本)网络处理器的具有不同组API的表管理应用程序。


图1是用于管理传统的网络处理器所用表的传统系统的方块图。
图2是根据本发明,用于管理网络处理器用表的系统的一个实施例的高层示意图。
图3是高层流程图,它示出了根据本发明的一种方法的一个实施例,该方法提供了根据本发明的用于管理网络处理器用表的机制。
图4A-4D描述根据本发明抽象出来的一般化网络处理器用表的实施例。
图5是根据本发明的一种方法的一个实施例的高层流程图,该方法使用根据本发明的机制来管理网络处理器用表。
具体实施例方式
本发明涉及计算机系统中的一个改进。下文的描述使本领域普通技术人员能实施和使用本发明,并且是以一个专利申请及其权利要求为背景而给出的。对于本领域技术人员而言对优选实施例的各种修改是显而易见的,并且这里的一般性原理也可应用于其他实施例。这样,本发明不是要限定于所给出的实施例,而是要得到与这里所描述的原理和特性相一致的最广范的范围。
本发明提供一种方法和系统,该方法和系统用于管理网络中多个异质网络处理器使用的多个表。该网络还包括至少一个主处理器,它利用至少一个表管理应用程序。该方法和系统包括提供多个通用应用程序接口(API)。通用API与一个或多个控制应用程序及异质网络处理器通信。通用API以与网络处理器无关的方式与一个或多个表管理应用程序通信,但以特定于网络处理器的方式管理异质网络处理器使用的表。因此,通用API允许一个或多个控制应用程序是与网络处理器无关的控制应用程序,并允许以特定于网络处理器的方式管理异质网络处理器使用的表。
将根据特定的计算机系统、特定的网络处理器和某些API来描述本发明。然而,本领域普通技术人员将容易认识到,这一方法和系统将可以有效地运行于其他计算机系统和网络处理器以及附加的和/或其他的API。本发明还是以一个包括专用部件和特定数量部件的网络为背景描述的。然而,本发明的普通技术人员将容易认识到,本发明与含有其他和/或附加部件以及其它数目的部件的其他网络是相容的。对本发明的描述还是以特定表类型为背景而进行的。本领域普通技术人员将容易认识到,该方法和系统与其他的表类型是相容的。
为了更具体地说明根据发明的方法和系统,现在参考图2,它说明了根据本发明的用于管理网络处理器用表(未示出)的系统100的一个实施例。系统100被描述为包括主处理器110和网络处理器120、130和140。主处理器110包括表管理应用程序112。网络处理器120、130和140分别包括表管理软件和/或固件122、132和142。然而,本领域普通技术人员将容易认识到,通用API 150是特定的实用程序。此外,通用API 150被描述为单独的实体。然而,本领域普通技术人员将容易认识到,主处理器110和网络处理器120、130和140利用通用API 150进行通信和控制。
网络处理器120、130和140可以是异质的。这样,网络处理器120、130和140可以有用于管理表的显著不同的硬件、软件和/或固件。例如,如图2中所示,网络处理器120使用的软件和/或固件122的型号是X,版本为1.0。与此相反,网络处理器130包括型号为X的软件和/或固件132,版本为2.0。网络处理器140是一个完全不同的型号,具有型号为Y的软件和/或固件142,版本为1.0。还可包括有不同型号和/或版本号的其他网络处理器(未示出)。因为它们是异质的,在没有本发明时,网络处理器120、130和140中的每个网络处理器将需要一组专用于单个网络处理器的API,以便由传统的表管理应用程序(如图1中说明的表管理应用程序12)进行控制。
现在再次参考图2,通用API 150包括由表管理应用程序112和网络处理器120、130和140使用的那些API。特别是,通用API以与网络处理器无关的方式与表管理应用程序112通信并被它使用。换言之,表管理应用程序112是与网络处理器无关的。在本发明的上下文中,与网络处理器无关的方式意味着表管理应用程序112不需要具有关于任何网络处理器120、130和140(表管理应用程序112为这些网络处理器管理表)的特定硬件、软件和/或固件的知识。与此同时,表管理应用程序112能通过分别管理软件和/或固件122、132和142来控制网络处理器120、130和140使用的表。因为表管理应用程序112是与网络处理器无关的,所以表管理应用程序112能控制(如配置和更新)网络处理器120、130和140使用的表,而不需要关于单个网络处理器120、130和140各自的硬件、软件和/或固件的特定知识。
通用API 150还以特定于网络处理器的方式与网络处理器120、130和140通信并控制它们。在本发明的上下文中,特定于网络处理器包括关于特定的网络处理器的知识,如分别由特定网络处理器120、130和140使用的硬件、软件和/或固件122、132和142以及可能的其他部件。这样API 150允许表管理应用程序112是与网络处理器无关的,而同时允许以特定于网络处理器的方式控制每个网络处理器120、130和140。
使用系统100,更具体地说是使用通用API 150,表管理应用程序112可以是与网络处理器无关的。因为使用通用API 150,表管理应用程序112还能以特定于网络处理器的方式控制可能是异质的网络处理器120、130和140所使用的表。结果,表管理应用程序112不需要为所用的网络处理器120、130和140的每种类型包括单独一组API。所以,表管理应用程序112更简单。结果,扩展系统100,包括添加新类型网络处理器,将会显著地更加简单。因此,通过添加改进的网络处理器还可以更容易地改善系统100的性能。此外,由于使用更简单的表管理应用程序112,可以降低系统100的维护费用。
图3是高层流程图,其描述了根据本发明的方法200的一个实施例,该方法提供了根据本发明的管理网络处理器用表的机制。对方法200的描述是以图2说明的系统100为背景进行的。特别是,方法200可被用于确定通用API 150。参考图2和图3,于是能使用通用API 150,以与网络处理器无关的方式开发表管理应用程序112。类似地,可能是异质的网络处理器120、130和140分别有诸如软件和/或固件122、132和142等部件,它们能由通用API以特定于网络的方式进行管理。因此,可使用通用API150,以特定于网络处理器的方式控制网络处理器120、130和140。
由网络处理器(如网络处理器120、130和140)使用的表(图2中未示出)的性质经由步骤202被抽象出来。每个网络处理器120、130和140有以某种方式使用的特定的表。步骤202把这些表抽象到一个更一般的水平。
例如,由网络处理器(如网络处理器120、130和140)使用的表是表现出某些性质的复杂的数据结构。每个表起一个或多个用户数据记录的容器的作用,并保持各种状态。每个表通常还有最大的大小,或能存储的固定大小记录的数量。
在一个优选实施例中,步骤202把这些表抽象为或者是快速的或是标准的表。这些表被放置在相应的网络处理器120、130和/或140的内部或外部的各种存储器中。例如,这些表可以被放在动态随机存取存储器(DRAM)或静态随机存取存储器(SRAM)中。能够从表中访问数据的速度取决于多种因素,如表的大小,在存储器中的位置以及表所使用的搜索算法类型。在步骤202中,表的大小和放置记录的存储器(即放置表的存储器)被抽象为快速表和标准表。快速表的大小与标准表相比要小并放在相应网络处理器120、130和140内部的存储器或SRAM中。标准表的大小可以很大并被放在较慢的存储器中,如DRAM。这样,步骤202把表的类型抽象为快速的或标准的。然而,对这种“抽象”概念的严格解释取决于由特定网络处理器实现的软件和/或固件122、132和142。
例如,图4A和4B分别说明了一个快速表160和一个标准表170的抽象。表160和170还表示了对表的其他特性的抽象。快速表160被描述为包括记录162、164、166和168以及书签167和169。记录162、164、166和168有相应的关键字162A至168A。还给出了指针161A、161B、163A、163B、165A和165B。如下文讨论的那样,关键字162A至168A一般用于严格匹配。换言之,通常是在快速表160中搜索对关键字162A至168A之一的严格匹配。标准表170还包括记录172、174、176和178、相应的关键字172A至178A以及指针171A、171B、173A、173B、175A和175B。然而,如下文讨论的那样,用于标准表的算法通常是最长前缀匹配。
除了抽象表的类型外,步骤202优选地抽象由表使用的搜索算法。例如,通常可以以随机方式或顺序方式访问这些表。当以随机方式访问时,提供一个搜索关键字。所提供的搜索关键字的类型取决于该表用于访问特定记录的搜索算法。一个表通常纳入一个用于随机访问记录的算法。在一个实施例中,抽象步骤202定义两类搜索关键字,它们对应于两类搜索算法。所述的关键字是严格匹配关键字,例如关键字162A到168A,以及最长前缀匹配关键字,例如图4B中所表示的关键字172A到178A。不必指定这些关键字的最大长度,但是最佳地它们应足够大以便支持在一个网络处理器的异质系统内可能会指定的最大的关键字。
如果表支持顺序访问,则也可以从该表的开头或该表内某个标记的部位起顺序地访问该表中的记录。因此,表160和170被描述为包括指针161A、161B、163A、163B、165A和165B以及171A、171B、173A、173B、175A和175B。对记录的顺序访问可以沿向前方向发生(这里术语“向前”表明在第n个记录之后访问第n+1个记录)或沿向后方向发生(这里术语“向后”表明在第n个记录之后访问第n-1个记录)或者二者。如果支持顺序访问,则表中的所有记录是环形链接的。所以,没有表的开始(或结尾)的概念,因为没有参考点来支持这一概念。然而,表可以支持书签,如书签167、169、177和179,它们可以暂时为顺序访问记录指出参考点。一个书签,如书签167、177和179,指出一个顺序访问的起点。如果第N+1(或对于向后访问的第N-1)次顺序访问返回一个作为书签的记录,则称整个表已被顺序地遍历了一遍。
一个表,如表160或170,在本质上是多用户的,这使多个实体能分别访问表160或170。在主处理器110上的表管理应用程序112实体(以及它在每个网络处理器120、130和140上的代理,如果被这样实现的话)也被认为是管理性实体。所有实体可以同时访问表,以便或是进行随机/顺序搜索或是插入/删除/更新查询表中的记录。希望对表进行顺序访问的每个实体向该表进行注册,并得到顺序访问用户标识符。这一标识符使表160或170能独立地分别管理与每个注册的实体相关联的书签167和169或书签177和179。这样,所有注册的实体能同时分别顺序访问表160和170中的条目162、164、166和168以及172、174、176和178而不会彼此造成有害影响。
图4C描述了表182、184、186和188的级联的抽象。如果诸表支持同一类型的搜索关键字/算法的话,一个表可以与其他表级联。当一些表被级联时,对一个特定记录的随机搜索延伸到该级联的其他表中,直至检测到一个“命中”为止。只有当对所请求记录的搜索在级联的所有表中都搜索失败时才报告一个搜索失败。这样,在级联180中,对表182的搜索会延伸到表184和186中。再有,应当注意,级联180可以包括快速表182和186以及标准表184这两种表。因此,不同类型的表182、184和186能被放入级联180。
记录是表的必要组成部分,这样,抽象步骤202还抽象与记录有关的操作。表的记录是固定长度的。指定长度是表定义过程的一部分。记录包含用户特定的数据并可包含为实现某些行为(如顺序访问)所需要的特定于实现的控制信息。此外,在查寻表中能由该表添加、修改或删除任何记录(如果在那个时候该记录未被另一实体访问的话)。表包含有能确保避免共享违规的行动。
图4D描述了表的状态190。表的可能状态包括禁止191、未定义192、允许193和锁定194,它们以图4D中描述的方式相互关联。优选地,对表的访问被限定于一个管理性实体。这一限制允许诸如为了进行维护和查错而使一个表不能提供服务等操作。为了提供这一功能,每个表维护状态190。当在禁止状态191时,该表不能提供服务。该表不能被访问,除非是由该管理性实体或它在网络处理器上的代理所进行访问。在这一状态下,该管理性实体只可以删除此表、删除表中一些条目或允许此表。当在未定义状态192时,该表的标识符尚未与一组表特性绑定。当在允许状态193时,该表处于服务中,并且通常可由所有实体访问。优选地,除了定义该表或删除该表的能力外,所有访问操作都是可用的。当表处在锁定状态194时,该表处于服务中,但除了由该管理性实体访问外暂时不可用于访问。所有表操作对于该管理性实体都是可用的,但定义该表、删除该表、允许该表和禁止该表的能力除外。
在网络处理器120、130和140中,表的记录中的信息有一个有限的有效时段。在这一时段终止时,该条目被自动从表中删除。在一个有限时段之后删除记录的过程称作老化(aging)。因此优选地,步骤202还对表的老化过程进行抽象。在步骤202中执行的表的抽象支持老化功能。在一个优选实施例中,该抽象将要求用户说明是否要求对该表支持老化,如果是,则要说明需要被调用的老化过程的标识符、在老化周期间所经过的时间间隔、在单个周期内必须被访问的记录数、和/或在老化过程中使用的任何其他信息。优选地,在步骤202中还抽象表的其他方面。
通过步骤204,使用所提供的抽象定义通用API 150。这样,步骤204提供了通用API 150,优选地,它们能为网络处理器120、130和140管理表,如表160和170。再有,当一个特定操作不被一个特定网络处理器120、130和140的表所支持时,通用API 150通过向表管理应用程序112提供一个“空行为”来解决这一点。
步骤204还提供通用API 150,从而API 150能被用于与网络处理器无关的表管理应用程序112。因此,使用方法200能提供通用API 150。与网络处理器无关的表管理应用程序112以及网络处理器120、130和140能被开发成利用通用API 150。
在一个优选实施例中,通用API 150至少包括用于以特定于网络处理器的方式为每个网络处理器120、130和140配置和更新表的API。因此,通用API包括通常情况下管理表以及各条目(记录)所用到的那些API。优选地,通用API 150包括用于设置表类型和设置表状态(定义、允许、禁止和锁定表)的API。通用API还包括用于链接(级联)表、更新条目、添加条目、删除条目、清除条目和老化条目的API。除了以特定于网络处理器方式控制网络处理器120、130和140所用表之外,优选地,API 150还为被特定网络处理器没有实现的特定功能返回一个“空行为”。
在一个优选实施例中,通用API 150包括25个API。优选地,API包括表定义、表删除、表添加条目、表更新条目、表读条目、表删除条目、表清除、表设置链接、表切换版本、表允许、表禁止、表锁定、表解锁、表查看配置、表列表、表注册SA、表取消注册SA、表得到当前条目、表得到下一条目、表得到前一条目、表处理条目、表设置书签、表转向书签、表开始老化以及表停止老化。在通用API(包括配置、更新、允许、禁止和列表等API)的一个优选实现中,指定了它们的参数和字段。表1描述所用字段的优选实施例。
表1字段名 字段描述老化条目每个老化周期要扫描的条目数老化功能选择老化算法。值零指出无老化老化间隔老化周期中的秒数自动允许表一经创建立即允许使用书签ID 要使用的用户书签ID高速缓存允许允许高速缓存数据条目数据数据偏移在条目中在写数据字段之前要跳过的字节数数据大小要添加的数据以字节计的大小方向在顺序访问表中的行进方向条目数据大小以字节计的条目大小条目过程ID 被调用来处理条目的过程的标识符条目大小以字节计的固定条目大小,如果条目类型是可变的,则为最大大小差错区大小 从第2个字开始以字数计的差错消息大小差错码 特定于部件的差错码散列算法散列算法选择,零值指出对该关键字不进行散列调用ID 由服务请求器使用的字段,用于使调用与响应关联关键字 关键字的各个比特关键字长度 用于这一操作的LPM关键字长度(以比特计)。
在已定义为严格匹配的表上,这一字段被忽略关键字长度字段 这些8比特字段定义每个关键字部分的长度。在
“关键字字段数目”中指了这些字段的个数,对于West表,没有实现多字段键值,故只使用关键字字段0掩码大小其指出仅用于反转方式的掩码的大小最大关键字大小 这个表的关键字中的最大的比特数最大表大小 最大条目数新版本 新的表ID下一个表ID 其指出在未成功搜索的情况下将被访问的下一个表。值255表明将不搜索其它表。如果选择“高速缓存允许”,则不应使用这一特性关键字字段数目 在搜索此表期间使用的关键字字段数目。这些字段的长度在可变大小的关键字长度字段中定义。对于West表,这个数为1操作类 指出向服务请求器发送响应的条件操作码 指出一个操作,它的调用正被请求操作版本指出该操作的版本级别输出方式选择在响应中的信息量,如果这一特性被激活,则返回每个表的配置数据。如果这一特性被关掉,则只返回表ID参数区大小 指出与此操作关联的参数区的大小(以字数计)布局数据在设计时定义这些字段以包含任何依赖于硬件的表资源信息。注意对于West表,这个字段中没有布局数据布局数据长度可变长布局数据字段中的字数,在West表的实现中不使用资源分配方法表资源能被人工或自动地分配。人工分配需要在布局数据字段提供资源数据并需要在布局数据长度中提供相应的大小结果区大小结果消息的大小,从第2个字开始以字数计SA用户ID 应被释放的SA_UserID搜索类型 表所支持的搜索类型,可以是严格匹配、最长前缀匹配或范围匹配顺序访问 此表所允许的顺序访问类型。条目能被向前扫描、向前/向后搜索或不扫描。
服务单元类型 指出服务特性,可能值是API调用、API结果或API错。
表ID 表标识符表速度对于自动表资源分配,选择两类表之一正常表和加速表。如果人工地选择资源分配方法,则不用此字段阈值 如果条目数超过此阈值,则发出通知,如果此值为零,则不发出通知更新方式 选择更新方式标准的、选择性的、反转的。选择性方式和反转方式要求在掩码字段指出要修改的比特位的位置优选地,上述字段的某些部分被通用API 150用于进行不同的操作,诸如在网络处理器的不同点配置和调用不同类型的拥塞控制。然而,应当注意,另一个实施例可能使用具有其他用途的附加的和/或其他字段。下面描述表定义API、表删除API、表添加条目API、表更新条目API、表读条目API、表删除条目API、表清除API、表设置链接API、表切换版本API、表允许API、表禁止API、表锁定API、表解锁API、表查看配置API、表列表API、表注册SA API、表取消注册SA API、表得到当前条目API、表得到下一条目API、表得到前一条目API、表处理条目API、表设置书签API、表转到书签API、表开始老化API,表停止老化API的优选实施例。然而,并不禁止使用附加的和/或不同的API。
表定义API允许表管理应用程序112定义表的特征。由用户向系统提供一个表ID以标识该表,并将表ID与那些定义的特征绑定在一起。一且定义一个表ID,它便唯一地标识该表,直至该表被删除。与这一API关联的参数如表2中所示。如果该操作成功且指定为顺序访问,则返回一个顺序访问ID。
表2参数名 值备注表ID 0..255在一个网络处理器(NP)中定义256个表之一。
搜索关键字长 0..255 以比特定义的长度。
度搜索类型 严格匹配最长前缀匹配顺序访问方法 无顺序访问只向前向前和向后自动允许 真 真表示该表被自动转换为允许状态假 (否则它留在禁止状态)。
表速度 正常 这些对应于在抽象模型中提到的标准加速 表和快速表。
记录大小 1..1024以字节定义的大小。
老化标识符 0..255 值0表示无老化。
级联表 真 “真”表示此表被级联,“下一个表假 ID”字段指出级联中的下一个表。
“假”意味着“下一个表ID”字段不被解释。
下一个表ID 0..255 指出该级联中的下一个表。
最大表大小 1..16777216指出该表中的记录数的最大值。
最大关键字大 1..255 在LPM关键字中的比特位数最大值。
小阈值 1..16777216如果记录数达到这个数,则产生一个警告。
表删除API允许表被删除。优选地,在调用这一API之前表处在禁止状态。当一个表被删除时,所有条目和表配置全被删除。然后该表ID准备供重新使用。优选地,用于表删除API的唯一参数是表ID。
表添加条目API允许将一个条目添加到一个现有表中。对于这一操作,该表处在允许或锁定状态。与这一API关联的参数列于表3。
表3参数名 值 备注表ID0..255 唯一标识在其上进行该操作的表。
搜索关键字长0..255 以比特定义的长度。
度搜索关键字 该关键字用于插入该记录。
覆盖条目 真 如果设为真,则与指定关键字相应的任何现假 有记录都将被覆盖写,否则该操作将不成功(如果该记录预先存在的话)。
用户数据大小 1..1024 需要进入该记录的用户信息大小(以字节计)。
用户数据 1..1024 实际的用户数据。
表更新条目API允许表中的条目被更新。优选地,有三种操作方式可用标准更新、选择和反转。所有方式都指定要修改的条目数据的大小和位置。在标准方式中,在该记录内指定的数据偏移处开始覆盖写用户数据。在选择方式中,指定一个掩码,其用于指出只有这些比特位置要被修改。在选择方式中,掩码大小与数据大小相同。反转方式使用掩码指出哪些比特位要反转。在调用这一API之前该表处于允许或锁定状态。与表更新条目API关联的参数示于表4
表4参数名 值 备注表ID 0..255 唯一标识在其上进行该操作的表。
搜索关键字长 0..255 以比特定义的长度。
度搜索关键字 该关键字用于更新该记录。
更新方式 标准选择反转用户数据 1..1024 需要进入该记录的用户信息大小(以大小 字节计)。
用户数据 1..1024 记录中的偏移,应在该偏移处写数据。
偏移用户数据 1..1024 实际用户数据。
选择掩码 1..1024 其大小等于“用户数据大小”字段中指定的大小。只有当更新方式是“选择”或“反转”时这一参数才被解释。
表读条目API用于读表中的一个条目。为使表读条目API利用该表,该表应处在允许或锁定状态。从与指定关键字关联的记录中读出所需数量的数据并将其返回。与表读条目API关联的参数示于表5。
表5参数名 值 备注表ID 0..255 唯一标识在其上进行该操作的表。
搜索关键字长 0..255 以比特定义的长度。
度搜索关键字 该关键字用于读该记录。
用户数据大小 1..1024 需要读出的用户信息大小(以字节数计)。
用户数据偏移 1..1024 该记录中的偏移,应在该偏移处读数据。
表删除条目API允许从表中删除一个条目。对于这一API,该表是处在允许或锁定状态。与表删除条目API关联的参数示于表6。
表6参数名 值 备注表ID 0..255 唯一标识在其上进行该操作的表。
搜索关键字长度 0..255 以比特定义的长度。
搜索关键字 该关键字用于删除该记录。
表清除API用于清除表中全部条目。然后将这些条目所消耗的资源返回系统供再使用。在利用此API之前该表可以处在允许状态或者禁止状态。优选地,表清除API锁定该表,清除条目,然后解锁该表。在一个优选实施例中,与表清除API关联的唯一参数是表ID。
表设置链接API允许在表配置中设置下一个表ID字段。尽管在定义表时设置了下一个表ID,但其后对该表链的行动,如表删除API更新了初始定义中的链接。如果级联表参数被设为“假”,则由表ID参数标识的表是该级联中的最后一个表。优选地,对于表设置链接API,该表处在允许状态。在一个优选实施例中,这一API自动把该表转换为锁定状态,设置新的链接值,然后转换回到允许状态。与这一API关联的参数示于表7。
表7参数名值备注表ID 0..255唯一标识在其上进行该操作的表。
级联表真“真”表明此表是被级联的,而“下一个表假ID”字段指出该级联中的下一个表。
“假”意味着“下一个表ID”字段不被解释。
下一个表ID0..255如果“级联表”参数设为“真”,则该字段指出级联中的下一个表。
表切换版本API用于交换一个表的两个版本,优选地,即使系统100正在运行中。在完成该操作后,在老表上已注册的顺序用户被转移到该表的较新版本。与每个用户关联的顺序访问指针和书签被重新设置。如果已对老表启动了老化,而且如果能够在该表的较新版本上进行老化,则老化参数被传送到新表并继续老化操作。优选地,顺序访问ID、老化间隔和老化条目参数都从老表继承下来。优选地,在表切换版本API操作之前该表处在允许状态。在一个优选实施例中,在进行切换操作之前两表被转换为锁定状态,并在切换操作结束时自动转回允许状态。与表切换版本API关联的参数示于表8。
表8参数名 值 备注表ID0..255 唯一标识,在其上进行该操作的表。
下一个表ID 0..255 指出将与初始表进行交换的表。
表允许API用于将表从禁止状态转换为允许状态。从其他表状态进行转换可能会造成错误。如果该表已经处于允许状态,优选地,这一操作被处置为基本上是空操作。在一个优选实施例中,与此操作关联的唯一参数是表ID。
表禁止API允许将一个表从允许状态转换为禁止状态。如果该表已经处于禁止状态,这一操作基本上是作为空操作处置。在一个优选实施例中,与表禁止API关联的唯一参数是表ID。
表锁定API用于把表从允许状态移到锁定状态。在转换到锁定状态之后,该表被认为是暂时不为非管理性实体提供服务。由这些实体对该表的操作被封锁,直至该表被解锁或者这些操作超时。在一个优选实施例中,所有通用API可以使用表控制应用程序112完成,但表定义API、表删除API、表允许API以及表禁止API除外。在一个优选实施例中,与此操作关联的唯一参数是表ID。
表解锁API用于把表从锁定状态转移到允许状态。在一个优选实施例中,与此操作关联的唯一参数是表ID。
表查看配置API返回与一个表关联的配置信息。优选地,该配置信息与在使用表定义API过程中指定的信息相同。在一个优选实施例中,与此操作关联的唯一参数是表ID。
表列表API允许列出在系统100中当前被定义的表。在一个优选实施例中,在标准方式下,使用表列表API得到的输出中包含表ID、每个表中的条目数、搜索类型以及表状态的列表。在一个详细方式的优选实施例中,表列表API操作的输出除了状态外还包含表定义API操作中所见到的所有参数。优选地,处于未定义状态的表被这一API忽略。搜索过滤器能够说明搜索判据。与此操作关联的参数示于表9。
表9参数名 值备注起始表ID0..255表ID,列表操作应从该表开始进行。
最大表数0..255指出在列表操作中包括的表个数的最大值。
输出方式标准详细搜索过滤器 全部表只是严格匹配的只是LPM匹配的还可以使用表注册SA API。一个表能被设置为执行向前顺序访问或既向前又向后顺序访问。这种访问能由多用户同时进行而彼此没有任何伤害。然而,在进行顺序访问之前,用户(例如一个实体)必须注册以接收一个特定表上的顺序访问服务。对这一服务请求的响应是一个SA用户ID,它用于区别在一个特定表上的各个SA用户。对于这个API,表处在允许或锁定状态。在一个优选实施例中,这一操作的唯一参数是表ID。如果该操作成功,则优选地返回一个顺序访问ID,它被用于进行该表上的顺序访问。
表取消注册SA API用于释放顺序访问ID及其相关资源。优选地,在注册的实体已结束顺序遍历一个表并已不再进一步使用该ID时才调用这一API。在利用表取消注册SA API之前,表处在允许或锁定状态。优选地,与这一API关联的参数只有表ID和顺序访问ID。
表得到当前条目API用于取回由一特定实体的顺序访问指针指向的当前记录。该表处在允许或锁定状态,而且该实体先前已在该表中注册过以进行顺序访问,从而使表得到当前条目API能按所希望的那样起作用。优选地,与这一API关联的参数只有表ID和顺序访问ID。优选地,表得到当前条目API返回用户数据大小和用户数据。
表得到下一条目API操作用于取回该实体指向下一个记录的顺序访问指针,然后取回这下一个记录的内容。优选地,该表处在允许或锁定状态,而且该实体先前已经注册过了要进行顺序访问,从而使表得到下一条目API按所希望的那样起作用。顺序访问指针也相应地被更新。在一个优选实施例中,与此操作关联的参数只有表ID和顺序访问ID。该操作返回用户数据大小和用户数据(对这两个字段的说明参考查询表添加条目Lookup_Table_AddEntry)。
表得到前一条目API用于取回该实体指向前一个记录的顺序访问指针,然后取回该记录的内容。优选地,该顺序访问指针也相应地被更新。该表处在允许或锁定状态,而且对于表得到前一条目,该实体必须先前已为顺序访问进行注册。在一个优选实施例中,表的性质指出它即能向前又能向后遍历。在一个优选实施例中,与此操作关联的参数是表ID和顺序访问ID,该操作返回用户数据大小和用户数据。
表处理条目API允许整个表或整个表的一段被顺序地“走过”(或向前或向后)。此外,对每次访问,调用一个指定的过程以使该过程能处理该条目。表处理条目API通常由老化例程使用。指定的过程的地址必须先前已绑定于一个代表那个地址的普通数字。该表应处于允许或锁定状态,该实体必须先前已为顺序访问进行了注册。与此操作关联的参数示于表10。
表10参数名值 备注表ID 0..255 要在其上进行该操作的表的标识符。
顺序访问ID0..15指出注册用户的标识符。
行走方向 向前 指出进行反复遍历的方向。
向后过程ID0..255 为处理每个条目要调用的过程条目数0..最大条目数指出要处理的条目数。零指出表中全部条目。这个值不能大于指定的该表最大条目数(参考查询表定义(Lookup_Table_Define))。
表设置书签API与书签一起使用。书签与顺序表访问相关联,用于“标记”一个表中的特定位置或记录,从而在以后能直接到达该书签并从书签标记的记录开始顺序“行走”。如果一个以书签标记的记录被删除,则该书签只是简单地移到该链中的下一个记录。书签与注册的用户相关联。所以每个用户可以在同一文件内的不同记录位置处保持独立的书签。表设置书签API允许在表内当前顺序访问点处设置书签。为使用这一API,该表处于允许或锁定状态。其他先决条件包括配置的对顺序访问的支持和用户注册。与表设置书签API关联的参数示于表11。
表11参数名值 备注表ID 0..255 要对其进行该操作的表的标识符。
顺序访问ID0..15指出注册的用户的标识符。
书签ID0..3 每个注册的用户对每个表可设置多达四个书签。
表转到书签API用于初始化与注册用户相关联的顺序访问指针,使其指向该用户所希望的书签。如果使用了一个后续的表得到当前条目API,则返回与该书签关联的记录的内容。类似地,如果使用了一个后续的表得到下一条目API,则返回被书签标记的记录的下一个记录的内容。为成功使用这一API,该表应处在允许或锁定状态。此外,已经预先配置了对顺序访问的支持和用户针对顺序访问的注册。与这一操作关联的参数与表设置书签API的参数相同。
表开始老化API允许开始对表的老化。当一个表被定义时,有可能指出对该表是否支持老化,如果是,则提供老化过程ID(关于该参数的详情,参考查询表定义API)。如果支持老化,则查询表定义API允许用户被自动地注册为顺序访问并返回顺序访问ID。然而,在使用表开始老化API之前老化过程并不实际开始。因为老化过程涉及顺序访问,故返回顺序访问ID作为表定义API操作的一部分,并作为一个参数提供给这一操作。利用表开始老化API的表处在允许或锁定状态。与表开始老化API关联的参数示于表12。
表12参数名值 备注表ID 0..255 对其进行该操作的表的标识符。
顺序访问ID0..15 指出已注册的用户的标识符。
老化间隔 1..216-1 在老化周期之间的经过的时间,以秒数计。
老化条目 0-最大条目数 指出要处理的条目数。零指出表中全部条目。这个值不能大于指定的该表最大条目数(参考查询表定义)。
表停止老化API操作用于停止老化功能。这预先假定先前已使用表开始老化API开始了老化。该表要满足的条件与表开始老化API的条件相似。与这一API相关联的参数优选地限定于表ID以及由表开始老化API使用的顺序访问ID。
图5是根据本发明的方法210的一个实施例的高层流程图,该方法使用根据本发明的机制管理网络处理器用表。为了清楚,结合图2中所示系统100来描述方法210。参考图2和图5,方法210假定网络处理器120、130和140以及表管理应用程序112已被配置成与通用API 112一起使用。例如,表管理应用程序112是与网络处理器无关的并且具有适于与通用API112一起使用的通用接口。
一个用户,如网络管理员,被允许通过步骤212输入信息,以与网络无关的方式使用通用API 150来管理网络处理器120、130和140使用的表。所以,在步骤212中,用户可提供希望控制的网络处理器的标识、适当参数和标志的值以及所使用的通用API中的一个(些)API所使用的其他信息。然后,通过步骤214,通用API 150以特定于网络处理器的方式对可能是异质的网络处理器120、130和140所使用的表进行控制。
使用系统100、方法200和210、特别是通用API 150,表管理应用程序112可以是与网络处理器无关的。由于使用通用API,表管理应用程序112仍能以特定于网络处理器的方式控制可能是异质的网络处理器120、130和140使用的表。结果,表管理应用程序112不需要为所使用的网络处理器120、130和140中的每种类型包括单独的一组API。所以表管理应用程序112更简单了。结果,扩展系统,包括添加新类型网络处理器,都变得明显地简单了。因此更容易通过添加改进的网络处理器来改善系统100的性能。此外,由于使用更简单的表管理应用程序112,可以减少系统100的维护费用。
已经公开说明了一种方法和系统,用于使用与网络处理器无关的控制应用程序来管理异质网络处理器使用的表。根据本发明写成的软件存储在某种形式的计算机可读介质中,如CD-ROM,或者在网络上被传送,并由处理器执行。因此,计算机可读介质要包括计算机可读信号,所述信号可以例如在网络上被传输。尽管已根据所示实施例描述了本发明,但本领域普通技术人员将容易认识到,会存在对这些实施例的各种改变,而且那些改变将在本发明的精神和范围内。因此,可以由本领域普通技术人员做出许多修改而不脱离所附权利要求的精神和范围。
权利要求
1.一种用于管理网络中多个异质网络处理器使用的至少一个表的系统,该网络还包括至少一个主处理器,它利用至少一个表管理应用程序,该系统包括多个通用应用程序接口(API),它们与这至少一个表管理应用程序及这多个异质网络处理器通信,所述的多个通用API以与网络处理器无关的方式与所述的至少一个主处理器中的至少一个表管理应用程序通信,所述的多个通用API以特定于网络处理器的方式管理这多个异质网络处理器使用的多个表;其中所述的多个通用API允许所述的至少一个表管理应用程序是与网络处理器无关的,并允许以特定于网络处理器的方式管理所述多个异质网络处理器使用的多个表。
2.如权利要求1的系统,其中所述的多个通用API由至少一个表管理应用程序用于控制该表的至少一个性质和所述至少一个表的至少一个记录。
3.如权利要求2的系统,其中该表的至少一个性质包括表的状态,而且其中所述的多个API的一部分用于设置表的状态。
4.如权利要求3的系统,其中状态包括允许状态、禁止状态和锁定状态。
5.如权利要求2的系统,其中表的至少一个性质进一步包括该表是否与至少一个第二表链接。
6.如权利要求2的系统,其中所述的多个通用API的一部分用于确定是否添加第二记录、删除记录、清除记录和/或老化记录。
7.一种计算机可读介质,其上包括有用于管理网络中多个异质网络处理器使用的多个表的程序,该网络还包括至少一个主处理器,它使用至少一个表管理应用程序,所述程序包括用于如下方面的指令实现多个通用应用程序接口(API),它们与所述的至少一个表管理应用程序及所述多个异质网络处理器通信,所述的多个通用API以与网络处理器无关的方式与所述至少一个主处理器中的至少一个表管理应用程序通信,所述多个通用API以特定于网络处理器的方式管理这多个异质网络处理器使用的多个表;其中所述多个通用API允许所述至少一个表管理应用程序是与网络处理器无关的,并允许以特定于网络处理器的方式管理这多个异质网络处理器使用的多个表。
8.如权利要求7的计算机可读介质,其中多个通用API由至少一个表管理应用程序用于控制该表的至少一个性质和所述至少一个表的至少一个记录。
9.如权利要求8的计算机可读介质,其中表的至少一个性质包括表的状态,而且其中所述的多个API的一部分用于设置表的状态。
10.如权利要求9的计算机可读介质,其中的状态包括允许状态、禁止状态和锁定状态。
11.如权利要求8的计算机可读介质,其中表的至少一个性质进一步包括该表是否与至少一个第二表链接。
12.如权利要求8的计算机可读介质,其中所述的多个通用API的一部分用于确定是否添加第二记录、删除记录、清除记录和/或老化记录。
13.一种管理网络中多个异质网络处理器使用的多个表的方法,该网络还包括至少一个主处理器,它使用至少一个表管理应用程序,该方法包含(a)对所述多个异质网络处理器使用的多个表进行抽象;(b)根据该抽象提供多个通用应用程序接口(API),所述的多个通用API与所述的至少一个表管理应用程序及所述的多个异质网络处理器通信,所述的多个通用API以与网络处理器无关的方式与所述至少一个主处理器中的至少一个表管理应用程序通信,所述的多个通用API以特定于网络处理器的方式管理这多个异质网络处理器使用的多个表;其中所述多个通用API允许所述的至少一个表管理应用程序是与网络处理器无关的,并允许以特定于网络处理器的方式管理这多个异质网络处理器使用的多个表。
14.权利要求13的方法,其中所述的多个通用API由至少一个表管理应用程序用于控制该表的至少一个性质和所述的至少一个表的至少一个记录。
15.权利要求14的方法,其中该表的至少一个性质包括表的状态,而且其中所述的多个API的一部分用于设置表的状态。
16.权利要求15的方法,其中的状态包括允许状态、禁止状态和锁定状态。
17.权利要求14的方法,其中表的至少一个性质进一步包括该表是否与至少一个第二表链接。
18.权利要求14的方法,其中所述的多个通用API的一部分用于确定是否添加第二记录、删除记录、清除记录和/或老化记录。
全文摘要
本发明公开了一种用于管理网络中多个异质网络处理器使用的多个表的方法和系统。该网络还包括至少一个主处理器,它利用至少一个表管理应用程序。该方法和系统包括提供多个通用应用程序接口(API)。通用API与控制应用程序以及异质网络处理器通信。通用API以与网络处理器无关的方式与表管理应用程序通信,但以特定于网络处理器的方式管理异质网络处理器使用的表。这样,通用API允许控制应用程序是与网络处理器无关的,并以特定于网络处理器的方式管理异质网络处理使用的表。
文档编号G06F9/44GK1617513SQ20041005709
公开日2005年5月18日 申请日期2004年8月30日 优先权日2003年11月12日
发明者S·哈里哈兰, B·约翰斯顿, M·C·拉韦涅, S·拉奥, B·撒那伊 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1