使用tcam實現數據流的選擇性路由的製作方法
2023-10-28 19:34:27 4
>3.if(Fix>gMaxCixDaFix){/*Flowindexislocatedafterboth<Cix,DA>and<Cix>onlyflowsintheTCAM*//*ORgMaxCixDaFix=0,i.e.thereareno<Cix,DA>flowsyet*/AdjustAndWriteCixDA(pFlow,Fix)/*takecareofsubsumingissueswithotherDAsinsameCix,basedonsubnetmasks*/SetgMaxCixDaFixReturn}else{/*Fixliesinbetween<Cix,Da>flows*//*GetflowcurrentlyatgMaxCixDaFixatflowIndex*/pOtherFlow=GetFlowAtIndex(gMaxCixDaFix);AdjustAndWriteCixDA(pOtherFlow,Fix)/*takecareofsubsumingissueswithotherDAsinsameCix,basedonsubnetmasks*/AdjustAndWriteDA(pFlow,gMaxCixOnlyFix)SetgMinDaOnlyFixSetgMaxCixDaFixReturn}4.結束insertDaOnlyFlow如果某個接口發生故障,那麼流管理器15的客戶機負責刪除TCAM30中的路由流。流管理器15提供了一個應用編程接口(API),以便根據應用句柄撤銷路由。例如,如果一條IP電路發生故障,那麼連接管理器會通知IP任務和VPN管理器接收這條告警。VPN管理器根據電路標識符從流TCAM30中撤銷路由。可以在流管理器15實現一個軟體模塊來刪除TCAM30中的路由流。表6中給出了一個典型的軟體模塊。表61.檢查flowId在限度內。2.得到對應FlowId的流pFlow=GetFlowAtIndex(flowId)3.發現正確樹中的節點。如果pFlow有Cix,為該Cix檢索前綴樹40,也檢索前綴樹42。4.刪除發現的節點,調整各個樹並釋放節點存儲器。5.釋放流空間索引條目。6.如果FlowId=gMaxCixDaFix或gMinDaOnlyFix,修改這些變量。如果在gMaxCixDaFix索引處的流被刪除,減少gMaxCixDaFi直到它變到有效的Cix,DA或只按Cix分類的流的索引。如果在gMinDaOnlyFix索引處的流被刪除,增加gMinDaOnlyFix直到它變到有效的只按DA分類的流的索引。7.釋放流存儲器,並使TCAM30中的流無效。ACL流和業務管理器(TE)流由流管理器15按內部方式存儲在與流TCAM對應的流索引空間中,如圖7所示。ACL流和TE流嚴格按照命令行接口(CLI)定義的訪問控制列表(ACL)排序。ACL通常用於網絡接口,以便允許或拒絕特定類型的網絡業務。與特定ACL流對應的所有信息包都允許通過,並且被指定網絡路由。與ACL流不對應的所有信息包都將被拒絕通過,或者對其服務類型(TOS)應用策略或限制。全局訪問列表用於所有接口。ACL和TE流時始終保持它們被加入到TCAM30中的順序。路由流被加到流TCAM30中的下一個可用索引條目中,從分區36b的前60個條目開始。分區36b被進一步分為62a部分和62b部分。62a部分用於在接口上應用的ACL;62b部分用於全局ACL(只有當沒有匹配的ACL時,才使用全局ACL)。可以使用GACL_PARTITION變量定義62a部分和62b部分的分區大小。gMaxACLFix變量為62a部分中的ACL和TE流定義了最大的流TCAM索引。gGlobalACLFix變量為62b部分中的全局ACL和TE流定義了最大的流TCAM索引。基於策略的ACL和TE流被加到gMaxACLFix變量的位置,並且gMaxACLFix變量是遞增的。如果gMaxACLFix增加到與GACL_PARTITION變量相等,那麼62b部分就已滿,在刪除某些流之前,無法再增加ACL流。ACL流可以指定一定範圍的源埠或目的埠,指定一定範圍的源埠或目的埠的ACL流被映射為多個流,並且使用局部掩碼34來涵蓋該範圍的某個部分。因此,為了涵蓋特定的範圍,需要使用不同的掩碼確定路由流的最佳數量。對於在TCAM中映射多個流的路由流,應用編程接口(API)可以產生一個帶有指定的局部掩碼34的對等流,並把它與其父流一起發送給流TCAM30,由流管理器15管理流TCAM30。全局ACL流被加在gGlobalACLFix變量上,然後gGlobalACLFix變量加1。如果gGlobalACLFix變量增加到與FM_MAX_FIX變量相等,那麼在從TCAM30中刪除某些流以前,無法再加入全局ACL流。流管理器15包含負責從TCAM30中刪除流的軟體模塊。對於刪除單個路由流的情況,該路由流被從流索引空間38中刪除,並且在TCAM30中被置為無效。第一個API66用於從TCAM30中刪除一個路由流。如果某個路由流具有對等流,那麼所有對等流都將被刪除。流TCAM30中的其餘路由流立即被緊湊處理,以填充空的流空間。也就是說,在被刪除的流之後的所有路由流都將向前移動一個索引,並被寫入到TCAM30中。同時,gMaxACLFix變量的值也相應調整。對於刪除多個流的情況,流列表中的所有流都將被刪除,然後對剩餘的流進行緊湊處理。第二個API67用於從TCAM30中刪除多個流。第一個空的流空間首先由下一個可用的非空流填充,如此重複,直到所有流都被緊湊處理,使gMaxACLFix變量之前的所有空流空間都被填充。同時,gMaxACLFix變量的值也相應調整。在上述描述中,我們看到,業界人員可以很容易地對本發明進行修改或者根據本發明實現其它實例。很容易理解的是,本文中給出的特定計算機示例代碼可以採用各種語言以各種方式實現,從而適合於不同的硬體平臺。需要注意的是,上述的實例只是用來說明本發明的原理的一些例子。本領域的技術人員可以根據本發明的原理迅速設計出各種各樣的變化,但凡是根據本發明的原理進行等價修改或變化而獲得的其它實現都應屬於本發明的範圍。權利要求1.一種用於對路由器中的多個數據流進行分類的方法,包括下列步驟把一個三態內容可尋址存儲器(TCAM)分為至少第一個分區和第二個分區;所述第一個分區包含具有其優先級範圍從最低索引到分區索引的較高優先級範圍的索引,所述第二個分區包含具有其優先級範圍從最大索引到所述分區索引的較低優先級範圍的索引;按照預先確定的順序把所述多個數據流中的第一種數據流的一個或多個第一種流TCAM條目裝入所述的第一個分區;按照預先確定的順序把所述多個數據流中的第二種數據流的一個或多個第二種流TCAM條目裝入所述的第二個分區;為每個所述的第一種TCAM條目和所述的第二種TCAM條目設置相應掩碼的位值,使所述各第一種TCAM條目和所述的第二種TCAM條目分別被所述的掩碼屏蔽;把包含來向數據包的預先確定的包頭部信息的前綴與所述裝入的一個或多個第一種TCAM條目和一個或多個第二種TCAM條目比較,使所述匹配的一個或多個第一種TCAM條目包含所述匹配的一個或多個第二種TCAM條目。2.如權利要求1所述的方法,其特徵在於,所述的第一種多個數據流是MPLS或IP-VPN流。3.如權利要求1所述的方法,其特徵在於,所述的第二種多個數據流是基於策略的路由流。4.如權利要求3所述的方法,其特徵在於,所述的基於策略的路由流是訪問控制列表(ACL)流。5.如權利要求3所述的方法,其特徵在於,所述的基於策略的路由流是業務管理器流。6.權利要求1所述的方法進一步包含下列步驟維護一個具有與所述TCAM對應條目的流索引空間;以及在進行裝入所述的一個或多個第一種TCAM條目的步驟前以及在進行裝入所述的一個或多個第二種TCAM條目的步驟前,確定在所述流索引空間中的所述第一種TCAM條目的所述預先確定的順序以及所述第二種TCAM條目的所述預先確定的順序。7.如權利要求2所述的方法,其特徵在於,所述的MPLS或IP-VPN流按照連接索引(CIX)和目的地址(DA)分類、只按照CIX分類或者只按照DA分類。8.如權利要求7所述的方法,其特徵在於,所述的第一個分區被劃分為第一部分和第二部分,所述第一部分包含具有較高優先級的索引,其優先級範圍從所述的最低索引到gMaxCixDaFix索引,所述第二部分包含具有較低優先級的索引,其優先級範圍從gMinDaOnlyFix索引到所述的分區索引,所述按照CIX和DA分類以及只按照CIX分類的數據流被分配到所述的第一部分中,所述只按照DA分類的數據流被分配到所述的第二部分中。9.如權利要求8所述的方法,其特徵在於,所述按照CIX和DA分類以及只按照CIX分類的數據流被裝載到從所述gMaxCixDaFix索引開始的所述第一部分中,所述只按照DA分類的數據流被裝載到從所述gMinDaOnlyFix索引開始的所述第二部分中。10.如權利要求9所述的方法,其特徵在於,所述第一個分區被劃分為第一部分和第二部分,所述第一部分包含具有較高優先級的索引,其優先級範圍從所述的最低索引到gMaxCixDaFix索引,所述第二部分包含具有較低優先級的索引,其優先級範圍從gMinDaOnlyFix索引到所述的分區索引,所述的gMaxCixDaFix索引與所述的gMinDaOnlyFix索引相鄰,且有一個自由條目位於所述第二部分中的所述gMinDaOnlyFix索引之下,該方法進一步包含下列步驟(a)把位於所述gMinDaOnlFix索引處只按DA分類的數據流移動到所述的自由條目上;(b)在步驟(a)完成後,為所述的gMinDaOnlyFix索引分配一個按CIX和DA分類或只按CIX分類的數據流;(c)把gMaxCixDaFix索引設置在為步驟(b)中所述的按CIX和DA分類或只按CIX分類的數據流分配的索引處;(d)把gMinDaOnlyFix條目設置在為步驟(b)中所述的按CIX和DA分類或按CIX分類的數據流分配的索引後面。11.權利要求10所述的方法還包括下列步驟為包含排序,對在所述最低索引和所述gMaxCixDaOnlyFix索引之間的按CIX和DA分類或只按CIX分類的所述一個或多個裝入的數據流排序;為包含排序對在所述gMinDaOnlyFix索引和所述分區索引之間的只按DA分類的所述一個或多個裝入的數據流排序。12.如權利要求9所述的方法,其特徵在於,所述第一個分區被劃分為第一部分和第二部分,所述第一部分包含具有較高優先級的索引,其優先級範圍從所述的最低索引到gMaxCixDaFix索引,所述第二部分包含具有較低優先級的索引,其優先級範圍從gMinDaOnlyFix索引到所述的分區索引,所述的gMaxCixDaFix索引與所述的gMinDaOnlyFix索引相鄰,且有一個自由條目位於所述第二部分中的所述gMinDaOnlyFix索引之上,該方法進一步包含下列步驟(a)把在所述gMaxCixDaFix處按CIX和DA分類或只按CIX分類的數據流移動到所述自由條目上;(b)在步驟(a)完成後,為所述的gMaxCixDaFix索引分配一個只按DA分類的數據流;(c)把gMinDaOnlyFix索引設置在為步驟(b)中所述只按DA分類的數據流分配的索引處;以及(d)立即把gMaxCixDaFix條目設置在為步驟(b)中所述只按DA分類的數據流分配的索引前面。13.權利要求12所述的方法進一步包括下列步驟為包含排序對在所述分區索引和所述gMinDaOnlyFix索引之間的只按DA分類的所述一個或多個裝入的數據流排序;為包含排序對在所述gMaxCixDaFix索引和所述最低索引之間的按CIX和DA分類或只按CIX分類的所述一個或多個裝入的數據流排序。14.權利要求7所述的方法進一步包括下列步驟維護一個具有與所述TCAM對應的條目的流索引空間;把所述的按CIX和DA分類和只按CIX分類的數據流分配給一個CIX前綴樹。15.權利要求7所述的方法進一步包括下列步驟維護一個具有與所述TCAM對應的條目的流索引空間;把所述的只按DA分類的數據流分配給一個DA前綴樹。16.權利要求7所述的方法進一步包括下列步驟通過釋放所述流索引空間中的相應所述條目並使相應的所述TCAM條目無效來刪除所述TCAM中的數據流。17.如權利要求1所述的方法,其特徵在於,所述的第一個分區的所述預先確定的順序在具有最高優先級的索引處有一個最長前綴的TCAM條目,在其後面的前綴值逐漸減小,在具有最低優先級的索引處的前綴最短。18.如權利要求3所述的方法,其特徵在於,所述第二個分區被劃分為第一部分和第二部分,所述第一部分包含具有較高優先級的索引,其優先級範圍從所述的第二個分區的最低索引到GACL分區索引,所述第二部分包含具有較低優先級的索引,其優先級範圍從所述的GACL分區索引到所述的最高索引;所述ACL流被分配到所述第一部分中,全局訪問列表流被分配到所述的第二部分中。19.如權利要求18所述的方法,其特徵在於,所述ACL流指定了一定範圍的源埠和目的埠,所述方法進一步包括下列步驟把所述ACL流映射為所述TCAM中的多個流,每個流的掩碼涵蓋所述源埠或目的埠範圍的一部分,以便最佳確定涵蓋所述範圍的所述部分的流數量。20.權利要求18所述的方法進一步包括下列步驟維護具有與所述TCAM對應的條目的一個流索引空間。21.權利要求20所述的方法進一步包括下列步驟通過釋放所述流索引空間中的相應條目並且使相應的TCAM條目無效來刪除所述TCAM中的數據流;通過把每個剩餘的TCAM條目向前移動一個索引,對所述TCAM中的數據流進行緊湊處理。22.權利要求19所述的方法進一步包括維護具有與所述TCAM對應的條目的一個流索引空間。23.權利要求22所述的方法進一步包括下列步驟通過釋放所述流索引空間中的相應條目並且使TCAM條目中相應的條目無效來刪除所述TCAM中的數據流;通過把每個剩餘的TCAM條目向前移動一個或多個索引,對所述TCAM中的數據流進行緊湊處理。24.一種用於對路由器中的多個數據流分類的方法,包括下列步驟把一個三態內容可尋址存儲器(TCAM)劃分為至少第一個分區和第二個分區,所述第一個分區包含優先級較高的索引,其優先級範圍從最低的索引到分區索引;所述第二個分區包含優先級較低的索引,其優先級範圍從最高的索引到所述的分區索引;按照預先確定的順序把所述多個數據流中的第一種數據流的一個或多個第一種流TCAM條目裝入所述的第一個分區;按照預先確定的順序把所述多個數據流中的第二種數據流的一個或多個第二種流TCAM條目裝入所述的第二個分區;為每個所述的第一種TCAM條目和所述的第二種TCAM條目設置相應掩碼的位值,使所述的第一種TCAM條目和所述的第二種TCAM條目分別被所述的掩碼屏蔽;把包含來向數據包的預先確定的包頭部信息的前綴與所述裝入的一個或多個第一種TCAM條目和一個或多個第二種TCAM條目比較,使所述匹配的一個或多個第一種TCAM條目包含所述匹配的一個或多個第二種TCAM條目;所述第一種多個數據流是MPLS或IP-VPN流,所述第二種多個數據流是基於策略的路由流。25.一種用於對路由器中的多個數據流分類的方法,包括下列步驟把一個三態內容可尋址存儲器(TCAM)劃分為至少第一個分區和第二個分區,所述第一個分區包含優先級較高的索引,其優先級範圍從最低的索引到分區索引;所述第二個分區包含優先級較低的索引,其優先級範圍從最高的索引到所述的分區索引;按照預先確定的順序把所述多個數據流中的第一種數據流的一個或多個第一種流TCAM條目裝入所述的第一個分區;按照預先確定的順序把所述多個數據流中的第二種數據流的一個或多個第二種流TCAM條目裝入所述的第二個分區;為每個所述的第一種TCAM條目和所述的第二種TCAM條目設置相應掩碼的位值,使所述的第一種TCAM條目和所述的第二種TCAM條目分別被所述的掩碼屏蔽;把包含來向數據包的預先確定的包頭部信息的前綴與所述裝入的一個或多個第一種TCAM條目和一個或多個第二種TCAM條目比較,使所述匹配的一個或多個第一種TCAM條目包含所述匹配的一個或多個第二種TCAM條目;維護具有與所述TCAM對應的條目的一個流索引空間;在進行裝入所述的一個或多個第一種TCAM條目的步驟前,確定在所述流索引空間中的所述第一種TCAM條目的所述預先確定的順序以及所述第二種TCAM條目的所述預先確定的順序。26.一種用於對路由器中的多個數據流分類的系統,包括一個用於把一個三態內容可尋址存儲器(TCAM)劃分為至少第一個分區和第二個分區的儀器,所述第一個分區包含優先級較高的索引,其優先級範圍從最低的索引到分區索引;所述第二個分區包含優先級較低的索引,其優先級範圍從最高的索引到所述的分區索引;一個用於按照預先確定的順序把所述多個數據流中的第一種數據流的一個或多個第一種流TCAM條目裝入所述的第一個分區的儀器;一個用於按照預先確定的順序把所述多個數據流中的第二種數據流的一個或多個第二種流TCAM條目裝入所述的第二個分區的儀器;一個用於為每個所述的第一種TCAM條目和所述的第二種TCAM條目設置相應掩碼的位值的儀器,使所述的第一種TCAM條目和所述的第二種TCAM條目分別被所述的掩碼屏蔽;以及一個用於把包含來向數據包的預先確定的包頭部信息的前綴與預先確定的所述裝入的一個或多個第一種TCAM條目和一個或多個第二種TCAM條目比較的儀器,所述匹配的一個或多個第一種TCAM條目包含所述匹配的一個或多個第二種TCAM條目。27.如權利要求26所述的系統,其特徵在於,所述第一種多個數據流是MPLS或IP-VPN流。28.如權利要求26所述的系統,其特徵在於,所述第二種多個數據流是基於策略的路由流。29.如權利要求28所述的系統,其特徵在於,所述基於策略的路由流是訪問控制列表(ACL)流。30.如權利要求28所述的系統,其特徵在於,所述基於策略的路由流是業務管理器流。31.權利要求26所述的系統進一步包括一個用於維護具有與所述TCAM對應的條目的流索引空間的儀器;一個用於確定在所述流索引空間中的所述第一種TCAM條目的所述預先確定的順序以及所述第二種TCAM條目的所述預先確定的順序的儀器。32.如權利要求26所述的系統,其特徵在於,所述MPLS或IP-VPN流按連接索引(CIX)和目的地址(DA)、只按CIX或者只按DA分類。33.如權利要求32所述的系統,其特徵在於,所述第一個分區被劃分為第一部分和第二部分,所述第一部分包含優先級較高的索引,其優先級範圍從所述最低索引到gMaxCixDaFix索引;所述第二部分包含優先級較低的索引,其索引範圍從gMinDaOnlyFix索引到所述的分區索引;按CIX和DA分類及只按CIX分類的所述流被分配到所述的第一部分中,只按DA分類的所述流被分配到所述第二部分中。34.如權利要求33所述的系統,其特徵在於,所述按CIX和DA分類及只按CIX分類的流被裝入到從所述gMaxCixDaFix索引開始的第一部分中,所述只按DA分類的流被裝入到從所述gMinDaOnlyFix索引開始的第二部分中。35.權利要求32所述的系統進一步包括一個用於維護具有與所述TCAM對應的條目的流索引空間並把所述按CIX及只按CIX分類的流分配到CIX前綴樹中的儀器。36.如權利要求32所述的系統,其特徵在於,所述第一個分區被劃分為第一部分和第二部分,所述第一部分包含優先級較高的索引,其索引範圍從所述的最低索引到gMaxCixDaFix索引;所述第二部分包含優先級較低的索引,其索引範圍從gMinDaOnlyFix索引到所述的分區索引;所述gMaxCixDaFix索引與所述gMinDaOnlyFix索引相鄰,自由條目在所述第二部分的所述gMinDaOnlyFix索引下,所述系統進一步包括一個用於把在所述gMinDaOnlyFix索引處只按DA分類的流移動到所述自由條目上的儀器;一個用於把按CIX和DA分類或只按CIX分類的流分配給所述gMinDaOnlyFix索引的儀器;一個用於把gMaxCixDaFix索引設置在為所述按CIX和DA分類及只按CIX分類的流分配的索引的儀器;一個用於把gMinDaOnlyFix索引立即設置在為所述按CIX和DA分類及只按CIX分類的流分配的索引之後的儀器。37.權利要求36所述的系統進一步包括一個為包含排序對在所述最低索引和所述gMaxCixDaOnlyFix索引之間的按CIX和DA分類或只按CIX分類的所述一個或多個裝入的流進行排序的儀器;一個為包含排序對在所述gMinDaOnlyFix索引和所述分區索引之間的只按DA分類的所述一個或多個裝入的流進行排序的儀器。38.如權利要求32所述的系統,其特徵在於,所述第一個分區被劃分為第一部分和第二部分,所述第一部分包含優先級較高的索引,其優先級範圍從所述的最低索引到gMaxCixDaFix索引;所述的第二部分包含優先級較低的索引,其優先級範圍從gMinDaOnlyFix索引到所述分區索引,所述gMaxCixDaFix索引與所述gMinDaOnlyFix索引相鄰,自由條目在所述第二部分的所述gMinDaOnlyFix索引之上,所述系統進一步包括一個用於把在所述gMaxCixDaFix處按CIX和DA分類或只按CIX分類的流移動到所述自由條目上的儀器;一個用於把只按DA分類的流分配給所述gMaxCixFix索引的儀器;一個用於把gMinDaOnlyFix索引設置在分配給所述只按DA分類的流的索引處的儀器;一個用於把gMaxCixDaFix條目設置在分配給所述只按DA分類的流的索引之前的儀器。39.如權利要求38所述的系統,其特徵在於,所述第一個分區被劃分為第一部分和第二部分,所述第一部分包含優先級較高的索引,其優先級範圍從所述的最低索引到gMaxCixDaFix索引;所述第二部分包含優先級較低的索引,其優先級範圍從gMinDaOnlyFix索引到所述的分區索引;所述gMaxCixDaFix索引與所述gMinDaOnlyFix索引相鄰,自由條目在所述第二部分的所述gMinDaOnlyFix索引之上,所述系統進一步包括一個用於把在所述gMaxCixDaFix處按CIX和DA分類及只按CIX分類的流移動到所述自由條目上的儀器;一個用於把只按DA分類的流分配給所述gMaxCixFix索引的儀器;一個用於把gMinDaOnlyFix索引設置在分配給所述只按DA分類的流的索引處的儀器;以及一個用於把gMaxCixDaFix條目立即設置在分配給所述只按DA分類的流的索引之前的儀器。40.權利要求32所述的系統進一步包括一個用於維護具有與所述TCAM對應的條目的流索引空間的儀器;一個用於把所述只按DA分類的流分配到DA前綴樹中的儀器。41.權利要求40所述的系統進一步包括一個通過釋放所述流索引空間中的相應條目並且使相應的TCAM條目無效來刪除所述TCAM中的流的儀器。42.如權利要求26所述的系統,其特徵在於,所述的第一個分區的所述預先確定的順序在最高優先級的索引處有一個最長前綴的TCAM條目,在其後面的前綴值逐漸減小,在最低優先級的索引處的前綴最短。43.如權利要求28所述的系統,其特徵在於,所述第二個分區被劃分為第一部分和第二部分,所述第一部分包含具有較高優先級的索引,其優先級範圍從所述的第二部分的最低索引到GACL分區索引;所述第二部分包含具有較低優先級的索引,其優先級範圍從所述的GACL分區索引到所述的最高索引;所述ACL流被分配到所述第一部分中,全局訪問列表流被分配到所述的第二部分中。44.如權利要求43所述的系統,其特徵在於,所述ACL流指定一定範圍的源埠或目的埠,所述系統進一步包括一個把所述ACL流映射為所述TCAM中的多個流的儀器,每個流的掩碼涵蓋所述源埠或目的埠範圍的一部分。45.權利要求43所述的系統進一步包括一個用於維護具有與所述TCAM對應的條目的流索引空間的儀器。46.權利要求45所述的系統進一步包括一個通過釋放所述流索引空間中的相應條目並且使相應的TCAM條目無效來刪除所述TCAM中的流的儀器;一個通過把每個剩餘的TCAM條目向前移動一個或多個索引來對所述TCAM中的流進行緊湊處理的儀器。47.權利要求44所述的系統進一步包括一個用於維護具有與所述TCAM對應的條目的流索引空間的儀器。48.權利要求47所述的系統進一步包括一個通過釋放所述流索引空間中的相應條目並且使TCAM條目中相應的條目無效來刪除所述TCAM中的多個流的儀器;一個通過把每個剩餘的TCAM條目向前移動一個或多個索引來對所述TCAM中的流進行緊湊處理的儀器。49.一種用於對路由器中的多個數據流分類的系統,包括一個用於把一個三態內容可尋址存儲器(TCAM)劃分為至少第一個分區和第二個分區的儀器,所述第一個分區包含優先級較高的索引,其優先級範圍從最低的索引到分區索引,所述第二個分區包含優先級較低的索引,其優先級範圍從最高的索引到所述的分區索引;按照預先確定的順序把所述多個數據流中的第一種數據流的一個或多個第一種流TCAM條目裝入所述的第一個分區;一個用於按照預先確定的順序把所述多個數據流中的第二種數據流的一個或多個第二種TCAM條目裝入所述的第二個分區的儀器;一個用於為每個所述的第一種TCAM條目和所述的第二種TCAM條目設置相應掩碼的位值的儀器,使所述的第一種TCAM條目和所述的第二種TCAM條目的位分別被所述的掩碼屏蔽;一個用於把包含來向數據包的預先確定的包頭部信息的前綴與所述裝入的一個或多個第一種TCAM條目和一個或多個第二種TCAM條目比較的儀器,使得所述匹配的一個或多個第一種TCAM條目包含所述匹配的一個或多個第二種TCAM條目;所述的第一種多個數據流是MPLS或IP-VPN流,所述第二種多個數據流是基於策略的路由流。50.一種用於對路由器中的多個數據流分類的系統,包括一個用於把一個三態內容可尋址存儲器(TCAM)劃分為至少第一個分區和第二個分區的儀器,所述第一個分區包含優先級較高的索引,其優先級範圍從最低的索引到分區索引;所述第二個分區包含優先級較低的索引,其優先級範圍從最高的索引到所述的分區索引;一個用於按照預先確定的順序把所述多個數據流中的第一種數據流的一個或多個第一種流TCAM條目裝入所述的第一個分區的儀器;一個用於按照預先確定的順序把所述多個數據流中的第二種數據流的一個或多個第二種流TCAM條目裝入所述的第二個分區的儀器;一個用於為每個所述的第一種TCAM條目和所述的第二種TCAM條目設置相應掩碼的位值的儀器,使所述的第一種TCAM條目和所述的第二種TCAM條目的位分別被所述的掩碼屏蔽;一個用於把包含來向數據包的預先確定的包頭部信息的前綴與所述裝入的一個或多個第一種TCAM條目和一個或多個第二種TCAM條目比較的儀器,使得所述匹配的一個或多個第一種TCAM條目包含所述匹配的一個或多個第二種TCAM條目;一個用於維護具有與所述TCAM對應的條目的流索引空間的儀器;以及一個用於在進行裝入所述的一個或多個第一種TCAM條目的步驟前確定在所述流索引空間中的所述第一種TCAM條目的所述預先確定的順序以及所述第二種TCAM條目的所述預先確定的順序的儀器。51.一種用於對路由系統中多個數據流分類的裝置,包括;一個三態內容可尋址內存(TCAM);一種用於把所述TCAM劃分為至少第一個分區和第二個分區的分區算法,所述第一個分區包含優先級較高的索引,其優先級範圍從最低的索引到分區索引;所述第二個分區包含優先級較低的索引,其優先級範圍從最高的索引到所述的分區索引;一種用於選擇相應的掩碼值來構造所述第一種數據流的一個或多個第一種流TCAM條目和一個或多個第二種流TCAM條目並把所述相應掩碼值裝入所述第二個分區的裝載算法;一種用於實現把包含來向數據包的預先確定的包頭部信息的前綴與所述裝入的一個或多個第一種流TCAM條目和一個或多個第二種TCAM條目相比較的搜索算法,所述的第二種TCAM條目按照預先確定的順序被裝入到第一個分區中,使匹配的一個或多個第一種TCAM條目包含匹配的一個或多個第二種TCAM條目。52.如權利要求51所述的裝置,其特徵在於,所述第一種多個數據流是MPLS或IP-VPN流。53.如權利要求51所述的裝置,其特徵在於,所述第二種多個數據流是基於策略的路由流。54.如權利要求51所述的裝置,其特徵在於,所述分區算法和所述裝載算法在具有與所述TCAM對應的條目的流索引空間中實現,所述第一種TCAM條目的預先確定的順序和所述第二種TCAM條目的預先確定的順序在所述流索引空間中體現。55.如權利要求52所述的裝置,其特徵在於,所述MPLS或IP-VPN流按連接索引(CIX)和目的地址(DA)分類、只按CIX分類或者只按DA分類。56.如權利要求55所述的裝置,其特徵在於,所述第一個分區被劃分為第一部分和第二部分;所述第一部分包含優先級較高的索引,其優先級範圍從最低的索引到gMaxCixDaFix索引;所述第二個分區包含優先級較低的索引,其優先級範圍從gMinDaOnlyFix索引到所述的分區索引;所述按CIX和DA分類及只按CIX分類的流被分配到所述第一部分中,所述只按DA分類的流被分配到所述第二部分中。57.如權利要求56所述的裝置,其特徵在於,所述按CIX和DA分類及只按CIX分類的流被裝入到從所述TCAM的起點開始並在gMaxCixDaFix結束的所述第一部分中,所述只按照DA分類的數據流被裝載到從所述gMinDaOnlyFix索引開始的所述第二部分中。58.權利要求52所述的裝置進一步包括一個用於維護具有與所述TCAM對應的條目的流索引空間的儀器;一個用於把所述按CIX分類的流分配到CIX前綴樹中的儀器。59.權利要求52所述的裝置進一步包括一個用於維護具有與所述TCAM對應的條目的流索引空間的儀器;一個用於把所述只按DA分類的流分配到DA前綴樹中的儀器。60.權利要求59所述的裝置包括一個通過釋放所述流索引空間中的相應條目並且使相應的TCAM條目無效來刪除所述TCAM中的流的儀器。61.如權利要求52所述的裝置,其特徵在於,所述的第一個分區的所述預先確定的順序在最高優先級的索引處有一個最長前綴的TCAM條目,在其後面的前綴值逐漸減小,在最低優先級的索引處的前綴最短。62.如權利要求53所述的裝置,其特徵在於,所述第二個分區被劃分為第一部分和第二部分,所述第一部分包含具有較高優先級的索引,其優先級範圍從所述的第二個分區的最低索引到GACL分區索引;所述第二部分包含具有較低優先級的索引,其優先級範圍從所述的GACL分區索引到所述第二個分區的最高索引;所述ACL流被分配到所述第一部分中,全局訪問列表流被分配到所述的第二部分中。63.如權利要求62所述的裝置,其特徵在於,所述ACL流指定了一定範圍的源埠和目的埠,所述裝置進一步包括一個把所述ACL流映射為所述TCAM中的多個流的儀器,每個流的掩碼涵蓋所述源埠或目的埠範圍的一部分。64.如權利要求62所述的裝置,進一步包括一個用於維護具有與所述TCAM對應的條目的流索引空間的儀器。65.如權利要求64所述的裝置,進一步包括一個通過釋放所述流索引空間中的相應條目並且使相應的TCAM條目無效來刪除所述TCAM中的一個流的儀器;一個通過把每個剩餘的TCAM條目向前移動一個索引來對所述數據流進行緊湊處理的儀器。66.如權利要求62所述的裝置,進一步包括一個用於維護具有與所述TCAM對應的條目的流索引空間的儀器。67.權利要求62所述的裝置進一步包括一個通過釋放所述流索引空間中的相應條目並且使相應的TCAM條目無效來刪除所述TCAM中的多個流的儀器;一個通過把每個剩餘的TCAM條目向前移動一個或多個索引來對所述數據流進行緊湊處理的儀器。全文摘要本發明涉及使用三態內容可尋址存儲器(TCAM)(30)來支持多數據流的路由器的方法和系統,其中向TCAM(30)寫入訪問的數量經過了優化,以便提高數據更新和後續的數據查詢的效率。為了能夠容納多個數據流,TCAM被分為至少兩個分區,其中第一部分包含優先權較高的索引(32),第二部分包含優先權較低的索引。例如,可以把多協議標籤交換(MPLS)流和IP-虛擬專用網絡(VPN)(36)加入到第一個分區中,把基於策略的路由流加入到第二個分區中。在對來向數據包的字冠的後續TCAM查詢中,MPLS或IP-VPN將包含任何匹配的基於策略的路由流,例如按照訪問控制列表分類的路由流或業務管理器流。文檔編號H04L12/56GK1465014SQ02802453公開日2003年12月31日申請日期2002年7月3日優先權日2001年7月20日發明者阿舒託什·梅特,阿圖·馬哈穆尼,維佳·昌德申請人:諾基亞有限公司