JP2004522383A - Tcamを使用するデータフローの選択的なルーティング方法 - Google Patents

Tcamを使用するデータフローの選択的なルーティング方法 Download PDF

Info

Publication number
JP2004522383A
JP2004522383A JP2003517777A JP2003517777A JP2004522383A JP 2004522383 A JP2004522383 A JP 2004522383A JP 2003517777 A JP2003517777 A JP 2003517777A JP 2003517777 A JP2003517777 A JP 2003517777A JP 2004522383 A JP2004522383 A JP 2004522383A
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.)
Granted
Application number
JP2003517777A
Other languages
English (en)
Other versions
JP3800546B2 (ja
Inventor
メイト,アシュトッシュ
マハムニ,アトゥル
チャンダー,ヴィジェイ
Original Assignee
ノキア インコーポレイテッド
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 ノキア インコーポレイテッド filed Critical ノキア インコーポレイテッド
Publication of JP2004522383A publication Critical patent/JP2004522383A/ja
Application granted granted Critical
Publication of JP3800546B2 publication Critical patent/JP3800546B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/6215Individual queue per QOS, rate or priority
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/50Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/74591Address table lookup; Address filtering using content-addressable memories [CAM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/625Queue scheduling characterised by scheduling criteria for service slots or service orders
    • H04L47/627Queue scheduling characterised by scheduling criteria for service slots or service orders policing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/901Buffering arrangements using storage descriptor, e.g. read or write pointers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9036Common buffer combined with individual queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9047Buffering arrangements including multiple buffers, e.g. buffer pools
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9063Intermediate storage in different physical parts of a node or terminal
    • H04L49/9068Intermediate storage in different physical parts of a node or terminal in the network interface card
    • H04L49/9073Early interruption upon arrival of a fraction of a packet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer 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)

Abstract

本発明は、複数のデータフローに対応するために、更新および次のルックアップの効率を改善するために最適化されたTCAMを用いた複数のデータフローのルータ内のルーティングを支援する方法およびシステムに関する。TCAMは、少なくとも2つのパーティションに仕切られ、第1のパーティションは最も高い優先順位を有するインデックスを含み、第2のパーティションは最も低い優先順位を有するインデックスを含む。たとえば、多重プロトコルラベルスイッチング(MPLS)フローおよびIP−バーチャルプライベートネットワーク(VPN)は、第1のパーティションに追加され、ポリシーベース・ルーティングフローは、第2のパーティションに追加される。次の入力パケットのプリフィックスのTCAMルックアップの間、MPLSまたはIP−VPNフローは、アクセスコントロールリストまたはトラフィックマネージャフローによってクラス分けされたフローのような、ポリシーベース・ルーティングフローのいかなるマッチングも包含する。

Description

【0001】
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】
Figure 2004522383
【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】
Figure 2004522383
【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】
Figure 2004522383
【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)

  1. ルータ内の複数のデータフローをクラス分けするための方法であって、
    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を用いたデータフローの選択的ルーティング方法。
  2. 複数の前記第1データフローは、MPLSフローまたはIP−VPNフローである請求項1に記載のTCAMを用いたデータフローの選択的ルーティング方法。
  3. 複数の前記第2データフローは、ポリシーベースのルーティングフローである請求項1に記載のTCAMを用いたデータフローの選択的ルーティング方法。
  4. 前記ポリシーベースのルーティングフローは、アクセスコントロールリスト(ACL)フローである請求項3に記載のTCAMを用いたデータフローの選択的ルーティング方法。
  5. 前記ポリシーベースのルーティングフローは、トラフィックマネージャフローである請求項3に記載のTCAMを用いたデータフローの選択的ルーティング方法。
  6. 前記TCAMに対応するエントリを有するフローインデックス・スペースを維持する工程と、
    一つ以上の前記第1TCAMエントリを読み込む工程および一つ以上の前記第2TCAMエントリを読み込む工程の前に、前記フローインデックス・スペースにおける、前記第1TCAMエントリの前記所定の順番および前記第2TCAMの前記所定の順番を決定する工程と、
    をさらに含む請求項1に記載のTCAMを用いたデータフローの選択的ルーティング方法。
  7. 前記MPLSまたはIP−VPNフローは、接続インデックス(CIX)および行き先アドレス(DA)、CIXだけ、またはDAだけによってクラス分けされる請求項2に記載のTCAMを用いたデータフローの選択的ルーティング方法。
  8. 前記第1パーティションは、第1部分および第2部分に分割され、前記第1部分は、前記最も低いインデックスからgMaxCixDaFixインデックスの範囲で最も高い優先順位を有するインデックスを含み、前記第2部分は、gMinDaOnlyFixインデックスから前記パーティションインデックスの範囲で最も低い優先順位を有するインデックスを含み、CIXおよびDA、並びにCIXだけによってクラス分けされる前記フローは、前記第1部分に割り当てられ、DAだけによりクラス分けされる前記フローは、前記第2部分に割り当てられる請求項7に記載のTCAMを用いたデータフローの選択的ルーティング方法。
  9. CIXおよびDAによってクラス分けされる前記フロー、およびCIXだけによりクラス分けされる前記フローは、前記gMaxCixDaFixインデックスから始まる前記第1部分に読み込まれ、前記DAだけによってクラス分けされるフローは、前記gMinDaOnlyFixインデックスから始まる前記第2部分に読み込まれる請求項8に記載のTCAMを用いたデータフローの選択的ルーティング方法。
  10. 前記第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を用いたデータフローの選択的ルーティング方法。
  11. 順番を含むために、前記最も低いインデックスおよび前記gMaxCixDaOnlyFixインデックスの間にある、CIXおよびDA、または、CIXだけによりクラス分けされた一つ以上の前記フローを整列する工程と、
    順番を含むために、前記gMinDaOnlyFixインデックスおよび前記パーティションインデックスの間にある、DAだけによりクラス分けされ読み込まれた一つ以上の前記フローを整列する工程と、
    をさらに含む請求項10に記載のTCAMを用いたデータフローの選択的ルーティング方法。
  12. 前記第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を用いたデータフローの選択的ルーティング方法。
  13. 順番を含むために、前記gMinDaOnlyFixインデックスから前記パーティションインデックスの間にある、DAだけによりクラス分けされ読み込まれる一つ以上の前記フローを整列する工程と、
    順番を含むために、前記前記最も低いインデックスからgMaxCixDaFixインデックスの間にある、CIXおよびDA、またはCIXだけによりクラス分けされ読み込まれる一つ以上の前記フローを整列する工程と、
    をさらに含む請求項12に記載のTCAMを用いたデータフローの選択的ルーティング方法。
  14. 前記TCAMに対応するエントリを有するフローインデックス・スペースを維持する工程と、
    CIXおよびDA、およびCIXだけによりクラス分けされる前記フローを、CIXプリフィックス・ツリーに、割り当てる工程と、
    をさらに含む請求項7に記載のTCAMを用いたデータフローの選択的ルーティング方法。
  15. 前記TCAMに対応するエントリを有するフローインデックス・スペースを維持する工程と、
    DAだけによりクラス分けされる前記フローを、DAプリフィックス・ツリーに、割り当てる工程と、
    をさらに含む請求項7に記載のTCAMを用いたデータフローの選択的ルーティング方法。
  16. 前記フローインデックス・スペース内で前記対応するエントリを解放することによって、前記TCAM内でフローを削除し、前記対応するTCAMエントリを無効にする工程をさらに含む請求項7に記載のTCAMを用いたデータフローの選択的ルーティング方法。
  17. 前記第1パーティションの所定の順番は、最も低い優先順位を有するインデックスで最短のプリフィックスを伴うプリフィックス値を減少することによって次にくる最も高い優先順位を有するインデックスに配置される最長のプリフィックスを伴う前記TCAMエントリの一つを有する請求項1に記載のTCAMを用いたデータフローの選択的ルーティング方法。
  18. 前記第2パーティションは、第1部分と第2部分とに分割され、
    前記第1部分は、前記第2パーティションの最も低いインデックスからGACL−パーティションインデックスまでの範囲で、最も高い優先順位を有するインデックスを含み、
    前記第2部分は、前記GACL−パーティションから前記最も高いインデックスまでの範囲で最も低い優先順位を有するインデックスを含み、
    前記ACLフローが前記第1部分に割り当てられ、グローバルアクセスリストフローが前記第2部分に割り当てられる請求項3に記載のTCAMを用いたデータフローの選択的ルーティング方法。
  19. 前記ACLフローは、ソースまたは行き先ポートの範囲を示し、
    前記TCAMにおいて、前記ACLフローを多数のフローにマッピングする工程をさらに有し、
    ここで、前記多数のフローの各フローに対するマスクは、前記ソースまたは行き先ポートの範囲の部分をカバーし、前記範囲の前記部分をカバーするための多くのフローを最適に決定する請求項18に記載のTCAMを用いたデータフローの選択的ルーティング方法。
  20. 前記TCAMに対応するエントリを有するフローインデックス・スペースを維持する工程をさらに有する請求項18に記載のTCAMを用いたデータフローの選択的ルーティング方法。
  21. 前記フローインデックス・スペース内の前記対応するエントリを解放することによって前記TCAM内のフローを削除し、対応する前記TCAMエントリを無効にする工程と、
    残っている前記各TCAMエントリを一つのインデックスに移動することによって、前記TCAM内の前記フローを小型化する工程と、
    をさらに有する請求項20に記載のTCAMを用いたデータフローの選択的ルーティング方法。
  22. 前記TCAMに対応するエントリを有するフローインデックス・スペースを維持する工程をさらに有する請求項19に記載のTCAMを用いたデータフローの選択的ルーティング方法。
  23. 前記フローインデックス・スペース内の前記対応するエントリを解放することによって前記TCAM内の前記多数のフローを削除し、前記TCAMエントリ内の対応するエントリを無効にする工程と、
    残っている前記各TCAMエントリを一つ以上のインデックスに移動することによって、前記TCAM内の前記フローを小型化する工程と、
    をさらに有する請求項22に記載のTCAMを用いたデータフローの選択的ルーティング方法。
  24. ルータ内の複数のデータフローをクラス分けするための方法であって、
    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を用いたデータフローの選択的ルーティング方法。
  25. ルータ内の複数のデータフローをクラス分けするための方法であって、
    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を用いたデータフローの選択的ルーティング方法。
  26. ルータ内の複数のデータフローをクラス分けするシステムであって、
    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を用いたデータフローの選択的ルーティングシステム。
  27. 前記複数の第1データフローは、MPLSまたはIP−VPNフローである請求項26に記載のTCAMを用いたデータフローの選択的ルーティングシステム。
  28. 複数の前記第2データフローは、ポリシーベースのルーティングフローである請求項26に記載のTCAMを用いたデータフローの選択的ルーティングシステム。
  29. 前記ポリシーベースのルーティングフローは、アクセスコントロールリスト(ACL)フローである請求項28に記載のTCAMを用いたデータフローの選択的ルーティングシステム。
  30. 前記ポリシーベースのルーティングフローは、トラフィックマネージャフローである請求項28に記載のTCAMを用いたデータフローの選択的ルーティングシステム。
  31. 前記TCAMに対応するエントリを有するフローインデックス・スペースを維持する手段と、
    前記フローインデックス・スペースにおける、前記第1TCAMエントリの前記所定の順番および前記第2TCAMの前記所定の順番を決定する手段と、
    をさらに含む請求項26に記載のTCAMを用いたデータフローの選択的ルーティングシステム。
  32. 前記MPLSまたはIP−VPNフローは、接続インデックス(CIX)および行き先アドレス(DA)、CIXだけ、またはDAだけによってクラス分けされる請求項26に記載のTCAMを用いたデータフローの選択的ルーティングシステム。
  33. 前記第1パーティションは、第1部分および第2部分に分割され、
    前記第1部分は、前記最も低いインデックスからgMaxCixDaFixインデックスの範囲で最も高い優先順位を有するインデックスを含み、
    前記第2部分は、gMinDaOnlyFixインデックスから前記パーティションインデックスの範囲で最も低い優先順位を有するインデックスを含み、
    CIXおよびDA、並びにCIXだけによってクラス分けされる前記フローは、前記第1部分に割り当てられ、DAだけによりクラス分けされる前記フローは、前記第2部分に割り当てられる請求項32に記載のTCAMを用いたデータフローの選択的ルーティングシステム。
  34. CIXおよびDAによってクラス分けされる前記フロー、およびCIXだけによりクラス分けされる前記フローは、前記gMaxCixDaFixインデックスから始まる前記第1部分に読み込まれ、前記DAだけによってクラス分けされるフローは、前記gMinDaOnlyFixインデックスから始まる前記第2部分に読み込まれる請求項33に記載のTCAMを用いたデータフローの選択的ルーティングシステム。
  35. 前記TCAMに対応するエントリを有するフローインデックス・スペースを維持し、前記CIXおよびCIXのみによりクラス分けされた前記フローをCIXプリフィックス・ツリーに割り当てる手段をさらに有する請求項32に記載のTCAMを用いたデータフローの選択的ルーティングシステム。
  36. 前記第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を用いたデータフローの選択的ルーティングシステム。
  37. 順番を含むために前記最も低いインデックスからgMaxCixDaFixインデックスの間にある、CIXおよびDA、またはCIXだけによりクラス分けされ読み込まれる一つ以上の前記フローを整列する手段と、
    順番を含むために前記gMinDaOnlyFixインデックスから前記パーティションインデックスの間にある、DAだけによりクラス分けされ読み込まれる一つ以上の前記フローを整列する手段と、
    をさらに含む請求項36に記載のTCAMを用いたデータフローの選択的ルーティングシステム。
  38. 前記第1パーティションは、第1部分および第2部分に分割され、
    前記第1部分は、前記最も低いインデックスからgMaxCixDaFixインデックスまでの範囲で最も高い優先順位を有するインデックスを含み、
    前記第2部分は、gMinDaOnlyFixインデックスから前記パーティションインデックスまでの範囲で最も低い優先順位を有するインデックスと、前記gMinDaOnlyFixインデックスに隣接して設けられる前記gMaxCixDaFixインデックスと、前記第2部分の前記gMinDaOnlyFixインデックスよりも上に配置されるフリーエントリとを含み、
    前記gMinDaOnlyFixでCIXおよびDA、または、CIXだけによりクラス分けされるフローを、フリーエントリに移動する手段と、
    DAだけによりクラス分けされるフローを、前記gMinDaOnlyFixに割り当てる手段と、
    DAだけによりクラス分けされた前記フローに割り当てられた前記インデックスで、gMinDaOnlyFixインデックスを設定する手段と、
    DAだけによりクラス分けされた前記フローに割り当てられた前記インデックスの直後に、gMaxCixDaFixエントリを設定する手段と、
    をさらに含む請求項32に記載のTCAMを用いたデータフローの選択的ルーティングシステム。
  39. 前記第1パーティションは、第1部分および第2部分に分割され、
    前記第1部分は、前記最も低いインデックスからgMaxCixDaFixインデックスまでの範囲で最も高い優先順位を有するインデックスを含み、
    前記第2部分は、gMinDaOnlyFixインデックスから前記パーティションインデックスまでの範囲で最も低い優先順位を有するインデックスと、前記gMinDaOnlyFixインデックスに隣接して設けられる前記gMaxCixDaFixインデックスと、前記第2部分の前記gMinDaOnlyFixインデックスよりも上に配置されるフリーエントリとを含み、
    前記gMaxCixDaFixでCIXおよびDA、またはCIXだけによりクラス分けされたフローを、前記フリーエントリに移動する手段と、
    DAだけによりクラス分けされたフローを、前記gMaxCixDaFixインデックスに割り当てる手段と、
    前記DAだけによりクラス分けされた前記フローに割り当てられた前記インデックスで、前記gMinDaOnlyFixインデックスを設定する手段と、
    前記DAだけによりクラス分けされた前記フローに割り当てられた前記インデックスの直前にgMaxCixDaFixエントリを設定する手段と、
    をさらに含む請求項38に記載のTCAMを用いたデータフローの選択的ルーティングシステム。
  40. 前記TCAMに対応するエントリを有するフローインデックス・スペースを維持する手段と、
    DAだけによりクラス分けされる前記フローを、DAプリフィックス・ツリーに、割り当てる手段と、
    をさらに含む請求項32に記載のTCAMを用いたデータフローの選択的ルーティングシステム。
  41. 前記フローインデックス・スペース内の前記対応するエントリを解放することによって、前記TCAM内のフローを削除し、前記対応するTCAMエントリを無効にする手段をさらに含む請求項40に記載のTCAMを用いたデータフローの選択的ルーティングシステム。
  42. 前記第1パーティションの所定の順番は、最も低い優先順位を有するインデックスで最短のプリフィックスを伴うプリフィックス値を減少することによって次にくる最も高い優先順位を有するインデックスに配置される最長のプリフィックスを伴う前記TCAMエントリの一つを有する請求項26に記載のTCAMを用いたデータフローの選択的ルーティングシステム。
  43. 前記第2パーティションは、第1部分と第2部分とに分割され、
    前記第1部分は、前記第2パーティションにおいて最も低いインデックスからGACL−パーティションインデックスまでの範囲で、最も高い優先順位を有するインデックスを含み、
    前記第2部分は、前記GACL−パーティションから前記最も高いインデックスまでの範囲で最も低い優先順位を有するインデックスを含み、
    前記ACLフローが前記第1部分に割り当てられ、グローバルアクセスリストフローが前記第2部分に割り当てられる請求項28に記載のTCAMを用いたデータフローの選択的ルーティングシステム。
  44. 前記ACLフローは、ソースまたは行き先ポートの範囲を示し、
    前記TCAMにおいて、前記ACLフローを多数のフローにマッピングする手段をさらに有し、
    ここで、前記多数のフローの各フローに対するマスクは、前記ソースまたは行き先ポートの範囲の部分をカバーし、前記範囲の前記部分をカバーするための多くのフローを最適に決定する請求項43に記載のTCAMを用いたデータフローの選択的ルーティングシステム。
  45. 前記TCAMに対応するエントリを有するフローインデックス・スペースを維持する手段をさらに有する請求項43に記載のTCAMを用いたデータフローの選択的ルーティングシステム。
  46. 前記フローインデックス・スペース内の前記対応するエントリを解放することによって前記TCAM内のフローを削除し、対応する前記TCAMエントリを無効にする手段と、
    残っている前記各TCAMエントリを一つ以上のインデックスに移動することによって、前記TCAM内の前記フローを小型化する手段と、
    をさらに有する請求項45に記載のTCAMを用いたデータフローの選択的ルーティングシステム。
  47. 前記TCAMに対応するエントリを有するフローインデックス・スペースを維持する手段をさらに有する請求項44に記載のTCAMを用いたデータフローの選択的ルーティングシステム。
  48. 前記フローインデックス・スペース内の前記対応するエントリを解放することによって前記TCAM内の前記多数のフローを削除し、前記TCAMエントリ内の対応するエントリを無効にする手段と、
    残っている前記各TCAMエントリを一つ以上のインデックスに移動することによって、前記TCAM内の前記フローを小型化する手段と、
    をさらに有する請求項47に記載のTCAMを用いたデータフローの選択的ルーティングシステム。
  49. ルータ内の複数のデータフローをクラス分けするシステムであって、
    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を用いたデータフローの選択的ルーティングシステム。
  50. ルータ内の複数のデータフローをクラス分けするシステムであって、
    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を用いたデータフローの選択的ルーティングシステム。
  51. ルーティングシステムにおいて複数のデータフローのクラス分けする装置であって、
    TCAM(ternary content addressable memory)と、
    前記TCAMを、少なくとも、最も低いインデックスからパーティションインデックスまでの範囲で最も高い優先順位を有するインデックスを含む第1のパーティションと、最も高いインデックスから前記パーティションインデックスの範囲で最も低い優先順位を有するインデックスを含む第2のパーティションとに区切るパーティションアルゴリズムと、
    前記データフローの最初の一つ以上の第1フローTCAMエントリと、一つ以上の第2フローTCAMエントリを組み立てるために、それぞれのマスク値を選択し、前記第2パーティションに、前記それぞれのマスク値をロードするロードアルゴリズムと、
    前記一つ以上の第1TCAMエントリのマッチングが前記一つ以上の第2フローTCAMエントリのマッチングを含むように、所定の順番で前記第1パーティションに入れられる複数のデータフローの最初に読み込まれた前記一つ以上の第1フローTCAMおよび前記一つ以上の第2フローTCAMエントリに対して、入力されたパケットの所定のパケットヘッダ情報を含むプリフィックスを結合的に比較するサーチアルゴリズムと、
    を有するTCAMを用いたデータフローの選択的ルーティング装置。
  52. 複数の前記第1データフローは、MPLSまたはIP−VPNフローである請求項51に記載のTCAMを用いたデータフローの選択的ルーティング装置。
  53. 複数の前記第2データフローは、ポリシーベースのルーティングフローである請求項51に記載のTCAMを用いたデータフローの選択的ルーティング装置。
  54. 前記パーティションアルゴリズムおよび前記ローディングアルゴリズムは、前記TCAMに対応するエントリを有するフローインデックス・スペース内で実行され、前記第1TCAMエントリの前記所定の順番および前記第2TCAMエントリの所定の順番は、前記フローインデックス・スペース内に示される請求項51に記載のTCAMを用いたデータフローの選択的ルーティング装置。
  55. 前記MPLSまたはIP−VPNフローは、接続インデックス(CIX)および行き先アドレス(DA)、CIXだけ、または、DAだけによりクラス分けされる52に記載のTCAMを用いたデータフローの選択的ルーティング装置。
  56. 前記第1のパーティションは、第1部分および第2部分に分割され、
    前記第1部分は、前記最も低いインデックスからgMaxCixDaFixインデックスの範囲で最も高い優先順位を有するインデックスを含み、
    前記第2部分は、gMinDaOnlyFixインデックスから前記パーティションインデックスまでの範囲で最も低い優先順位を有するインデックスを含み、
    CIXおよびDA、および、CIXだけによりクラス分けされる前記フローは、前記第1部分に割り当てられ、
    DAだけによりクラス分けされる前記フローは、第2部分に割り当てられる請求項55に記載のTCAMを用いたデータフローの選択的ルーティング装置。
  57. CIXおよびDAによりクラス分けされる前記フロー、およびCIXによりクラス分けされる前記フローは、前記TCAMから始まり前記gMaxCixDaFixインデックスに終わる第1部分にロードされ、
    前記DAだけによりクラス分けされる前記フローは、前記gMinDaOnlyFixインデックスから始まる第2部分にロードされる請求項56に記載のTCAMを用いたデータフローの選択的ルーティング装置。
  58. 前記TCAMに対応するエントリを有するフローインデックス・スペースを維持する手段と、
    CIXによりクラス分けされた前記フローを、CIXプリフィックス・ツリーに割り当てる手段と、
    をさらに有する請求項52に記載のTCAMを用いたデータフローの選択的ルーティング装置。
  59. 前記TCAMに対応するエントリを有するフローインデックス・スペースを維持する手段と、
    DAだけによりクラス分けされた前記フローをDAプリフィックス・ツリーに割り当てる手段と、
    をさらに有する請求項52に記載のTCAMを用いたデータフローの選択的ルーティング装置。
  60. 前記TCAM内のフローを、前記フローインデックス・スペース内の対応する前記エントリを解放することによって削除し、対応する前記TCAMエントリを無効にする手段をさらに有する請求項59に記載のTCAMを用いたデータフローの選択的ルーティング装置。
  61. 前記第1パーティションの所定の順番は、最も低い優先順位を有するインデックスで最短のプリフィックスを伴うプリフィックス値を減少することによって次にくる最も高い優先順位を有するインデックスに配置される最長のプリフィックスを伴う前記TCAMエントリの一つを有する請求項52に記載のTCAMを用いたデータフローの選択的ルーティング装置。
  62. 前記第2のパーティションは、第1部分および第2部分に分割され、
    前記第1部分は、前記第2パーティションの最も低いインデックスからGACLパーティションインデックスまでの範囲で最も高い優先順位を有するインデックスを含み、
    前記第2部分は、前記GACLパーティションインデックスから前記第2パーティション内の前記最も高いインデックスまでの範囲で最も低い優先順位を有するインデックスを含み、
    前記ACLフローは、前記第1部分に割り当てられ、グローバルアクセスリストフローは、前記第2部分に割り当てられる請求項53に記載のTCAMを用いたデータフローの選択的ルーティング装置。
  63. 前記ACLフローは、ソースまたは行き先ポートの範囲を示し、
    前記ACLフローを前記TCAM内の多数のフローにマッピングする手段をさらに有し、
    前記多重フローのそれぞれのための前記マスクは、ソースまたは行き先ポートの前記範囲を一部をカバーする請求項62に記載のTCAMを用いたデータフローの選択的ルーティング装置。
  64. 前記TCAMに対応するエントリを有するフローインデックス・スペースを維持する手段をさらに有する請求項62に記載のTCAMを用いたデータフローの選択的ルーティング装置。
  65. 前記フローインデックス・スペース内の対応するエントリを解放することによって、前記TCAM内のフローを移動し、対応する前記TCAMエントリを無効にする手段と、
    残っている前記TCAMエントリを一つのインデックスに移動することによって、前記TCAM内の前記フローを小型化する手段と、
    をさらに有する請求項64に記載のTCAMを用いたデータフローの選択的ルーティング装置。
  66. 前記TCAMに対応するエントリを有するフローインデックス・スペースを維持する手段をさらに有する請求項62に記載のTCAMを用いたデータフローの選択的ルーティング装置。
  67. 前記フローインデックス・スペース内の対応する前記エントリを解放することによって、前記TCAM内の前記多重フローを移動し、前記TCAMエントリ内の対応するエントリを無効にする手段と、
    残っている各前記TCAMエントリを一つ以上のインデックスに移動することによって、前記TCAM内の前記フローを小型化する手段と、
    をさらに有する請求項62に記載のTCAMを用いたデータフローの選択的ルーティング装置。
JP2003517777A 2001-07-20 2002-07-03 Tcamを使用するデータフローの選択的なルーティング方法 Expired - Fee Related JP3800546B2 (ja)

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 true JP2004522383A (ja) 2004-07-22
JP3800546B2 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)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5299856B2 (ja) * 2010-04-19 2013-09-25 日本電気株式会社 スイッチ、及びフローテーブル制御方法
US8775726B2 (en) 2012-07-27 2014-07-08 International Business Machine Corporation TCAM extended search function
JP2017108469A (ja) * 2017-03-23 2017-06-15 エヌ・ティ・ティ・コミュニケーションズ株式会社 エッジノード装置、リソース制御方法、及びプログラム
US9960955B2 (en) 2013-11-06 2018-05-01 Fujitsu Limited Information processing system, switching device, and method for controlling information processing system
US10541861B2 (en) 2015-08-19 2020-01-21 Fujitsu Limited Network system, method, and switch device

Families Citing this family (142)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6934795B2 (en) * 1999-09-23 2005-08-23 Netlogic Microsystems, Inc. Content addressable memory with programmable word width and programmable priority
US6944709B2 (en) * 1999-09-23 2005-09-13 Netlogic Microsystems, Inc. Content addressable memory with block-programmable mask write mode, word width and 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 株式会社日立製作所 フロー検出装置およびフロー検出機能を備えたパケット転送装置
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
US7710991B1 (en) 2002-06-20 2010-05-04 Cisco Technology, Inc. Scalable 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
WO2004105310A1 (ja) * 2003-05-19 2004-12-02 Fujitsu Limited 暗号化装置、復号化装置、暗号化方法、復号化方法、暗号化プログラムおよび復号化プログラム
US7562390B1 (en) 2003-05-21 2009-07-14 Foundry Networks, Inc. System and method for ARP 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
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
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
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
US7869442B1 (en) * 2005-09-30 2011-01-11 Nortel Networks Limited Method and apparatus for specifying IP termination in a network element
US7643496B1 (en) 2005-09-30 2010-01-05 Nortel Networks Limited Application specified steering policy implementation
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
US8059532B2 (en) * 2007-06-21 2011-11-15 Packeteer, Inc. Data and control plane architecture including server-side triggered flow policy mechanism
US8279885B2 (en) * 2007-09-25 2012-10-02 Packeteer, Inc. Lockless processing of command operations in multiprocessor systems
US8111707B2 (en) * 2007-12-20 2012-02-07 Packeteer, Inc. Compression mechanisms for control plane—data plane processing architectures
US7813277B2 (en) * 2007-06-29 2010-10-12 Packeteer, Inc. Lockless bandwidth management for multiprocessor networking devices
US9419867B2 (en) * 2007-03-30 2016-08-16 Blue Coat Systems, Inc. Data and control plane architecture for network application traffic management device
WO2008121690A2 (en) * 2007-03-30 2008-10-09 Packeteer, Inc. Data and control plane architecture for network application traffic management device
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
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 엘에스산전 주식회사 하드웨어 프로토콜 스택
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
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
WO2015030848A1 (en) * 2013-08-31 2015-03-05 Empire Technology Development Llc Content-addressable memory device
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
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
US10367914B2 (en) 2016-01-12 2019-07-30 Cisco Technology, Inc. Attaching service level agreements to application containers and enabling service assurance
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
US10263898B2 (en) 2016-07-20 2019-04-16 Cisco Technology, Inc. System and method for implementing universal cloud classification (UCC) as a service (UCCaaS)
US10382597B2 (en) 2016-07-20 2019-08-13 Cisco Technology, Inc. System and method for transport-layer level identification and isolation of container traffic
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
US11005731B2 (en) 2017-04-05 2021-05-11 Cisco Technology, Inc. Estimating model parameters for automatic deployment of scalable micro services
US10382274B2 (en) 2017-06-26 2019-08-13 Cisco Technology, Inc. System and method for wide area zero-configuration network auto configuration
US10439877B2 (en) 2017-06-26 2019-10-08 Cisco Technology, Inc. Systems and methods for enabling wide area multicast domain name system
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
CN111684769B (zh) 2017-11-06 2023-03-24 思想系统公司 包括基于表的动作的匹配处理单元的网络系统
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
WO2019164827A1 (en) 2018-02-22 2019-08-29 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
WO2020028502A1 (en) 2018-08-01 2020-02-06 The Chamberlain Group, Inc. 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的掩码规则插入方法、电子设备和存储介质

Family Cites Families (29)

* Cited by examiner, † Cited by third party
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
EP0689748B1 (en) * 1993-03-20 1998-09-16 International Business Machines Corporation Method and apparatus for extracting connection information from protocol headers
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
US6055561A (en) * 1996-10-02 2000-04-25 International Business Machines Corporation Mapping of routing traffic to switching 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
US6763425B1 (en) * 2000-06-08 2004-07-13 Netlogic Microsystems, Inc. Method and apparatus for address translation in a partitioned 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
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

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5299856B2 (ja) * 2010-04-19 2013-09-25 日本電気株式会社 スイッチ、及びフローテーブル制御方法
US8775726B2 (en) 2012-07-27 2014-07-08 International Business Machine Corporation TCAM extended search function
US9960955B2 (en) 2013-11-06 2018-05-01 Fujitsu Limited Information processing system, switching device, and method for controlling information processing system
US10541861B2 (en) 2015-08-19 2020-01-21 Fujitsu Limited Network system, method, and switch device
JP2017108469A (ja) * 2017-03-23 2017-06-15 エヌ・ティ・ティ・コミュニケーションズ株式会社 エッジノード装置、リソース制御方法、及びプログラム

Also Published As

Publication number Publication date
CN1465014A (zh) 2003-12-31
CA2422439A1 (en) 2003-02-13
WO2003012672A2 (en) 2003-02-13
US7028098B2 (en) 2006-04-11
EP1352334A4 (en) 2007-01-03
JP3800546B2 (ja) 2006-07-26
CN1282104C (zh) 2006-10-25
WO2003012672A3 (en) 2003-04-17
EP1352334A2 (en) 2003-10-15
US20030056001A1 (en) 2003-03-20

Similar Documents

Publication Publication Date Title
JP3800546B2 (ja) Tcamを使用するデータフローの選択的なルーティング方法
US5353283A (en) General internet method for routing packets in a communications network
CA2400343C (en) Apparatus and method for performing high-speed ip route lookup and managing routing/forwarding tables
US6449256B1 (en) Fast level four switching using crossproducting
JP3842303B2 (ja) 多層ネットワーク要素のためのシステムおよび方法
US6212184B1 (en) Fast scaleable methods and devices for layer four switching
EP1649389B1 (en) Internet protocol security matching values in an associative memory
US8094659B1 (en) Policy-based virtual routing and forwarding (VRF) assignment
US8151339B2 (en) Method and apparatus for implementing filter rules in a network element
US7149216B1 (en) M-trie based packet processing
US20030067874A1 (en) Central policy based traffic management
US20040221051A1 (en) Using policy-based management to support diffserv over MPLS network
US7539741B2 (en) System, apparatus and method for supporting constraint based routing for multi-protocol label switching traffic engineering in policy-based management
US10715439B2 (en) Longest prefix matching providing packet processing and/or memory efficiencies in processing of packets
US7624226B1 (en) Network search engine (NSE) and method for performing interval location using prefix matching
JP2002507366A (ja) 多層ネットワーク要素におけるサービス品質のためのシステムおよび方法
US7292569B1 (en) Distributed router forwarding architecture employing global translation indices
US11463357B2 (en) Method and system for propagating network traffic flows between end points based on service and priority policies
US7551609B2 (en) Data structure for storing and accessing multiple independent sets of forwarding information
US20070124496A1 (en) Method and equipment for making a routing decision dependent on a quality-of-service class
US20050038907A1 (en) Routing cache management with route fragmentation
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
US20110069639A1 (en) Withdrawing Multiple Advertised Routes Based On A Single Tag Which May Be Of Particular Use In Border Gateway Protocol
US7512122B1 (en) Identifying QoS flows using indices
KR101153940B1 (ko) 패킷 분류 장치 및 그 방법

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