JP4557745B2 - 高速なルーティングテーブル学習およびルックアップ - Google Patents
高速なルーティングテーブル学習およびルックアップ Download PDFInfo
- Publication number
- JP4557745B2 JP4557745B2 JP2005040467A JP2005040467A JP4557745B2 JP 4557745 B2 JP4557745 B2 JP 4557745B2 JP 2005040467 A JP2005040467 A JP 2005040467A JP 2005040467 A JP2005040467 A JP 2005040467A JP 4557745 B2 JP4557745 B2 JP 4557745B2
- Authority
- JP
- Japan
- Prior art keywords
- address
- routing
- row
- module
- storage element
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Description
(付記1)
パケットを通信するように動作可能な複数のポートと、
受信パケットを前記ポート間で転送するように動作可能なスイッチ機構と、
論理的に複数行に分割された複数のメモリバンクであって、各行は前記メモリバンクの各々の記憶場所を有し、前記記憶場所の各々はルーティングエントリを保持可能であるところのメモリバンクと、
複数のオーバーフロー記憶場所を有するオーバーフローバッファであって、各オーバーフロー記憶場所はルーティングエントリを保持可能であるところのオーバーフローバッファと、
前記ポートの1つからメモリアクセス要求を受信し、前記メモリアクセス要求により示されたアドレスに基づき前記行の1つを決定し、メモリアクセス動作を実行するために前記示された行と前記オーバーフローバッファにアクセスするように動作可能であるメモリ制御モジュールとを有することを特徴とするスイッチ。
(付記2)
付記1に記載のスイッチであって、
前記メモリアクセス要求はルックアップ動作を要求するものであり、
前記メモリ制御モジュールは、
前記示された行と前記オーバーフローバッファから潜在的なルーティングエントリを受信し、
前記潜在的なルーティングエントリの各々に対して前記アドレスを比較し、
前記アドレスが前記潜在的なルーティングエントリの1つと一致したとき、前記潜在的ルーティングエントリの前記一致する1つにより示されたルーティング情報を返すことによりメモリアクセス動作を実行するようにさらに動作可能であることを特徴とするスイッチ。
(付記3)
付記1に記載のスイッチであって、
前記メモリアクセス要求はルーティング情報を特定する学習動作を要求するものであり、
メモリ制御モジュールは、
前記示された行がその前記記憶場所の各々に有効なルーティングエントリを有するかどうかを判断し、
利用可能な前記オーバーフロー記憶場所の1つを決定し、
前記アドレスと前記ルーティング情報を前記利用可能なオーバーフロー記憶場所の1つに書きこむことによりメモリアクセス動作を実行するようにさらに動作可能であることを特徴とするスイッチ。
(付記4)
付記1に記載のスイッチであって、
前記メモリ制御モジュールは、
ルックアップ要求と学習要求を前記ポートから受け取り、前記ルックアップ要求と前記学習要求に基づき一連のメモリアクセス動作をスケジューリングするように動作可能であるアービトレーションモジュールと、
前記行の1つを示すハッシュ鍵を、前記一連のメモリアクセス動作の各々において、そのメモリアクセス動作により示されたアドレスから決定し、前記オーバーフローバッファと前記ハッシュ鍵により示された前記行にアクセスするように動作可能なメモリアクセスモジュールとを有することを特徴とするスイッチ。
(付記5)
付記4に記載のスイッチであって、前記アービトレーションモジュールは、未実行の学習要求を実行するメモリアクセス動作をスケジューリングする前に、未実行のルックアップ要求を実行するメモリアクセス動作をスケジューリングすることを特徴とするスイッチ。
(付記6)
付記4に記載のスイッチであって、学習要求を実行するため、前記アービトレーションモジュールは、
前記学習要求のソースアドレスを示す読み出し要求を含む第1のメモリアクセス動作をスケジューリングし、
前記読み出し動作が前記メモリバンクと前記オーバーフローバッファ中に失敗を検出したかどうか判断し、
失敗が検出されたとき、ソースアドレスと前記学習要求のポートマッピングを示す書き込み動作を含む第2のメモリアクセス動作をスケジューリングするように動作可能であることを特徴とするスイッチ。
(付記7)
付記6に記載のスイッチであって、前記アービトレーションモジュールは、前記第1のメモリアクセス動作が書き込み動作を含まないことを保証するようにさらに動作可能であることを特徴とするスイッチ。
(付記8)
付記1に記載のスイッチであって、前記オーバーフローバッファは複数のメモリ要素を有することを特徴とするスイッチ。
(付記9)
付記8に記載のスイッチであって、
前記メモリ要素は複数の前記行に対応し、
前記メモリ制御モジュールは、前記示された行とそれに対応する前記1以上のメモリ要素にアクセスすることにより、前記メモリアクセス動作を実行するために、前記示された行と前記オーバーフローバッファにアクセスするようにさらに動作可能であることを特徴とするスイッチ。
(付記10)
ルーティングテーブル動作を実行する方法であって、
複数のポートのいずれかから受信したルックアップ要求および学習要求をモニターするステップと、
行き先アドレスを有するルックアップ要求を検出するステップと、
前記行き先アドレスに基づきハッシュ鍵を決定するステップと、
論理的に複数の行に分かれた複数のメモリバンクを有するメモリモジュールに前記ハッシュ鍵を用いてアクセスするステップであって、前記行の各々は前記メモリバンクの各々の記憶場所を有し、前記記憶場所の各々にはルーティングエントリを保持可能であり、前記ハッシュ鍵は前記行の1つを示すところのステップと、
と、
複数のオーバーフロー記憶場所を有するオーバーフローバッファにアクセスするステップであって、前記オーバーフロー記憶場所の各々にはルーティングエントリを保持可能であるところのステップと、
前記示された行または前記オーバーフローバッファのエントリの1つが前記行き先アドレスと一致するアドレス情報を含んでいるかどうかを判断するステップと、
前記示された行または前記オーバーフローバッファが一致するエントリを含むとき、前記一致するエントリのルーティング情報であって1以上の前記ポートを識別するルーティング情報を返すステップとを有することを特徴とする方法。
(付記11)
付記10に記載の方法であって、
ソースアドレスとルーティング情報を示す学習要求を検出するステップと、
前記行のうち別の1つを示す第2のハッシュ鍵を前記ソースアドレスに基づいて決定するステップと、
前記第2のハッシュ鍵を用いて前記メモリモジュールにアクセスするステップとを有することを特徴とする方法。
(付記12)
付記11に記載の方法であって、
前記第2のハッシュ鍵を用いて前記メモリモジュールにアクセスしている間は、前記メモリバンクはどれも書き込み動作を実行しないことを保証するステップをさらに有することを特徴とする方法。
(付記13)
付記11に記載の方法であって、
前記第2の示された行のエントリの1つに前記ソースアドレスと一致するアドレス情報が含まれているかどうかを判断するステップと、
前記エントリはいずれも一致しなかったときに、前記第2の示された行には利用可能な記憶場所がまだあるかどうかを判断するステップと、
前記第2の示された行には利用可能な記憶場所がまだあるとき、前記ソースアドレスと前記ルーティング情報を前記利用可能な記憶場所に書き込むステップとをさらに有することを特徴とする方法。
(付記14)
付記11に記載の方法であって、
前記第2の示された行のエントリには前記ソースアドレスと一致するアドレス情報が含まれているかどうかを判断するステップと、
前記エントリが一致しないとき、前記第2の示された行には利用可能な記憶場所があるかどうかを判断するステップと、
前記第2の示された行に利用可能な記憶場所がないとき、利用可能なオーバーフロー記憶場所を決定し、前記ソースアドレスと前記ルーティング情報を前記利用可能なオーバーフロー記憶場所に書き込むステップとをさらに有することを特徴とする方法。
(付記15)
付記10に記載の方法であって、
未処理の学習要求を処理する前に未処理のルックアップ要求を処理することを特徴とする方法。
(付記16)
付記10に記載の方法であって、
前記行き先アドレスがマルチキャストアドレスであることを判断し、その判断に応じて、前記ハッシュ鍵を用いて前記メモリモジュールにアクセスしている間は、前記メモリバンクがどれも書き込み動作を実行しないことを保証することを特徴とする方法。
(付記17)
付記10に記載の方法であって、
前記ハッシュ鍵を用いて前記メモリモジュールにアクセスしている間に、前記メモリバンクの選択された1つ内の記憶場所の1つを示す書き込み動作を実行するステップをさらに有し、
前記ハッシュ鍵を用いて前記メモリモジュールにアクセスするステップにおいて、前記書き込み動作に示されたメモリバンク以外のメモリバンクすべての、前記示された行のエントリを読み出すことを特徴とする方法。
(付記18)
スイッチであって、
複数のポートのいずれかから受信したルックアップ要求および学習要求をモニターする手段と、
行き先アドレスを有するルックアップ要求を検出する手段と、
前記行き先アドレスに基づきハッシュ鍵を決定する手段と、
論理的に複数の行に分かれた複数のメモリバンクを有するメモリモジュールに前記ハッシュ鍵を用いてアクセスする手段であって、前記行の各々は前記メモリバンクの各々の記憶場所を有し、前記記憶場所の各々にはルーティングエントリを保持可能であり、前記ハッシュ鍵は前記行の1つを示すところの手段と、
と、
複数のオーバーフロー記憶場所を有するオーバーフローバッファにアクセスする手段であって、前記オーバーフロー記憶場所の各々にはルーティングエントリを保持可能であるところの手段と、
前記示された行または前記オーバーフローバッファのエントリの1つが前記行き先アドレスと一致するアドレス情報を含んでいるかどうかを判断する手段と、
前記示された行または前記オーバーフローバッファが一致するエントリを含むとき、前記一致するエントリのルーティング情報であって1以上の前記ポートを識別するルーティング情報を返す手段とを有することを特徴とするスイッチ。
(付記19)
付記18に記載のスイッチであって、
ソースアドレスとルーティング情報を示す学習要求を検出する手段と、
前記行の別の1つを示す第2のハッシュ鍵を前記ソースアドレスに基づいて決定する手段と、
前記第2のハッシュ鍵を用いて前記メモリモジュールにアクセスする手段とを有することを特徴とするスイッチ。
(付記20)
付記19に記載の方法であって、
前記第2のハッシュ鍵を用いて前記メモリモジュールにアクセスしている間は、前記メモリバンクはどれも書き込み動作を実行しないことを保証する手段をさらに有することを特徴とするスイッチ。
(付記21)
付記19に記載のスイッチであって、
前記第2の示された行のエントリの1つに前記ソースアドレスと一致するアドレス情報が含まれているかどうかを判断する手段と、
前記エントリはいずれも一致しなかったときに、前記第2の示された行には利用可能な記憶場所がまだあるかどうかを判断する手段と、
前記第2の示された行には利用可能な記憶場所がまだあるとき、前記ソースアドレスと前記ルーティング情報を前記利用可能な記憶場所に書き込む手段とをさらに有することを特徴とするスイッチ。
(付記22)
付記19に記載のスイッチであって、
前記第2の示された行のエントリには前記ソースアドレスと一致するアドレス情報が含まれているかどうかを判断する手段と、
前記エントリが一致しないとき、前記第2の示された行には利用可能な記憶場所があるかどうかを判断する手段と、
前記第2の示された行に利用可能な記憶場所がないとき、利用可能なオーバーフロー記憶場所を決定し、前記ソースアドレスと前記ルーティング情報を前記利用可能なオーバーフロー記憶場所に書き込む手段とをさらに有することを特徴とするスイッチ。
22 アクセスモジュール
30 選択ロジック
32 ルックアップ要求
34 行出力
36 オーバーフロー1出力
38 オーバーフロー2出力
Claims (7)
- パケットを送信または受信可能な複数のポートと、
受信パケットを前記複数のポート間で転送するように動作可能なスイッチ機構と、
論理的に複数の行に分割され、アドレスと、前記アドレスに対応づけられたポートを示す情報とを含むルーティングエントリを保持する行を、前記複数の行のうち、前記アドレスを変数とする所定の変換により示される行とする制限が可能な記憶素子であって、前記所定の変換により示される行が同一である複数のアドレスのうち、一部のアドレスについてのルーティングエントリを前記所定の変換により示される行に保持する第一の記憶素子群と、
前記所定の変換により示される行が同一である前記複数のアドレスのうち、前記一部のアドレスでないアドレスについてのルーティングエントリを、前記制限を与えずに保持可能な第二の記憶素子と、
前記複数のポートの1つが受信した受信パケットに含まれるアドレスを変数とする前記所定の変換により示される前記第一の記憶素子の行に保持されたルーティングエントリと、前記第二の記憶素子に保持されたルーティングエントリとを読み出すように動作可能なメモリ制御モジュールと
を有することを特徴とするスイッチ。 - 請求項1に記載のスイッチであって、
前記メモリ制御モジュールは、
前記受信パケットに含まれるアドレスを変数とする前記所定の変換により示される前記第一の記憶素子の行と前記第二の記憶素子からルーティングエントリを読み出し、
読み出した前記ルーティングエントリの各々と、前記受信パケットに含まれる行き先アドレスとを比較し、
前記行き先アドレスが、読み出した前記ルーティングエントリの1つと一致したとき、前記ルーティングエントリの前記一致する1つに含まれるルーティングポートを示す情報を返すようにさらに動作可能であること
を特徴とするスイッチ。 - 請求項1に記載のスイッチであって、
メモリ制御モジュールは、
第一の記憶素子群のいずれの記憶素子においても、前記受信パケットに含まれるソースアドレスを変数とする前記所定の変換により示される行に、前記受信パケットのソースアドレスと一致しないアドレス情報を含むルーティングエントリが保持されていた場合、受信パケットを受信したポートを示す情報と、前記ソースアドレスを含むルーティングエントリを第二の記憶素子に書き込むように、さらに動作可能であること
を特徴とするスイッチ。 - 請求項1ないし3いずれか一項に記載のスイッチであって、
前記複数のポートのそれぞれは、前記受信パケットの行き先アドレスを含むルックアップ要求と、前記受信パケットのソースアドレスとポートを示す情報とを含む学習要求を、前記受信パケットに応じてメモリ制御モジュールに出力し、
前記メモリ制御モジュールは、
前記ルックアップ要求と前記学習要求を前記ポートから受け取り、前記ルックアップ要求と前記学習要求に基づき一連のメモリアクセス動作をスケジューリングするように動作可能であるアービトレーションモジュールと、
前記第一の記憶素子の前記行の1つを示すハッシュ鍵を、前記ルックアップ要求または前記学習要求に含まれるアドレスから決定し、前記第二の記憶素子と、前記ハッシュ鍵により示された前記第一の記憶素子の前記行とにアクセスするように動作可能なメモリアクセスモジュールとを有すること
を特徴とするスイッチ。 - 請求項1ないし4いずれか一項に記載のスイッチであって、前記第二の記憶素子を複数有することを特徴とするスイッチ。
- 請求項5記載のスイッチであって、
前記第一の記憶素子の前記行が、複数の前記第二の記憶素子の少なくとも1つと対応づけられており、
前記メモリ制御モジュールは、前記受信パケットに含まれる前記アドレスに基づいて示された前記第一の記憶素子群の前記行と、それに対応する前記第二の記憶素子とにアクセスするように動作可能であることを特徴とするスイッチ。 - 受信パケットを送信するポートを示す情報を読み出す方法であって、
複数のポートのいずれかから受信する受信パケットの行き先アドレスを含むルックアップ要求と、前記受信パケットのソースアドレスとポートを示す情報とを含む学習要求をモニターするステップと、
前記ルックアップ要求を検出するステップと、
前記ルックアップ要求に含まれる前記行き先アドレスに基づきハッシュ鍵を決定するステップと、
論理的に複数の行に分かれた第一の記憶素子群の前記行に、前記ハッシュ鍵を用いてアクセスするステップであって、前記行の各々にはルーティングエントリを保持可能であり、前記ハッシュ鍵は前記行の1つを示すところのステップと、
前記第一の記憶素子群に保持されたルーティングエントリのいずれとも異なるアドレスを含むルーティングエントリを保持可能な第二の記憶素子にアクセスするステップと、
前記第一の記憶素子の前記示された行または前記第二の記憶素子のルーティングエントリの1つが、前記行き先アドレスと一致するアドレス情報を含んでいる場合、前記一致するアドレス情報を含んだルーティングエントリのルーティングポートを示す情報を返すステップと
を有することを特徴とする方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/783,065 US7477639B2 (en) | 2003-02-07 | 2004-02-20 | High speed routing table learning and lookup |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005236997A JP2005236997A (ja) | 2005-09-02 |
JP4557745B2 true JP4557745B2 (ja) | 2010-10-06 |
Family
ID=35007850
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005040467A Expired - Fee Related JP4557745B2 (ja) | 2004-02-20 | 2005-02-17 | 高速なルーティングテーブル学習およびルックアップ |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP4557745B2 (ja) |
CN (1) | CN100555985C (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1794673B (zh) * | 2005-12-27 | 2011-11-30 | 王卫亚 | 一种利用ip协议组建局域网的方法 |
US7873041B2 (en) | 2006-12-01 | 2011-01-18 | Electronics And Telecommunications Research Institute | Method and apparatus for searching forwarding table |
EP2377273B1 (en) * | 2009-01-12 | 2015-08-26 | Hewlett-Packard Development Company, L.P. | Reducing propagation of message floods in computer networks |
JP4800415B2 (ja) * | 2009-08-17 | 2011-10-26 | 富士通株式会社 | 中継装置、macアドレス検索方法 |
US20130142195A1 (en) * | 2010-09-14 | 2013-06-06 | Gregg B. Lesartre | Computer system fabric switch |
US8856420B2 (en) * | 2011-12-27 | 2014-10-07 | Intel Corporation | Multi-protocol I/O interconnect flow control |
JP6991446B2 (ja) * | 2018-05-18 | 2022-01-12 | 日本電信電話株式会社 | パケット処理装置及びそのメモリアクセス制御方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06261078A (ja) * | 1993-03-03 | 1994-09-16 | Hitachi Ltd | テーブル検索方法及びルータ装置 |
JP2002334114A (ja) * | 2001-05-10 | 2002-11-22 | Allied Tereshisu Kk | テーブル管理方法及び装置 |
-
2005
- 2005-02-16 CN CNB2005100080882A patent/CN100555985C/zh not_active Expired - Fee Related
- 2005-02-17 JP JP2005040467A patent/JP4557745B2/ja not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06261078A (ja) * | 1993-03-03 | 1994-09-16 | Hitachi Ltd | テーブル検索方法及びルータ装置 |
JP2002334114A (ja) * | 2001-05-10 | 2002-11-22 | Allied Tereshisu Kk | テーブル管理方法及び装置 |
Also Published As
Publication number | Publication date |
---|---|
JP2005236997A (ja) | 2005-09-02 |
CN1658597A (zh) | 2005-08-24 |
CN100555985C (zh) | 2009-10-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7408930B2 (en) | Address learning to enable high speed routing table lookups | |
US7477639B2 (en) | High speed routing table learning and lookup | |
JP4557745B2 (ja) | 高速なルーティングテーブル学習およびルックアップ | |
US7606236B2 (en) | Forwarding information base lookup method | |
US8345685B2 (en) | Method and device for processing data packets | |
US7555579B2 (en) | Implementing FIFOs in shared memory using linked lists and interleaved linked lists | |
US7324509B2 (en) | Efficient optimization algorithm in memory utilization for network applications | |
US20030016689A1 (en) | Switch fabric with dual port memory emulation scheme | |
US20040205229A1 (en) | Method and apparatus for longest prefix matching in processing a forwarding information database | |
US10944675B1 (en) | TCAM with multi region lookups and a single logical lookup | |
US7627672B2 (en) | Network packet storage method and network packet transmitting apparatus using the same | |
JP5205956B2 (ja) | メモリ制御装置 | |
US8392672B1 (en) | Identifying unallocated memory segments | |
CA2784707A1 (en) | Distributed routing architecture | |
US10884829B1 (en) | Shared buffer memory architecture | |
US11757801B1 (en) | Spatial dispersion buffer | |
US11899985B1 (en) | Virtual modules in TCAM | |
US6336156B1 (en) | Increased speed initialization using dynamic slot allocation | |
US7400623B2 (en) | Method and apparatus for managing medium access control (MAC) address | |
US9256548B2 (en) | Rule-based virtual address translation for accessing data | |
US8085766B2 (en) | S-flow in a network device | |
US12019542B2 (en) | High performance cache eviction | |
US6885591B2 (en) | Packet buffer circuit and method | |
KR100429543B1 (ko) | 네트워크 프로세서에서 다양한 개수의 포트들을 처리하기위한 방법 | |
GB2321820A (en) | A method for dynamically allocating buffers to virtual channels in an asynchronous network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080204 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20091208 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100208 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100216 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20100316 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100427 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20100623 |
|
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: 20100713 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100720 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4557745 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: 20130730 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |