JP2014512121A - パケットスイッチングのための方法及び装置 - Google Patents

パケットスイッチングのための方法及び装置 Download PDF

Info

Publication number
JP2014512121A
JP2014512121A JP2014501252A JP2014501252A JP2014512121A JP 2014512121 A JP2014512121 A JP 2014512121A JP 2014501252 A JP2014501252 A JP 2014501252A JP 2014501252 A JP2014501252 A JP 2014501252A JP 2014512121 A JP2014512121 A JP 2014512121A
Authority
JP
Japan
Prior art keywords
rules
memory
binary
header
packet
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
JP2014501252A
Other languages
English (en)
Other versions
JP5921666B2 (ja
JP2014512121A5 (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 JP2014512121A publication Critical patent/JP2014512121A/ja
Publication of JP2014512121A5 publication Critical patent/JP2014512121A5/ja
Application granted granted Critical
Publication of JP5921666B2 publication Critical patent/JP5921666B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3009Header conversion, routing tables or routing tags
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/356Switches specially adapted for specific applications for storage area networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

パケットルックアップを処理するための方法が提供される。パケット(これらは各々ボディ及びヘッダーを有する)が受信され、ヘッダーをパースするためパースされる。ハッシュ関数が各ヘッダーに適用され、各ハッシュされたヘッダーが、一次テーブル(406)内にストアされた複数のバイナリルールと比較され、ここで、各バイナリルールが、ターナリルールの第1のセットからの少なくとも1つのターナリルールのバイナリバーションである。複数のルールとの各非整合に対して、二次テーブル(408)が、各非整合に関連付けられるヘッダーを用いて検索され、ここで、二次テーブル(408)は、ターナリルールの第2のセットを含む。

Description

本願は、概してパケットスイッチングに関し、更に特定して言えば、トップオブラック(TOR)スイッチに関連する。
図1は、パケットスイッチングネットワークのための従来の配路モデルを図示する。このモデルでは、コアネットワーク112が、コアルータ104−1〜104−Nを介してインターネット102で通信する。コアネットワーク112は概して、中間スイッチ106−1〜106−Mを用いてコアルータ104−1〜104−Nと通信する。通常、2つの中間スイッチ(即ち、106−1及び106−2)がコアルータ(即ち、104−1)と通信する。中間スイッチ106−1〜106−Mはその後、各々各アグリゲートスイッチ108−1〜108−Kと通信することができ、これらは、各々TORスイッチ110−1〜110−Lと通信する。これらのTORスイッチ110−1〜110−Lはその後、各々幾つかの(即ち、20個の)サーバーと通信し得る。
ここで注目するのは、TORスイッチ110−1〜110−Kであり、TORスイッチ(これは110で示す)の一例の図を図2及び図3で見ることができる。通常、データセンターの一部として、サーバーが「ラック」に保持され、TORスイッチ110が、フォワーディングスイッチとして動作するようにラック内(典型的に頂部に)に配置される。図示するように、このTORスイッチ110は概して、プロセッサ202、スイッチング回路204、ターナリTCAM(ternary context−addressable memory)メモリ210、及び入力/出力(I/O)回路要素(これは概して、物理層(PHY)回路206−1〜206−J及びポート208−1〜208−Pを含む)で構成され、スイッチング回路204は、入力キュー302、パーサ304、サーチエンジン306、プロセッサインタフェース308、アクション回路310、及び出力キュー312を概して含む。オペレーションにおいて、データパケット(これは各々概してヘッダー及びボディを有する)がポート208−1〜208−P及びPHY回路206−1〜206−Jを介して受信される。これらのパケットは入力キュー302(これは典型的に、先入れ先出し(FIFO)回路である)にストアされ、パーサ304は、これらのキューされたパケットからヘッダーを抽出することができる。抽出されたヘッダーを用いて、サーチエンジン210は、ヘッダーに関連付けられるルールを判定するためTCAM210を検索することができ、各ルールが或るアクションに関連付けられている。識別されると、アクション回路は、アクションに関連付けられた識別されたルールに従ってパケット(通常はヘッダー)を改変する。改変されたパケットはその後、送信されるべく出力キュー312(これは、典型的にFIFO回路である)に置かれる。
サーチエンジン306は、TCAM210を用いてパケットルックアップを実行する。TCAM210は、ターナリパケット−フォワーディングルール(即ち、アクセス制御リスト、宛先IPルール、及びネットフロールール)の大きなデータベースにわたる整合を可能にする高速メモリである。だが、TCAM210は、他のメモリタイプ(SRAM又は埋め込みDRAMなど)に較べて数倍の電力及び領域を消費するため、大きなTCAMをオンチップで埋め込むことが困難となっている。その結果、TORスイッチ110−1〜110−Lがフォワーディングルールを設定するため、TORスイッチ110−1〜110−Lは、電力及び領域の不利益を受けるだけでなく、柔軟性も制限される。従って、低コストであり一層高い柔軟性を備えた、改善されたTORスイッチが求められている。
幾つかの他の従来のシステムは下記文献に記載されている。
米国特許番号第7,028,098号 米国特許番号第7,234,019号 米国特許番号第7,382,787号 米国特許公開番号2005/0262294 米国特許公開番号2011/0161580 Mysore et al., "PortLand: A Scalable Fault-Tolerant layer 2 DataCenter Network Fabric," SIGCOMM 2009, August 17-21, 2009.
例示の一実施例は或る装置を提供する。この装置は、一次テーブル及び二次テーブルを有するルックアップメモリ、及びルックアップメモリに結合されるサーチエンジンを含む。二次テーブルがターナリ(ternary)ルールの第1のセットを含み、一次テーブルがバイナリ(binary)ルールのセットを含み、各バイナリルールが、ターナリルールの第2のセットからの少なくとも1つのターナリルールのバイナリバージョンである。サーチエンジンは、データワードを受信するように構成されるコントローラと、ルックアップメモリ及びコントローラに結合されるハッシュロジックとを含む。ハッシュロジックは、各データワードがバイナリルールの少なくとも1つに整合するかを判定するため、一次テーブルのバイナリサーチを実行するように構成され、ハッシュロジック及び一次テーブルによる非整合がある場合、サーチエンジンが、非整合に関連付けられるデータワードがターナリルールの第1のセットからのターナリルールの少なくとも1つに整合するかを判定するため、二次テーブルのターナリサーチを実行するように構成される。
一実施例に従って、一次テーブルが、ダイナミックメモリ及びスタッシュ(stash)を更に含む。
一実施例に従って、スタッシュがCAM(context−addressable memory)である。
一実施例に従って、ダイナミックメモリが、スタティックランダムアクセスメモリ(SRAM)である。
一実施例に従って、二次テーブルがターナリCAM(TCAM)を更に含む。
一実施例に従って、この装置は、共有メモリ、複数のポートマネージャ、及び通信回路要素に結合されるパーサを更に含む。各ポートマネージャが、入力データパケットを受信するように構成され、且つ、共有メモリ及びサーチエンジンに結合される、通信回路要素を含む。パーサが、各入力データパケットをパースし、そのヘッダーを抽出するように構成され、各データワードが少なくとも1つのヘッダーに関連付けられる。
一実施例に従って、この装置は、サーチエンジンと通信するアクションテーブルを更に含む。
一実施例に従って、通信回路要素は、 パーサに結合される媒体アクセスコントローラ(MAC)、共有メモリとMACとの間に結合される送信パイプライン、共有メモリとMACとの間に結合される受信パイプライン、及びパーサとサーチエンジンとの間に結合されるサーチインタフェースを更に含む。
一実施例に従って、ハッシュロジックは、鍵付きハッシュ関数を各データワードに適用する。
一実施例に従って或る方法が提供される。この方法は、各パケットがボディ及びヘッダーを有する複数のパケットを受け取ること、そのヘッダーを抽出するため各パケットをパースすること、ハッシュ関数を各ヘッダーに適用すること、各ハッシュされたヘッダーを一次テーブル内にストアされた複数のバイナリルールと比較することであって、各バイナリルールが、ターナリルールの第1のセットからの少なくとも1つのターナリルールのバイナリバージョンであること、及び複数のルールとの各非整合に対して、各非整合に関連付けられるヘッダーを用いて二次テーブルを検索することを含み、二次テーブルがターナリルールの第2のセットを含む。
一実施例に従って、二次テーブルを検索することが、TCAM内の複数のバンクを同時に検索することを更に含む。
一実施例に従って、この方法が、各非整合に対して新しいルール及び新しいアクションを生成すること、及び新しいルール及び新しいアクションをSRAMにストアすることを更に含む。
一実施例に従って、ハッシュ関数は鍵付きハッシュ関数である。
一実施例に従って或る装置が提供される。この装置は、バイナリルールのセットを含む一次テーブル、ターナリルールの第1のセットを含む二次テーブル、スイッチング回路、及びスイッチング回路と通信する入力/出力(I/O)回路を含む。各バイナリルールは、ターナリルールの第1のセットからの少なくとも1つのターナリルールのバイナリバーションである。スイッチング回路は、共有メモリと、サーチエンジンと、各々サーチエンジンと通信する複数のポートマネージャとを有する。サーチエンジンは、データワードを受信するように構成されるコントローラ、及びルックアップメモリとコントローラとに結合されるハッシュロジックを含む。ハッシュロジックは、各データワードがバイナリルールの少なくとも1つに整合するかを判定するために、一次テーブルのバイナリサーチを実行するように構成され、ハッシュロジックと一次テーブルによる非整合がある場合、サーチエンジンは、非整合に関連付けられるデータワードがターナリルールの第1のセットからのターナリルールの少なくとも1つのターナリルールに整合するかを判定するために、二次テーブルのターナリサーチを実行するように構成される。
一実施例に従って、I/O回路要素は、複数の物理層(PHY)回路及び複数のポートを更に含み、各PHY回路がスイッチング回路と通信し、各ポートがPHY回路の少なくとも1つと通信する。
例示の実施例を添付の図面を参照して説明する。
図1は、スイッチドパケットネットワークのための従来の配路モデルを図示する。
図2は、図1の従来のTORスイッチを図示する。
図3は、図2のTORスイッチからのスイッチング回路を図示する。
図4は、本発明の原理の一実施例に従って配路モデルの一例を図示する。
図5は、図4のTORスイッチの一例を図示する。
図6は、図5のTORスイッチからのスイッチング回路の一例を図示する。
図7は、図6のスイッチング回路のポートマネージャの一例を図示する。
図8は、図5及び図6のサーチエンジン及びルックアップメモリの例を図示する。 図9は、図5及び図6のサーチエンジン及びルックアップメモリの例を図示する。
図10は、パケット記述子の一例を図示する。
図11は、図5のアクションテーブルの一例を図示する。
図12は、ルックアップ記述子の一例を図示する。
図13は、バッファ記述子の一例を図示する。
ネットワーク柔軟性を高めるため、新たなイーサネットネットワーク規格が開発されてきている。この規格は、オープンフロースイッチコンソーシアムによるオープンフロープロトコル、及びバージョン1.1.0として知られており(これは2011年2月28日にリリースされた)、あらゆる目的のため参照によりここに組み込まれている。図4において、この新たな規格のための配路モデルの一例を見ることができる。図示するように、このモデルは、TORスイッチ400−1〜400−Lを制御することが可能なネットワークコントローラ401があることを除き、図1に示すモデルに類似する。ネットワークコントローラ401は、他の特徴(アグリゲートスイッチ内のものなど)を制御し得るが、これらの制御は簡潔にするためここでは省略されている。この構成では、ネットワークコントローラ401は、フォワーディングルールを設定することができ、TORスイッチ400−1〜400−Lはスイッチングを実行する。これによりデータセンターがそれら自体の配路及びフロー管理プロトコルを実装することが可能となる。
TCAMの強い依存は、TORスイッチ400−1〜400−Lを用いることで避けられ得るが、TCAMへの依存を低減するようにハードウェアメモリにおけるデータ構造を設計することを試みることは困難となり得る。このようなアーキテクチャを用いるシステムは効率が悪い(実際のアドレスをストアするために用いられるより多くのメモリを浪費する)可能性があり、そのため、これを実装することができるように、TORスイッチ400−1〜400−L(図5において400で示す)は、ルックアップメモリ404(これは概して、一次テーブル406及び二次テーブル408を有する)と通信することが可能なスイッチング回路402(これは典型的に、集積回路又はICである)を用いる。二次テーブル408は概してターナリエントリをストアし、一次テーブル406は概してバイナリエントリをストアする。これによりスイッチング回路402(これは、図6〜図13に詳細に示す)が「一次」サーチを実行し、一次テーブル406を用いてより一般的な事象を検索すること、そして、「一次」サーチが失敗すると、二次テーブル408を用いて「二次」サーチを実行することが可能となる。
まず、スイッチング回路402のポートマネージャ508−1〜508−Jに移ると、例示の実装を図7で見ることができる(これは508で示す)。これらのポートマネージャ508−1〜508−Jは、双方向リンク(これは、例えば、2010年6月25日のIEEE(Institute of Electrical and Electronics Engineers)規格802.11ap及び2010年6月22日IEEE規格802.11baに記載される、10GBase−KR又は40GBase−KRなどであり得る)をPHY(即ち、206−1)に媒体アクセスコントローラ又はMAC610を介して提供する。このMAC610は、送信パイプライン(これは、送信共有バッファインタフェース602及び送信先入れ先出し(FIFO)メモリ及びコントローラ604を概して含む)及び受信パイプライン(これは、受信共有バッファインタフェース606及び受信FIFO及びコントローラ608を概して含む)を介して共有メモリ502に結合される。また、スイッチング回路402のためのサーチ構造の一部として、ポートマネージャ508−1〜508−Jは更に、受信パイプラインと相互作用又は通信する、パケットFIFO及びコントローラ612、ヘッダーリプレーサ614、パーサ616、及びサーチインタフェースを含む。
まず受信したパケットの扱いを見ると、パケットはまず、ポートマネージャ508−1〜508−Jの一つのMAC610により受信される。各受信したパケットは一時的に受信FIFO及びコントローラ608にストアされる。各パケットに対し、各パケットのためのパケット記述子800がつくられて受信共有バッファインタフェース606にストアされる一方、パケットは共有メモリ502に転送される。これらのパケット記述子800(その一例を図10で見ることができる)は概して、次のパケット記述子ポインタフィールド802(これは、次の又は後続のパケットのためパケット記述子を示す)、バッファ記述子ポインタ804、パケット長さ806、及びアクションセットポインタ808を含み、共有メモリ502により用いられるバッファ記述子1100との関連を提供する。バッファ記述子1100(その一例を図13で見ることができる)は概して、共有メモリ502内のパケットに対する「アドレス」であり、バッファ記述子識別子フィールド1102、リンキング情報フィールド1104(これは概して、インタフェース606内のダイレクトメモリアクセスコントローラにより書き込まれる)、バッファポインタフィールド1106(これは概してパケットコンテンツへのポインタである)、次のポインタフィールド1108(これは概して、次のバッファ記述子である)、及び長さフィールド1110(これは概して、共有メモリ502において用いられるバッファの長さである)を概して含む。
パケットが共有メモリ502にストアされている一方で、パケットヘッダーに関連付けられるルックアップ又はサーチも実行される。各パケットが受信FIFO及びコントローラ608に渡されるとき、パーサ616(これは、概してプログラム可能である)は更にパケットを受け取り、連結されたヘッダーフィールドのストリングを構築するように各パケットに対するパケットヘッダーを抽出する。ルックアップ記述子1000(その一例を図12に示す)がその後、各パケットに対して形成され得、サーチインタフェース618にストアされ得る。ルックアップ記述子1000は、パケット記述子ポインタフィールド1002(これは概して関連するパケット記述子800を指示する)、バッファ記述子ポインタフィールド1004(これは概して関連するバッファ記述子1100を指示する)、整合フィールド1008(これは概して、パーサ616からの連結されたヘッダーフィールドである)、及びアクションセット902(これは、概してパケットで実行されるべきアクションのセットである)を概して含む。パケットに対する(図11の例において図示するような)アクションセット902−1〜902−Tは更に、概してアクションテーブル510にストアされ、サーチエンジン506により更新される。
各パケットに対するルックアップ記述子1000に基づいて、サーチエンジン506は、取るべき適切なアクションを判定するためサーチを実行することができる。これを行うため、サーチエンジン506は、「一次」バイナリエントリサーチには一次テーブル406を、「二次」ターナリエントリサーチには二次テーブル408を用いる。通常、「一次」サーチ(これは通常、「二次」経路より「電力消耗」が少ない)の後には、「一次」サーチが失敗した場合に「二次」サーチが続く。そのため、一次テーブルは、二次テーブルの利用を制限することにより電力消費を低減するフィルタとして考えることができる。典型的に、ターナリルールが二次テーブル408−Aにストアされ得、ダイナミックメモリ410は実際のパケットに見られるターナリルールのバイナリバージョンをストアすることができる。バイナリエントリがストアされるダイナミックメモリ410の位置は、バイナリエントリにハッシュ関数を実行することにより演算され得る。これは、各フローに対し個別のパケットの到達よりずっと小さな頻度で新しいフローが開始されるという見通しにより駆動される。そのため、ハッシュテーブル内のフローセットアップが桁違いに遅いペースで成され得る。
「一次」経路で、バイナリルールのための一次テーブル406に対するサーチがハッシュロジック704を用いて実行され、ここで、ダイナミックメモリ410は、バイナリルールをスタッシュ412と共にストアする。スタッシュ412の目的は、複数のエントリが偶然同一のハッシュ関数出力を生成するとき衝突したエントリをストアすることである。1つ又は複数のメモリアレイ又はバンク(例えば、図8及び図9に示すスタティックランダムアクセスメモリ(SRAM)414−1〜414−1又はエンベディッドダイナミックランダムアクセスメモリ(eDRAM))は、ダイナミックメモリ410を含み得、スタッシュ412は概してCAM416で構成される。典型的に、コントローラ702は、ルックアップ記述子(即ち、1000)に基づいてデータワードをハッシュロジック704に適用する。ハッシュロジック704は、ハッシュ関数(これはセキュリティの目的のため鍵付きであり得る)をルックアップ記述子の整合フィールド(1008)に適用して、ダイナミックメモリ406のバイナリサーチが実行され得るようにする。ハッシュロジック704は概して、独立したハッシュ関数を有する複数のサブテーブル414−1〜414−1を備えたマルチレベルハッシュテーブルを実装する。典型的に、ダイナミックメモリ406は、整合フィールドを優先度と関連付けるエントリ(これはルールと呼ぶことができる)を有するテーブルをストアする。整合はその後、各サブテーブルのため戻され得る。また、例示の整合フィールドのリストを下記表1で見ることができる。
上述のように、ハッシュロジック704はセキュリティの目的のため鍵付きであり得る。一例として、ハッシュロジック704は概して、ハッシュ関数h〜hを有するサブテーブルT〜Tを備えたマルチレベルハッシュテーブルを実装する。サブテーブルTを備えたバイナリストリングx上の鍵付きハッシュは例えば下記であり得る。
(1) h(x)=((ax+b)modP)modN
ここで、Pは、鍵ペアに対するa及びb(これらは各々Pより小さい)である、大きな素数であり、NはサブテーブルTにおける最大数のエントリである。サブテーブルT〜Tに対する並列サーチがその後実行され得る。
維持の一部として、一次テーブル406、ハッシュロジック704は更に、バイナリストリング又はルールを一次テーブル406に付加することもできる。バイナリテーブルエントリ又はバイナリストリングx(例えば)を一次テーブル406に付加するため、各サブテーブルwに対してハッシュ関数h(x)が計算され、ストリングxを、その位置が空いているときサブテーブルwのいずれかの位置h(x)に置く試みが成される。空いている位置h(x)がない場合、ストリングxがスタッシュ412に挿入される。代替として、ハッシュロジック704がcuckooハッシュとして実装されるとき、ストリングxはh(x)に挿入され得、h(x)を占めていたストリングyがストリングyとしてサブテーブルwのいずれかの空き位置h(y)の一つに再ハッシュされる。全位置h(y)が占有されている場合、ストリングyがスタッシュ412に挿入される。実質上、ハッシュロジック704はバイナリエントリを一次テーブル406に付加し、一次テーブル406からバイナリエントリをルックアップし得る。
例えば、「一次」サーチの間、パケットに対しヘッダーに関連付けられるハッシュされたデータワードに整合するルールが見つからない(これは非整合と呼ぶこともできる)とき、更なる処理が実行される。非整合起こると、関連するルックアップ記述子(即ち、1000)はパケット記述子キュー706にストアされ、これは概して、一次テーブル406及び二次テーブル408のルックアップ間の速度差のため一時メモリとして動作する。一次及び二次テーブルのルックアップに速度差がない(電力差のみがある)場合、キュー706は省略され得る。
その後、二次テーブル408(これは、図8の二次テーブル408−A内のTCAMバンク418−1〜418−Rで形成され得るか、又は図9の二次テーブル408−B内のSRAMバンク420−1〜420−Rで形成され得る)のターナリサーチが、ルックアップ記述子(即ち、1000)の整合フィールド(1008)を用いて実行される。典型的に、二次テーブル408は、各々ターナリルールテーブルを含み得る(図8及び図9に図示するように)メモリの幾つかのバンクで形成される。ルックアップ記述子(これは「一次」経路における整合を生成しない)の複製コピーはその後、ターナリルールテーブルを実質的に同時に検索するために用いられ得る。他のサーチ方法も用いられ得る。整合はその後、アクションテーブル510のための命令を生成し得る。また、二次テーブル408内で見つけられた各整合に対し、新たなバイナリサーチルールが将来の利用のためダイナミックメモリ406につくられ得る。更に具体的には、実際のパケットに見られるターナリルールのバイナリバージョンが一次テーブル406に挿入される。整合が見つからない場合、非整合に関連付けられるパケットヘッダーが封止され得、更なる処理のためプロセッサ402又はネットワークコントローラ401に送られ、或いは、パケットがドロップされる。
通常、「二次」経路に非整合がある場合、「二次」経路のテーブルに対する改変が有用であり得る。多くの場合において、「二次」経路に非整合があるとき、適切なルールが、二次テーブル408にない可能性があり、そのため、プロセッサ402又はネットワークコントローラ401は、新しいルールを「挿入」し得る。通常、二次テーブル408にわたる負荷平衡を達成するため、新しいルールがラウンドロビン方式で二次テーブル408のバンクに付加される。また、二次テーブル408における又は一次テーブル406におけるルールが、「least recently used」手法又は何らかの他の統計に基づいて取り除かれ得る又は取り戻され得る。
一旦、各パケットのヘッダーに関連付けられるルール又はアクションが解決されると、パケットは更なる処理及び/又は配路のため改変され得る。これは概してヘッダーリプレーサ614によって達成される。典型的に、ヘッダーリプレーサ614は、パケットFIFO及びコントローラ612及び受信FIFO及びコントローラ608を用いて、アクションセットポインタ808をアクションテーブル510内の適切なアクションセットに関連付けることにより、各パケットに対するパケット記述子800を改変する。
送信パケットを用いて、ポートマネージャ508−1〜508−Jにおける扱いが受信したパケットに較べて幾らかシンプルになる。通常、配路のためのパケットの処理は、送信前に終了する。配路が判定されると、宛先ポート208−1〜208−Pは通常パケットである。その結果、適切なポートマネージャ508−1〜508−Jは、送信共有バッファインタフェース602を用いて共有メモリ502からパケット情報をリコールし、この完了したパケットは送信FIFO及びコントローラ604に一時的にストアされる。MAC610はその後、そのパケットを適切なPHY(即ち、206−1)に分配する。
本発明に関連する技術に習熟した者であれば、本発明の特許請求の範囲内で、説明した例示の実施例に変形が成され得ること、及び他の実施例を実装し得ることが分かるであろう。

Claims (15)

  1. 装置であって、
    一次テーブル及び二次テーブルを有するルックアップメモリであって、前記二次テーブルがターナリ(ternary)ルールの第1のセットを含み、前記一次テーブルがバイナリ(binary)ルールのセットを含み、各バイナリルールが、ターナリルールの第2のセットからの少なくとも1つのターナリルールのバイナリバージョンである、前記ルックアップメモリ、及び
    前記ルックアップメモリに結合されるサーチエンジン、
    を含み、
    前記サーチエンジンが、
    データワードを受信するように構成されるコントローラと、
    前記ルックアップメモリに及び前記コントローラに結合されるハッシュロジックと、
    を含み、
    前記ハッシュロジックが、各データワードが前記バイナリルールの少なくとも1つに整合するかを判定するため、前記一次テーブルのバイナリサーチを実行するように構成され、ハッシュロジック及び一次テーブルによる非整合がある場合、前記サーチエンジンが、前記非整合に関連付けられる前記データワードがターナリルールの前記第1のセットからの前記ターナリルールの少なくとも1つに整合するかを判定するため、前記二次テーブルのターナリサーチを実行するように構成される、
    装置。
  2. 請求項1に記載の装置であって、前記一次テーブルが、ダイナミックメモリ及びスタッシュ(stash)メモリを更に含む、装置。
  3. 請求項2に記載の装置であって、前記スタッシュメモリがCAM(context−addressable memory)である、装置。
  4. 請求項3に記載の装置であって、前記ダイナミックメモリがスタティックランダムアクセスメモリ(SRAM)である、装置。
  5. 請求項4に記載の装置であって、前記二次テーブルがターナリCAM(TCAM)を更に含む、装置。
  6. 請求項4に記載の装置であって、前記装置が、
    共有メモリ、
    複数のポートマネージャ、及び
    前記通信回路要素に結合されるパーサ、
    を更に含み、
    各ポートマネージャが、入力データパケットを受信するように構成され、且つ、前記共有メモリ及び前記サーチエンジンに結合される、通信回路要素を含み、
    前記パーサが、各入力データパケットをパースし、且つ、そのヘッダーを抽出するように構成され、各データワードが少なくとも1つのヘッダーに関連付けられる、
    装置。
  7. 請求項6に記載の装置であって、前記装置が、前記サーチエンジンと通信するアクションテーブルを更に含む、装置。
  8. 請求項7に記載の装置であって、前記通信回路要素が、
    前記パーサに結合される媒体アクセスコントローラ(MAC)、
    前記共有メモリと前記MACとの間に結合される送信パイプライン、
    前記共有メモリと前記MACとの間に結合される受信パイプライン、及び
    前記パーサと前記サーチエンジンとの間に結合されるサーチインタフェース、
    を更に含む、装置。
  9. 請求項8に記載の装置であって、前記ハッシュロジックが、鍵付きハッシュ関数を各データワードに適用する、装置。
  10. 方法であって、
    各パケットがボディ及びヘッダーを有する複数のパケットを受け取ること、
    そのヘッダーを抽出するため各パケットをパースすること、
    ハッシュ関数を各ヘッダーに適用すること、
    各ハッシュされたヘッダーを一次テーブル内にストアされた複数のバイナリルールと比較することであって、各バイナリルールが、ターナリルールの第1のセットからの少なくとも1つのターナリルールのバイナリバージョンであること、及び
    前記複数のルールとの各非整合に対して、各非整合に関連付けられるヘッダーを用いて二次テーブルを検索することであって、前記二次テーブルが、ターナリルールの第2のセットを含むこと、
    を含む、装置。
  11. 請求項10に記載の方法であって、前記一次テーブルがSRAM及びCAMを更に含む、方法。
  12. 請求項11に記載の方法であって、前記二次テーブルがTCAMである、方法。
  13. 請求項12に記載の方法であって、前記二次テーブルを検索する前記工程が、前記TCAM内の複数のバンクを同時に検索することを更に含む、方法。
  14. 請求項11に記載の方法であって、前記方法が、各非整合に対して新しいルール及び新しいアクションを生成すること、及び前記新しいルール及び新しいアクションを前記SRAMにストアすることを更に含む、方法。
  15. 請求項14に記載の方法であって、前記ハッシュ関数が鍵付きハッシュ関数である、方法。
JP2014501252A 2011-03-22 2012-03-22 パケットスイッチングのための方法及び装置 Active JP5921666B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201161466232P 2011-03-22 2011-03-22
US61/466,232 2011-03-22
US13/323,594 US8874876B2 (en) 2011-03-22 2011-12-12 Method and apparatus for packet switching
US13/323,594 2011-12-12
PCT/US2012/030175 WO2012129432A2 (en) 2011-03-22 2012-03-22 Method and apparatus for packet switching

Publications (3)

Publication Number Publication Date
JP2014512121A true JP2014512121A (ja) 2014-05-19
JP2014512121A5 JP2014512121A5 (ja) 2015-05-07
JP5921666B2 JP5921666B2 (ja) 2016-05-24

Family

ID=46878302

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014501252A Active JP5921666B2 (ja) 2011-03-22 2012-03-22 パケットスイッチングのための方法及び装置

Country Status (3)

Country Link
US (1) US8874876B2 (ja)
JP (1) JP5921666B2 (ja)
WO (1) WO2012129432A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016118874A (ja) * 2014-12-19 2016-06-30 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ビットを選択する所定位置を変更することでハッシュ関数を1つ以上生成することが可能なハッシュ値を計算する方法、並びに、その為のコンピュータ及びコンピュータ・プログラム

Families Citing this family (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9066160B2 (en) * 2011-07-07 2015-06-23 Alcatel Lucent Apparatus and method for protection in a data center
US8639875B1 (en) * 2011-09-06 2014-01-28 Netlogic Microsystems, Inc. Content search system having multiple pipelines
CN104137493A (zh) * 2012-02-20 2014-11-05 日本电气株式会社 网络系统和改善资源利用率的方法
US9559897B2 (en) 2012-12-21 2017-01-31 Brocade Communications Systems, Inc. Device ID assignment in a system of devices
US9906445B2 (en) * 2013-02-01 2018-02-27 Texas Instruments Incorporated Packet processing match and action pipeline structure with dependency calculation removing false dependencies
US9719790B2 (en) 2013-03-15 2017-08-01 International Business Machines Corporation Mapping uncertain geometries to graticules
US9602129B2 (en) * 2013-03-15 2017-03-21 International Business Machines Corporation Compactly storing geodetic points
US9313102B2 (en) 2013-05-20 2016-04-12 Brocade Communications Systems, Inc. Configuration validation in a mixed node topology
US9853889B2 (en) 2013-05-20 2017-12-26 Brocade Communications Systems, Inc. Broadcast and multicast traffic reduction in stacking systems
US10284499B2 (en) 2013-08-22 2019-05-07 Arris Enterprises Llc Dedicated control path architecture for systems of devices
US20150100560A1 (en) 2013-10-04 2015-04-09 Nicira, Inc. Network Controller for Managing Software and Hardware Forwarding Elements
US9244857B2 (en) * 2013-10-31 2016-01-26 Oracle International Corporation Systems and methods for implementing low-latency lookup circuits using multiple hash functions
US9185049B2 (en) 2013-10-31 2015-11-10 Brocade Communications Systems, Inc. Techniques for simplifying stacking trunk creation and management
US9342462B2 (en) * 2013-10-31 2016-05-17 Oracle International Corporation Systems and methods for implementing low-latency lookup circuits using sparse hash functions
US9876711B2 (en) * 2013-11-05 2018-01-23 Cisco Technology, Inc. Source address translation in overlay networks
US9350677B2 (en) 2014-01-16 2016-05-24 International Business Machines Corporation Controller based network resource management
US9588923B2 (en) 2014-01-24 2017-03-07 Applied Micro Circuits Corporation Flow pinning in a server on a chip
US9577932B2 (en) * 2014-02-12 2017-02-21 Brocade Communications Systems, Inc. Techniques for managing ternary content-addressable memory (TCAM) resources in heterogeneous systems
US9692695B2 (en) 2014-03-27 2017-06-27 Brocade Communications Systems, Inc. Techniques for aggregating hardware routing resources in a multi-packet processor networking system
US9692652B2 (en) 2014-04-03 2017-06-27 Brocade Communications Systems, Inc. Framework for reliably communicating port information in a system of devices
US10116493B2 (en) 2014-11-21 2018-10-30 Cisco Technology, Inc. Recovering from virtual port channel peer failure
US10091059B2 (en) 2014-12-16 2018-10-02 Arris Enterprises Llc Handling connections between network devices that support multiple port communication modes
US10284470B2 (en) * 2014-12-23 2019-05-07 Intel Corporation Technologies for network device flow lookup management
US9886783B2 (en) 2015-01-07 2018-02-06 International Business Machines Corporation Indexing and querying spatial graphs
US9942058B2 (en) 2015-04-17 2018-04-10 Nicira, Inc. Managing tunnel endpoints for facilitating creation of logical networks
US9641459B2 (en) * 2015-04-24 2017-05-02 Alcatel Lucent User-defined flexible traffic monitoring in an SDN switch
US20160320967A1 (en) * 2015-04-29 2016-11-03 Broadcom Corporation Receive Side Packet Aggregation
CN104980364A (zh) * 2015-06-23 2015-10-14 浪潮电子信息产业股份有限公司 一种基于智能查找算法的链路负载均衡方法
US10115463B1 (en) * 2015-06-25 2018-10-30 Xilinx, Inc. Verification of a RAM-based TCAM
US10554484B2 (en) 2015-06-26 2020-02-04 Nicira, Inc. Control plane integration with hardware switches
WO2017003436A1 (en) * 2015-06-30 2017-01-05 Hewlett Packard Enterprise Development Lp Action references
WO2017014757A1 (en) * 2015-07-21 2017-01-26 Hewlett Packard Enterprise Development Lp Using a single cache table
CN108028808B (zh) * 2015-07-24 2022-07-26 安培计算有限责任公司 单芯片服务器中的讯流钉扎
US9847938B2 (en) 2015-07-31 2017-12-19 Nicira, Inc. Configuring logical routers on hardware switches
US9819581B2 (en) 2015-07-31 2017-11-14 Nicira, Inc. Configuring a hardware switch as an edge node for a logical router
US9967182B2 (en) 2015-07-31 2018-05-08 Nicira, Inc. Enabling hardware switches to perform logical routing functionalities
US10313186B2 (en) 2015-08-31 2019-06-04 Nicira, Inc. Scalable controller for hardware VTEPS
US9948577B2 (en) 2015-09-30 2018-04-17 Nicira, Inc. IP aliases in logical networks with hardware switches
US10263828B2 (en) 2015-09-30 2019-04-16 Nicira, Inc. Preventing concurrent distribution of network data to a hardware switch by multiple controllers
US10230576B2 (en) 2015-09-30 2019-03-12 Nicira, Inc. Managing administrative statuses of hardware VTEPs
US9998324B2 (en) 2015-09-30 2018-06-12 Nicira, Inc. Logical L3 processing for L2 hardware switches
US10250553B2 (en) 2015-11-03 2019-04-02 Nicira, Inc. ARP offloading for managed hardware forwarding elements
US9766971B2 (en) 2015-12-04 2017-09-19 Intel Corporation Physical layer device operation system and method
US9998375B2 (en) 2015-12-15 2018-06-12 Nicira, Inc. Transactional controls for supplying control plane data to managed hardware forwarding elements
US9992112B2 (en) 2015-12-15 2018-06-05 Nicira, Inc. Transactional controls for supplying control plane data to managed hardware forwarding elements
US10230633B2 (en) 2016-01-21 2019-03-12 Red Hat, Inc. Shared memory communication in software defined networking
US10142163B2 (en) 2016-03-07 2018-11-27 Cisco Technology, Inc BFD over VxLAN on vPC uplinks
US10333828B2 (en) 2016-05-31 2019-06-25 Cisco Technology, Inc. Bidirectional multicasting over virtual port channel
US10182035B2 (en) 2016-06-29 2019-01-15 Nicira, Inc. Implementing logical network security on a hardware switch
US11509501B2 (en) 2016-07-20 2022-11-22 Cisco Technology, Inc. Automatic port verification and policy application for rogue devices
US10193750B2 (en) 2016-09-07 2019-01-29 Cisco Technology, Inc. Managing virtual port channel switch peers from software-defined network controller
US10547509B2 (en) 2017-06-19 2020-01-28 Cisco Technology, Inc. Validation of a virtual port channel (VPC) endpoint in the network fabric

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040030803A1 (en) * 2002-08-10 2004-02-12 Eatherton William N. Performing lookup operations using associative memories optionally including modifying a search key in generating a lookup word and possibly forcing a no-hit indication in response to matching a particular entry
US7356033B2 (en) * 2002-11-21 2008-04-08 Lucent Technologies Inc. Method and apparatus for performing network routing with use of power efficient TCAM-based forwarding engine architectures
US7602787B2 (en) * 2001-05-21 2009-10-13 Cisco Technology, Inc. Using ternary and binary content addressable memory stages to classify information such as packets

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6289414B1 (en) * 1998-10-08 2001-09-11 Music Semiconductors, Inc. Partially ordered cams used in ternary hierarchical address searching/sorting
US7028098B2 (en) 2001-07-20 2006-04-11 Nokia, Inc. Selective routing of data flows using a TCAM
US7382787B1 (en) 2001-07-30 2008-06-03 Cisco Technology, Inc. Packet routing and switching device
US6697276B1 (en) * 2002-02-01 2004-02-24 Netlogic Microsystems, Inc. Content addressable memory device
US7234019B1 (en) 2003-12-12 2007-06-19 Raza Microelectronics, Inc. Method and apparatus for implementing a search engine using an SRAM
US20050213359A1 (en) 2004-03-26 2005-09-29 Kim Jin K Hybrid content addressable memory
US20050262294A1 (en) 2004-05-05 2005-11-24 Nabil Bitar Method for policy matching using a hybrid TCAM and memory-based scheme
US7809701B2 (en) 2007-10-15 2010-10-05 Telefonaktiebolaget Lm Ericsson (Publ) Method and system for performing exact match searches using multiple hash tables
US8874838B2 (en) 2009-12-28 2014-10-28 Juniper Networks, Inc. Providing dynamic databases for a TCAM

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7602787B2 (en) * 2001-05-21 2009-10-13 Cisco Technology, Inc. Using ternary and binary content addressable memory stages to classify information such as packets
US20040030803A1 (en) * 2002-08-10 2004-02-12 Eatherton William N. Performing lookup operations using associative memories optionally including modifying a search key in generating a lookup word and possibly forcing a no-hit indication in response to matching a particular entry
US7356033B2 (en) * 2002-11-21 2008-04-08 Lucent Technologies Inc. Method and apparatus for performing network routing with use of power efficient TCAM-based forwarding engine architectures

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JPN6016003227; Chen, Yuhua, and Oguntoyinbo, Oladapo: 'Power efficient packet classification using cascaded bloom filter and off-the-shelf ternary CAM for' Computer Communications 32.2 , 2009, pp. 349-356 *
JPN6016003227; Chen, Yuhua, and Oladapo Oguntoyinbo: 'Power efficient packet classification using cascaded bloom filter and off-the-shelf ternary CAM for' Computer Communications 32.2 , 2009, pp. 349-356 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016118874A (ja) * 2014-12-19 2016-06-30 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ビットを選択する所定位置を変更することでハッシュ関数を1つ以上生成することが可能なハッシュ値を計算する方法、並びに、その為のコンピュータ及びコンピュータ・プログラム

Also Published As

Publication number Publication date
WO2012129432A2 (en) 2012-09-27
JP5921666B2 (ja) 2016-05-24
US8874876B2 (en) 2014-10-28
WO2012129432A3 (en) 2012-12-06
US20120246400A1 (en) 2012-09-27

Similar Documents

Publication Publication Date Title
JP5921666B2 (ja) パケットスイッチングのための方法及び装置
US9032089B2 (en) Methods and apparatus for path selection within a network based on flow duration
US8295282B2 (en) Method and apparatus for MAC address learning
US7149214B2 (en) Dynamic unknown L2 flooding control with MAC limits
US8249065B2 (en) Destination MAC aging of entries in a Layer 2 (L2) forwarding table
US10778721B1 (en) Hash-based ACL lookup offload
US8774179B1 (en) Member link status change handling for aggregate interfaces
US10298500B2 (en) Using consistent hashing for ECMP routing
WO2013054344A2 (en) Method and apparatus for end-end communication and inter-domain routing in omnipresent ethernet networks with an option to migrate to mpls-tp
EP2680536B1 (en) Methods and apparatus for providing services in a distributed switch
Pontarelli et al. Parallel d-pipeline: A cuckoo hashing implementation for increased throughput
US20210399908A1 (en) Multicast routing
US9391893B2 (en) Lookup engine for an information handling system
US9491090B1 (en) Methods and apparatus for using virtual local area networks in a switch fabric
US8699485B2 (en) Multicast over lag and IRB in a routing device
US9184997B2 (en) Selective network merging
CN106453091B (zh) 路由器转发平面的等价路由管理方法和装置
US8891406B1 (en) Methods and apparatus for tunnel management within a data center
US11115333B2 (en) Single stage look up table based match action processor for data packets
US11689464B2 (en) Optimizing entries in a content addressable memory of a network device
US20210044521A1 (en) System and method of processing packet classification with range sets
JP4879728B2 (ja) 検索装置およびデータ処理装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150319

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150319

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160202

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160202

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: 20160412

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160412

R150 Certificate of patent or registration of utility model

Ref document number: 5921666

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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: R313117

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

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