CN111819552B - 访问控制列表的管理方法及装置 - Google Patents

访问控制列表的管理方法及装置 Download PDF

Info

Publication number
CN111819552B
CN111819552B CN201880091018.3A CN201880091018A CN111819552B CN 111819552 B CN111819552 B CN 111819552B CN 201880091018 A CN201880091018 A CN 201880091018A CN 111819552 B CN111819552 B CN 111819552B
Authority
CN
China
Prior art keywords
sram
compression node
stored
compression
keyword
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
CN201880091018.3A
Other languages
English (en)
Other versions
CN111819552A (zh
Inventor
杨升
董细金
高峰
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN111819552A publication Critical patent/CN111819552A/zh
Application granted granted Critical
Publication of CN111819552B publication Critical patent/CN111819552B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本申请提供了一种访问控制列表的管理方法及装置,涉及数据处理技术领域,该方法包括:获取压缩节点层的数量N,压缩节点层是由访问控制列表ACL对应的搜索树上的层所形成的,且压缩节点层包括至少一个压缩节点,N为大于或等于1的整数;将N个压缩节点层存储在M块SRAM中,M为大于0且小于N的整数,M块SRAM中的每块SRAM中存储有N个压缩节点层中的至少一个压缩节点层。也即,本申请实施例中,多个压缩节点层可以共享一块SRAM,有效的避免了每块SRAM中仅存储一个压缩节点层所造成的存储空间浪费的问题,提高了SRAM的存储空间的利用率。

Description

访问控制列表的管理方法及装置
技术领域
本申请涉及数据处理技术领域,特别涉及一种访问控制列表(Access ControlList,ACL)的管理方法及装置。
背景技术
ACL是配置在路由器或交换机等转发设备中的指令列表。其中,ACL中包括多条规则,当转发设备接收到报文时,可以从报文中提取关键字,并从ACL包括的多条规则中查找与提取的关键字相匹配的规则,进而根据查找结果对接收到的报文进行处理。由于ACL包括的规则的数量极其巨大,因此,为了方便查找,通常,转发设备可以根据ACL创建对应的搜索树,进而按照该搜索树包括的层来对ACL进行存储。
具体地,转发设备可以根据ACL包括的多条规则的特点,选择规则中的多个特定比特位来对多条规则进行分割,从而将该多条规则划分到多个桶中。其中,该多个桶中的每个桶的最大容量均是相同的。转发设备可以根据划分该多条规则的过程创建搜索树,该搜索树的每个叶子节点最终都指向一个桶。例如,假设桶的最大容量为3,如图1所示,ACL中包括12条规则。转发设备可以首先根据第6比特位将12条规则划分为2组,其中,第6比特位的值为0的规则为第一组,值为1的规则为第二组,值为指定字符的规则需要同时放入到两个组中。当划分得到第一组和第二组之后,由于第一组和第二组中规则的数量均大于3,也即均大于桶的最大容量,因此,可以继续对第一组和第二组进行划分。其中,对于第一组,根据第3比特位对其划分,得到第三组和第四组,对于第二组,根据第1比特位对其划分,得到第五组和第六组。其中,第四组、第五组和第六组包括的规则的数量均小于3,因此,可以将第四组、第五组和第六组的规则分别存储在不同的桶中,而由于第三组包括的规则的数量仍然大于3,因此,可以继续根据第13比特位对第三组进行划分,得到第七组和第八组。由于第七组和第八组包括的规则的数量均小于3,因此,可以将第七组和第八组包括的规则分别存储在不同的桶中。由此可见,通过上述过程,可以将12条规则划分到5个桶中,而根据划分的过程,则可以创建得到如图2所示的搜索树。该搜索树的每个叶子节点上都存储有对应的桶的存储地址,而除叶子节点之外的其他节点上则存储有相应节点所对应的用于指示对规则进行划分的特定比特位以及具体划分方式的分割信息。
在创建搜索树之后,由于ACL中的规则的数量极其庞大,因此,创建的搜索树往往包括很多层,在这种情况下,转发设备可以从搜索树的第一层开始,将每相邻的预设数量的层作为一个压缩节点层,将该压缩节点层内的多个节点存储在至少一个压缩节点中,之后,在每块静态随机存取存储器(Static Random-Access Memory,SRAM)中存储一个压缩节点层包括的至少一个压缩节点。
当采用上述方法来存储ACL时,由于搜索树的每一层的节点数量不同,因此,每一个压缩节点层内的节点数量也不同,这样,每块SRAM中被占用的容量的多少也不同,对于某些节点数量较少的压缩节点层所对应的SRAM,会存在存储空间浪费的问题。
发明内容
本申请提供了一种访问控制列表的管理方法、装置及计算机存储介质,可以用于解决相关技术中每块SRAM存放一个压缩节点层所导致的存储空间浪费的问题。该技术方案如下:
第一方面,提供了一种访问控制列表的管理方法,该方法包括:
获取压缩节点层的数量N,所述压缩节点层是由访问控制列表ACL对应的搜索树上的层所形成的,且所述压缩节点层包括至少一个压缩节点,所述N为大于或等于1的整数;
将所述N个压缩节点层存储在M块SRAM中,所述M为大于0且小于所述N的整数,所述M块SRAM中的每块SRAM中存储有所述N个压缩节点层中的至少一个压缩节点层。
在本申请实施例中,转发设备可以将N个压缩节点层存储在少于N块的SRAM中,也即,多个压缩节点层可以共享一块SRAM,有效的避免了每块SRAM中仅存储一个压缩节点层所造成的存储空间浪费的问题,提高了SRAM的存储空间的利用率。
可选地,所述将所述N个压缩节点层存储在所述M块SRAM中,包括:
按照所述N个压缩节点层的先后顺序,从所述M块SRAM中的第1块SRAM开始,按照从所述第1块SRAM到第M块SRAM的顺序,依次在每块SRAM存储一个压缩节点层;
当存储到第M块SRAM时,重新从所述M块SRAM中的第1块SRAM开始,按照从所述第1块SRAM到第M块SRAM的顺序,依次在每块SRAM存储一个压缩节点层,直到存储完所述N个压缩节点层为止。
可选地,所述方法还包括:
当接收到报文时,从所述报文中提取关键字;
基于所述关键字和所述M块SRAM中存储的所述N个压缩节点层,查找与所述关键字相匹配的规则。
可选地,所述基于所述关键字和所述M块SRAM中存储的所述N个压缩节点层,查找与所述关键字相匹配的规则,包括:
令i=1,k=1,判断所述M块SRAM中的第i块SRAM中是否存储有第k个压缩节点层;
若所述第i块SRAM中存储有第k个压缩节点层,则基于所述关键字,从所述第k个压缩节点层包括的至少一个压缩节点中,查找与所述关键字相对应的叶子节点;
若查找到与所述关键字相对应的叶子节点,则基于查找到的叶子节点中存储的桶的地址,查找与所述关键字相匹配的规则。
可选地,所述判断所述M块SRAM中的第i块SRAM中是否存储有第k个压缩节点层包括的至少一个压缩节点之后,还包括:
若所述第i块SRAM中未存储有第k个压缩节点层,则令所述i=i+1,并返回所述判断所述M块SRAM中的第i块SRAM中是否存储有第k个压缩节点层的步骤。
可选地,所述基于所述关键字,从所述第k个压缩节点层包括的至少一个压缩节点中,查找与所述关键字相对应的叶子节点之后,还包括:
若未查找到与所述关键字相对应的叶子节点,且所述i小于所述M,则令所述i=i+1,所述k=k+1,并返回所述判断所述M块SRAM中的第i块SRAM中是否存储有第k个压缩节点层的步骤。
可选地,所述基于所述关键字,从所述第k个压缩节点层包括的至少一个压缩节点中,查找与所述关键字相对应的叶子节点之后,还包括:
若未查找到与所述关键字相对应的叶子节点,且所述i等于所述M,则令所述i=1,所述k=k+1,并返回所述判断所述M块SRAM中的第i块SRAM中是否存储有第k个压缩节点层的步骤。
可选地,所述若查找到与所述关键字相对应的叶子节点,则基于查找到的叶子节点中存储的桶的地址,查找与所述关键字相匹配的规则,包括:
若查找到与所述关键字相对应的叶子节点,且所述i小于所述M,则获取查找到的叶子节点中存储的桶的地址;
将所述桶的地址依次通过所述第i块SRAM至所述第M块SRAM之间的每块SRAM传递,直到传递至所述第M块SRAM时,由所述第M块SRAM输出所述桶的地址;
基于所述桶的地址,查找与所述关键字相匹配的规则。
第二方面,提供了一种访问控制列表的管理装置,所述访问控制列表的管理装置具有实现上述第一方面中的访问控制列表的管理方法行为的功能。所述访问控制列表的管理装置包括至少一个模块,该至少一个模块用于实现上述第一方面所提供的访问控制列表的管理方法。
第三方面,提供了一种访问控制列表的管理装置,所述访问控制列表的管理装置的结构中包括处理器和存储器,所述存储器用于存储支持访问控制列表的管理装置执行上述第一方面所提供的访问控制列表的管理方法的程序,以及存储用于实现上述第一方面所提供的访问控制列表的管理方法所涉及的数据。所述处理器被配置为用于执行所述存储器中存储的程序。所述存储设备的操作装置还可以包括通信总线,该通信总线用于该处理器与存储器之间建立连接。
第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面所述的访问控制列表的管理方法。
第五方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面所述的随机接入方法。
上述第二方面、第三方面、第四方面和第五方面所获得的技术效果与第一方面中对应的技术手段获得的技术效果近似,在这里不再赘述。
本申请提供的技术方案带来的有益效果是:获取由ACL对应的搜索树上每相邻的预设数量的层所形成的压缩节点层的数量N,将N个压缩节点层存储在M块SRAM上,其中,M小于N,每块SRAM中存储有N个压缩节点层中的至少一个压缩节点层所包括的至少一个压缩节点。由此可见,在本申请实施例中,可以将N个压缩节点层存储在少于N块的SRAM中,这样,每块SRAM中不止可以存储有一个压缩节点层,避免了每块SRAM中仅存储一个压缩节点层所造成的存储空间浪费的问题,提高了SRAM的存储空间的利用率。
附图说明
图1是相关技术提供的一种对ACL包括的多条规则进行划分的示意图;
图2是根据相关技术中ACL的划分过程创建得到的搜索树的示意图;
图3是本申请实施例提供的一种ACL的管理方法的所适用的实施环境的示意图;
图4是本申请实施例提供的一种转发设备的结构示意图;
图5是本申请实施例提供的一种ACL的管理方法的流程图;
图6是本申请实施例示出的一种ACL对应的搜索树的压缩节点层的示意图;
图7是本申请实施例示出的在M块SRAM上存储N个压缩节点层的示意图;
图8是本申请实施例提供的一种ACL的管理方法的流程图;
图9是本申请实施例提供的一种N个压缩节点层在M块SRAM上的分布示意图;
图10是本申请实施例提供的一种访问控制列表的管理装置的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
在对本申请实施例进行详细的解释说明之前,先对本申请实施例涉及的实施环境予以介绍。
图3是本申请实施例提供的访问控制列表的管理方法所适用的实施环境的示意图。如图3所示,该实施环境中可以包括发送端设备301、转发设备302和接收端设备303。其中,发送端设备301可以通过无线网络或有线网络与转发设备302进行通信,接收端设备303和转发设备302也可以通过无线网络或者有线网络进行通信。
示例性地,发送端设备301可以用于向转发设备302发送报文,该报文可以是发送端设备301发送给接收端设备303的报文。
转发设备302包括多块SRAM,且转发设备302中可以配置有多个ACL。其中,每个ACL中可以包括多条由用户配置的规则。转发设备302可以将每个ACL中的多条规则划分到多个桶中,并根据划分过程创建每个ACL的搜索树。由于ACL的搜索树的层数可能较多,因此,转发设备302可以将每个ACL的搜索树包括的多个层划分为多个压缩节点层,其中,每个压缩节点层包括的多个节点存储在至少一个压缩节点中。转发设备302可以将每个ACL包括的多个压缩节点层存储在多块SRAM中。
可选地,转发设备302还可以包括三态内容寻址存储器(Ternary ContentAddressable Memory,TCAM)。其中,转发设备302在对每个ACL中的多条规则进行划分时,从每个ACL包括的多条规则中选择可以同时被划分到多个桶中的规则,并将这类规则存储到TCAM中。
转发设备302可以用于对接收到的发送端设备301发送的报文进行解析,从该报文中提取关键字,并通过每个ACL的搜索树查找与该关键字对应的规则,并根据查找结果对该报文进行不同的处理。例如,若查找到,则转发设备302可以向接收端设备303转发该报文,若未查找到,则转发设备302可以拒绝转发该报文。
需要说明的是,在本申请实施例中,发送端设备301和接收端设备303可以为诸如智能手机、平板电脑、笔记本电脑、台式电脑等计算机设备。转发设备302则可以为路由器、交换机或其他路由交换接入一体设备。
图4是本申请实施例提供的一种上述实施环境中的转发设备302的结构示意图,如图4所示,该转发设备主要包括有发射机3021、接收机3022、存储器3023、处理器3024以及通信总线3025。本领域技术人员可以理解,图4中示出的转发设备302的结构并不构成对转发设备302的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,本申请实施例对此不做限定。
其中,该发射机3021可以用于向接收端设备103发送数据和/或信令等。该接收机3022可以用于接收发送端设备101发送的数据和/或信令等。
其中,该存储器3023可以用于存储ACL中包括的多条规则、ACL的搜索树以及上述发送端设备101发送的数据,并且,该存储器3023也可以用于存储用于执行本发明实施例提供的ACL的存储方法的一个或多个运行程序和/或模块。该存储器3023可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其它类型的静态存储设备,随机存取存储器(random access memory,RAM))或者可存储信息和指令的其它类型的动态存储设备,也可以是电可擦可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由集成电路存取的任何其它介质,但不限于此。存储器3023可以是独立存在,通过通信总线3025与处理器3024相连接。存储器3023也可以和处理器3024集成在一起。
其中,该处理器3024是该转发设备302的控制中心,该处理器3024可以是一个通用中央处理器(Central Processing Unit,以下简称CPU),微处理器,特定应用集成电路(Application-Specific Integrated Circuit,以下简称ASIC),或一个或多个用于控制本方案程序执行的集成电路。该处理器3024可以通过运行或执行存储在存储器3023内的软件程序和/或模块,以及调用存储在存储器3023内的数据,来实现本发明实施例提供的ACL的存储方法。
另外,上述处理器3024和存储器3023可以通过通信总线3025传送信息。
接下来对本申请实施例提供的ACL的管理方法进行介绍。
图5是本申请实施例提供的一种ACL的管理方法的流程图,该方法可以应用于图3所示的实施环境中的转发设备302中,该方法包括以下步骤:
步骤501:获取压缩节点层的数量N。
其中,由于ACL中的规则的数量巨大,因此,ACL对应的搜索树往往包括很多层。在这种情况下,转发设备可以从搜索树的第一层开始,将每相邻的预设数量的层作为一个压缩节点层,从而将该搜索树划分为多个压缩节点层,之后,转发设备可以统计搜索树包括的压缩节点层的数量N。
需要说明的是,由于每个压缩节点层包括搜索树的多层,因此,每个压缩节点层中将包括多个节点,转发设备可以将每个压缩节点层内的多个节点合并存储在至少一个压缩节点内。
图6是本申请实施例示出的一种ACL对应的搜索树的压缩节点层的示意图。如图6所示,假设该搜索树中包括n层,转发设备可以从第一层开始,将第一层到第四层作为第一个压缩节点层,该压缩节点层内包括多个节点可以存储在一个压缩节点中,也即,在第一个压缩节点层内包括一个压缩节点。从第五层开始,将第五层到第八层作为第二个压缩节点层,需要说明的是,在第二个压缩节点层中,可以将第五层中的叶子节点存储在一个压缩节点中,将除叶子节点之外的每个节点作为一个顶层节点,从而将每个顶层节点以及相应节点的分支存储在一个压缩节点中。例如,如图6所示,假设第五层中包括2个叶子节点,可以将这两个叶子节点存储在一个压缩节点中,而除叶子节点之外的剩余4个节点,可以将这4个节点中的每个节点作为一个顶层节点,将每个顶层节点以及每个顶层节点引出的分支存储在一个压缩节点中,从而得到四个压缩节点。对于搜索树的第九层到第n层,转发设备均可以按照上述方法进行处理,从而得到N个压缩节点层。
步骤502:将N个压缩节点层存储在M块SRAM中,M为小于N的正整数,M块SRAM中的每块SRAM中存储有N个压缩节点层中的至少一个压缩节点层。
相关技术中,当ACL对应的搜索树有N个压缩节点层时,转发设备可以将每个压缩节点层包括的至少一个压缩节点存储在一块SRAM中,也就是说,要存储N个压缩节点层,需要N块SRAM中。在这种情况下,当某个压缩节点层包括的节点数量较少时,存储该压缩节点层的SRAM的存储空间将会存在浪费的问题。而在本申请实施例中,转发设备可以将N个压缩节点层存储在少于N块的SRAM中,也即,每块SRAM中可以存储有至少一个压缩节点层,换句话说,在本申请实施例中,多个压缩节点层可以共享一块SRAM,有效的避免了SRAM的空间浪费的问题。
示例性地,在本申请实施例中,转发设备可以通过以下几种方式来将N个压缩节点层存储在M块SRAM中。
第一种方式:按照N个压缩节点层的先后顺序,从M块SRAM中的第1块SRAM开始,按照从第1块SRAM到第M块SRAM的顺序,依次在每块SRAM存储一个压缩节点层;当存储到第M块SRAM时,重新从M块SRAM中的第1块SRAM开始,按照从第1块SRAM到第M块SRAM的顺序,依次在每块SRAM存储一个压缩节点层,直到存储完N个压缩节点层为止。
其中,转发设备可以按照压缩节点层在搜索树上所处的位置,按照自顶向下的顺序来确定压缩节点层的先后顺序。也即,位于搜索树的顶部的压缩节点层为第一个压缩节点层,第一压缩节点层中最后一层节点所指向的下一层为第二个压缩节点层,以此类推。
需要说明的是,在本申请实施例中,M块SRAM也可以按照一定顺序排列。在存储该N个压缩节点层时,转发设备可以按照N个压缩节点层的先后顺序,将第1个压缩节点层到第M个压缩节点层依次存储在第1块SRAM到第M块SRAM上。其中,第1个压缩节点层存储在第1块SRAM上,第2个压缩节点层存储在第2块SRAM上,第i个压缩节点层存储在第i块SRAM,依次类推,直到将第M个压缩节点层存储到第M块SRAM上之后,转发设备可以重新返回到第1块SRAM,在第1块SRAM上存储第M+1个压缩节点层,第2块SRAM上存储第M+2个压缩节点层,以此类推,直到将N个压缩节点层全部存储完毕为止。其中,M块SRAM中的第i块SRAM上将存储有第i个压缩节点层、第(M+i)个压缩节点层、第(2M+i)个压缩节点层等,其中,2M+i小于或等于N。
图7是本申请实施例示出的在M块SRAM上存储N个压缩节点层的示意图。其中,假设M=4,N=10。其中,SRAM1为第一块SRAM,SRAM2为第二块SRAM,以此类推。Conde_stage_01为第一个压缩节点层,Conde_stage_02为第二个压缩节点层,以此类推,Conde_stage_10为第10个压缩节点层。如图7所示,在存储这10个压缩节点层时,转发设备可以将Conde_stage_01存储在SRAM1上,将Conde_stage_02存储在SRAM2上,将Conde_stage_03存储在SRAM3上,将Conde_stage_04存储在SRAM4上。之后,转发设备可以重新返回到SRAM1,在SRAM1上存储Conde_stage_5,在SRAM2上存储Conde_stage_6,在SRAM3上存储Conde_stage_7,在SRAM4上存储Conde_stage_8。之后,转发设备可以再次返回到SRAM1,在SRAM1上存储Conde_stage_9,在SRAM2上存储Conde_stage_10。这样,将10个压缩节点层存储在4块SRAM上,其中,SRAM1上存储有Conde_stage_01、Conde_stage_05和Conde_stage_09,SRAM2上存储有Conde_stage_02、Conde_stage_06和Conde_stage_10,SRAM3上存储有Conde_stage_03、Conde_stage_07,SRAM4上存储有Conde_stage_04、Conde_stage_08。也即,M块SRAM中的SRAMi上将存储有Conde_stage_i、Conde_stage_M+i、Conde_stage_2M+i、Conde_stage_3M+i等。
第二种方式:按照N个压缩节点层的先后顺序,将N个压缩节点层依次划分为Q组,Q组中的前Q-1组中的每组中包括的压缩节点层的数量均为M,Q组中的最后一组中包括的压缩节点层的数量小于或等于M;将Q组中每组包括的压缩节点层中的第i个压缩节点层存储在M块SRAM中的第i块SRAM中,i为大于0且不大于M的整数。
前述第一种方式中主要介绍了将N个压缩节点层挨个存储到M块SRAM中的实现过程。在另外一种可能的实现方式中,转发设备可以首先将N个压缩节点层按照先后顺序划分为Q组,然后将Q组中每组包括的压缩节点层并行进行存储。
示例性的,转发设备可以按照N个压缩节点层的先后顺序,从第一个压缩节点层开始,将每相邻的M个压缩节点层划分为一组,从而得到Q组。若N为M的整数倍,则Q组中的每组均包括M个压缩节点层,若N不为M的整数倍,在Q组中的最后一组包括的压缩节点层的数量将小于M。
在将N个压缩节点层划分为Q组之后则转发设备可以将每组包括的压缩节点层中的第1个压缩节点层存储在M块SRAM中的第1块SRAM上,第2个压缩节点层存储在第2块SRAM上,以此类推,直到将每组包括的压缩节点层存储完为止。
由此可见,当采用第二种方式进行存储时,在将N个压缩节点层划分为Q组之后,转发设备可以并行的存储该Q组中每组包括的压缩节点层,以此来加快存储速度。
第三种方式:按照N个压缩节点层的先后顺序,从M块SRAM中的第1块SRAM开始,按照从第1块SRAM到第M块SRAM的顺序,依次在每块SRAM存储一个压缩节点层;当在第M块SRAM中存储完毕时,若剩余的压缩节点层的数量小于M,则根据M块SRAM中每块SRAM剩余的存储空间的大小,从M块SRAM中选择与剩余的节点层数量相同数量的SRAM,并将剩余的压缩节点层存储在选择的SRAM中。若剩余的压缩节点层的数量不小于M,则重新按照N个压缩节点层的先后顺序,从M块SRAM中的第1块SRAM开始,按照从第1块SRAM到第M块SRAM的顺序,依次在每块SRAM存储一个压缩节点层。
在该种实现方式中,转发设备可以首先将N个压缩节点层中的第1个压缩节点层到第M个压缩节点层依次对应存储在第1块到第M块SRAM上,当在第M块SRAM上存储完毕之后,转发设备可以统计剩余的未存储的压缩节点层的数量是否小于M,若不小于M,则可以重新从第1块SRAM开始,在第1块SRAM到第M块SRAM上依次对应存储第M+1个压缩节点层到第2M个压缩节点层。若小于M,则转发设备可以统计M块SRAM中每块SRAM剩余的存储空间的大小,按照剩余的存储空间从大到小的顺序进行排序,并从排序结果选择出剩余的存储空间排在前W个的SRAM,其中,W等于剩余的压缩节点层的数量。将剩余的压缩节点层存储在W个SRAM中。
例如,假设M=4,剩余的压缩节点层的数量为2,则转发设备可以从4块SRAM中选择剩余的存储空间最多的SRAM以及剩余的存储空间排在第二的SRAM。假设剩余的存储空间最多的SRAM为4块SRAM中的第3块SRAM中,而剩余的存储空间排在第二的SRAM为第1块SRAM,则转发设备可以将剩余的压缩节点层中的第1个压缩节点层存储在第1块SRAM,将剩余的压缩节点层中的第2个压缩节点层存储在第3块SRAM中。
上述是本申请实施例提供的将N个压缩节点层存储到M块SRAM上的三种实现方式,可选地,在一种可能的实现方式中,转发设备也可以不按顺序存储,随机的将N个压缩节点层存储在M块SRAM上。
在本申请实施例中,转发设备可以将N个压缩节点层存储在少于N块的SRAM中,也即,多个压缩节点层可以共享一块SRAM,有效的避免了每块SRAM中仅存储一个压缩节点层所造成的存储空间浪费的问题,提高了SRAM的存储空间的利用率。
在通过上述实施例将N个压缩节点层存储到M块SRAM上之后,若转发设备接收到报文,则可以通过下述实施例中提供的方法来查找与该报文匹配的规则。基于此,参见图8,提供了另一种ACL的管理方法,该方法包括如下步骤:
步骤801:获取压缩节点层的数量N。
本步骤的实现方式可以参考前述实施例中的步骤501。
步骤802:将N个压缩节点层存储在M块SRAM中,M为小于N的正整数,M块SRAM中的每块SRAM中存储有N个压缩节点层中的至少一个压缩节点层。
本步骤的实现方式可以参考前述实施例中的步骤502。
步骤803:当接收到报文时,从报文中提取关键字。
其中,根据ACL中的规则的不同,在接收到报文时,转发设备可以根据ACL中的规则的从报文中提取相应地关键字。
例如,ACL中的规则是用于根据报文的源地址对报文进行分类的,则转发设备可以提取该报文中的源地址信息,得到关键字。再例如,若ACL中的规则是用于根据时间段信息来对报文进行分类的,则转发设备可以获取该报文的时间段信息,并将其作为关键字。
步骤804:基于关键字和M块SRAM中存储的N个压缩节点层,查找与关键字相匹配的规则。
在提取到关键字之后,转发设备可以从M块SRAM中存储的N个压缩节点层中查找与该关键字相匹配的叶子节点,进而根据查找到的叶子节点中存储的桶的地址来获取与该关键字相匹配的规则。若转发设备在N个压缩节点层中未查找到与该关键字相匹配的叶子节点,则转发设备可以抛弃该报文。
其中,在查找与关键字匹配的规则时,令i=1,k=1,判断M块SRAM中的第i块SRAM中是否存储有第k个压缩节点层,若第i块SRAM中存储有第k个压缩节点层,则基于关键字,从第k个压缩节点层包括的至少一个压缩节点中,查找与关键字相对应的叶子节点;若查找到与关键字相对应的叶子节点,则基于查找到的叶子节点中存储的桶的地址,查找与关键字相匹配的规则。
示例性的,转发设备可以从第1块SRAM查起,判断第1块SRAM中是否存储有第1个压缩节点层,若是,则可以从第1个压缩节点层包括的至少一个压缩节点中查找是否存在与该关键字相匹配的叶子节点,若在第1个压缩节点层中查找到与该关键字相匹配的叶子节点,则转发设备可以获取该叶子节点中存储的桶的地址,并将该桶的地址传递由第1块SRAM传递至第2块SRAM,由第2块SRAM传递至第3块SRAM,以此类推,直到传递到第M块SRAM时,由第M块SRAM输出该桶的地址,之后,转发设备可以基于该桶的地址到相应地桶中获取与该关键字相匹配的规则。
可选地,若第i块SRAM中未存储有第k个压缩节点层,则转发设备可以令i=i+1,并返回判断M块SRAM中的第i块SRAM中是否存储有第k个压缩节点层。
示例性的,若第1块SRAM中未存储有第1个压缩节点层,则转发设备可以在第2块SRAM中查找第1个压缩节点层,若第2块SRAM中依然未存储有第2个压缩节点层,则转发设备可以继续向下一块SRAM查找,直到找到第1个压缩节点层为止,再根据在第1个压缩节点层中的查找结果,决定是否查找第2个压缩节点层。
需要说明的是,若转发设备按照前述实施例中第一种方式或第二种方式来存储N个压缩节点层,则由于每个压缩节点层是挨个存储在每块SRAM中的,因此,当从第1块SRAM查起时,第1块SRAM中存储有第1个压缩节点层,第2块SRAM中存储有第2个压缩节点层,第i块SRAM中会对应存储有第i个压缩节点层,所以不会存储上述第i块压缩节点层中未存储有第k个压缩节点层的情况下。在这种情况下,转发设备可以不执行判断第i块SRAM中是否存储有第k个压缩节点层的步骤,而是可以直接在第i块SRAM存储的第k个压缩节点层中查找与该关键字相对应的叶子节点。
若转发设备按照前述实施例中的第三种方式或者随机来存储N个压缩节点层,则由于相邻的两个压缩节点层可能会存储在不相邻的两个SRAM中,则转发设备可以首先判断第i块SRAM中是否存储有第k个压缩节点层,若是,则在第k个压缩节点层中查找与关键字相对应的叶子节点,若否,则继续去下一块SRAM中查找第k个压缩节点层,直到找到为止。
可选地,若未查找到与关键字相对应的叶子节点,且i小于M,则令i=i+1,k=k+1,并返回判断M块SRAM中的第i块SRAM中是否存储有第k个压缩节点层的步骤。
具体的,若第i块SRAM中存储有第k个压缩节点层,但是未在第k个压缩节点层中找到与该关键字相对应的叶子节点,且第i块SRAM并非M块SRAM中的最后一块SRAM,则转发设备可以到第i块SRAM的下一块SRAM中查找第k个压缩节点层的下一个压缩节点层,若下一块SRAM中存储有下一个压缩节点层,则转发设备可以在下一个压缩节点层中查找与该关键字相对应的叶子节点。
可选地,若未查找到与关键字相对应的叶子节点,且i等于M,则令i=1,k=k+1,并返回判断M块SRAM中的第i块SRAM中是否存储有第k个压缩节点层的步骤。
示例性的,若第i块SRAM中存储有第k个压缩节点层,但是未在第k个压缩节点层中找到与该关键字相对应的叶子节点,且第i块SRAM是M块SRAM中的最后一块SRAM,则转发设备需要重新从第1块SRAM开始,在第1块SRAM中查找第k个压缩节点层的下一个压缩节点层。
接下来将对前述几种不同存储方式所对应的查找过程进行举例说明。
(1)转发设备按照第一种方式或第二种方式对N个压缩节点层进行存储。
假设M=4,N=10,无论按照第一种方式还是第二种方式存储时,最终N个压缩节点层在M块SRAM中的分布均如图7所示。以此为例,在进行查找时,转发设备可以从SRAM1开始查起,首先在SRAM1存储的Conde_stage_01中查找与关键字对应的叶子节点。若查找到叶子节点,则转发设备可以将该叶子节点中存储的桶的地址从SRAM1传递至SRAM2,再从SRAM2传递至SRAM3,从SRAM3传递至SRAM4,转发设备从该SRAM4获取该桶的地址,并根据该桶的地址到相应地桶中获取与该关键字相匹配的规则。
若在Conde_stage_02未查找到叶子节点,则转发设备可以到SRAM2存储的Conde_stage_02中查找,若查找到,则可以参考前述方式进行处理,若未查找到,则可以继续向下查找。若一直到SRAM4中的Conde_stage_04,仍未查找到叶子节点,则转发设备可以返回到SRAM1,从Conde_stage_05开始按顺序继续查找叶子节点。
(2)转发设备按照第三种方式对N个压缩节点层进行存储。
假设M=4,N=10,按照第三种方式进行存储,10个压缩节点层在4块SRAM上的分布如图9所示。在这种情况下,假设转发设备在SRAM1-SRAM4存储的Conde_stage_01到Conde_stage_04均未查找到叶子节点,则转发设备重新返回到SRAM1,并判断SRAM1上是否存储有Conde_stage_05,由于SRAM1上存储有Conde_stage_05,则转发设备可以在Conde_stage_05中查找叶子节点,若依然未找到,则转发设备可以判断SRAM2上是否存储有Conde_stage_06,由于SRAM2上未存储有Conde_stage_06,则转发设备可以继续向下,判断SRAM3上是否存储有Conde_stage_06,SRAM3上存储有Conde_stage_06,则转发设备在Conde_stage_06中查找与关键字对应的叶子节点,若查找到,则转发设备可以从查找到的叶子节点中获取桶的地址,并将该桶的地址传递至SRAM4,转发设备可以从SRAM4中获取该桶的地址,并根据该桶的地址到相应桶中查找与关键字相匹配的规则。
在本申请实施例中,转发设备可以在M块SRAM存储的N个压缩节点层中查找与关键字相对应的叶子节点,其中,只要查找到与关键字相对应的叶子节点,转发设备就可以将叶子节点中存储的桶的地址传递至第M块SRAM处从而结束查找过程。而相关技术中,由于N个压缩节点层顺序存储在N块SRAM中,因此,无论转发设备在N个压缩节点层中的哪个压缩节点层中找到叶子节点,转发设备都只能在第N块SRAM处才能获取到该叶子节点中存储的桶的地址。也即,对于ACL中的任一条规则,查找延时均等于从第一个压缩节点层到最后一个压缩节点层的延时。由此可见,通过本申请实施例提供的存储方法和相应地查找方法,当转发设备在某个压缩节点层中查找到与关键字相对应的叶子节点时,可以尽早的结束查找过程,有效的减少了查找延时。
图10是本发明实施例提供的一种访问控制列表的管理装置的框图,该装置应用于转发设备中,如图10所示,该装置1000包括获取模块1001和存储模块1002。
获取模块1001,用于执行上述实施例中的步骤501;
存储模块1002,用于执行上述实施例中的步骤502。
可选地,存储模块1002具体用于:
按照N个压缩节点层的先后顺序,从M块SRAM中的第1块SRAM开始,按照从第1块SRAM到第M块SRAM的顺序,依次在每块SRAM存储一个压缩节点层;
当存储到第M块SRAM时,重新从M块SRAM中的第1块SRAM开始,按照从第1块SRAM到第M块SRAM的顺序,依次在每块SRAM存储一个压缩节点层,直到存储完N个压缩节点层为止。
可选地,该装置还包括:
提取模块,用于当接收到报文时,从报文中提取关键字;
查找模块,用于基于关键字和M块SRAM中存储的N个压缩节点层,查找与关键字相匹配的规则。
可选地,查找模块包括:
判断子模块,用于令i=1,k=1,判断M块SRAM中的第i块SRAM中是否存储有第k个压缩节点层;
第一查找子模块,用于若第i块SRAM中存储有第k个压缩节点层,则基于关键字,从第k个压缩节点层包括的至少一个压缩节点中,查找与关键字相对应的叶子节点;
第二查找子模块,用于若查找到与关键字相对应的叶子节点,则基于查找到的叶子节点中存储的桶的地址,查找与关键字相匹配的规则。
可选地,查找模块还包括:
第一触发子模块,用于若第i块SRAM中未存储有第k个压缩节点层,则令i=i+1,并触发判断子模块判断M块SRAM中的第i块SRAM中是否存储有第k个压缩节点层。
可选地,查找模块还包括:
第二触发子模块,用于若未查找到与关键字相对应的叶子节点,且i小于M,则令i=i+1,k=k+1,并触发判断子模块判断M块SRAM中的第i块SRAM中是否存储有第k个压缩节点层。
可选地,查找模块还包括:
第三触发子模块,用于若未查找到与关键字相对应的叶子节点,且i等于M,则令i=1,k=k+1,并触发判断子模块判断M块SRAM中的第i块SRAM中是否存储有第k个压缩节点层。
可选地,第二查找子模块具体用于:
若查找到与关键字相对应的叶子节点,且i小于M,则获取查找到的叶子节点中存储的桶的地址;
将桶的地址依次通过第i块SRAM至第M块SRAM之间的每块SRAM传递,直到传递至第M块SRAM时,由第M块SRAM输出桶的地址;
基于桶的地址,查找与关键字相匹配的规则。
综上所述,在本申请实施例中,转发设备可以将N个压缩节点层存储在少于N块的SRAM中,也即,多个压缩节点层可以共享一块SRAM,有效的避免了每块SRAM中仅存储一个压缩节点层所造成的存储空间浪费的问题,提高了SRAM的存储空间的利用率。另外,在本申请实施例中,可以在M块SRAM存储的N个压缩节点层中查找与关键字相对应的叶子节点,其中,只要查找到与关键字相对应的叶子节点,转发设备就可以将叶子节点中存储的桶的地址传递至第M块SRAM处从而结束查找过程。也即,通过本申请实施例提供的存储方法和相应地查找方法,当转发设备在某个压缩节点层中查找到与关键字相对应的叶子节点时,可以尽早的结束查找过程,有效的减少了查找延时。
上述实施例提供的访问控制列表的管理装置在管理访问控制列表时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的访问控制列表的管理装置与图5和图8所示的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意结合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机指令时,全部或部分地产生按照本发明实施例该的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如:同轴电缆、光纤、数据用户线(DigitalSubscriber Line,DSL))或无线(例如:红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如:软盘、硬盘、磁带)、光介质(例如:数字通用光盘(DigitalVersatile Disc,DVD))、或者半导体介质(例如:固态硬盘(Solid State Disk,SSD))等。
也即,在本发明实施例中,提供了一种计算机可读存储介质,当其在计算机上运行时,使得计算机执行上述图5或图8所示的访问控制列表的管理方法的步骤。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述为本申请提供的实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (18)

1.一种访问控制列表的管理方法,其特征在于,所述方法包括:
获取压缩节点层的数量N,所述压缩节点层是由访问控制列表ACL对应的搜索树上的层所形成的,且所述压缩节点层包括至少一个压缩节点,所述N为大于或等于1的整数;
按照所述N个压缩节点层的先后顺序,从M块SRAM中的第1块SRAM开始,按照从所述第1块SRAM到第M块SRAM的顺序,依次在每块SRAM存储一个压缩节点层,当存储到第M块SRAM时,重新从所述M块SRAM中的第1块SRAM开始,按照从所述第1块SRAM到第M块SRAM的顺序,依次在每块SRAM存储一个压缩节点层,直到存储完所述N个压缩节点层为止,所述M为大于0且小于所述N的整数,所述M块SRAM中的每块SRAM中存储有所述N个压缩节点层中的至少一个压缩节点层。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
当接收到报文时,从所述报文中提取关键字;
基于所述关键字和所述M块SRAM中存储的所述N个压缩节点层,查找与所述关键字相匹配的规则。
3.如权利要求2所述的方法,其特征在于,所述基于所述关键字和所述M块SRAM中存储的所述N个压缩节点层,查找与所述关键字相匹配的规则,包括:
令i=1,k=1,判断所述M块SRAM中的第i块SRAM中是否存储有第k个压缩节点层;
若所述第i块SRAM中存储有第k个压缩节点层,则基于所述关键字,从所述第k个压缩节点层包括的至少一个压缩节点中,查找与所述关键字相对应的叶子节点;
若查找到与所述关键字相对应的叶子节点,则基于查找到的叶子节点中存储的桶的地址,查找与所述关键字相匹配的规则。
4.如权利要求3所述的方法,其特征在于,所述判断所述M块SRAM中的第i块SRAM中是否存储有第k个压缩节点层包括的至少一个压缩节点之后,还包括:
若所述第i块SRAM中未存储有第k个压缩节点层,则令所述i=i+1,并返回所述判断所述M块SRAM中的第i块SRAM中是否存储有第k个压缩节点层的步骤。
5.如权利要求3或4所述的方法,其特征在于,所述基于所述关键字,从所述第k个压缩节点层包括的至少一个压缩节点中,查找与所述关键字相对应的叶子节点之后,还包括:
若未查找到与所述关键字相对应的叶子节点,且所述i小于所述M,则令所述i=i+1,所述k=k+1,并返回所述判断所述M块SRAM中的第i块SRAM中是否存储有第k个压缩节点层的步骤。
6.如权利要求4所述的方法,其特征在于,所述基于所述关键字,从所述第k个压缩节点层包括的至少一个压缩节点中,查找与所述关键字相对应的叶子节点之后,还包括:
若未查找到与所述关键字相对应的叶子节点,且所述i等于所述M,则令所述i=1,所述k=k+1,并返回所述判断所述M块SRAM中的第i块SRAM中是否存储有第k个压缩节点层的步骤。
7.如权利要求5所述的方法,其特征在于,所述基于所述关键字,从所述第k个压缩节点层包括的至少一个压缩节点中,查找与所述关键字相对应的叶子节点之后,还包括:
若未查找到与所述关键字相对应的叶子节点,且所述i等于所述M,则令所述i=1,所述k=k+1,并返回所述判断所述M块SRAM中的第i块SRAM中是否存储有第k个压缩节点层的步骤。
8.如权利要求3或4或6所述的方法,其特征在于,所述若查找到与所述关键字相对应的叶子节点,则基于查找到的叶子节点中存储的桶的地址,查找与所述关键字相匹配的规则,包括:
若查找到与所述关键字相对应的叶子节点,且所述i小于所述M,则获取查找到的叶子节点中存储的桶的地址;
将所述桶的地址依次通过所述第i块SRAM至所述第M块SRAM之间的每块SRAM传递,直到传递至所述第M块SRAM时,由所述第M块SRAM输出所述桶的地址;
基于所述桶的地址,查找与所述关键字相匹配的规则。
9.如权利要求5所述的方法,其特征在于,所述若查找到与所述关键字相对应的叶子节点,则基于查找到的叶子节点中存储的桶的地址,查找与所述关键字相匹配的规则,包括:
若查找到与所述关键字相对应的叶子节点,且所述i小于所述M,则获取查找到的叶子节点中存储的桶的地址;
将所述桶的地址依次通过所述第i块SRAM至所述第M块SRAM之间的每块SRAM传递,直到传递至所述第M块SRAM时,由所述第M块SRAM输出所述桶的地址;
基于所述桶的地址,查找与所述关键字相匹配的规则。
10.一种访问控制列表的管理装置,其特征在于,所述装置包括:
获取模块,用于获取压缩节点层的数量N,所述压缩节点层是由访问控制列表ACL对应的搜索树上的层所形成的,且所述压缩节点层包括至少一个压缩节点,所述N为大于或等于1的整数;
存储模块,用于按照所述N个压缩节点层的先后顺序,从所述M块SRAM中的第1块SRAM开始,按照从所述第1块SRAM到第M块SRAM的顺序,依次在每块SRAM存储一个压缩节点层,当存储到第M块SRAM时,重新从所述M块SRAM中的第1块SRAM开始,按照从所述第1块SRAM到第M块SRAM的顺序,依次在每块SRAM存储一个压缩节点层,直到存储完所述N个压缩节点层为止,所述M为大于0且小于所述N的整数,所述M块SRAM中的每块SRAM中存储有所述N个压缩节点层中的至少一个压缩节点层。
11.如权利要求10所述的装置,其特征在于,所述装置还包括:
提取模块,用于当接收到报文时,从所述报文中提取关键字;
查找模块,用于基于所述关键字和所述M块SRAM中存储的所述N个压缩节点层,查找与所述关键字相匹配的规则。
12.如权利要求11所述的装置,其特征在于,所述查找模块包括:
判断子模块,用于令i=1,k=1,判断所述M块SRAM中的第i块SRAM中是否存储有第k个压缩节点层;
第一查找子模块,用于若所述第i块SRAM中存储有第k个压缩节点层,则基于所述关键字,从所述第k个压缩节点层包括的至少一个压缩节点中,查找与所述关键字相对应的叶子节点;
第二查找子模块,用于若查找到与所述关键字相对应的叶子节点,则基于查找到的叶子节点中存储的桶的地址,查找与所述关键字相匹配的规则。
13.如权利要求12所述的装置,其特征在于,所述查找模块还包括:
第一触发子模块,用于若所述第i块SRAM中未存储有第k个压缩节点层,则令所述i=i+1,并触发所述判断子模块判断所述M块SRAM中的第i块SRAM中是否存储有第k个压缩节点层。
14.如权利要求12或13所述的装置,其特征在于,所述查找模块还包括:
第二触发子模块,用于若未查找到与所述关键字相对应的叶子节点,且所述i小于所述M,则令所述i=i+1,所述k=k+1,并触发所述判断子模块判断所述M块SRAM中的第i块SRAM中是否存储有第k个压缩节点层。
15.如权利要求13所述的装置,其特征在于,所述查找模块还包括:
第三触发子模块,用于若未查找到与所述关键字相对应的叶子节点,且所述i等于所述M,则令所述i=1,所述k=k+1,并触发所述判断子模块判断所述M块SRAM中的第i块SRAM中是否存储有第k个压缩节点层。
16.如权利要求14所述的装置,其特征在于,所述查找模块还包括:
第三触发子模块,用于若未查找到与所述关键字相对应的叶子节点,且所述i等于所述M,则令所述i=1,所述k=k+1,并触发所述判断子模块判断所述M块SRAM中的第i块SRAM中是否存储有第k个压缩节点层。
17.如权利要求12或13或15所述的装置,其特征在于,所述第二查找子模块具体用于:
若查找到与所述关键字相对应的叶子节点,且所述i小于所述M,则获取查找到的叶子节点中存储的桶的地址;
将所述桶的地址依次通过所述第i块SRAM至所述第M块SRAM之间的每块SRAM传递,直到传递至所述第M块SRAM时,由所述第M块SRAM输出所述桶的地址;
基于所述桶的地址,查找与所述关键字相匹配的规则。
18.如权利要求14所述的装置,其特征在于,所述第二查找子模块具体用于:
若查找到与所述关键字相对应的叶子节点,且所述i小于所述M,则获取查找到的叶子节点中存储的桶的地址;
将所述桶的地址依次通过所述第i块SRAM至所述第M块SRAM之间的每块SRAM传递,直到传递至所述第M块SRAM时,由所述第M块SRAM输出所述桶的地址;
基于所述桶的地址,查找与所述关键字相匹配的规则。
CN201880091018.3A 2018-06-20 2018-06-20 访问控制列表的管理方法及装置 Active CN111819552B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/091954 WO2019241926A1 (zh) 2018-06-20 2018-06-20 访问控制列表的管理方法及装置

Publications (2)

Publication Number Publication Date
CN111819552A CN111819552A (zh) 2020-10-23
CN111819552B true CN111819552B (zh) 2024-08-02

Family

ID=68982877

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880091018.3A Active CN111819552B (zh) 2018-06-20 2018-06-20 访问控制列表的管理方法及装置

Country Status (2)

Country Link
CN (1) CN111819552B (zh)
WO (1) WO2019241926A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113328948B (zh) * 2021-06-02 2022-10-04 杭州迪普信息技术有限公司 资源管理方法、装置、网络设备及计算机可读存储介质
CN116633865B (zh) * 2023-07-25 2023-11-07 北京城建智控科技股份有限公司 网络流量控制方法、装置、电子设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102487374A (zh) * 2010-12-01 2012-06-06 中兴通讯股份有限公司 一种访问控制列表实现方法及装置
CN102662855A (zh) * 2012-04-17 2012-09-12 华为技术有限公司 一种二叉树的存储方法、系统

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7697443B2 (en) * 2006-04-13 2010-04-13 International Business Machines Corporation Locating hardware faults in a parallel computer
CN101577662B (zh) * 2008-05-05 2012-04-04 华为技术有限公司 一种基于树形数据结构的最长前缀匹配方法和装置
CN102232219B (zh) * 2010-01-26 2012-10-10 华为技术有限公司 关键字存储、查找的方法及装置
KR101476113B1 (ko) * 2011-08-02 2014-12-23 캐비엄, 인코포레이티드 룩업 클러스터 컴플렉스
CN107577756A (zh) * 2017-08-31 2018-01-12 南通大学 一种基于多层迭代的改进递归数据流匹配方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102487374A (zh) * 2010-12-01 2012-06-06 中兴通讯股份有限公司 一种访问控制列表实现方法及装置
CN102662855A (zh) * 2012-04-17 2012-09-12 华为技术有限公司 一种二叉树的存储方法、系统

Also Published As

Publication number Publication date
CN111819552A (zh) 2020-10-23
WO2019241926A1 (zh) 2019-12-26

Similar Documents

Publication Publication Date Title
US7827182B1 (en) Searching for a path to identify where to move entries among hash tables with storage for multiple entries per bucket during insert operations
US10389633B2 (en) Hash-based address matching
CN112425131B (zh) 一种acl的规则分类方法、查找方法和装置
EP2643762B1 (en) Method and apparatus for high performance, updatable, and deterministic hash table for network equipment
EP2560327B1 (en) Routing table establishment method and device
US9424366B1 (en) Reducing power consumption in ternary content addressable memory (TCAM)
CN112231398B (zh) 数据存储方法、装置、设备及存储介质
CN102479207A (zh) 一种信息搜索的方法、系统及信息搜索设备
CN102377664A (zh) 一种基于tcam的区域匹配装置和方法
US6725216B2 (en) Partitioning search key thereby distributing table across multiple non-contiguous memory segments, memory banks or memory modules
US20080133494A1 (en) Method and apparatus for searching forwarding table
CN102880628A (zh) 哈希数据存储方法和装置
CN113824814B (zh) 一种转发表的地址匹配方法、装置、网络设备及介质
US10587516B1 (en) Hash lookup table entry management in a network device
CN104025520B (zh) 查找表的创建方法、查询方法、控制器、转发设备和系统
US10771386B2 (en) IP routing search
CN105760411B (zh) 混合通配符匹配表
CN118227518B (zh) 一种表项存储、查找方法、装置、网络设备及存储介质
CN111819552B (zh) 访问控制列表的管理方法及装置
KR101587756B1 (ko) 블룸 필터 선-검색을 이용한 스트링 정보 검색 장치 및 방법
WO2011100924A2 (zh) 在哈希表中添加、查找或删除键值的方法及装置
CN111459938B (zh) 一种表项处理方法、查表方法及系统
CN104253754A (zh) 一种acl快速匹配的方法和设备
KR20100022565A (ko) 해시트리를 이용한 url 검색방법
US9396286B2 (en) Lookup with key sequence skip for radix trees

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant