JP3800546B2 - Tcamを使用するデータフローの選択的なルーティング方法 - Google Patents
Tcamを使用するデータフローの選択的なルーティング方法 Download PDFInfo
- Publication number
- JP3800546B2 JP3800546B2 JP2003517777A JP2003517777A JP3800546B2 JP 3800546 B2 JP3800546 B2 JP 3800546B2 JP 2003517777 A JP2003517777 A JP 2003517777A JP 2003517777 A JP2003517777 A JP 2003517777A JP 3800546 B2 JP3800546 B2 JP 3800546B2
- Authority
- JP
- Japan
- Prior art keywords
- index
- tcam
- flow
- partition
- flows
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/6215—Individual queue per QOS, rate or priority
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/50—Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/54—Organization of routing tables
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
- H04L45/74591—Address table lookup; Address filtering using content-addressable memories [CAM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2441—Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/625—Queue scheduling characterised by scheduling criteria for service slots or service orders
- H04L47/627—Queue scheduling characterised by scheduling criteria for service slots or service orders policing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/901—Buffering arrangements using storage descriptor, e.g. read or write pointers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9036—Common buffer combined with individual queues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9047—Buffering arrangements including multiple buffers, e.g. buffer pools
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9063—Intermediate storage in different physical parts of a node or terminal
- H04L49/9068—Intermediate storage in different physical parts of a node or terminal in the network interface card
- H04L49/9073—Early interruption upon arrival of a fraction of a packet
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
1.技術分野
本発明は、TCAM(ternary content addressable memory)を用いるネットワーク通信に関し、特に、たとえば、MPLS(マルチプロトコル・ラベル・スイッチング)、インターネットプロトコル(IP)−仮想プライベートネットワーク(VPN)データパケット、およびポリシーベースルーティングデータパケットのような、複数のデータフローの選択的なルーティングに関する。
【0002】
発明の背景
ネットワークプロバイダは、ユーザの要求を満たす集中ネットワークサービスの提供に関心がある。IPのサービス品質(QoS)、MPLS(マルチプロトコル・ラベル・スイッチング)、およびサービス変換技術(非IPサービスをIPに変換)における最新の技術を利用することによって、サービスプロバイダは、別々のサービス固有ネットワークを二者択一的に操作するように、マルチサービスネットワークアーキテクチャに専用のIPインフラを展開できる。
【0003】
MPLSは、ネットワークトラフィックフローの速度を上げ、その管理をより容易にする規格認可の技術である。MPLSは、与えられたパケット順序のために特別なパス(道)を組み立てる。これによって、ルータが次のノードのアドレスを調べるために必要な時間を節約できる。各パケットは、パケットごとに付されたラベルによって識別される。MPLSは、インターネットプロトコル(IP)、非同期転送モード(ATM)、およびフレームリレーネットワークプロトコルと共に機能するので、マルチプロトコルと呼ばれている。MPLSによって、大部分のパケットは、標準の開放型システム間相互接続(OSI)のレイヤ3(ルーティング)レベルよりレイヤ2(スイッチング)レベルでフォワーディングされる。MPLSは、全体的により速くトラフィックを移動することに加えて、サービス品質(QoS)のためのネットワーク管理を容易にする。この技術は、ネットワークがより多くて異なる混合物のトラフィックを運び始めても、容易に採用できると期待されている。
【0004】
MPLSの本質は、短い固定長の「ラベル」の生成である。ラベルは、IPパケットのヘッダの記号表示として作用し、パケットの進路決定のために使用される。一般的に、IPデータパケットは、一連のルータを通じて、送信元から行き先まで送信される。ルータは、IPデータパケットを受信し、その送信元および/またはあて先アドレスを読んで、IPデータパケットを該IPデータパケットに含まれるIP行き先アドレスによって示される行き先か、IPデータパケットが行き先アドレスに到達するまでIPデータパケットをフォワーディングする他のルータのいずれかに転送する。これを、ホップバイホップ・ルーティングという。IPパケットヘッダは、IP送信元および/または行き先アドレスのための領域を有する。ルーティングインフォメーションプロトコル(RIP)や、OSPF(Open Shortest Path First)のようなルーティングプロトコルは、パケットがその行き先に進められる際の「次のホップ(next hop)」における他のマシンを、各マシンが理解することを可能とする。
【0005】
IPパケットは、自身がネットワークに入ると遭遇する最初のMPLS装置によって、ラベルと共にカプセル化される。MPLSエッジルータは、IPヘッダの内容を分析し、パケットにカプセル化する適当なラベルを選ぶ。従来のIPルーティングとは対照的に、IPヘッダで運ばれる行き先アドレスだけよりも多くの情報に基づいて、ルータ解析が行われる。ネットワーク内の全ての後続のノードでは、IPヘッダではなく、MPLSラベルがパケットのフォワーディングの決定に使用される。MPLSラベルが付されたパケットは、ネットワークから離れる際、他のエッジルータによりラベルを削除される。MPLS用語で、パケットを操作するノードまたはルータを、ラベル・スイッチ・ルータ(LSR)と呼ぶ。MPLSルータは、MPLSラベルに基づいて、スイッチングを決定し、パケットをフォワーディングする。LSRには、2つの広いカテゴリがある。高性能なパケットのクラス分けを行い、ネットワークの端で必要なラベルの貼り付け(および引き剥がし)をするMPLSエッジルータと、極めて高いバンド幅でラベルが付けられたパケットを処理できるコア(Core)LSRとである。
【0006】
従来のルーティング解法は、IPアドレス指定の効率的な利用のため、IPアドレスの記憶にCAM(content addressable memory)装置を利用していた。CAMは、記憶装置であり、その連想CAMアレイに記憶されるデータと特定の被比較データパターンとを比較するように指示される。全てのCAMアレイまたはそのセグメントは、被比較データとのマッチングのために並列に検索される。マッチする場合、CAM装置は、マッチフラグを立てることによって、そのマッチを示す。マッチが多数ある場合は、多数のマッチフラグを立てることにより示される。CAM装置は、一般的に、高い優先順位のマッチングロケーションをマッチアドレスまたはCAMインデックスに換算するプライオリティエンコーダを含む。一般に速いCAMの並行探索能力は、ルータおよびネットワーク機器におけるアドレスフィルタリングおよびルックアップ、ポリシーベースルータにおける施行、暗号化/解読および圧縮/伸長アプリケーションのためのパターン認識、および他のパターン認識アプリケーションを含む多くのアプリケーションに役立つことが証明されている。
【0007】
バイナリCAMセルは、情報の2つの状態、すなわち、論理1状態、論理0状態の2つの状態を記憶することが可能である。バイナリCAMセルは、概してRAMセルおよび比較回路を含む。その比較回路は、被比較データをRAMセルに記憶したデータと比較し、マッチするときに、所定の状態にマッチラインを駆動する。バイナリCAMセルのカラムは、一つ以上の大域マスクレジスタに記憶されるマスクデータによって、グローバルにマスクされてもよい。ターナリCAM(TCAM)セルは、比較操作のために、情報の3つの状態を効果的に記憶するマスク・パー・ビット(mask-per-bit)セルである。情報の3つの状態とは、すなわち、論理1状態、論理0状態、および注意しない状態(don't care state)である。ターナリCAMセルは、概して、各ターナリCAMセルのためのローカルマスクデータを記憶する第2のRAMを含む。ローカルマスクデータは、比較結果がマッチラインに影響をしないように、被比較データと第1のRAMセルに記憶されたデータとの比較結果をマスクする。ターナリCAMセルは、エントリ・パー・エントリ(entry-per-entry)基準で決定することについて、ユーザに柔軟性を提供する。エントリ・パー・エントリ基準のワード中のビットは、比較操作の間マスクされる。
【0008】
米国特許第6,237,061号は、最長のプリフィックスを有するCAMエントリが最高の数のアドレスまたはインデックスに配置されるように、CIDR(Classless Inter-Domain Routing)アドレスが予めソートされ、ターナリCAMに読み込まれているシステムを開示している。CIDRアドレスのプリフィックスの部分は、比較操作の間、各CAMエントリに関連付けられるマスクセルを設定するために使用される。各CAMエントリのマスクが外されたプリフィックス部分だけが、CAM探索キーとして記憶されている行き先アドレスと比較される。各CAMエントリは、ネットワークID領域に対応してもよい。各CAMエントリは、関連するプリフィックス値に従ってマスクされ、TCAMは、最長マッチング・プリフィックスを有するCAMエントリの位置を決めるために、たった一回の検索操作を要求する。
【0009】
他の若干のネットワークサービスは、地理的に分散する顧客サイトを相互に連結させるためのインターネットプロトコル(IP)−仮想プライベートネットワーク(VPN)を含んで、ネットワークプロバイダにより提供される。VPNは、ネットワーク・インフラ・シェアリングを通じて、プライバシーおよびコスト効率を提供する。米国特許第6,205,488号は、共有MPLSネットワークに接続された複数のルータを含む仮想プライベートネットワークを開示している。共有MPLSネットワークは、共有MPLSネットワークを渡る、動的に供給されたVPN情報により形成される。
【0010】
ポリシーベース・ルーティングサービスは、顧客が選択的にパケットに異なるパスをとらせられることも述べられている。ポリシーベース・ルーティングの従来のアプリケーションは、以下を含む。(1)ポリシールータを横切る異なるインターネット接続を介する、異なるユーザの組からトラフィック発信をルーティングするための、ソースベース・トランジット・プロバイダ選択と、(2)サービスのタイプに基づいてトラフィックに優先順位をつけるためのサービス品質(QOS)と、(3)低帯域幅、低コスト相手固定パスおよび高帯域幅、高コスト、スイッチングパス間のトラフィックを分散するためのコスト削減とを含む。
【0011】
データトラフィックおよびルート・ルックアップの複数のタイプをクラス分けするためのTCAMの使用を通じて、速い検索能力を有する方法とシステムを提供することが望まれている。
【0012】
発明の要約
本発明は、TCAMを利用するルータにおける複数のデータフローを支援する方法およびシステムに関する。ここで、TCAMへのアクセス数は、更新処理および後続ののルックアップの効率を改良するために最適化される。複数のデータフローに対応するために、TCAMは、2つのパーティションに仕切られ、第1パーティションが高い優先順位を有するインデックスを含み、第2パーティションが低い優先順位を有するインデックス含む。たとえば、マルチプロトコル・ラベル・スイッチング(MPLS)フローおよびIP仮想プライベートネットワーク(VPN)フローは、第1パーティションに加えられ、ポリシーベース・ルーティングフローは、第2パーティションに加えられる。入力パケットの所定のプリフィックスに基づく後続のTCAMルックアップの間、MPLSまたはIP−VPNフローは、いかなるマッチング・ポリシーベース・ルーティングフローも包含する。マッチング・ポリシーベース・ルーティングフローとは、たとえば、アクセスコントロールリストまたはトラフィック管理フローによりクラス分けされるフローである。
【0013】
MPLSフローおよびIP−VPNフローの場合、接続インデックス(CIX)および行き先IPアドレス(DA)によりクラス分けされるフロー、および、CIXだけによってクラス分けされるフローは、TCAMの第1パーティションのトップから加えられ、DAだけによってクラス分けされるフローは、第1パーティションのボトムから加えられる。この取り決めは、高いインデックスでCIXアンドDAフローおよびCIXオンリーフローがDAオンリーフローを包含する点、および、新たなフローを追加するときに必要なスワップ数の最適化のために、CIXアンドDAフローおよびCIXオンリーフローが、DAオンリーフローから切り離されている点で有利である。TCAMへの書き込み回数を低減するために、フローインデックス・スペースは、TCAMスペースに対応するエントリを有して使用される。スワップはインデックススペースにおいて実行され、変更されたエントリだけがTCAMに書き込まれる。
【0014】
本発明は、以下の図面を参照することで、より完全に説明される。
【0015】
図面の簡単な説明
図1は、本発明の教示に従ってルータのフローをクラス分けするためのシステムアーキテクチャを示す高水準機能ブロック図である。
【0016】
図2は、フロー分級機およびフローマネージャの実行を示す概要図である。
【0017】
図3は、TCAMフローエントリを示す概要図である。
【0018】
図4Aは、接続インデックス(CIX)によりクラス分けされるフローを記憶するためのプリフィックス・ツリーを示す概要図である。
【0019】
図4Bは、行き先アドレス(DA)によりクラス分けされるフローを記憶するためのプリフィックス・ツリーを示す概要図である。
【0020】
図5Aは、DAフローがない場合、フロー追加前に、CIXアンドDAによりクラス分けされるMPLSおよびIP−VPNフローのためのフローTCAMのデータ構成を示す概要図である。
【0021】
図5Bは、DAフローがない場合、フロー追加後に、CIXアンドDAによりクラス分けされるMPLSおよびIP−VPNフローのためのフローTCAMのデータ構成を示す概要図である。
【0022】
図5Cは、DAフローがある場合、フロー追加前に、CIXアンドDAによりクラス分けされるMPLSおよびIP−VPNフローのためのフローTCAMのデータ構成を示す概要図である。
【0023】
図5Dは、DAフローがある場合、フロー追加後に、CIXアンドDAによりクラス分けされるMPLSおよびIP−VPNフローのためのフローTCAMのデータ構成を示す概要図である。
【0024】
図6Aは、CIX、DAまたはCIXフローが提供されていない場合、フロー追加前に、DAによりクラス分けされるMPLSおよびIP−VPNフローのためのフローTCAMのデータ構成を示す概要図である。
【0025】
図6Bは、CIX、DAまたはCIXフローが提供されていない場合、フロー追加後に、DAによりクラス分けされるMPLSおよびIP−VPNフローのためのフローTCAMのデータ構成を示す概要図である。
【0026】
図6Cは、CIX、DAまたはCIXフローが提供されている場合、フロー追加前に、DAによりクラス分けされるMPLSおよびIP−VPNフローのためのフローTCAMのデータ構成を示す概要図である。
【0027】
図6Dは、CIX、DAまたはCIXフローが提供されている場合、フロー追加後に、DAによりクラス分けされるMPLSおよびIP−VPNフローのためのフローTCAMのデータ構成を示す概要図である。
【0028】
図7は、ポリシーベース・ルーティングフローのためのフローTCAMのデータ構成を示す概要図である。
【0029】
詳細な説明
より詳細に本発明の好適な実施形態を以下に説明し、その実施例を添付図面内に図示する。図面および説明を通じて、可能な場合には、同じものまたは似ている部分の参照に、同じ参照番号を使用する。
【0030】
図1を参照すると、本発明の教示に従ってルータ10におけるフローのクラス分けおよびルーティングするためのシステムアーキテクチャを示す高水準機能ブロック図が示されている。フローは、データパケットのパケットヘッダ領域の内容から識別されるルールまたはポリシーに従うデータパケットの組である。パケットヘッダ領域は、たとえば、ソースIPアドレス、行き先IPアドレス、ソースポート、行き先ポート、プロトコル識別、サービスのタイプ(TOS)、接続インデックス(CIX)、および、他の領域を含む。アーキテクチャは、三大要素、すなわち、制御プレーン12、データプレーン13、および、レイヤ2インタフェース14を備えている。さまざまな要素間の相互作用は、対応する要素間の矢印の連続により示される。ソフトウェアにおいて実行される制御プレーン12は、フローマネージャ15と、データプレーン制御インタフェース16と、フローコア制御17と、IP、ユーザデータグラムプロトコル(UDP)、および伝送制御プロトコル(TCP)18とを含む。ハードウェアにおいて実行されるデータプレーン13は、フロー分級機20、IPフォワーダ(IP forwarder)21、およびラベルフォワーダ(label forwarder)22を含む。IPトラフィックおよびIP制御トラフィック23は、フロー分級機20で受信される。フロー分級機20は、MPLSフローの場合、ラベルフォワーダ22により、または、MPLSフローでない場合、IPフォワーダ21により、ルーティングIPトラフィックおよびIP制御トラフィック23をクラス分けし、行き先ルートを加えるために、フローマネージャ15およびフローコア制御17と相互に作用する。フローコア制御17は、例えば、TEP、レッドマネージャ(red manager)、ラベルマネージャ、ルートウォッチ、ルーティングマネージャおよびFIB、およびIPルーティングデータベースのようなソフトウェアモジュールを含む。本願明細書に述べられるように、本発明は、詳しくはアンバーネットワーク(AmberNetwork) ASR2000およびASR2020の装置の用途に、極めて適すると共に、それは、類似する能力および機能を有する他のルータの用途にも同様に適している。アンバーネットワークASR2000およびASR2020の技術マニュアルについては、完全な記述に代えて、参照によって本願明細書に引用したものとする。
【0031】
図2は、フロー分級機20およびフローマネージャ15の本実施形態の実行を示す概要図である。本実施例では、フロー分級機20は、フローTCAM(ternary content addressable memory)30を含む。フローTCAM30は、ハードウェアメモリー素子であり、TCAM内の全てのエントリが入力されたパケットヘッダ領域に対して並列に比較され、最初のマッチ・エントリが単一のクロックサイクルにおいて選ばれる。適切なTCAMは、この出願に参照により組み込まれる米国米国特許第6,081,440号で説明されるように、ララテクノロジー社により、サンホゼ、カリフォルニアで製造される。各フローTCAM30のエントリは、インデックス32によって、アドレスが与えられ、インデックスが付けられる。インデックス32は、インデックスまたは数字で表したアドレスである。インデックス32は、最も低いインデックス32aから、最も高いインデックス32nまで、最も低いインデックス32aで優先順位が最も高く、また、最も高いインデックス32nで優先順位が最も低くなるように、編成される。
【0032】
図3は、フローTCAM30に記憶される代表的なTCAMフローエントリ33を示す。ローカルマスク34は、フローTCAMルックアップ操作に対して論理0、論理1、または注意しない(don't care)状態のいずれの場合でも、効果的にフローTCAMに記憶されるために、各TCAMフローエントリ33と関連付けられている。たとえば、ローカルマスク34のビットが論理1である場合、対応するTCAMフローエントリ33のビットは、後続のフローTCAMのルックアップ操作の間、対応する入力データパケットのビットと比較される。逆にいえば、ローカルマスク34が論理0である場合、対応するTCAMフローエントリ33のビットは、後続のフローTCAMのルックアップ操作の間、比較されない。あるいは、本発明の他の実施形態では、マスクビットスキーマは論理1に等しくなるように変換され、TCAMフローエントリの対応するビットはマスクされ、マスクビットが論理1である場合、TCAMフローエントリの対応するビットが比較される。プリフィックスは、フローTCAM30内でマッチングされるためのパケットヘッダの行き先IPアドレスのビット番号を示すための、行き先IPアドレスのように、フローTCAMエントリ33内で1以上の領域が連合してなる。後続のフローTCAMルックアップ操作において、マスクが外されたフローTCAMエントリと、入力パケットヘッダビットに対応する所定のプリフィックスとの間にマッチングがある場合、フローTCAM30、またはSRAMのような連携される外部メモリに記憶されるルーティングデータと同様に、マッチングするTCAMフローエントリ22のインデックスは出力として提供される。
【0033】
フローマネージャ15は、フローTCAM30のデータ構造機構を提供するために使用される。図2を参照すると、フローマネージャ15は、インデックス32を一つ以上の論理的パーティションに仕切ることができる。フローは、フローのタイプに対して望ましい優先順位に従い、パーティションに割り当てられる。本実施例において、インデックス32は、最も低いインデックス32aを含むパーティション36aと、最も高いインデックス36nを含むパーティション36bとに仕切られる。FTCAM_Partitionインデックスは、パーティション36aおよびパーティション36bの間に位置する。図2に示す本実施例において、MPLSおよびIP−VPNフローは、最も高い優先順位を有することが決められ、パーティション36aに割り当てられる。ポリシーベース・ルーティングフローは、低い優先順位を有することが決められ、パーティション36bに割り当てられる。ポリシーベース・ルーティングフローは、アクセス制御リスト(ACL)フローおよびトラフィックマネージャ(TE)フローによりクラス分けされるデータを包含できる。したがって、より高い優先順位を割り当てられたMPLSフローおよびIP−VPNフローは、低い優先順位が割り当てられたACLフローおよびTEフローよりも先に、後続のフローTCAM30内のルックアップにおいて見つけられる。MPLSフローまたはIP−VPNフローは、TCAM30のいかなるACLフローおよびTEフローのマッチングも含む。
【0034】
フローインデックス・スペース38は、フローTCAM30のデータ構成に対応するためにフローマネージャ15に維持される。全てのフロースワッピングは、フローインデックス・スペース38において実行され、変更エントリだけはフローTCAM30に書き込まれる。
【0035】
本発明の実施形態において、ポインタおよびプリフィックス・ツリーのアレイは、図4Aおよび4Bに示すように、フローインデックス・スペース38にMPLSおよびIP−VPNフローを記憶するために使われる。パケットヘッダの接続インデックスCIXおよび行き先IPアドレス(DA)領域によりクラス分けされるフローは、CIXプリフィックス・ツリー40に記憶される。各接続インデックス(CIX1〜CIX16K)は、プリフィックス・ツリー40のノード41a〜41nを伴う。行き先IPアドレスベースのルックアップは、それぞれのノード41a〜41nに記憶されるプリフィックスで最長マッチ(longest match)を見つけるために実行される。フローは、フローTCAM30ルックアップの間、正しいフローにマッチするために維持される。可変gMaxCixDaFixは、フローインデックス・スペース38において使用され、CIXアンドDAフロー、およびCIXオンリーフローの最大のTCAMインデックスを示す。行き先IPアドレスだけによりクラス分けされるフローは、DAプリフィックス・ツリー42に記憶される。各DAは、プリフィックス・ツリー42のノード44を伴う。
【0036】
可変gMinDaOnlyFixは、フローインデックス・スペース38において使用され、DAオンリーフローのための最小のフローTCAMインデックスを示す。
【0037】
ソフトウェアモジュールは、TCAM30のMPLSおよびIP−VPNフロー構築のために、フローマネージャ15において実行される。代表的なソフトウェアモジュールを、テーブル1に例示する。
【0038】
【表1】
【0039】
図5A−5Dは、MPLSおよびIP−VPNフローのためのフローTCAM30のデータ構成の実施例を示す。フローは、フローTCAM30ルックアップの間、正しいフローにマッチさせるために維持される。パーティション36aは、低いインデックス部分50aおよび高いインデックス部分50bに分割される。低いインデックス部分50aは、低いインデックスまたはアドレス範囲に対応し、高いインデックス部分50bは高いインデックスまたはアドレス範囲に対応する。パケットヘッダの接続インデックス(CIX)および行き先IPアドレス(DA)領域(CIX、DAとして示す)によりクラス分けされるフローは、低いインデックス部分50aに割り当てられる。パケットヘッダのCIXだけによりクラス分けされるフローも、低いインデックス部分50aに割り当てられる。パケットヘッダのDAだけによりクラス分けされるフローは、高いインデックス部分50bに割り当てられる。ローカルマスク34は、フローTCAM30の比較操作に使用する特定の種類のデータフロー、たとえば、上記のCIX、DAフロー、CIXだけのフロー、およびDAだけのフローを効果的に記憶するために、各フローTCAMエントリ33に適用できる。例えば、DAのローカルマスクビットが「0」で、CIXのローカルマスクビットが全て「1」である場合、CIXだけのフローが発生する。
【0040】
CIX、DA、またはCIXだけによりクラス分けされるフローのTCAM30への追加の間、TCAM30内の自由エントリ(free entry)は、低いインデックス部分50aの低いインデックス32aから検索される。自由エントリは、Fixとして示す。DAフローとしてクラス分けされるフローの追加の間、TCAM30の自由エントリは、最も高いインデックス部分50bの最も高いインデックス32bから検索される。最も低いインデックス部分50aの最大値に対応するインデックスは、gMaxCixDaFixとして確立され、最も高いインデックス部分50bの最小値に対応するインデックスは、gMinDaOnlyFixとして確立される。この意味で、空きスペース54は、最大で、低いインデックス部分50aおよび高いインデックス部分50bの間に設けられる。それによって、CIX、DAフローおよびCIXオンリーフローを一緒に、および、DAオンリーフローを一緒に維持することができる。また、DAフローからCIX、DAフローおよびCIXオンリーフローを分けて、維持することができる。TCAM30からCIX、DAまたはCIXだけによりクラス分けされるフローを削除する際、対応するインデックス32のエントリは、フロースペース38において無効にされる。その後、後続のCIX、DAフローおよびCIXだけによってクラス分けされたフローの追加の際、無効にされたエントリは、自由エントリの検索中に低いインデックス部分50aの最も低いインデックス32aから見つけられ、以前に無効にされたエントリを再利用するために追加される。TCAM30が実質的に容量の限界である場合だけ、CIX、DAフローまたはCIXオンリーフローを挿入するためにDAオンリーフローをスワップし、または、DAオンリーフローを挿入するためにCIX、DAフローまたはCIXオンリーフローをスワップする必要がある。
【0041】
図5A、5Bは、DAオンリーフローが存在せず、または、自由TCAMエントリ(Fix)がgMinDaOnlyFixよりも低いインデックス値でDAオンリーフロー以上である場合の、CIX、DAフローおよびCIXオンリーフローの割り当てを示す。gMaxCixDaFixインデックスエントリは、Fixに対応するインデックスの直後に設定される。図5C−5Dは、現在DAオンリーフローがあり、または、自由TCAMエントリ(Fix)がDAオンリーフローの間にある場合の、CIX、DA、およびCIXだけのフローの割り当てを示す。本実施例において、TCAM30はほぼ一杯である。最小のインデックス32aからgMaxCixDaFixおよびgMinDaOnlyFixインデックスを超えて、自由エントリは存在しない。したがって、gMaxCixDaFixおよびgMinDaOnlyFixインデックスは、近接したインデックスである。自由エントリは、gMinDaOnlyFixインデックスおよび最も高いインデックス32bの間で利用可能である。例えば、自由エントリは、DAフローの先行する削除によって、Daフロースペース内に発生する。CIX、DA、またはCIXだけによりクラス分けされるフローのために、自由エントリ(Fix)を使用するために、gMinDaOnlyFixインデックスのDAフローは、Fixに移され、それによって、gMinDaOnlyFixインデックスを利用可能にする。CIX、DA、またはCIXだけによりクラス分けされるフローは、gMinDaOnlyFix用の現在のインデックスに書き込まれる。gMaxCixDaFixインデックスは、CIX、DAまたはCIXだけによりクラス分けされるフローのために、TCAMエントリの書き込み時に設定され、gMinDaOnlyFixエントリは、TCAMエントリの書き込み直後に設定される。TCAM30内の最も低いインデックス32aとgMaxCixDaOnlyFixとの間の他のCIX、DA、およびCIXオンリーフローは、適当な順番で含まれるように調整される。gMinDaOnlyFixインデックスと最も高いインデックス32bとの間の他のDAだけのフローは、適当な順番で含まれるように調整される。
【0042】
ソフトウェアモジュールは、TCAM30にCIX、DAフローおよびCIXオンリーフローを追加するために、フローマネージャ15において実行される。現在のフローに対するポインタを、pflowという。自由エントリに対するポインタを、fixという。TCAMフローエントリ33は、AdjustAndWriteCixDA(pflow、fix)機能によってフローTCAM30に書き込まれる。後述するその機能は、同じCIX内の他のDAのローカルマスク34に基づいて、フローTCAM30へのTCAMフローエントリ33の書き込みを調整するものである。代表的なソフトウェアモジュールを、テーブル2に例示する。
【0043】
【表2】
【0044】
CIX、DAフロー、CIXオンリーフロー、およびDAオンリーフローの挿入の間、フローTCAM30内のフローは調整される。この調整では、最も低いインデックスまたは最も低い数値であり、最も高い優先順位を有するインデックスに配置される最長プリフィックスを伴うTCAMエントリと、最も高いインデックスまたは最も高い数値であり、もっとも低い優先順位を有するインデックスに配置される最短のプリフィックスを伴うプリフィックス値の減少により続くTCAMエントリとを有するように、フローTCAM30が整理される。テーブル3および4は、フローマネージャ15において、DAオンリーフローの調整および書き込みや、FixアンドDAフローの調整および書き込みが実行されるそれぞれのソフトウェアモジュールを示す。それらのモジュールは、テーブル1に示すソフトウェアモジュールにおいて使用される。
【0045】
テーブル3
1.AdjustAndWriteDA(pFlow)機能を開始する。
2.フローの行き先IPアドレスのマスク長を用いて、最初に、プリフィックス・ツリー42内の短いプリフィックスフローを修正(fix)する。より短いプリフィックスノードが<DA>オンリープリフィックス・ツリー42内で見つけられ、見つけられたノードのインデックスがpFlowノードのインデックスより小さい場合、その2つのフローをスワップし、その2番目に小さいフローだけをフローTCAM30に書き込む。そして、包含されるルータの位置を決めるために、移動されたフローを用いて検索を続行する。
3.最後の最も小さいフローをその正しい場所に書き込む。後で再書き込みされてはならないのでこれを記憶しておく。
4.この時点で、pFlowは、最短のプリフィックスフローを指示することとなる。最短のプリフィックスフローのインデックスは、最長のプリフィックスマッチ(LPM)プロパティに続くように調整され、フローTCAM30に挿入されるべきオリジナルのフローとマッチングされなくてはならない
5.TCAM30内の長いプリフィックスフローを修正する。マスク長32から開始し、現在のマスク長から短くしていき、包含される最大のフローインデックスフローを見つける。
6.見つけられたフローのフローインデックスが現在のフローのインデックスより大きい場合、同じ宛先に対するより長いプリフィックスを有するフローは、より短いプリフィックスを有する現在のものより前のものであることを意味する。この場合、TCAM30のその2つのフローを交換し、フロー内のインデックス値を修正する。2番目に大きいフローをTCAM30へ書き込む。
7.最後の最も大きいフローを、その正しい場所に書き込む。これが上記ステップ3で既に書き込まれたフローと同じであれば、TCAM30は再度書き込まれることはない。
8.AdjustAndWriteDA(pFlow)機能を終了する。
【0046】
テーブル4
1.AdjustAndWriteCixDA機能を開始する(pFlow、Fix)。
2.そのフローの行き先IPアドレスのマスク長を使用する。最初にプリフィックス・ツリー40内の短いプリフィックスフローを修正する。より短いプリフィックスノードが見つけられ、見つけたノードのインデックスがpFlowノードよりも小さい場合、その2つのノードを交換し、2番目に小さいフローだけをフローTCAM30に書き込む。そして、包含されるルータの位置を決めるために、移動されたフローを用いて検索を続行する。
3.最後の最も小さいフローをその正しい場所に書き込む。後で再書き込みされてはならないのでこれを記憶しておく。
4.この時点で、pFlowは、最短のプリフィックスフローを指示する。最短のプリフィックスフローのインデックスは、LPMプロパティに続くように調整され、フローTCAM30に挿入されるべきオリジナルのフローとマッチングされる。
5.TCAM30の長いプリフィックスフローを修正する。マスク長32から開始し、現在のマスク長から短くして、包含される最大のフローインデックスフローを見つける。
6.見つけられたフローのフローインデックスが現在のフローのインデックスより大きい場合、それは、同じ宛先に対するより長いプリフィックスを有するフローは、より短いプリフィックスを有する現在のものより前のものであることを意味する。この場合、TCAM30のその2つのフローを交換し、フロー内のインデックス値を修正する。2番目に大きいフローをTCAM30へ書き込む。
7.最後の最も大きいフローを、その正しい場所に書き込む。これが上記ステップ3で既に書き込まれたフローと同じであれば、TCAM30は再度書き込まれることはない。
8.AdjustAndWriteCIX、DA(pFlow、Fix)を終了する。
【0047】
図6A〜6Bは、第1の自由TCAMエントリ(Fix)が、CIX、DAフローおよびCIXオンリーフローのいずれもの後に配置される場合、または、CIX、DAフローがない場合の、DAオンリーフローの割り当てを示す。gMinDaOnlyFixインデックスエントリは、Fixに対応するインデックスに設定される。図6C〜6Dは、第1の自由TCAMエントリ(Fix)がCIX、DAまたはCIXだけのフローの間にある場合の、DAフローの割り当てを示す。本実施形態において、TCAM30はほぼ満ちている。最も高いインデックス32bからgMinDaOnlyFixインデックスおよびgMaxCixDaFixインデックスまでに、自由エントリは存在しない。したがって、gMaxCixDaFixインデックスおよびgMinDaOnlyFixインデックスは、隣接している。自由エントリは、gMaxCixDaFixインデックスおよび最も低いインデックス32aの間で利用可能である。たとえば、自由エントリは、CIX、DAフローまたはCIXオンリーフローの先の削除により、CIX、DAおよびCIXオンリーフロースペースにおいて発生できる。DAだけによりクラス分けされるフローのために、自由なエントリ(Fix)を使用するために、gMaxCixDaFixインデックスのCIX、DAフローまたはCIXオンリーフローがFixに移され、それによって、利用可能なgMaxCixDaFixインデックスを作る。DAによりクラス分けされるフローは、gMaxCixDaFix用の現在のインデックスに書き込まれる。gMinDaOnlyFixエントリは、TCAMエントリの書き込み時に設定され、gMaxCixDaFixエントリはTCAMエントリの書き込み直前に設定される。最も高いインデックス32bおよびgMinDaOnlyFixインデックス間の他のDAフローは、適当な順番で含まれるように調整される。gMaxCixDaFixおよび最も低いインデックス32a間のその他のCIX、DAおよびCIXオンリーフローは、適当な順番で含まれるように調整される。
【0048】
ソフトウェアモジュールは、DAフローをTCAM30に加えるために、フローマネージャ15において実行される。テーブル5に、代表的なソフトウェアモジュールを示す。
【0049】
【表3】
【0050】
インタフェースが落ちた場合、フローマネージャ15のクライアントは、TCAM30のフローを削除する責任がある。フローマネージャ15は、アプリケーション操作に基づいて、ルートを取り下げるためにアプリケーションプログラミングインタフェース(API)を提供する。たとえば、IP回路が落ちた場合、接続マネージャは、IPタスクに知らせ、VPNマネージャは、このアラームを受信する。VPNマネージャは、回路識別子に基づいて、順番にルートをフローTCAM30から取り戻す。
【0051】
ソフトウェアモジュールは、TCAM30のフローを削除するフローマネージャ15において実行される。テーブル6に代表的なソフトウェアモジュールを示す。
【0052】
テーブル6
1.フローIDが制限範囲内であることをチェックする。
2.フローIDに対応するフローを取得する。pFlow=GetFlowAtIndex(flowId)
3.正しいツリーでノードを見つける。pFlowがCixを有する場合、このCixのためのプリフィックス・ツリー40を検索し、その他の場合、プリフィックス・ツリー42を検索する。
4.見つけたノードを削除し、それぞれのツリーを調整し、ノードメモリを解放する。
5.フロースペース・インデックスエントリを解放する。
6.フローID==gMaxCixDaFixまたはフローID==gMinDaOnlyFixである場合、これらの変数を変更する。gMaxCixDaFixインデックスのフローが削除されている場合、それが、有効な<Cix、DA>または<Cix>オンリーフローのインデックスになるまで、gMaxCixDaFixを減少する。GMinDaOnlyFixインデックスのフローが削除されている場合、それが、有効な<DA>だけのフローのインデックスになるまで増加する。
7.フローメモリを解放し、TCAM30のフローを無効にする。
【0053】
図7に示すように、ACLフローおよびトラフィックマネージャ(TE)フローは、フローマネージャ15によって、フローTCAMに対応するフローインデックス・スペースに内部記憶される。そのACLフローおよびTEフローは、アクセスコントロールリスト(ACL)を形成するコマンドラインインタフェース(CLI)に基づいて、厳密に整列される。ACLは、特定種類のネットワークトラフィックを許可または否定するために、一般にネットワークインターフェースに適用される。特定のACLフローにマッチしている全てのパケットは、通過を許可され、ネットワークルートが決定される。ACLフローにマッチしていない全てのパケットは廃棄され、または、サービスタイプ(TOS)の警備または成形の操作がそのパケット上で実行される。グローバルアクセスリストは、全てのインタフェースで使われる。
【0054】
フローTCAM30に追加されるとき、ACLおよびTEフローは適切に維持される。フローは、パーティション36bのトップ60から始まっているフローTCAM30内に位置する次の利用可能なインデックスエントリに加えられる。パーティション36bは、さらに、部分62aおよび62bに再分割される。部分62aは、インタフェースに適用されるACLに使用され、部分62bは、他のACLがマッチしない場合、グローバルACLのために使用される。GACL_PARTITION変数は、部分62aおよび62bのパーティションサイズを定義するために使用できる。gMaxACLFix変数は、部分62aのACLおよびTEフローのための最大フローTCAMインデックスを定義する。gGlobalACLFix変数は、部分62bのグローバルACLおよびTEフローのための最大フローTCAMインデックスを定義する。
【0055】
ポリシーベースACLおよびTEフローは、gMaxACLFix変数の場所で追加され、該gMaxACLFix変数はインクリメントされる。gMaxACLFixがGACL_PARTITION変数に等しくなる場合、部分62bはいっぱいで、どれかフローが削除されるまで、これ以上ACLフローを追加できない。ACLフローは、ソースまたは行き先ポートの範囲を明示できる。ソースまたは行き先ポートの範囲を明示するACLフローは、一部の範囲をカバーするローカルマスク34と共に、複数フローにマップされる。したがって、異なるマスクを有する最適ナンバーのフローは、明示された範囲をカバーするために決定される。TCAMの複数フローにマップされるフローのために、アプリケーションプログラミングインタフェース(API)は、割り当てられたローカルマスク34を有するピアフローを生成し、親フローと共にピアフローをフローTCAM30に加える。そのフローは、フローマネージャ15によって管理される。グローバルACLフローは、gGlobalACLFix変数で加えられ、それから、gGlobalACLFix変数はインクリメントされる。gGlobalACLFix変数がFM_MAX_FIX変数に等しくなる場合、どれかフローが削除されるまで、これ以上のグローバルACLフローを追加できない。
【0056】
フローマネージャ15は、TCAM30からフローを削除するためのソフトウェアモジュールを含む。単一のフローの削除のために、そのフローは、フローインデックス・スペース38から削除され、フローTCAM30において、無効にされる。第一に、API66は、TCAM30から単一のフローを削除するために使われる。単一のフローがピアフローを有する場合、全てのピアもまた、削除される。フローTCAM30内に留まるフローは、空のフロースペースを充填するために直ちに圧縮(compact)される。削除されたフローの後の全てのフローは、一つのインデックスに移され、TCAM30に書き込まれる。gMaxACLFix変数の値は、適宜調整される。
【0057】
複数フロー削除のために、フローリストに供給された全フローは、削除され、それから、残留するフロー上で圧縮が実行される。第2のAPI67は、TCAM30から複数フローを削除するために、フローのリストを削除するために使用される。第一の空のフロースペースは、次の利用可能な占有フローによって、最初に充填され、これは全フローが小型化されるまで繰り返される。gMaxACLFix変数までの全空フロースペースが満たされる。したがって、gMaxACLFix変数の値は調整される。
【0058】
前述の説明からみて、本発明の多数の修正および他の実施形態は、当業者にとって明らかである。特定の典型的なコンピュータコードが様々な言語の様々な方法で実行されることができると明らかに理解されなければならない。そして、それは様々な多くのハードウェアプラットホームに等しく適している。
【0059】
上述の実施形態は、多くの可能な実施形態のほんの一実例であると理解される。それは、本発明の原理のアプリケーションを代表するものである。多数の様々な他の変更は、本発明の精神と範囲から逸脱することなく、当業者によって、これらの原理に従って直ちに発明されることができる。
【図面の簡単な説明】
【図1】 図1は、本発明の教示に従ってルータのフローをクラス分けするためのシステムアーキテクチャを示す高水準機能ブロック図である。
【図2】 図2は、フロー分級機およびフローマネージャの実行を示す概要図である。
【図3】 図3は、TCAMフローエントリを示す概要図である。
【図4】 図4Aは、接続インデックス(CIX)によりクラス分けされるフローを記憶するためのプリフィックス・ツリーを示す概要図である。
図4Bは、行き先アドレス(DA)によりクラス分けされるフローを記憶するためのプリフィックス・ツリーを示す概要図である。
【図5】 図5Aは、DAフローがない場合、フロー追加前に、CIXアンドDAによりクラス分けされるMPLSおよびIP−VPNフローのためのフローTCAMのデータ構成を示す概要図である。
図5Bは、DAフローがない場合、フロー追加後に、CIXアンドDAによりクラス分けされるMPLSおよびIP−VPNフローのためのフローTCAMのデータ構成を示す概要図である。
図5Cは、DAフローがある場合、フロー追加前に、CIXアンドDAによりクラス分けされるMPLSおよびIP−VPNフローのためのフローTCAMのデータ構成を示す概要図である。
図5Dは、DAフローがある場合、フロー追加後に、CIXアンドDAによりクラス分けされるMPLSおよびIP−VPNフローのためのフローTCAMのデータ構成を示す概要図である。
【図6】 図6Aは、CIX、DAまたはCIXフローが提供されていない場合、フロー追加前に、DAによりクラス分けされるMPLSおよびIP−VPNフローのためのフローTCAMのデータ構成を示す概要図である。
図6Bは、CIX、DAまたはCIXフローが提供されていない場合、フロー追加後に、DAによりクラス分けされるMPLSおよびIP−VPNフローのためのフローTCAMのデータ構成を示す概要図である。
図6Cは、CIX、DAまたはCIXフローが提供されている場合、フロー追加前に、DAによりクラス分けされるMPLSおよびIP−VPNフローのためのフローTCAMのデータ構成を示す概要図である。
図6Dは、CIX、DAまたはCIXフローが提供されている場合、フロー追加後に、DAによりクラス分けされるMPLSおよびIP−VPNフローのためのフローTCAMのデータ構成を示す概要図である。
【図7】 図7は、ポリシーベース・ルーティングフローのためのフローTCAMのデータ構成を示す概要図である。
【符号の説明】
10…ルータ、
12…制御プレーン、
13…データプレーン、
14…インタフェース、
15…フローマネージャ、
16…データプレーン制御インタフェース、
17…フローコア制御、
20…フロー分級機、
21…フォワーダ、
22…ラベルフォワーダ、
23…制御トラフィック、
30…フローTCAM、
32、32a〜n…インデックス、
33…フローエントリ、
34…ローカルマスク、
36a、b…パーティション、
38…フローインデックス・スペース、
40…プリフィックス・ツリー、
42…オンリープリフィックス・ツリー、
50a、b…インデックス部分。
Claims (67)
- ルータ内の複数のデータフローをクラス分けするための方法であって、
TCAM(ternary content addressable memory)を少なくとも第1のパーティションと第2のパーティションに仕切る工程と、
所定の順番で、前記第1のパーティションに、前記複数のデータフローの最初の一つ以上の第1フローTCAMエントリを読み込む工程と、
所定の順番で、前記第2のパーティションに、前記複数のデータフローの2番目の一つ以上の第2フローTCAMエントリを読み込む工程と、
前記第1TCAMエントリおよび前記第2TCAMエントリのビットのそれぞれが複数のマスクにより個々にマスクされるように、前記第1TCAMエントリおよび前記第2TCAMエントリのそれぞれに対して、対応する前記マスクのビット値を設定する工程と、
前記一つ以上の第1TCAMエントリのマッチングが前記一つ以上の第2TCAMエントリのいかなるマッチングも包含するように、入力されるパケットの所定のパケットヘッダ情報を含むプリフィックスを、読み込まれた一つ以上の前記第1TCAMエントリおよび一つ以上の前記第2TCAMエントリと比較する工程と、
を有し、
前記第1のパーティションは、最も低いインデックスからパーティションインデックスまでの範囲で最も高い優先順位を有するインデックスを含み、
前記第2のパーティションは、最も高いインデックスから前記パーティションインデックスの範囲で最も低い優先順位を有するインデックスを含むTCAMを用いたデータフローの選択的ルーティング方法。 - 複数の前記第1データフローは、MPLSフローまたはIP−VPNフローである請求項1に記載のTCAMを用いたデータフローの選択的ルーティング方法。
- 複数の前記第2データフローは、ポリシーベースのルーティングフローである請求項1に記載のTCAMを用いたデータフローの選択的ルーティング方法。
- 前記ポリシーベースのルーティングフローは、アクセスコントロールリスト(ACL)フローである請求項3に記載のTCAMを用いたデータフローの選択的ルーティング方法。
- 前記ポリシーベースのルーティングフローは、トラフィックマネージャフローである請求項3に記載のTCAMを用いたデータフローの選択的ルーティング方法。
- 前記TCAMに対応するエントリを有するフローインデックス・スペースを維持する工程と、
一つ以上の前記第1TCAMエントリを読み込む工程および一つ以上の前記第2TCAMエントリを読み込む工程の前に、前記フローインデックス・スペースにおける、前記第1TCAMエントリの前記所定の順番および前記第2TCAMの前記所定の順番を決定する工程と、
をさらに含む請求項1に記載のTCAMを用いたデータフローの選択的ルーティング方法。 - 前記MPLSまたはIP−VPNフローは、接続インデックス(CIX)および行き先アドレス(DA)、CIXだけ、またはDAだけによってクラス分けされる請求項2に記載のTCAMを用いたデータフローの選択的ルーティング方法。
- 前記第1パーティションは、第1部分および第2部分に分割され、前記第1部分は、前記最も低いインデックスからgMaxCixDaFixインデックスの範囲で最も高い優先順位を有するインデックスを含み、前記第2部分は、gMinDaOnlyFixインデックスから前記パーティションインデックスの範囲で最も低い優先順位を有するインデックスを含み、CIXおよびDA、並びにCIXだけによってクラス分けされる前記フローは、前記第1部分に割り当てられ、DAだけによりクラス分けされる前記フローは、前記第2部分に割り当てられる請求項7に記載のTCAMを用いたデータフローの選択的ルーティング方法。
- CIXおよびDAによってクラス分けされる前記フロー、およびCIXだけによりクラス分けされる前記フローは、前記gMaxCixDaFixインデックスから始まる前記第1部分に読み込まれ、前記DAだけによってクラス分けされるフローは、前記gMinDaOnlyFixインデックスから始まる前記第2部分に読み込まれる請求項8に記載のTCAMを用いたデータフローの選択的ルーティング方法。
- 前記第1パーティションは、第1部分および第2部分に分割され、前記第1部分は、最も低いインデックスからgMaxCixDaFixインデックスまでの範囲で最も高い優先順位を有するインデックスを含み、
前記第2部分は、gMinDaOnlyFixインデックスから前記パーティションインデックスまでの範囲で最も低い優先順位を有するインデックスと、前記第2部分の前記gMinDaOnlyFixインデックスに隣接して設けられる前記gMaxCixDaFixインデックスと、該第2部分内で前記gMinDaOnlyFixより下に配置されるフリーエントリとを含み、
(a) 前記gMinDaOnlyFixインデックスでDAだけによりクラス分けされるフローを、前記フリーエントリに移動する工程と、
(b) 工程(a)に続いて、CIXおよびDA、または、CIXだけによりクラス分けされるフローを、前記gMinDaOnlyFixインデックスに割り当てる工程と、
(c) 工程(b)においてCIXおよびDA、または、CIXだけによりクラス分けされた前記フローに割り当てられた前記インデックスで、gMaxCixDaFixインデックスを設定する工程と、
(d) 工程(b)においてCIXおよびDA、または、CIXだけによりクラス分けされた前記フローに割り当てられた前記インデックスの直後に、gMinDaOnlyFixインデックスを設定する工程と、
をさらに含む請求項9に記載のTCAMを用いたデータフローの選択的ルーティング方法。 - 順番を含むために、前記最も低いインデックスおよび前記gMaxCixDaOnlyFixインデックスの間にある、CIXおよびDA、または、CIXだけによりクラス分けされた一つ以上の前記フローを整列する工程と、
順番を含むために、前記gMinDaOnlyFixインデックスおよび前記パーティションインデックスの間にある、DAだけによりクラス分けされ読み込まれた一つ以上の前記フローを整列する工程と、
をさらに含む請求項10に記載のTCAMを用いたデータフローの選択的ルーティング方法。 - 前記第1パーティションは、第1部分および第2部分に分割され、
前記第1部分は、前記最も低いインデックスからgMaxCixDaFixインデックスまでの範囲で最も高い優先順位を有するインデックスを含み、
前記第2部分は、gMinDaOnlyFixインデックスから前記パーティションインデックスまでの範囲で最も低い優先順位を有するインデックスと、前記gMinDaOnlyFixインデックスに隣接して設けられる前記gMaxCixDaFixインデックスと、前記第2部分内で前記gMinDaOnlyFixインデックスより上に配置されるフリーエントリと、を含み、
(a) 前記フリーエントリでCIXおよびDA、またはCIXだけによりクラス分けされるフローを、前記gMaxCixDaFixに移動する工程と、
(b) 工程(a)に続いて、DAだけによってクラス分けされるフローを、前記gMaxCixDaFixインデックスに割り当てる工程と、
(c) 工程(b)においてDAだけによりクラス分けされた前記フローに割り当てられた前記インデックスで、gMinDaOnlyFixインデックスを設定する工程と、
(d) 工程(b)においてDAだけによってクラス分けされたインデックスの直前にgMaxCixDaFixエントリを設定する工程と、
をさらに含む請求項9に記載のTCAMを用いたデータフローの選択的ルーティング方法。 - 順番を含むために、前記gMinDaOnlyFixインデックスから前記パーティションインデックスの間にある、DAだけによりクラス分けされ読み込まれる一つ以上の前記フローを整列する工程と、
順番を含むために、前記前記最も低いインデックスからgMaxCixDaFixインデックスの間にある、CIXおよびDA、またはCIXだけによりクラス分けされ読み込まれる一つ以上の前記フローを整列する工程と、
をさらに含む請求項12に記載のTCAMを用いたデータフローの選択的ルーティング方法。 - 前記TCAMに対応するエントリを有するフローインデックス・スペースを維持する工程と、
CIXおよびDA、およびCIXだけによりクラス分けされる前記フローを、CIXプリフィックス・ツリーに、割り当てる工程と、
をさらに含む請求項7に記載のTCAMを用いたデータフローの選択的ルーティング方法。 - 前記TCAMに対応するエントリを有するフローインデックス・スペースを維持する工程と、
DAだけによりクラス分けされる前記フローを、DAプリフィックス・ツリーに、割り当てる工程と、
をさらに含む請求項7に記載のTCAMを用いたデータフローの選択的ルーティング方法。 - 前記フローインデックス・スペース内で前記対応するエントリを解放することによって、前記TCAM内でフローを削除し、前記対応するTCAMエントリを無効にする工程をさらに含む請求項7に記載のTCAMを用いたデータフローの選択的ルーティング方法。
- 前記第1パーティションの所定の順番は、最も低い優先順位を有するインデックスで最短のプリフィックスを伴うプリフィックス値を減少することによって次にくる最も高い優先順位を有するインデックスに配置される最長のプリフィックスを伴う前記TCAMエントリの一つを有する請求項1に記載のTCAMを用いたデータフローの選択的ルーティング方法。
- 前記第2パーティションは、第1部分と第2部分とに分割され、
前記第1部分は、前記第2パーティションの最も低いインデックスからGACL−パーティションインデックスまでの範囲で、最も高い優先順位を有するインデックスを含み、
前記第2部分は、前記GACL−パーティションから前記最も高いインデックスまでの範囲で最も低い優先順位を有するインデックスを含み、
前記ACLフローが前記第1部分に割り当てられ、グローバルアクセスリストフローが前記第2部分に割り当てられる請求項3に記載のTCAMを用いたデータフローの選択的ルーティング方法。 - 前記ACLフローは、ソースまたは行き先ポートの範囲を示し、
前記TCAMにおいて、前記ACLフローを多数のフローにマッピングする工程をさらに有し、
ここで、前記多数のフローの各フローに対するマスクは、前記ソースまたは行き先ポートの範囲の部分をカバーし、前記範囲の前記部分をカバーするための多くのフローを最適に決定する請求項18に記載のTCAMを用いたデータフローの選択的ルーティング方法。 - 前記TCAMに対応するエントリを有するフローインデックス・スペースを維持する工程をさらに有する請求項18に記載のTCAMを用いたデータフローの選択的ルーティング方法。
- 前記フローインデックス・スペース内の前記対応するエントリを解放することによって前記TCAM内のフローを削除し、対応する前記TCAMエントリを無効にする工程と、
残っている前記各TCAMエントリを一つのインデックスに移動することによって、前記TCAM内の前記フローを小型化する工程と、
をさらに有する請求項20に記載のTCAMを用いたデータフローの選択的ルーティング方法。 - 前記TCAMに対応するエントリを有するフローインデックス・スペースを維持する工程をさらに有する請求項19に記載のTCAMを用いたデータフローの選択的ルーティング方法。
- 前記フローインデックス・スペース内の前記対応するエントリを解放することによって前記TCAM内の前記多数のフローを削除し、前記TCAMエントリ内の対応するエントリを無効にする工程と、
残っている前記各TCAMエントリを一つ以上のインデックスに移動することによって、前記TCAM内の前記フローを小型化する工程と、
をさらに有する請求項22に記載のTCAMを用いたデータフローの選択的ルーティング方法。 - ルータ内の複数のデータフローをクラス分けするための方法であって、
TCAM(ternary content addressable memory)を少なくとも第1のパーティションと第2のパーティションに仕切る工程と、
所定の順番で、前記第1のパーティションに、前記複数のデータフローの中から最初の一つ以上の第1フローTCAMエントリを読み込む工程と、
所定の順番で、前記第2のパーティションに、前記複数のデータフローの中から2番目の一つ以上の第2フローTCAMエントリを読み込む工程と、
前記第1TCAMエントリおよび前記第2TCAMエントリのビットのそれぞれが複数のマスクにより個々にマスクされるように、前記第1TCAMエントリおよび前記第2TCAMエントリのそれぞれに対して、対応する前記マスクのビット値を設定する工程と、
前記一つ以上の第1TCAMエントリのマッチングが前記一つ以上の第2TCAMエントリのいかなるマッチングも包含するように、入力されるパケットの所定のパケットヘッダ情報を含むプリフィックスを、読み込まれた一つ以上の前記第1TCAMエントリおよび一つ以上の前記第2TCAMエントリと比較する工程と、
を含み、
前記第1のパーティションは、最も低いインデックスからパーティションインデックスまでの範囲で最も高い優先順位を有するインデックスを含み、
前記第2のパーティションは、最も高いインデックスから前記パーティションインデックスの範囲で最も低い優先順位を有するインデックスを含み、
複数の前記第1データフローは、MPLSまたはIP−VPNフローであり、複数の前記第2データフローは、ポリシーベースのルーティングフローであるTCAMを用いたデータフローの選択的ルーティング方法。 - ルータ内の複数のデータフローをクラス分けするための方法であって、
TCAM(ternary content addressable memory)を少なくとも第1のパーティションと第2のパーティションに仕切る工程と、
所定の順番で、前記第1のパーティションに、前記複数のデータフローの中から第1データフローの一つ以上の第1フローTCAMエントリを読み込む工程と、
所定の順番で、前記第2のパーティションに、前記複数のデータフローの中から第2データフローの一つ以上の第2フローTCAMエントリを読み込む工程と、
前記第1TCAMエントリおよび前記第2TCAMエントリのビットのそれぞれが複数のマスクにより個々にマスクされるように、前記第1TCAMエントリおよび前記第2TCAMエントリのそれぞれに対して、対応する前記マスクのビット値を設定する工程と、
前記一つ以上の第1TCAMエントリのマッチングが前記一つ以上の第2TCAMエントリのいかなるマッチングも包含するように、入力されるパケットの所定のパケットヘッダ情報を含むプリフィックスを、読み込まれた一つ以上の前記第1TCAMエントリおよび一つ以上の前記第2TCAMエントリと比較する工程と、
前記TCAMに対応するエントリを有するフローインデックス・スペースを維持する工程と、
一つ以上の前記第1TCAMエントリを読み込む工程の前に、フローインデックス・スペースにおける、前記第1TCAMエントリの前記所定の順番および前記第2TCAMの前記所定の順番を決定する工程と、
を含み、
前記第1のパーティションは、最も低いインデックスからパーティションインデックスまでの範囲で最も高い優先順位を有するインデックスを含み、
前記第2のパーティションは、最も高いインデックスから前記パーティションインデックスの範囲で最も低い優先順位を有するインデックスを含むTCAMを用いたデータフローの選択的ルーティング方法。 - ルータ内の複数のデータフローをクラス分けするシステムであって、
TCAM(ternary content addressable memory)を少なくとも第1のパーティションと第2のパーティションに仕切る手段と、
所定の順番で、前記第1のパーティションに、前記複数のデータフローの中から最初の一つ以上の第1フローTCAMエントリを読み込む手段と、
所定の順番で、前記第2のパーティションに、前記複数のデータフローの中から2番目の一つ以上の第2フローTCAMエントリを読み込む手段と、
前記第1TCAMエントリおよび前記第2TCAMエントリのビットのそれぞれが複数のマスクにより個々にマスクされるように、前記第1TCAMエントリおよび前記第2TCAMエントリのそれぞれに対して、対応する前記マスクのビット値を設定する手段と、
入力されるパケットの所定のパケットヘッダ情報を含むプリフィックスを、読み込まれた一つ以上の前記第1TCAMエントリおよび一つ以上の前記第2TCAMエントリと比較する手段と、
を有し、
前記第1のパーティションは、最も低いインデックスからパーティションインデックスまでの範囲で最も高い優先順位を有するインデックスを含み、
前記第2のパーティションは、最も高いインデックスから前記パーティションインデックスの範囲で最も低い優先順位を有するインデックスを含み、
前記一つ以上の第1TCAMエントリのマッチングは、前記一つ以上の第2TCAMエントリのいかなるマッチングも包含するTCAMを用いたデータフローの選択的ルーティングシステム。 - 前記複数の第1データフローは、MPLSまたはIP−VPNフローである請求項26に記載のTCAMを用いたデータフローの選択的ルーティングシステム。
- 複数の前記第2データフローは、ポリシーベースのルーティングフローである請求項26に記載のTCAMを用いたデータフローの選択的ルーティングシステム。
- 前記ポリシーベースのルーティングフローは、アクセスコントロールリスト(ACL)フローである請求項28に記載のTCAMを用いたデータフローの選択的ルーティングシステム。
- 前記ポリシーベースのルーティングフローは、トラフィックマネージャフローである請求項28に記載のTCAMを用いたデータフローの選択的ルーティングシステム。
- 前記TCAMに対応するエントリを有するフローインデックス・スペースを維持する手段と、
前記フローインデックス・スペースにおける、前記第1TCAMエントリの前記所定の順番および前記第2TCAMの前記所定の順番を決定する手段と、
をさらに含む請求項26に記載のTCAMを用いたデータフローの選択的ルーティングシステム。 - 前記MPLSまたはIP−VPNフローは、接続インデックス(CIX)および行き先アドレス(DA)、CIXだけ、またはDAだけによってクラス分けされる請求項26に記載のTCAMを用いたデータフローの選択的ルーティングシステム。
- 前記第1パーティションは、第1部分および第2部分に分割され、
前記第1部分は、前記最も低いインデックスからgMaxCixDaFixインデックスの範囲で最も高い優先順位を有するインデックスを含み、
前記第2部分は、gMinDaOnlyFixインデックスから前記パーティションインデックスの範囲で最も低い優先順位を有するインデックスを含み、
CIXおよびDA、並びにCIXだけによってクラス分けされる前記フローは、前記第1部分に割り当てられ、DAだけによりクラス分けされる前記フローは、前記第2部分に割り当てられる請求項32に記載のTCAMを用いたデータフローの選択的ルーティングシステム。 - CIXおよびDAによってクラス分けされる前記フロー、およびCIXだけによりクラス分けされる前記フローは、前記gMaxCixDaFixインデックスから始まる前記第1部分に読み込まれ、前記DAだけによってクラス分けされるフローは、前記gMinDaOnlyFixインデックスから始まる前記第2部分に読み込まれる請求項33に記載のTCAMを用いたデータフローの選択的ルーティングシステム。
- 前記TCAMに対応するエントリを有するフローインデックス・スペースを維持し、前記CIXおよびCIXのみによりクラス分けされた前記フローをCIXプリフィックス・ツリーに割り当てる手段をさらに有する請求項32に記載のTCAMを用いたデータフローの選択的ルーティングシステム。
- 前記第1パーティションは、第1部分および第2部分に分割され、
前記第1部分は、最も低いインデックスからgMaxCixDaFixインデックスまでの範囲で最も高い優先順位を有するインデックスを含み、
前記第2部分は、gMinDaOnlyFixインデックスから前記パーティションインデックスまでの範囲で最も低い優先順位を有するインデックスと、前記gMinDaOnlyFixインデックスに隣接して設けられる前記gMaxCixDaFixインデックスと、前記第2部分の前記gMinDaOnlyFixインデックスより下に配置されるフリーエントリとを含み、
前記gMinDaOnlyFixインデックスでDAだけによりクラス分けされるフローを、前記フリーエントリに移動する手段と、
CIXおよびDA、または、CIXだけによりクラス分けされるフローを、前記gMinDaOnlyFixインデックスに割り当てる手段と、
CIXおよびDA、または、CIXだけによりクラス分けされた前記フローに割り当てられた前記インデックスで、gMaxCixDaFixインデックスを設定する手段と、
CIXおよびDA、または、CIXだけによりクラス分けされた前記フローに割り当てられた前記インデックスの直後に、gMinDaOnlyFixインデックスを設定する手段と、
をさらに含む請求項32に記載のTCAMを用いたデータフローの選択的ルーティングシステム。 - 順番を含むために前記最も低いインデックスからgMaxCixDaFixインデックスの間にある、CIXおよびDA、またはCIXだけによりクラス分けされ読み込まれる一つ以上の前記フローを整列する手段と、
順番を含むために前記gMinDaOnlyFixインデックスから前記パーティションインデックスの間にある、DAだけによりクラス分けされ読み込まれる一つ以上の前記フローを整列する手段と、
をさらに含む請求項36に記載のTCAMを用いたデータフローの選択的ルーティングシステム。 - 前記第1パーティションは、第1部分および第2部分に分割され、
前記第1部分は、前記最も低いインデックスからgMaxCixDaFixインデックスまでの範囲で最も高い優先順位を有するインデックスを含み、
前記第2部分は、gMinDaOnlyFixインデックスから前記パーティションインデックスまでの範囲で最も低い優先順位を有するインデックスと、前記gMinDaOnlyFixインデックスに隣接して設けられる前記gMaxCixDaFixインデックスと、前記第2部分の前記gMinDaOnlyFixインデックスよりも上に配置されるフリーエントリとを含み、
前記gMinDaOnlyFixでCIXおよびDA、または、CIXだけによりクラス分けされるフローを、フリーエントリに移動する手段と、
DAだけによりクラス分けされるフローを、前記gMinDaOnlyFixに割り当てる手段と、
DAだけによりクラス分けされた前記フローに割り当てられた前記インデックスで、gMinDaOnlyFixインデックスを設定する手段と、
DAだけによりクラス分けされた前記フローに割り当てられた前記インデックスの直後に、gMaxCixDaFixエントリを設定する手段と、
をさらに含む請求項32に記載のTCAMを用いたデータフローの選択的ルーティングシステム。 - 前記第1パーティションは、第1部分および第2部分に分割され、
前記第1部分は、前記最も低いインデックスからgMaxCixDaFixインデックスまでの範囲で最も高い優先順位を有するインデックスを含み、
前記第2部分は、gMinDaOnlyFixインデックスから前記パーティションインデックスまでの範囲で最も低い優先順位を有するインデックスと、前記gMinDaOnlyFixインデックスに隣接して設けられる前記gMaxCixDaFixインデックスと、前記第2部分の前記gMinDaOnlyFixインデックスよりも上に配置されるフリーエントリとを含み、
前記gMaxCixDaFixでCIXおよびDA、またはCIXだけによりクラス分けされたフローを、前記フリーエントリに移動する手段と、
DAだけによりクラス分けされたフローを、前記gMaxCixDaFixインデックスに割り当てる手段と、
前記DAだけによりクラス分けされた前記フローに割り当てられた前記インデックスで、前記gMinDaOnlyFixインデックスを設定する手段と、
前記DAだけによりクラス分けされた前記フローに割り当てられた前記インデックスの直前にgMaxCixDaFixエントリを設定する手段と、
をさらに含む請求項38に記載のTCAMを用いたデータフローの選択的ルーティングシステム。 - 前記TCAMに対応するエントリを有するフローインデックス・スペースを維持する手段と、
DAだけによりクラス分けされる前記フローを、DAプリフィックス・ツリーに、割り当てる手段と、
をさらに含む請求項32に記載のTCAMを用いたデータフローの選択的ルーティングシステム。 - 前記フローインデックス・スペース内の前記対応するエントリを解放することによって、前記TCAM内のフローを削除し、前記対応するTCAMエントリを無効にする手段をさらに含む請求項40に記載のTCAMを用いたデータフローの選択的ルーティングシステム。
- 前記第1パーティションの所定の順番は、最も低い優先順位を有するインデックスで最短のプリフィックスを伴うプリフィックス値を減少することによって次にくる最も高い優先順位を有するインデックスに配置される最長のプリフィックスを伴う前記TCAMエントリの一つを有する請求項26に記載のTCAMを用いたデータフローの選択的ルーティングシステム。
- 前記第2パーティションは、第1部分と第2部分とに分割され、
前記第1部分は、前記第2パーティションにおいて最も低いインデックスからGACL−パーティションインデックスまでの範囲で、最も高い優先順位を有するインデックスを含み、
前記第2部分は、前記GACL−パーティションから前記最も高いインデックスまでの範囲で最も低い優先順位を有するインデックスを含み、
前記ACLフローが前記第1部分に割り当てられ、グローバルアクセスリストフローが前記第2部分に割り当てられる請求項28に記載のTCAMを用いたデータフローの選択的ルーティングシステム。 - 前記ACLフローは、ソースまたは行き先ポートの範囲を示し、
前記TCAMにおいて、前記ACLフローを多数のフローにマッピングする手段をさらに有し、
ここで、前記多数のフローの各フローに対するマスクは、前記ソースまたは行き先ポートの範囲の部分をカバーし、前記範囲の前記部分をカバーするための多くのフローを最適に決定する請求項43に記載のTCAMを用いたデータフローの選択的ルーティングシステム。 - 前記TCAMに対応するエントリを有するフローインデックス・スペースを維持する手段をさらに有する請求項43に記載のTCAMを用いたデータフローの選択的ルーティングシステム。
- 前記フローインデックス・スペース内の前記対応するエントリを解放することによって前記TCAM内のフローを削除し、対応する前記TCAMエントリを無効にする手段と、
残っている前記各TCAMエントリを一つ以上のインデックスに移動することによって、前記TCAM内の前記フローを小型化する手段と、
をさらに有する請求項45に記載のTCAMを用いたデータフローの選択的ルーティングシステム。 - 前記TCAMに対応するエントリを有するフローインデックス・スペースを維持する手段をさらに有する請求項44に記載のTCAMを用いたデータフローの選択的ルーティングシステム。
- 前記フローインデックス・スペース内の前記対応するエントリを解放することによって前記TCAM内の前記多数のフローを削除し、前記TCAMエントリ内の対応するエントリを無効にする手段と、
残っている前記各TCAMエントリを一つ以上のインデックスに移動することによって、前記TCAM内の前記フローを小型化する手段と、
をさらに有する請求項47に記載のTCAMを用いたデータフローの選択的ルーティングシステム。 - ルータ内の複数のデータフローをクラス分けするシステムであって、
TCAM(ternary content addressable memory)を少なくとも第1のパーティションと第2のパーティションに仕切り、
所定の順番で、前記第1のパーティションに、前記複数のデータフローの最初の中の一つ以上の第1フローTCAMエントリを読み込む手段と、
所定の順番で、前記第2のパーティションに、前記複数のデータフローの2番目の一つ以上の第2フローTCAMエントリを読み込む手段と、
前記第1TCAMエントリおよび前記第2TCAMエントリのビットのそれぞれが複数のマスクにより個々にマスクされるように、前記第1TCAMエントリおよび前記第2TCAMエントリのそれぞれに対して、対応する前記マスクのビット値を設定する手段と、
一つ以上の前記TCAMエントリのマッチングが、一つ以上の前記TCAMエントリのいかなるマッチングも含むように、入力されるパケットの所定のパケットヘッダ情報を含むプリフィックスを、読み込まれた一つ以上の前記第1TCAMエントリおよび一つ以上の前記第2TCAMエントリと比較する手段と、
を有し、
前記第1のパーティションは、最も低いインデックスからパーティションインデックスまでの範囲で最も高い優先順位を有するインデックスを含み、
前記第2のパーティションは、最も高いインデックスから前記パーティションインデックスの範囲で最も低い優先順位を有するインデックスを含み、
複数の前記第1データフローは、MPLSまたはIP−VPNフローであり、複数の前記第2データフローはポリシーベースのルーティングフローであるTCAMを用いたデータフローの選択的ルーティングシステム。 - ルータ内の複数のデータフローをクラス分けするシステムであって、
TCAM(ternary content addressable memory)を少なくとも第1のパーティションと第2のパーティションに仕切る手段と、
所定の順番で、前記第1のパーティションに、前記複数のデータフローの最初の一つ以上の第1フローTCAMエントリを読み込む手段と、
所定の順番で、前記第2のパーティションに、前記複数のデータフローの2番目の一つ以上の第2フローTCAMエントリを読み込む手段と、
前記第1TCAMエントリおよび前記第2TCAMエントリのビットのそれぞれが複数のマスクにより個々にマスクされるように、前記第1TCAMエントリおよび前記第2TCAMエントリのそれぞれに対して、対応する前記マスクのビット値を設定する手段と、
前記一つ以上の第1TCAMエントリのマッチングは、前記一つ以上の第2TCAMエントリのいかなるマッチングも包含するように、入力されるパケット内の所定のパケットヘッダ情報を含むプリフィックスを、読み込まれた一つ以上の前記第1TCAMエントリおよび一つ以上の前記第2TCAMエントリと比較する手段と、
前記TCAMに対応するエントリを有するフローインデックス・スペースを維持する手段と、
一つ以上の前記第1TCAMエントリを読み込む前に、前記フローインデックス・スペース内において、前記第1TCAMエントリの前記所定の順番、および前記第2TCAMの前記所定の順番を決定する手段と、
を有し、
前記第1のパーティションは、最も低いインデックスからパーティションインデックスまでの範囲で最も高い優先順位を有するインデックスを含み、
前記第2のパーティションは、最も高いインデックスから前記パーティションインデックスの範囲で最も低い優先順位を有するインデックスを含むTCAMを用いたデータフローの選択的ルーティングシステム。 - ルーティングシステムにおいて複数のデータフローのクラス分けする装置であって、
TCAM(ternary content addressable memory)と、
前記TCAMを、少なくとも、最も低いインデックスからパーティションインデックスまでの範囲で最も高い優先順位を有するインデックスを含む第1のパーティションと、最も高いインデックスから前記パーティションインデックスの範囲で最も低い優先順位を有するインデックスを含む第2のパーティションとに区切るパーティションアルゴリズムと、
前記データフローの最初の一つ以上の第1フローTCAMエントリと、一つ以上の第2フローTCAMエントリを組み立てるために、それぞれのマスク値を選択し、前記第2パーティションに、前記それぞれのマスク値をロードするロードアルゴリズムと、
前記一つ以上の第1TCAMエントリのマッチングが前記一つ以上の第2フローTCAMエントリのマッチングを含むように、所定の順番で前記第1パーティションに入れられる複数のデータフローの最初に読み込まれた前記一つ以上の第1フローTCAMおよび前記一つ以上の第2フローTCAMエントリに対して、入力されたパケットの所定のパケットヘッダ情報を含むプリフィックスを結合的に比較するサーチアルゴリズムと、
を有するTCAMを用いたデータフローの選択的ルーティング装置。 - 複数の前記第1データフローは、MPLSまたはIP−VPNフローである請求項51に記載のTCAMを用いたデータフローの選択的ルーティング装置。
- 複数の前記第2データフローは、ポリシーベースのルーティングフローである請求項51に記載のTCAMを用いたデータフローの選択的ルーティング装置。
- 前記パーティションアルゴリズムおよび前記ローディングアルゴリズムは、前記TCAMに対応するエントリを有するフローインデックス・スペース内で実行され、前記第1TCAMエントリの前記所定の順番および前記第2TCAMエントリの所定の順番は、前記フローインデックス・スペース内に示される請求項51に記載のTCAMを用いたデータフローの選択的ルーティング装置。
- 前記MPLSまたはIP−VPNフローは、接続インデックス(CIX)および行き先アドレス(DA)、CIXだけ、または、DAだけによりクラス分けされる52に記載のTCAMを用いたデータフローの選択的ルーティング装置。
- 前記第1のパーティションは、第1部分および第2部分に分割され、
前記第1部分は、前記最も低いインデックスからgMaxCixDaFixインデックスの範囲で最も高い優先順位を有するインデックスを含み、
前記第2部分は、gMinDaOnlyFixインデックスから前記パーティションインデックスまでの範囲で最も低い優先順位を有するインデックスを含み、
CIXおよびDA、および、CIXだけによりクラス分けされる前記フローは、前記第1部分に割り当てられ、
DAだけによりクラス分けされる前記フローは、第2部分に割り当てられる請求項55に記載のTCAMを用いたデータフローの選択的ルーティング装置。 - CIXおよびDAによりクラス分けされる前記フロー、およびCIXによりクラス分けされる前記フローは、前記TCAMから始まり前記gMaxCixDaFixインデックスに終わる第1部分にロードされ、
前記DAだけによりクラス分けされる前記フローは、前記gMinDaOnlyFixインデックスから始まる第2部分にロードされる請求項56に記載のTCAMを用いたデータフローの選択的ルーティング装置。 - 前記TCAMに対応するエントリを有するフローインデックス・スペースを維持する手段と、
CIXによりクラス分けされた前記フローを、CIXプリフィックス・ツリーに割り当てる手段と、
をさらに有する請求項52に記載のTCAMを用いたデータフローの選択的ルーティング装置。 - 前記TCAMに対応するエントリを有するフローインデックス・スペースを維持する手段と、
DAだけによりクラス分けされた前記フローをDAプリフィックス・ツリーに割り当てる手段と、
をさらに有する請求項52に記載のTCAMを用いたデータフローの選択的ルーティング装置。 - 前記TCAM内のフローを、前記フローインデックス・スペース内の対応する前記エントリを解放することによって削除し、対応する前記TCAMエントリを無効にする手段をさらに有する請求項59に記載のTCAMを用いたデータフローの選択的ルーティング装置。
- 前記第1パーティションの所定の順番は、最も低い優先順位を有するインデックスで最短のプリフィックスを伴うプリフィックス値を減少することによって次にくる最も高い優先順位を有するインデックスに配置される最長のプリフィックスを伴う前記TCAMエントリの一つを有する請求項52に記載のTCAMを用いたデータフローの選択的ルーティング装置。
- 前記第2のパーティションは、第1部分および第2部分に分割され、
前記第1部分は、前記第2パーティションの最も低いインデックスからGACLパーティションインデックスまでの範囲で最も高い優先順位を有するインデックスを含み、
前記第2部分は、前記GACLパーティションインデックスから前記第2パーティション内の前記最も高いインデックスまでの範囲で最も低い優先順位を有するインデックスを含み、
前記ACLフローは、前記第1部分に割り当てられ、グローバルアクセスリストフローは、前記第2部分に割り当てられる請求項53に記載のTCAMを用いたデータフローの選択的ルーティング装置。 - 前記ACLフローは、ソースまたは行き先ポートの範囲を示し、
前記ACLフローを前記TCAM内の多数のフローにマッピングする手段をさらに有し、
前記多重フローのそれぞれのための前記マスクは、ソースまたは行き先ポートの前記範囲を一部をカバーする請求項62に記載のTCAMを用いたデータフローの選択的ルーティング装置。 - 前記TCAMに対応するエントリを有するフローインデックス・スペースを維持する手段をさらに有する請求項62に記載のTCAMを用いたデータフローの選択的ルーティング装置。
- 前記フローインデックス・スペース内の対応するエントリを解放することによって、前記TCAM内のフローを移動し、対応する前記TCAMエントリを無効にする手段と、
残っている前記TCAMエントリを一つのインデックスに移動することによって、前記TCAM内の前記フローを小型化する手段と、
をさらに有する請求項64に記載のTCAMを用いたデータフローの選択的ルーティング装置。 - 前記TCAMに対応するエントリを有するフローインデックス・スペースを維持する手段をさらに有する請求項62に記載のTCAMを用いたデータフローの選択的ルーティング装置。
- 前記フローインデックス・スペース内の対応する前記エントリを解放することによって、前記TCAM内の前記多重フローを移動し、前記TCAMエントリ内の対応するエントリを無効にする手段と、
残っている各前記TCAMエントリを一つ以上のインデックスに移動することによって、前記TCAM内の前記フローを小型化する手段と、
をさらに有する請求項62に記載のTCAMを用いたデータフローの選択的ルーティング装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/909,739 US7028098B2 (en) | 2001-07-20 | 2001-07-20 | Selective routing of data flows using a TCAM |
PCT/US2002/021229 WO2003012672A2 (en) | 2001-07-20 | 2002-07-03 | Selective routing of data flows using a tcam |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004522383A JP2004522383A (ja) | 2004-07-22 |
JP3800546B2 true JP3800546B2 (ja) | 2006-07-26 |
Family
ID=25427747
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003517777A Expired - Fee Related JP3800546B2 (ja) | 2001-07-20 | 2002-07-03 | Tcamを使用するデータフローの選択的なルーティング方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US7028098B2 (ja) |
EP (1) | EP1352334A4 (ja) |
JP (1) | JP3800546B2 (ja) |
CN (1) | CN1282104C (ja) |
CA (1) | CA2422439A1 (ja) |
WO (1) | WO2003012672A2 (ja) |
Families Citing this family (150)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6944709B2 (en) * | 1999-09-23 | 2005-09-13 | Netlogic Microsystems, Inc. | Content addressable memory with block-programmable mask write mode, word width and priority |
US6934795B2 (en) * | 1999-09-23 | 2005-08-23 | Netlogic Microsystems, Inc. | Content addressable memory with programmable word width and programmable priority |
US6912576B1 (en) * | 2000-05-04 | 2005-06-28 | Broadcom Corporation | System and method of processing data flow in multi-channel, multi-service environment by dynamically allocating a socket |
CN1180582C (zh) * | 2001-06-21 | 2004-12-15 | 华为技术有限公司 | 多标签协议交换虚拟私有网配置管理系统及其划分方法 |
US7418536B2 (en) * | 2001-07-30 | 2008-08-26 | Cisco Technology, Inc. | Processor having systolic array pipeline for processing data packets |
US7382787B1 (en) | 2001-07-30 | 2008-06-03 | Cisco Technology, Inc. | Packet routing and switching device |
US20030033467A1 (en) * | 2001-08-08 | 2003-02-13 | Satoshi Yoshizawa | Method and apparatus for resource allocation in network router and switch |
US7636937B1 (en) * | 2002-01-11 | 2009-12-22 | Cisco Technology, Inc. | Method and apparatus for comparing access control lists for configuring a security policy on a network |
JP3936883B2 (ja) * | 2002-04-08 | 2007-06-27 | 株式会社日立製作所 | フロー検出装置およびフロー検出機能を備えたパケット転送装置 |
US7710991B1 (en) | 2002-06-20 | 2010-05-04 | Cisco Technology, Inc. | Scalable packet routing and switching device and method |
US7450438B1 (en) | 2002-06-20 | 2008-11-11 | Cisco Technology, Inc. | Crossbar apparatus for a forwarding table memory in a router |
US7525904B1 (en) | 2002-06-20 | 2009-04-28 | Cisco Technology, Inc. | Redundant packet routing and switching device and method |
US7536476B1 (en) * | 2002-12-20 | 2009-05-19 | Cisco Technology, Inc. | Method for performing tree based ACL lookups |
US7467227B1 (en) * | 2002-12-31 | 2008-12-16 | At&T Corp. | System using policy filter decision to map data traffic to virtual networks for forwarding the traffic in a regional access network |
US6996664B2 (en) * | 2003-01-22 | 2006-02-07 | Micron Technology, Inc. | Ternary content addressable memory with enhanced priority matching |
US7496035B1 (en) * | 2003-01-31 | 2009-02-24 | Cisco Technology, Inc. | Methods and apparatus for defining flow types and instances thereof such as for identifying packets corresponding to instances of the flow types |
JPWO2004105310A1 (ja) * | 2003-05-19 | 2006-07-20 | 富士通株式会社 | 暗号化装置、暗号化方法および暗号化プログラム |
US7523485B1 (en) * | 2003-05-21 | 2009-04-21 | Foundry Networks, Inc. | System and method for source IP anti-spoofing security |
US7516487B1 (en) | 2003-05-21 | 2009-04-07 | Foundry Networks, Inc. | System and method for source IP anti-spoofing security |
US20040255154A1 (en) * | 2003-06-11 | 2004-12-16 | Foundry Networks, Inc. | Multiple tiered network security system, method and apparatus |
US7876772B2 (en) | 2003-08-01 | 2011-01-25 | Foundry Networks, Llc | System, method and apparatus for providing multiple access modes in a data communications network |
US7735114B2 (en) * | 2003-09-04 | 2010-06-08 | Foundry Networks, Inc. | Multiple tiered network security system, method and apparatus using dynamic user policy assignment |
US7774833B1 (en) | 2003-09-23 | 2010-08-10 | Foundry Networks, Inc. | System and method for protecting CPU against remote access attacks |
US7509674B2 (en) * | 2003-10-07 | 2009-03-24 | Alcatel Lucent | Access control listing mechanism for routers |
US20050102428A1 (en) * | 2003-11-12 | 2005-05-12 | Heintze Nevin C. | Memory management for ternary CAMs and the like |
US8528071B1 (en) | 2003-12-05 | 2013-09-03 | Foundry Networks, Llc | System and method for flexible authentication in a data communications network |
US20060007926A1 (en) * | 2003-12-19 | 2006-01-12 | Zur Uri E | System and method for providing pooling or dynamic allocation of connection context data |
US7359381B2 (en) * | 2004-01-30 | 2008-04-15 | Hewlett-Packard Development Company, L.P. | Parallel hardware arrangement for correlating an external transport address pair with a local endpoint association |
CN1697408B (zh) * | 2004-05-14 | 2010-04-28 | 华为技术有限公司 | 一种基于IPv6的虚拟专用网管理路由的方法 |
US7411910B1 (en) * | 2004-07-06 | 2008-08-12 | Juniper Networks, Inc. | Systems and methods for automatic provisioning of data flows |
US20060006248A1 (en) | 2004-07-06 | 2006-01-12 | Chin-Chiang Wu | Floating rotatable fountain decoration |
CN100426786C (zh) * | 2004-08-18 | 2008-10-15 | 华为技术有限公司 | 基于访问控制列表的网络访问控制方法 |
US20060050645A1 (en) * | 2004-09-03 | 2006-03-09 | Chappell Christopher L | Packet validity checking in switched fabric networks |
US7535845B2 (en) * | 2004-10-28 | 2009-05-19 | Alcatel Lucent | Intelligent selective flow-based datapath architecture |
US7889712B2 (en) | 2004-12-23 | 2011-02-15 | Cisco Technology, Inc. | Methods and apparatus for providing loop free routing tables |
US9148409B2 (en) | 2005-06-30 | 2015-09-29 | The Chamberlain Group, Inc. | Method and apparatus to facilitate message transmission and reception using different transmission characteristics |
USRE48433E1 (en) | 2005-01-27 | 2021-02-09 | The Chamberlain Group, Inc. | Method and apparatus to facilitate transmission of an encrypted rolling code |
US8422667B2 (en) | 2005-01-27 | 2013-04-16 | The Chamberlain Group, Inc. | Method and apparatus to facilitate transmission of an encrypted rolling code |
US20230336342A1 (en) | 2005-01-27 | 2023-10-19 | The Chamberlain Group Llc | Method and apparatus to facilitate transmission of an encrypted rolling code |
CN1327674C (zh) * | 2005-02-25 | 2007-07-18 | 清华大学 | 核心路由器上支持访问控制列表功能的双栈兼容路由查找器 |
US20070006294A1 (en) * | 2005-06-30 | 2007-01-04 | Hunter G K | Secure flow control for a data flow in a computer and data flow in a computer network |
US7643496B1 (en) | 2005-09-30 | 2010-01-05 | Nortel Networks Limited | Application specified steering policy implementation |
US7869442B1 (en) * | 2005-09-30 | 2011-01-11 | Nortel Networks Limited | Method and apparatus for specifying IP termination in a network element |
US7508829B2 (en) * | 2005-11-30 | 2009-03-24 | Cisco Technology, Inc. | Method and apparatus providing prioritized recursion resolution of border gateway protocol forwarding information bases |
US7832009B2 (en) * | 2005-12-28 | 2010-11-09 | Foundry Networks, Llc | Techniques for preventing attacks on computer systems and networks |
CN100571202C (zh) * | 2006-01-27 | 2009-12-16 | 华为技术有限公司 | 一种自带路由信息的数据的传送方法及传送系统 |
CN101035061B (zh) * | 2006-03-09 | 2010-05-12 | 中兴通讯股份有限公司 | 实现三重内容可寻址存储器范围匹配的分段编码扩展方法 |
CN100396015C (zh) * | 2006-03-29 | 2008-06-18 | 华为技术有限公司 | 一种tcam路由表管理方法和系统 |
US7760668B1 (en) * | 2006-06-20 | 2010-07-20 | Force 10 Networks, Inc. | Self-reconfiguring spanning tree |
CN100450100C (zh) * | 2006-08-29 | 2009-01-07 | 华为技术有限公司 | 一种路由方法和路由设备 |
KR100745693B1 (ko) * | 2006-09-29 | 2007-08-03 | 한국전자통신연구원 | Tcam 테이블 관리 방법 |
US20080175241A1 (en) * | 2007-01-18 | 2008-07-24 | Ut Starcom, Incorporated | System and method for obtaining packet forwarding information |
WO2008097710A2 (en) * | 2007-02-02 | 2008-08-14 | Tarari, Inc. | Systems and methods for processing access control lists (acls) in network switches using regular expression matching logic |
US7706375B2 (en) * | 2007-02-06 | 2010-04-27 | Alcatel Lucent | System and method of fast adaptive TCAM sorting for IP longest prefix matching |
US7813277B2 (en) * | 2007-06-29 | 2010-10-12 | Packeteer, Inc. | Lockless bandwidth management for multiprocessor networking devices |
WO2008121690A2 (en) * | 2007-03-30 | 2008-10-09 | Packeteer, Inc. | Data and control plane architecture for network application traffic management device |
US8279885B2 (en) * | 2007-09-25 | 2012-10-02 | Packeteer, Inc. | Lockless processing of command operations in multiprocessor systems |
US8059532B2 (en) * | 2007-06-21 | 2011-11-15 | Packeteer, Inc. | Data and control plane architecture including server-side triggered flow policy mechanism |
US9419867B2 (en) * | 2007-03-30 | 2016-08-16 | Blue Coat Systems, Inc. | Data and control plane architecture for network application traffic management device |
US8111707B2 (en) * | 2007-12-20 | 2012-02-07 | Packeteer, Inc. | Compression mechanisms for control plane—data plane processing architectures |
CN101090355B (zh) * | 2007-07-24 | 2010-09-22 | 杭州华三通信技术有限公司 | 虚拟专用网隧道的标签交换路径建立方法、系统和设备 |
US8089961B2 (en) * | 2007-12-07 | 2012-01-03 | University Of Florida Research Foundation, Inc. | Low power ternary content-addressable memory (TCAMs) for very large forwarding tables |
US8205040B1 (en) * | 2008-01-29 | 2012-06-19 | Juniper Networks, Inc. | Storing content in a ternary content addressable memory |
CN101222434B (zh) * | 2008-01-31 | 2011-04-20 | 福建星网锐捷网络有限公司 | 存储策略控制列表、策略搜索方法和三态寻址存储器 |
US8581695B2 (en) * | 2009-05-27 | 2013-11-12 | Grant B. Carlson | Channel-switching remote controlled barrier opening system |
CN101710873B (zh) * | 2009-12-08 | 2012-05-23 | 中兴通讯股份有限公司 | 配置数据管理的方法和装置 |
CN101820383B (zh) * | 2010-01-27 | 2014-12-10 | 中兴通讯股份有限公司 | 限制交换机远程访问的方法及装置 |
US8345688B2 (en) * | 2010-02-23 | 2013-01-01 | Google Inc. | System and method for managing flow of packets |
JP5299856B2 (ja) * | 2010-04-19 | 2013-09-25 | 日本電気株式会社 | スイッチ、及びフローテーブル制御方法 |
CN102122270B (zh) * | 2011-02-23 | 2013-08-07 | 华为技术有限公司 | 在存储器中查找数据的方法和装置以及存储器 |
US8874876B2 (en) | 2011-03-22 | 2014-10-28 | Texas Instruments Incorporated | Method and apparatus for packet switching |
US9736065B2 (en) | 2011-06-24 | 2017-08-15 | Cisco Technology, Inc. | Level of hierarchy in MST for traffic localization and load balancing |
CN102291301B (zh) * | 2011-08-10 | 2015-06-10 | 杭州迪普科技有限公司 | 一种报文特征的匹配方法及装置 |
US8908698B2 (en) | 2012-01-13 | 2014-12-09 | Cisco Technology, Inc. | System and method for managing site-to-site VPNs of a cloud managed network |
KR101357342B1 (ko) * | 2012-03-15 | 2014-02-04 | 엘에스산전 주식회사 | 하드웨어 프로토콜 스택 |
US8775726B2 (en) | 2012-07-27 | 2014-07-08 | International Business Machine Corporation | TCAM extended search function |
US9092469B2 (en) * | 2012-08-22 | 2015-07-28 | Empire Technology Development Llc | Partitioning sorted data sets |
US9306840B2 (en) * | 2012-09-26 | 2016-04-05 | Alcatel Lucent | Securing software defined networks via flow deflection |
US10367914B2 (en) | 2016-01-12 | 2019-07-30 | Cisco Technology, Inc. | Attaching service level agreements to application containers and enabling service assurance |
CN103812959B (zh) * | 2012-11-15 | 2017-05-31 | 中国电信股份有限公司 | 集中管理ip地址的方法与系统 |
US9135997B2 (en) * | 2013-01-18 | 2015-09-15 | Fujitsu Limited | System and method for filtering addresses |
US9043439B2 (en) | 2013-03-14 | 2015-05-26 | Cisco Technology, Inc. | Method for streaming packet captures from network access devices to a cloud server over HTTP |
GB2516837B (en) | 2013-07-31 | 2015-12-09 | Ip Access Ltd | Network elements, wireless communication system and methods therefor |
CN105474181B (zh) * | 2013-08-31 | 2018-12-11 | 英派尔科技开发有限公司 | 内容可寻址存储器设备 |
JP6268943B2 (ja) | 2013-11-06 | 2018-01-31 | 富士通株式会社 | 情報処理システム,スイッチ装置及び情報処理システムの制御方法 |
CN104954271B (zh) | 2014-03-26 | 2018-11-30 | 国际商业机器公司 | Sdn网络中的数据包处理方法和装置 |
US10122605B2 (en) | 2014-07-09 | 2018-11-06 | Cisco Technology, Inc | Annotation of network activity through different phases of execution |
US9825878B2 (en) | 2014-09-26 | 2017-11-21 | Cisco Technology, Inc. | Distributed application framework for prioritizing network traffic using application priority awareness |
CN105743678A (zh) * | 2014-12-11 | 2016-07-06 | 中兴通讯股份有限公司 | 管理三态内容寻址存储器tcam表空间的方法及装置 |
CN105791455B (zh) * | 2014-12-26 | 2020-04-07 | 中兴通讯股份有限公司 | 三态内容寻址存储器tcam空间的处理方法及装置 |
US10050862B2 (en) | 2015-02-09 | 2018-08-14 | Cisco Technology, Inc. | Distributed application framework that uses network and application awareness for placing data |
US10708342B2 (en) | 2015-02-27 | 2020-07-07 | Cisco Technology, Inc. | Dynamic troubleshooting workspaces for cloud and network management systems |
US9825865B1 (en) | 2015-03-25 | 2017-11-21 | Cisco Technology, Inc. | Statistical operations associated with network traffic forwarding |
US10382534B1 (en) | 2015-04-04 | 2019-08-13 | Cisco Technology, Inc. | Selective load balancing of network traffic |
US9853903B1 (en) * | 2015-04-23 | 2017-12-26 | Cisco Technology, Inc. | Simultaneous redirecting and load balancing |
US10476982B2 (en) | 2015-05-15 | 2019-11-12 | Cisco Technology, Inc. | Multi-datacenter message queue |
US10034201B2 (en) | 2015-07-09 | 2018-07-24 | Cisco Technology, Inc. | Stateless load-balancing across multiple tunnels |
JP6582723B2 (ja) | 2015-08-19 | 2019-10-02 | 富士通株式会社 | ネットワークシステム、スイッチ装置、及びネットワークシステム制御方法 |
US10193809B1 (en) | 2015-09-30 | 2019-01-29 | Cisco Technology, Inc. | Load balancing methods based on transport layer port numbers for a network switch |
US11005682B2 (en) | 2015-10-06 | 2021-05-11 | Cisco Technology, Inc. | Policy-driven switch overlay bypass in a hybrid cloud network environment |
US10462136B2 (en) | 2015-10-13 | 2019-10-29 | Cisco Technology, Inc. | Hybrid cloud security groups |
US10523657B2 (en) | 2015-11-16 | 2019-12-31 | Cisco Technology, Inc. | Endpoint privacy preservation with cloud conferencing |
US10205677B2 (en) | 2015-11-24 | 2019-02-12 | Cisco Technology, Inc. | Cloud resource placement optimization and migration execution in federated clouds |
US10084703B2 (en) | 2015-12-04 | 2018-09-25 | Cisco Technology, Inc. | Infrastructure-exclusive service forwarding |
US10129177B2 (en) | 2016-05-23 | 2018-11-13 | Cisco Technology, Inc. | Inter-cloud broker for hybrid cloud networks |
US10659283B2 (en) | 2016-07-08 | 2020-05-19 | Cisco Technology, Inc. | Reducing ARP/ND flooding in cloud environment |
US10432532B2 (en) | 2016-07-12 | 2019-10-01 | Cisco Technology, Inc. | Dynamically pinning micro-service to uplink port |
US10382597B2 (en) | 2016-07-20 | 2019-08-13 | Cisco Technology, Inc. | System and method for transport-layer level identification and isolation of container traffic |
US10263898B2 (en) | 2016-07-20 | 2019-04-16 | Cisco Technology, Inc. | System and method for implementing universal cloud classification (UCC) as a service (UCCaaS) |
US10142346B2 (en) | 2016-07-28 | 2018-11-27 | Cisco Technology, Inc. | Extension of a private cloud end-point group to a public cloud |
US10567344B2 (en) | 2016-08-23 | 2020-02-18 | Cisco Technology, Inc. | Automatic firewall configuration based on aggregated cloud managed information |
US10523592B2 (en) | 2016-10-10 | 2019-12-31 | Cisco Technology, Inc. | Orchestration system for migrating user data and services based on user information |
US11044162B2 (en) | 2016-12-06 | 2021-06-22 | Cisco Technology, Inc. | Orchestration of cloud and fog interactions |
US10848432B2 (en) | 2016-12-18 | 2020-11-24 | Cisco Technology, Inc. | Switch fabric based load balancing |
US10326817B2 (en) | 2016-12-20 | 2019-06-18 | Cisco Technology, Inc. | System and method for quality-aware recording in large scale collaborate clouds |
US10334029B2 (en) | 2017-01-10 | 2019-06-25 | Cisco Technology, Inc. | Forming neighborhood groups from disperse cloud providers |
US10552191B2 (en) | 2017-01-26 | 2020-02-04 | Cisco Technology, Inc. | Distributed hybrid cloud orchestration model |
US10320683B2 (en) | 2017-01-30 | 2019-06-11 | Cisco Technology, Inc. | Reliable load-balancer using segment routing and real-time application monitoring |
US10671571B2 (en) | 2017-01-31 | 2020-06-02 | Cisco Technology, Inc. | Fast network performance in containerized environments for network function virtualization |
JP6446494B2 (ja) * | 2017-03-23 | 2018-12-26 | エヌ・ティ・ティ・コミュニケーションズ株式会社 | エッジノード装置、リソース制御方法、及びプログラム |
US11005731B2 (en) | 2017-04-05 | 2021-05-11 | Cisco Technology, Inc. | Estimating model parameters for automatic deployment of scalable micro services |
US10439877B2 (en) | 2017-06-26 | 2019-10-08 | Cisco Technology, Inc. | Systems and methods for enabling wide area multicast domain name system |
US10382274B2 (en) | 2017-06-26 | 2019-08-13 | Cisco Technology, Inc. | System and method for wide area zero-configuration network auto configuration |
US10425288B2 (en) | 2017-07-21 | 2019-09-24 | Cisco Technology, Inc. | Container telemetry in data center environments with blade servers and switches |
US10892940B2 (en) | 2017-07-21 | 2021-01-12 | Cisco Technology, Inc. | Scalable statistics and analytics mechanisms in cloud networking |
US10601693B2 (en) | 2017-07-24 | 2020-03-24 | Cisco Technology, Inc. | System and method for providing scalable flow monitoring in a data center fabric |
US10541866B2 (en) | 2017-07-25 | 2020-01-21 | Cisco Technology, Inc. | Detecting and resolving multicast traffic performance issues |
US10965598B1 (en) | 2017-10-04 | 2021-03-30 | Cisco Technology, Inc. | Load balancing in a service chain |
US11082312B2 (en) | 2017-10-04 | 2021-08-03 | Cisco Technology, Inc. | Service chaining segmentation analytics |
US10965596B2 (en) | 2017-10-04 | 2021-03-30 | Cisco Technology, Inc. | Hybrid services insertion |
EP3707864A4 (en) | 2017-11-06 | 2021-08-18 | Pensando Systems Inc. | NETWORK SYSTEM WITH MATCH PROCESSING UNIT FOR TABLE-BASED ACTIONS |
US11481362B2 (en) | 2017-11-13 | 2022-10-25 | Cisco Technology, Inc. | Using persistent memory to enable restartability of bulk load transactions in cloud databases |
US10652743B2 (en) | 2017-12-21 | 2020-05-12 | The Chamberlain Group, Inc. | Security system for a moveable barrier operator |
US10705882B2 (en) | 2017-12-21 | 2020-07-07 | Cisco Technology, Inc. | System and method for resource placement across clouds for data intensive workloads |
US11595474B2 (en) | 2017-12-28 | 2023-02-28 | Cisco Technology, Inc. | Accelerating data replication using multicast and non-volatile memory enabled nodes |
US11263158B2 (en) | 2018-02-22 | 2022-03-01 | Pensando Systems Inc. | Programmable computer IO device interface |
US10511534B2 (en) | 2018-04-06 | 2019-12-17 | Cisco Technology, Inc. | Stateless distributed load-balancing |
US10728361B2 (en) | 2018-05-29 | 2020-07-28 | Cisco Technology, Inc. | System for association of customer information across subscribers |
US10904322B2 (en) | 2018-06-15 | 2021-01-26 | Cisco Technology, Inc. | Systems and methods for scaling down cloud-based servers handling secure connections |
US10764266B2 (en) | 2018-06-19 | 2020-09-01 | Cisco Technology, Inc. | Distributed authentication and authorization for rapid scaling of containerized services |
US11019083B2 (en) | 2018-06-20 | 2021-05-25 | Cisco Technology, Inc. | System for coordinating distributed website analysis |
US11074773B1 (en) | 2018-06-27 | 2021-07-27 | The Chamberlain Group, Inc. | Network-based control of movable barrier operators for autonomous vehicles |
US10819571B2 (en) | 2018-06-29 | 2020-10-27 | Cisco Technology, Inc. | Network traffic optimization using in-situ notification system |
US10904342B2 (en) | 2018-07-30 | 2021-01-26 | Cisco Technology, Inc. | Container networking using communication tunnels |
US11423717B2 (en) | 2018-08-01 | 2022-08-23 | The Chamberlain Group Llc | Movable barrier operator and transmitter pairing over a network |
US10997810B2 (en) | 2019-05-16 | 2021-05-04 | The Chamberlain Group, Inc. | In-vehicle transmitter training |
CN113434673B (zh) * | 2021-06-24 | 2024-01-19 | 贝壳找房(北京)科技有限公司 | 数据处理方法和计算机可读存储介质、电子设备 |
CN113656329B (zh) * | 2021-08-09 | 2024-02-02 | 国家计算机网络与信息安全管理中心 | 一种基于tcam的掩码规则插入方法、电子设备和存储介质 |
CA3182192A1 (en) | 2021-11-24 | 2023-05-24 | Gmi Holdings, Inc. | Multi-channel signaling for a barrier operator system |
WO2025020081A1 (en) * | 2023-07-25 | 2025-01-30 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatus for flow information handling |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1994001828A1 (en) * | 1992-07-02 | 1994-01-20 | Wellfleet Communications | Data packet processing method and apparatus |
US5386413A (en) * | 1993-03-19 | 1995-01-31 | Bell Communications Research, Inc. | Fast multilevel hierarchical routing table lookup using content addressable memory |
DE69321145T2 (de) * | 1993-03-20 | 1999-06-02 | International Business Machines Corp., Armonk, N.Y. | Verfahren und vorrichtung zur herausarbeitung der vermittlungsinformation aus dem kopfteil eines protokolls |
FR2741466B1 (fr) * | 1995-11-22 | 1998-01-16 | Matra Mhs | Dispositif de filtrage de messages incidents dans un controleur de noeud de reseau informatique |
US5841874A (en) * | 1996-08-13 | 1998-11-24 | Motorola, Inc. | Ternary CAM memory architecture and methodology |
GB2316572B (en) * | 1996-08-14 | 2000-12-20 | Fujitsu Ltd | Multicasting in switching apparatus |
US6130889A (en) * | 1996-10-02 | 2000-10-10 | International Business Machines Corporation | Determining and maintaining hop-count for switched networks |
US5920886A (en) * | 1997-03-14 | 1999-07-06 | Music Semiconductor Corporation | Accelerated hierarchical address filtering and translation using binary and ternary CAMs |
US6173333B1 (en) * | 1997-07-18 | 2001-01-09 | Interprophet Corporation | TCP/IP network accelerator system and method which identifies classes of packet traffic for predictable protocols |
US6266706B1 (en) * | 1997-09-15 | 2001-07-24 | Effnet Group Ab | Fast routing lookup system using complete prefix tree, bit vector, and pointers in a routing table for determining where to route IP datagrams |
US6061712A (en) * | 1998-01-07 | 2000-05-09 | Lucent Technologies, Inc. | Method for IP routing table look-up |
US6052683A (en) * | 1998-02-24 | 2000-04-18 | Nortel Networks Corporation | Address lookup in packet data communication networks |
US6272131B1 (en) * | 1998-06-11 | 2001-08-07 | Synchrodyne Networks, Inc. | Integrated data packet network using a common time reference |
US5991300A (en) * | 1998-09-08 | 1999-11-23 | Cisco Technology, Inc. | Technique for efficiently performing optional TTL propagation during label imposition |
US6081440A (en) * | 1998-11-05 | 2000-06-27 | Lara Technology, Inc. | Ternary content addressable memory (CAM) having fast insertion and deletion of data values |
US6205488B1 (en) * | 1998-11-13 | 2001-03-20 | Nortel Networks Limited | Internet protocol virtual private network realization using multi-protocol label switching tunnels |
US6237061B1 (en) * | 1999-01-05 | 2001-05-22 | Netlogic Microsystems, Inc. | Method for longest prefix matching in a content addressable memory |
US6044005A (en) * | 1999-02-03 | 2000-03-28 | Sibercore Technologies Incorporated | Content addressable memory storage device |
US6278995B1 (en) * | 1999-03-02 | 2001-08-21 | Nms Communications Corporation | Apparatus and method for providing a binary range tree search |
US6295532B1 (en) * | 1999-03-02 | 2001-09-25 | Nms Communications Corporation | Apparatus and method for classifying information received by a communications system |
US6137707A (en) * | 1999-03-26 | 2000-10-24 | Netlogic Microsystems | Method and apparatus for simultaneously performing a plurality of compare operations in content addressable memory device |
US6687785B1 (en) * | 2000-06-08 | 2004-02-03 | Netlogic Microsystems, Inc. | Method and apparatus for re-assigning priority in a partitioned content addressable memory device |
US6324087B1 (en) * | 2000-06-08 | 2001-11-27 | Netlogic Microsystems, Inc. | Method and apparatus for partitioning a content addressable memory device |
US6763425B1 (en) * | 2000-06-08 | 2004-07-13 | Netlogic Microsystems, Inc. | Method and apparatus for address translation in a partitioned content addressable memory device |
US6154384A (en) * | 1999-11-12 | 2000-11-28 | Netlogic Microsystems, Inc. | Ternary content addressable memory cell |
US6594704B1 (en) * | 1999-12-15 | 2003-07-15 | Quarry Technologies | Method of managing and using multiple virtual private networks in a router with a single routing table |
US6502163B1 (en) * | 1999-12-17 | 2002-12-31 | Lara Technology, Inc. | Method and apparatus for ordering entries in a ternary content addressable memory |
US6718326B2 (en) * | 2000-08-17 | 2004-04-06 | Nippon Telegraph And Telephone Corporation | Packet classification search device and method |
US6516383B1 (en) * | 2001-05-30 | 2003-02-04 | Cisco Technology, Inc. | Techniques for efficient location of free entries for TCAM inserts |
-
2001
- 2001-07-20 US US09/909,739 patent/US7028098B2/en not_active Expired - Lifetime
-
2002
- 2002-07-03 EP EP02748075A patent/EP1352334A4/en not_active Withdrawn
- 2002-07-03 JP JP2003517777A patent/JP3800546B2/ja not_active Expired - Fee Related
- 2002-07-03 CA CA002422439A patent/CA2422439A1/en not_active Abandoned
- 2002-07-03 CN CNB028024532A patent/CN1282104C/zh not_active Expired - Fee Related
- 2002-07-03 WO PCT/US2002/021229 patent/WO2003012672A2/en not_active Application Discontinuation
Also Published As
Publication number | Publication date |
---|---|
EP1352334A4 (en) | 2007-01-03 |
CN1465014A (zh) | 2003-12-31 |
CA2422439A1 (en) | 2003-02-13 |
WO2003012672A2 (en) | 2003-02-13 |
EP1352334A2 (en) | 2003-10-15 |
US20030056001A1 (en) | 2003-03-20 |
JP2004522383A (ja) | 2004-07-22 |
WO2003012672A3 (en) | 2003-04-17 |
CN1282104C (zh) | 2006-10-25 |
US7028098B2 (en) | 2006-04-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3800546B2 (ja) | Tcamを使用するデータフローの選択的なルーティング方法 | |
CA2400343C (en) | Apparatus and method for performing high-speed ip route lookup and managing routing/forwarding tables | |
US7602787B2 (en) | Using ternary and binary content addressable memory stages to classify information such as packets | |
US6449256B1 (en) | Fast level four switching using crossproducting | |
US7227842B1 (en) | Fast IP packet classification with configurable processor | |
US6212184B1 (en) | Fast scaleable methods and devices for layer four switching | |
US7535906B2 (en) | Packet classification | |
US7545809B2 (en) | Packet classification | |
US10715439B2 (en) | Longest prefix matching providing packet processing and/or memory efficiencies in processing of packets | |
US7149216B1 (en) | M-trie based packet processing | |
US7251651B2 (en) | Packet classification | |
US7292569B1 (en) | Distributed router forwarding architecture employing global translation indices | |
US8151339B2 (en) | Method and apparatus for implementing filter rules in a network element | |
CN101035060A (zh) | 一种三重内容可寻址存储器报文分类的统一处理方法 | |
US7864776B2 (en) | Method and equipment for making a routing decision dependent on a quality-of-service class | |
US6970971B1 (en) | Method and apparatus for mapping prefixes and values of a hierarchical space to other representations | |
WO2003027854A1 (en) | Technique for updating a content addressable memory | |
US8488470B2 (en) | Withdrawing multiple advertised routes based on a single tag which may be of particular use in border gateway protocol | |
US7299317B1 (en) | Assigning prefixes to associative memory classes based on a value of a last bit of each prefix and their use including but not limited to locating a prefix and for maintaining a Patricia tree data structure | |
US20080123663A1 (en) | Method and apparatus for managing ternary content addressable memory entries for use in a data packet routing device | |
US7551609B2 (en) | Data structure for storing and accessing multiple independent sets of forwarding information | |
RU2233473C2 (ru) | Устройство и способ выполнения высокоскоростного поиска маршрутов протокола интернет и управления таблицами маршрутизации/пересылки | |
US7240149B1 (en) | Multiple branch operations in an associative memory | |
US7496035B1 (en) | Methods and apparatus for defining flow types and instances thereof such as for identifying packets corresponding to instances of the flow types | |
CN119094439A (zh) | 一种存储acl表项、匹配acl表项的方法和网络设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060202 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060328 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060420 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 3800546 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100512 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110512 Year of fee payment: 5 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110512 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120512 Year of fee payment: 6 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130512 Year of fee payment: 7 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130512 Year of fee payment: 7 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
R371 | Transfer withdrawn |
Free format text: JAPANESE INTERMEDIATE CODE: R371 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
R371 | Transfer withdrawn |
Free format text: JAPANESE INTERMEDIATE CODE: R371 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |