摘要:通信工程师交换技术TCAM路由表更新:由于可能存在多个表项匹配的情况,因此TCAM需要在这些匹配的表项中选取一个表项作为最后的査找结果,TCAM规定在所有匹配的表项中选取地址最低的表项作为最后的结果。TCAM实现结构如图7-47所示。
1.TCAM路由表更新
由于可能存在多个表项匹配的情况,因此TCAM需要在这些匹配的表项中选取一个表项作为最后的査找结果,TCAM规定在所有匹配的表项中选取地址最低的表项作为最后的结果。TCAM实现结构如图7-47所示。为了能够进行最长前缀路由的查找,需要保证在TCAM的低地址区域存储前缀较长的关键字表项,而在高地址区域存储前缀较短的关键字表项,即按前缀长度的降序存储。这种存储方式使TCAM路由表的更新操作很复杂。例如,若将前缀103.23.128/18加到图7-47所示的转发表中,为保持前缀长度的降序顺序,该前缀必须存储在前缀P1和P2之间,即内存位置0和1之间,而0和1之间没有空闲位置。有几种方法来解决这个问题。
用于最长前缀匹配的TCAM的一般结构如图7-48所示(长度小于8bit的前缀在转发表中一般很少出现,所以没有给出)。TCAM管理器可把空闲空间设置在TCAM的底部(当然也可以是顶部),如图7-49所示。这时可以简单地把图7-47中的前缀P2~P5依次向下移动一个位置,从而在P1和P2之间产生一个空闲位置来存储新的前缀。这种方法在最坏情况下的时间复杂度为0(N)(况为TCAM中的前缀数),实现成本也很高。再就是采用图7-50所示的结构,即在每个前缀长度之后留一段空闲区。该方法在一般情况下的更新时间复杂度为OU),Q<X<N。但当中间空闲区都填满后,就会上升到0(JV)。
用于最长前缀匹配的TCAM的一般结构如闬7-48所示(长度小于8Wt的前缀在转发表中Y一般很少出现,所以没有给出)。TCAM讶理器可把空闲空间设置在TCAM的底邡(当然也可以是顶部),如阁7-49所示,这时可以简甲地把阁7-47中的酚缀P2-P5依次向下移动一个位霣.从而在P1和P2之间产生一个空闲位置来存储新的前缀:这种方法在最坏悄况下的时W复杂度为(/V)(W为TCAM中的前缀数),实现成本也很卨。再就是采用阁7-50所示的结构,即在每个前缀长度之后留…段空闲K。该方法在一般情况下的更新时M复杂度为O(AO,0<X<N)。但当中间空闲区都填满后,躭会上升到0(/V)。
偾得注意的是,相同长度的两个前缀之间不而要有任何顺序(意思是如果y比a大,集合弋中的所有前缀都必须在集合的所有前缀之前存储,而集合6的所有前缔之间可以任意存储)。可以对TCAM的路由转发表进行改进,改进后转发表的所有前缀之间只存在部分排序限制,把这种限制称为前缀长度排作限制(Prefix-Length Ordering Constraint)。由此可以引出一种算法,称为算法,圾多移动L(L=32)次,该算法就可获得-个空闲位哲,如阁7-51所示。
另外在阁7-47中,虽然抑缀103.23.3/24(1>1)必须总比前缀103.23/16(P2)的存储位S低,但足相对于前缀P3,P4和P5,P1可任意存储,W为P1与P3,P4和P5都不重叠,也就是说,没有一个分绀的H的地址会同时与朽和P3,或者同时P1和P4,或者同时与P1和P5相匹配,因此,TCAM中对前缀排序的限制可以弱化,可只对重叠前缀才应用此限制,,例如,对于触103.23.3/24(P1)和103.23/16(P2)fP1完全包含_J6b.tprefixesP在P2中,即这两个前缀是甫*的,则1>1和P2之间有排序限制,P1必须在P2前曲。
如果把空闲区不全部设在TCAM底部,L算法可进步改进,得到如7-52所示的鷇优算法PL0_OPT。该算法的主要思想是将空闲K保留在TCAM中部,并且长度为-1,…,L/2的前缀集合都在空闲区的上部,而长度为L/2-l,L/2-2,…,1的前缀集合都在空闲区的下部。这样最多移动L/2次内存就可获得一个空闲位置。当然在中间空闲区部分填满或都填满后,内存最多移动次数可能会大于L/2直至达到L。
返回目录:
编辑推荐
通信工程师备考资料免费领取
去领取