JP4336625B2 - パケット転送装置 - Google Patents

パケット転送装置 Download PDF

Info

Publication number
JP4336625B2
JP4336625B2 JP2004179612A JP2004179612A JP4336625B2 JP 4336625 B2 JP4336625 B2 JP 4336625B2 JP 2004179612 A JP2004179612 A JP 2004179612A JP 2004179612 A JP2004179612 A JP 2004179612A JP 4336625 B2 JP4336625 B2 JP 4336625B2
Authority
JP
Japan
Prior art keywords
search
destination address
packet
tcam
address
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
Application number
JP2004179612A
Other languages
English (en)
Other versions
JP2006005636A (ja
JP2006005636A5 (ja
Inventor
武己 矢崎
真一 赤羽
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2004179612A priority Critical patent/JP4336625B2/ja
Priority to CN200510003915A priority patent/CN100581129C/zh
Priority to US11/032,159 priority patent/US7315547B2/en
Publication of JP2006005636A publication Critical patent/JP2006005636A/ja
Publication of JP2006005636A5 publication Critical patent/JP2006005636A5/ja
Application granted granted Critical
Publication of JP4336625B2 publication Critical patent/JP4336625B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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/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/7453Address table lookup; Address filtering using hashing

Landscapes

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

Description

本発明は、高速な経路テーブル検索部を備えたパケット転送装置に関し、特に、CAMを用いて経路テーブル検索の高速化を実現するパケット転送装置に関する。
IP(Internet Protocol)ネットワークを構成するルータは、入力するパケットの宛先IPアドレスから転送先のネットワーク装置のIPアドレス(次ホップIPアドレス)を判定し、このネットワーク装置に到る出力回線へパケットを転送する。
ルータはこの次ホップIPアドレスを判定するために、IPアドレスの上位ビットでありネットワークを表すプリフィックスと、このプリフィックスに対応する次ホップIPアドレスから成る経路エントリを複数格納する経路テーブルを備えている。ルータは、パケットが入力されると各エントリのプリフィックスと、ヘッダ内の宛先IPアドレスの上位ビットが一致する経路エントリを探し出して、一致した経路エントリ内の次ホップIPアドレスを入力パケットの次ホップIPアドレスと判定する。
複数の経路エントリが一致する場合には、プリフィックスのビット長(プリフィックス長)がより長い経路エントリを一致する経路エントリと判定する。以下ではこの一連の判定動作を経路テーブル検索と呼ぶ。
この経路テーブル検索を、図13に示す経路テーブルを用いて具体的に説明する。図13の経路テーブル1100には、IPアドレスが8ビットで表されるときに6つの経路エントリ1101−1〜6が存在する場合を示し、それぞれの経路エントリ1101はプリフィックスと等価な情報であるIPアドレス条件と、これらの各IPアドレス条件に対応する次ホップIPアドレスから構成される。ここで、IPアドレス条件とは、プリフィックスを上位ビットとし、IPアドレスの残りのビットをマスク(*)とした情報である。
例えば、宛先IPアドレスが2進数で”00010100”のパケットがルータに入力した場合を考える。この際の経路テーブル検索では、経路エントリ1101−1と1101−4のIPアドレス条件と宛先IPアドレスが一致するが、プリフィックス長がより長い経路エントリ1101−1内の次ホップIPアドレス:Aが入力したパケットの次ホップIPアドレスと判定される。
このテーブル検索処理の高速化を実現するために、高速検索用のデバイスであるTCAM(Ternary Contents Addressable Memory)を用いた経路テーブル検索方法が提案されている。例えば、経路テーブル検索とフローの識別処理をTCAMにより高速に実現する方法について記載されている(非特許文献1)。
TCAMは複数ビットの一致条件を格納するエントリを複数備え、検索キーが入力されるとエントリ内の一致条件と検索キーの一致比較を行い、一致したエントリのアドレスのなかで最も小さなアドレス値を高速に出力する。さらに、TCAMでは一致条件のビット毎に’0’、’1’の指定だけでなく、検索キーが’0’でも’1’でも良いことを表すマスク(‘*’と記載する)を指定することも可能である。
上記非特許文献1の経路テーブル検索手段は、経路エントリのIPアドレス条件をそのプリフィックス長が長い順に格納したTCAMと、各IPアドレス条件に対応する次ホップIPアドレスを格納する検索結果保持テーブルを備える。
IPアドレス条件のマスク部分は、TCAMのマスクに対応させる。経路テーブル検索手段はパケットが入力されると、パケットヘッダ内の宛先IPアドレスを経路テーブル検索手段が備えるTCAMへ検索キーとして入力する。TCAMはこの検索キーと設定されたIPアドレス条件との比較を行い、一致したIPアドレス条件が格納されるアドレスの中で最も小さなアドレスを判定する。経路テーブル検索手段は、このアドレスに対応する検索結果保持テーブルの次ホップIPアドレスを、入力パケットの次ホップIPアドレスと判定する。TCAMは設定エントリ数、即ちIPアドレス条件数に関わらず高速な検索を行うことができる。
上記非特許文献1を適用した経路テーブル検索部を、図14の概念図を用いて説明する。図14は図13に示した6つの経路エントリのIPアドレス条件をプリフィックス長の順に、IPアドレス条件1201−iとして設定したTCAM1200と、各IPアドレス条件1201−i(i=1〜6)に対応する次ホップIPアドレスを次ホップIPアドレス1211−i(i=1〜6)として格納した検索結果保持テーブル1210から構成される。
例えば、宛先IPアドレスが”00010101”のパケットが入力された場合、経路テーブル検索部のTCAM1200は、IPアドレス条件1201−iとこの宛先IPアドレスを比較して一致するIPアドレス条件1201のうち最も小さなアドレス’2’を出力する。
経路テーブル検索部は、検索結果保持テーブル1210のアドレス’2’に対応する次ホップIPアドレス:Bを入力パケットの次ホップIPアドレスと判定する。
しかし、上記TCAMを用いた経路テーブル検索手段の高速化を実現する上で、まず、第1にTCAMの検索性能がボトルネックとなる。
さらに、経路テーブル検索処理部をTCAMとASICやネットワークプロセッサなどのCAM制御デバイスで構成した場合、TCAMとCAM制御デバイス間の検索キーの入力帯域もボトルネックとなる。
そして、上記非特許文献1では常に受信したパケットの宛先アドレスの全ビットを検索キーとしてTCAMに入力するため、上記検索キーの入力帯域を最大限消費してしまう。さらに、TCAMもこの長い検索キーとTCAM内のエントリの一致比較を行うため、検索資源を最大限消費してしまう。このため、TCAMの検索性能やTCAMとCAM制御デバイス間の検索キーの入力帯域がボトルネックとなったとき、最悪の検索性能しか実現できないという問題がある。
CAMの検索性能のボトルネックを解決する経路テーブル検索方法としては、複数のCAMを用いる特許文献1が知られている。特許文献1では、経路テーブル検索を2段に分けて行い、1段目の処理部でCAM(Contents Addressable Memory)を用いて1回目の検索を行い、2段目の処理部にツリーを配置して2回目の検索を行う。1段目の処理部は、経路エントリのプリフィックス長に応じたグループ毎にCAMを備える。各グループの経路エントリ中で最短のプリフィックス長分のビットだけをこのCAMに格納する。検索時にはそれぞれのCAMに設定されたビットに対応する宛先IPアドレスのビットを入力し、CAMは一致したエントリに対応するツリー格納メモリのアドレスを出力する。2段目の処理部はこのアドレスに基づいてツリー検索を実行し、次ホップIPアドレスを決定する。
特開2000−358064号 宇賀 雅則、塩平 公平 著、「連想メモリを用いたフロー識別法」、社団法人電子情報通信学会、2000年総合大会講演論文集、SB-4-2、第654頁
しかし、上記特許文献1では、複数のCAMを備えることによりCAMの検索性能に関するボトルネックは解消されるが、検索キーの入力帯域のボトルネックは解消されない。この問題点を図14のようにIPアドレスが8ビットであり、例えば、IPアドレスのプリフィックス長が3ビットから5ビットの経路エントリ(1201−3〜6)を第1のCAMに、6ビットから8ビットの経路エントリ(1201−1〜2)を第2のCAMに設定した場合を用いて説明する。
プリフィックス長が7ビットのエントリ1201−2に一致すべき場合には、第二のCAMだけを検索すれば良いために、宛先IPアドレスの上位6ビットだけを第二のCAMに入力すれぱ良い。しかし、4ビットのエントリ1201−5に一致すべき場合には、この6ビットに加えて第1のCAMに既に第2のCAMに入力した3ビットの情報を入力する必要がある。この様に、特許文献1では、同一のIPアドレスのビットを複数回CAMに入力する必要があるため、CAMとCAM制御デバイス間の検索キーの入力帯域がボトルネックとなったときに、検索性能劣化が大きくなるという問題がある。
本発明は、これらの問題点に鑑みてなされたもので、CAMに入力する宛先IPアドレスの情報を1回だけ入力することで、CAMとCAM制御デバイス間の検索キーの入力帯域を有効に活用して高速に経路テーブルの検索を行うことを目的とする。
本発明は、CAMを用いた経路テーブル検索の高速化を実現するために、マスクも設定可能なTCAMに宛先アドレス条件の上位ビットを第1のTCAMエントリとして設定する。パケットが入力されるとこのパケットの宛先アドレスの上位ビットと第1のTCAMエントリを比較する第1の検索処理を実行する。この時点で、一致する宛先アドレス条件を一意に特定可能な場合には検索処理を終了し、この宛先アドレス条件に対応する次ホップ宛先アドレスや出力回線番号などの転送情報を前記パケットの転送情報として設定する。さらに、前記経路テーブル検索手段が、経路エントリ内の次ホップ宛先アドレスや出力回線番号などの転送情報を格納する検索結果保持テーブルと、第1のTCAMエントリに一一意に対応する第1の検索処理後の検索処理継続の要否を指示する検索継続情報と、第1のTCAMエントリに一意に対応するキー情報と、を第1の検索処理部の検索結果に関連づけて格納する第1の検索中間テーブルを備える。
前記第1の検索処理部により第1のCAMエントリの検索を行い、一致した第1のCAMエントリに対応する検索継続情報が「継続不要」である場合には、一致したCAMエントリに一意に対応する転送情報を前記パケットの転送情報と判定する。一方、「継続要」である場合には、読み出したキー情報と前記宛先アドレスの下位ビットと宛先アドレス条件の下位ビットを用いて第2の検索処理部で検索を行って前記パケットの転送情報を判定する。例えば、第2の検索処理部は、第2のTCAMに宛先アドレス条件の下位ビットと上位ビットから定まるキー情報とを第2のTCAMエントリとして設定し、前記第1の検索処理部により読み出したキー情報と前記宛先アドレスの下位ビットを用いて第2のTCAMエントリの検索を行う。一致する第2のTCAMエントリが存在する場合には、このTCAMエントリに一意に対応する検索結果保持テーブル内の転送情報を前記パケットの転送情報と判定する。一致する第2のTCAMエントリが存在しない場合には、第1の検索処理にて一致したTCAMエントリに一意に対応する検索結果保持テーブル内の転送情報を前記パケットの転送情報と判定する。
したがって、本発明は、全ての宛先アドレスをTCAMに入力せず、宛先アドレスの上位ビットを部分的に検索キーとして入力し、この短い検索キーと第1のTCAMエントリを一致比較する。この時点で検索処理を終了可能な場合、即ち、検索継続情報が「継続不要」である場合には、短い検索キーの一度の入力とそれに対応したTCAMの検索で良いため、TCAMの検索性能を有効に利用しながら、検索キーの入力帯域を削減できる。
また、「継続要」である場合にも宛先アドレスの下位ビットだけを用いて検索する。第2の検索処理部をTCAMで実現した場合には、宛先アドレスの下位ビットだけを用いて検索するため、第1の検索処理と同様の検索キーを再度TCAMに入力する必要がない。そのため、検索キーの入力帯域が最小限に押さえられ、経路テーブル検索の高速化が実現される。
以下、本発明の一実施形態を添付図面に基づいて説明する。
図1は、本発明の経路テーブル検索部を備えたルータを示し、以下、ルータの概要動作を図1、図2および図3を用いて説明する。
図1は本発明のルータ200のブロック図を示す。ルータ200はパケットが入力するN個の入力回線201−i(i=1〜N)、N個の出力回線202−i(i=1〜N)、N個のインターフェース部210−i(i=1〜N)と、インターフェース部210−iを結合する一つのパケット中継処理部250と、一つのプロセッサ280から構成される。なお、プロセッサ280は、制御端末10からの指令を受ける。
インターフェース部210−iは、パケットの受信処理を行うパケット受信回路230と、入力パケットの宛先IPアドレスに基づいて該パケットの次ホップIPアドレスと該パケットを出力する回線の番号(出力回線番号あるいはポート番号)を判定し、これらの情報をパケット受信回路230に出力する本発明固有の経路テーブル検索部100と、パケット中継処理部250から受信したパケットのパケット送信処理を行うパケット送信回路270と、MACアドレスとIPアドレスの対応関係を示すARP(Address Resolution Protocol)テーブル検索部220から構成される。
図2は入力回線201−i、出力回線202−iから入出力されるパケットのフォーマットの一例を示す。本フォーマットはヘッダ部310とデータ部320から構成される。ヘッダ部310はデータリンク層の送信元アドレスである送信元MACアドレス311(Source MAC Address:以下「SMAC」という)、宛先アドレスである宛先MACアドレス312(Destination MAC Address:以下「DMAC」という)と、ネットワーク層の送信元アドレス(送信端末のアドレス)である送信元IPアドレス313(Source IP Address:以下「SIP」という)と、宛先アドレス(受信端末のアドレス)である宛先IPアドレス314(Destination IP Address:以下「DIP」という)とから構成される。
図3は本発明のルータ200内部のパケットフォーマットの一例を示す。本フォーマットは上記図2のパケットフォーマットに内部ヘッダ部330を加えたものである。
この内部ヘッダ部330は入力したパケットを出力する回線の番号である出力回線番号332と、該パケットを受信する次のホップ(ルータまたは端末)のIPアドレスである次ホップIPアドレス333(Next Hop IP Address:以下「NHIP」という)から構成される。
パケットが入力回線201−iより入力されるとパケット受信回路230は、内部ヘッダ部330を付加して本パケットを蓄積すると同時に、ヘッダ部310内のDIP314を宛先IPアドレス情報21として経路テーブル検索部100に送信する。
経路テーブル検索部100は前記宛先IPアドレス情報21内のDIP314よりパケットを出力する出力回線の番号(出力回線番号)と次ホップIPアドレスを判定し、パケット出力回線情報22としてパケット受信回路230に送信する。
パケット受信回路230は、パケット出力回線情報22内の出力回線番号と次ホップIPアドレスをそれぞれ出力回線番号332とNHIP333の各フィールドに書き込み、パケット中継処理部250へ送信する。
パケットを受信したパケット中継処理部250は、出力回線番号332に対応するインターフェース部210−iのパケット送信回路270に送信する。パケット送信回路270は本パケットを蓄積すると同時に、内部ヘッダ部330のNHIP333を次ホップIPアドレス情報23としてARPテーブル検索部220に送信する。
ARPテーブル検索部220は次ホップIPアドレス情報23を備えた次ホップのMACアドレスを判定し、MACアドレス情報24としてパケット送信回路270に送信する。
パケット送信回路270は次ホップMACアドレス情報24を受信すると、本情報内のMACアドレスをDMAC312に、インターフェース部210−iの入出力回線のMACアドレスをSMAC311に書き込み、内部ヘッダ部330を削除して蓄積したパケットを出力回線202に送信する。
次に図4に示す本発明の経路テーブル検索部100の詳細動作を説明する。本実施形態では、説明を簡易にするためにIPアドレスが8ビットであり、図13の6つの経路エントリが存在する場合について説明する。
IPアドレスがIPバージョン4の32ビットである場合や、IPバージョン6の128ビットである場合も、以下に説明する検索処理を同様に実行することができる。
図15は、上記図13で示したように、IPアドレスが8ビットで、6つの経路エントリが存在する場合の経路エントリ1101を記述したツリーを示す。なお経路エントリ1101−1〜6はそれぞれ「1」〜「6」のノードに対応する。
図中の根元にある「根」が0または1が割り当てられた2本の直線(枝)により、丸で表されるノード(幹)に接続される。さらに、ノードは枝により下位の(図の下に有る)ノードに接続される。それぞれのノードは、根からそのノードに到るまでに通過する枝に割り当てられた値を順に並べ、8ビットに満たないビットをマスク(*)としたIPアドレス条件に対応している。
例えば、図中「4」のノードは根から0→0→0→1の枝を辿れば到達できるためIPアドレス条件”0001****”に対応している。
図13の経路エントリ1101−1〜6は、それぞれ図15の「1」〜「6」のノードに対応する。あるノード1に到る経路上にあるノード2を親ノードと、またノード2に対するノード1を子ノードと呼ぶ。また、本実施形態では子ノードに対応する経路エントリから見た親ノードの経路エントリを親経路エントリと呼ぶ。例えば、図13において、経路エントリ1101−6は経路エントリ1101−2の親経路エントリである。
図4は本発明の経路テーブル検索部100のブロック図を示す。経路テーブル検索部100は宛先IPアドレス情報21を蓄積する宛先IPアドレス蓄積部180と、経路エントリのIPアドレス条件の上位ビットを設定するTCAM120内の上位ビット用TCAM120−1と、IPアドレス条件の下位ビットを格納する下位ビット用TCAM120−2と、検索中間テーブルA140および検索中間テーブルB150と、次ホップIPアドレスと出力回線番号を格納する検索結果保持テーブル160と、IPアドレスの上位ビットのビット長が設定されるアドレス境界蓄積部170と、これらのTCAM120、各テーブル140、150、160、170及び宛先IPアドレス蓄積部180に格納される情報から、ルータ200へ入力されたパケットの次ホップIPアドレスと出力回線番号を判定する検索制御部110から構成される。
本発明の経路テーブル検索部100は、一つのTCAM120を論理的にTCAM120−1とTCAM120−2に分割し、この分割したTCAM120−1を用いて宛先IPアドレスの上位ビットと、アドレス条件の上位ビットであるIPアドレス条件上位ビットを限定的に一致比較する。
この時点で一致すべきIPアドレス条件を判定可能な場合には、検索結果保持テーブル160より次ホップIPアドレスと出力回線番号を読み出して検索処理を終了する。
一致すべきIPアドレス条件を判定できない場合、再度、TCAM120−2を用いて宛先IPアドレスの下位ビットとIPアドレス条件下位ビットを一致比較し、一致すべきIPアドレス条件を判定する。
上位ビットの検索だけで検索処理が終了する場合には、上位ビットだけが検索キーとしてTCAM120−1に入力され、TCAM120−1は上位ビット分の検索キーにより検索を行うだけで良いため、本発明の経路テーブル検索部100はTCAM120の検索資源を有効に活用できる。
さらに、経路テーブル検索部100をTCAM120とASIC等のCAM制御デバイスで実現した場合、TCAM120とCAM制御デバイス間の図4の信号線25の帯域を有効活用して、経路テーブル検索の高速化を実現することができる。
以下ではアドレス境界蓄積部170内の情報が’4’(即ち、IPアドレスの長さが8ビットとしたとき、上位ビット長、下位ビット長とも4ビット)である場合について説明するが、他のビット長であっても、以下に説明する検索処理を同様に実行することができる。
上位ビットのビット長が’4’である時のTCAM120−1、TCAM120−2のフォーマット図5に示し、検索結果保持テーブル160のフォーマットを図9に示す。各経路エントリのIPアドレス条件の上位4ビットはTCAM120−1のエントリ121−i(i=1〜6)に、IPアドレス条件の下位ビット4ビットはTCAM120−2のエントリ131−i(i=1〜6)に設定される。
図9に示す検索結果保持テーブル160には、次ホップIPアドレスと対応する出力回線番号が、経路エントリのプリフィックス長が長い順に設定される。例えば、図13の経路エントリ1101−3のIPアドレス条件’01011***’と、次ホップIPアドレスは上位ビット用TCAM120−1のエントリ121−3と、下位ビット用TCAM120−2のエントリ131−3と検索結果保持テーブル160のエントリ161−3に分割して設定される。
図5において、TCAM120のビット位置情報はIPアドレス条件として設定されるIPアドレス4ビットのビット位置を表す情報であり、「0」が上位ビット、「1」が下位ビットを表す。
TCAM120の検索時に、他の検索キーにビット位置情報を付加して検索することにより論理的にTCAM120を2つのTCAM120−1とTCAM120−2に分割できる。
上記キー情報はIPアドレス条件の上位ビットを、少数のビット(例えば、1ビット)に圧縮した識別子であり下位ビットの検索時に用いられる。そのため、上位ビット用TCAM120−1のキー情報は常にマスク(*)となる。
また、上位ビット用TCAM120−1のエントリ121内のIPアドレス条件上位ビットが同一の場合には、TCAM120のアドレスがより大きなエントリ121を省略することができる。これは、より大きなアドレスのエントリ121に一致する前に、小さなアドレスのエントリ121に一致した場合、本エントリの設定は意味が無いためである。例えば、エントリ121−2とエントリ121−3のIPアドレス条件上位ビットは共に”0101”であり、エントリ121−3は省略可能である。
また、下位ビット用TCAM120−2のIPアドレス条件下位ビットが全てマスクのエントリ131−4〜6も省略できる。
図10は、経路テーブル検索部100で行われる処理の一例を示すフローチャートで、例えば、パケット受信回路230からの入力をトリガとして実行される。
まず、経路テーブル検索部100へ宛先IPアドレス情報21が入力されると、宛先IPアドレス蓄積部180は本情報を蓄積し、検索制御部110が経路テーブル検索を開始する(ステップ1001)。
検索制御部110は上位ビットのビット長を、アドレス境界蓄積部170を参照することで獲得し、宛先IPアドレス蓄積部180より上位ビット分(本実施形態では4ビット)の宛先IPアドレスを読み出す。
そして、この読み出した情報と、図5に示したTCAM120のキー情報のビット長分の情報と、宛先IPアドレスの上位ビットの入力を表すビット位置情報’0’を検索キーとしてTCAM120に入力する(ステップ1002)。
このキー情報は、エントリ121−iのキー情報にはマスク’*’が設定されているため、任意の値で良い。TCAM120はこの検索キーが検索制御部110より入力されると、設定されているエントリ121−iと一致比較を行い、一致するエントリ121−iのアドレスの中で、最も小さな(プリフィックス部のビット長が大きい)アドレスを検索制御部110に出力する(ステップ1003)。
検索制御部110がTCAM120よりこのアドレスを受信すると、検索中間テーブルA140より本アドレスに対応する情報を読み出す(ステップ1004)。
図7に検索中間テーブルA140のフォーマットと、図13の経路エントリ1101存在時の設定値を示す。本テーブルの各エントリ141−i(i=1〜6)は検索継続情報、キー情報、テーブルアドレスから構成される。
検索継続情報は、宛先IPアドレスの下位4ビットによる検索の継続必要性(「有」=1、「無」=0)を示す。プリフィックス長が4以下のIPアドレス条件上位ビットに一致した場合には、一致比較されていないIPアドレス条件は全てマスクであり、既にこのIPアドレス条件に一致したと判定できる。
よって、プリフィックス長が4以下のIPアドレス条件に対応する検索継続情報は’0’となる。
一方、プリフィックス長が5以上のIPアドレス条件に対応する検索継続情報は、一致するIPアドレス条件を判定できないため、’1’となる。例えば、図13の経路エントリ1101−1への一致は、宛先IPアドレスの下位ビットと、IPアドレス条件下位ビットの”0100”を比較しないと判定できない。
キー情報は、IPアドレス条件上位ビットをより小さなビット長に圧縮した識別子であり、後のTCAM120−2の検索にて使用される。図7ではTCAM120−1のエントリ121−1の”0001”(テーブルアドレス=1)に対応するキー情報は’0’、エントリ121−2および121−3の”0101”(テーブルアドレス=2、3)に対応するキー情報は’1’となっている。
検索中間テーブルA140のテーブルアドレスは、参照すべき検索保持結果テーブル160のアドレスである。検索継続情報が’0’である場合、このテーブルアドレスはステップ1003で一致したTCAM120−1のエントリ121に対応する経路エントリに対応するアドレスである。
そのため、テーブルアドレスはこの経路エントリの次ホップIPアドレスと出力回線番号が格納されるアドレスとなる。例えば、エントリ121−5に対応するエントリ141−5のテーブルアドレスは’5’となる。
検索継続情報が’1’であるエントリ141−iのテーブルアドレスは、下位ビットの一致比較を行った結果、一致するプリフィックス長が5ビット以上のIPアドレス条件が無い場合に参照すべき検索結果保持テーブル160のアドレスを示す。
例えば、入力したパケットの上位IPアドレスが”0001”であり、図13の経路エントリ1101−1に対応するTCAM120−1のエントリ121−1(’0001’)に一致する場合について考える。
宛先アドレスの下位ビットが”0100”ではなく、経路エントリ1101−1(図13参照)のIPアドレス条件に不一致と判定された場合、一致すべきエントリはIPアドレス条件の上位ビットが”0001”である経路エントリ1101−4である。
そのため、検索中間テーブルA140のエントリ141−1のテーブルアドレスは’4’となる。この様に検索継続情報が’1’であるエントリ141−iのテーブルアドレスは、ステップ1003で一致したエントリ121−iに対応する経路エントリの親経路エントリで、ステップ1003の検索で一致することが確定しているプリフィックス長が’4’以下の経路エントリのテーブルアドレスと同一となる。
検索制御部110は検索継続情報が’0’である場合、テーブルアドレスに対応する検索結果保持テーブル160(図9参照)の次ホップIPアドレスと出力回線番号を読み出して(ステップ1011)、本情報をパケット出力回線情報22としてパケット受信回路230に送信して(ステップ1012)経路テーブル検索を終了する(ステップ1013)。
一方、検索継続情報が’1’である場合には、検索制御部110は宛先IPアドレス蓄積部180内の宛先IPアドレスの下位4ビットと、ステップ1004において読み出したキー情報と、宛先IPアドレスの下位ビットの入力を表すビット位置情報’1’をTCAM120に検索キーとして入力する(ステップ1006)。
TCAM120は設定されているエントリ131−1と一致比較を行い、一致するエントリ131のアドレス中で最も小さなアドレス(プリフィックス部のビット長が大きい)を検索制御部110に出力し、一致するエントリ131が無い場合には一致するエントリが無かったことを検索制御部110に通知する(ステップ1007)。
一致するエントリ131が存在した時、検索制御部110は出力アドレスに対応する検索中間テーブルB150のエントリ151−i(i=1〜6)を読み出す(ステップ1009)。
検索中間テーブルB150のフォーマットを図8に示す。本テーブルのフォーマットは図7の検索中間テーブルA140と同様のフォーマットとなっており、各エントリ151−i(i=1〜6)はそれぞれ検索継続情報、キー情報、テーブルアドレスから構成される。検索継続情報は全ビットの検索は終了しているため全て’0’であり、キー情報は設定されない。テーブルアドレスとして図13の経路エントリ1101−1、1101−2および1101−3に対応する検索結果保持テーブルのアドレス’1’、’2’ および’3’が設定される。
検索制御部110は、読み出したテーブルアドレスに対応する次ホップIPアドレスと出力回線番号を読み出し(ステップ1010)、パケット出力回線情報22としてパケット受信回路230に送信し(ステップ1012)、本検索処理を終了する(ステップ1013)。
一方、一致するエントリが無い場合には、ステップ1004において検索中間テーブルA140から読み出したテーブルアドレスに対応する次ホップIPアドレスと出力回線番号を読み出して(ステップ1011)、パケット出力回線情報22としてパケット受信回路230に送信し(ステップ1012)、検索処理を終了する(ステップ1013)。
本発明の経路テーブル検索部100はTCAM120−1を用いて、まず、宛先IPアドレスの上位ビットと、設定されたIPアドレス条件上位ビットを比較する。検索継続情報が’0’である場合には、ステップ1003のTCAM120の検索だけで検索を終了できる。
検索制御部110をASICやネットワークプロセッサなどのTCAMとは別のCAM制御デバイスで実現した場合、検索継続情報が’0’であれば、TCAM120に入力する検索キーは宛先IPアドレスの上位ビットだけである。そのため、本発明の経路テーブル検索部はTCAM120とこの検索制御デバイス間の検索キーの入力帯域を前記従来例(非特許文献1)に比べて有効利用できる。さらに、TCAM120は宛先IPアドレスの上位ビットとIPアドレス上位ビットの一致比較だけを行えば良く、TCAM120の検索資源を有効活用できる。そのため、本発明を適用した経路テーブル検索部100は、TCAMの検索性能が性能上のボトルネックとなっている場合、前記従来例(非特許文献1)を適用した経路テーブル検索部に比べてより高速な経路テーブル検索を実行することができる。さらに、検索継続情報が’1’であっても、複数の同一検索キーをTCAM120に入力する必要がないため、TCAM120とこの検索制御デバイス間の検索キーの入力帯域を前記従来例(特許文献1)に比べて有効利用できる。
これまで、上位ビットが4ビット、下位ビットが4ビットである際の実施例を説明してきた。アドレス境界蓄積部170への設定は図4、図1に記載の制御端末10がプロセッサ280経由で検索制御部110への「アドレス境界蓄積部170への書き込み指示」と、「上位ビットのビット長」を送付することで実現される。
上位ビットのビット長を’4’とする際の制御端末10の入力画面の例を図6に示す。図中左の“set_prefix_length”は上位ビットのビット長を設定するコマンドを、右側の’4’は設定するビット長を表している。
本発明のルータ200をネットワークに配置するネットワーク管理者は、このIPアドレス条件の上位ビットを、経路エントリのプリフィックス長の分布に応じて変化させる。例えば、あるプリフィックス長以下の経路エントリが多い場合、上位ビット長をそのプリフィックス長と同一とすれば、TCAM120と検索制御デバイス間の検索キーの入力帯域やTCAM120の検索資源の浪費を最小限に抑えた経路テーブル検索が可能となる。例えば、図12に示す5つの経路エントリ1401−j(j=1〜5)が存在する場合、IPアドレス条件の上位ビット長を5ビットとすれば良い。
これまで最大2回のTCAM120の検索により経路テーブル検索を行い、TCAMの検索資源、TCAMとCAM検索デバイス間の検索キーの入力帯域を削減する経路テーブル検索部の実施形態を記述した。しかし、これらの資源をより効率的に利用する余地が残されている。
例として、前述の経路エントリ1101−3(図13)と一致すべき宛先IPアドレスのパケットが到着した場合を考える。ステップ1003の検索ではTCAM121−1のエントリ121−2に一致と判定され、検索を継続することになる。この時、1ビットの検索処理を行えば経路エントリ1101−3に一致すると判定できるが、4ビットの検索処理を行って、TCAM120の検索資源と検索キーの入力帯域を浪費してしまう。更なるTCAM120の検索資源と検索キーの入力帯域の有効活用を実現するため、最大3回のTCAM検索により経路テーブル検索を実現し4ビット→1ビット→3ビットの検索処理を行えばより高速な経路テーブル検索処理を行える。
この検索をM(>2)回に分割し、IPアドレス条件の上位ビットより順々に検索を行う場合には、経路テーブル検索部100はM個の検索中間テーブルK−1〜Mを備え、TCAM120は論理的にM個のTCAMに分割され、アドレス境界蓄積部170にはM−1のアドレス境界1〜M−1が設定される。
図11に示す本検索処理のフローチャートは、上記M回の検索処理を行うためのループを形成するステップ1501〜1503を、上記図10のフローチャートに付加したもので、その他の構成は同様である。
図11において、ステップ1501では、ループ回数を1にセットし、その後、一致するエントリがある場合には、ステップ1502でLをインクリメントして、ステップ1503でループ回数が所定回数Mとなるまでループを継続させる。
そして、ステップ1007では、検索回数:Lに対応するビット位置情報と検索回数:Lとアドレス境界1〜M−1より決まる検索すべき宛先IPアドレスの一部分の情報を検索キーとしてTCAM120に入力し、ステップ1009aでは検索中間テーブルK−1〜Mより次ホップIPアドレスと出力回線番号を読み出すこととなる。
つまり、図11において、ステップ1010a、1011aでは、それぞれ検索中間テーブルKのテーブルアドレスを用いて検索結果保持テーブル160のテーブルの次ホップIPアドレスと出力回線番号を読み出す。なお、検索中間テーブルK−1〜Mは、それぞれ図8の検索中間テーブルB150と同様に構成すればよい。それ以外の動作は、上記図10のM=2の場合と同様である。
これにより、上位ビットIPv4、IPv6等のパケット長の違いや、プリフィックスの長さにかかわらず、宛先IPアドレスから出力先の情報を、高速に検索を行うことができる。また、CAMエントリには比較するIPアドレスの一部を設定すればよいので、前記従来例のようにIPアドレスを全て記述する必要がなくなって、TCAM120を無駄なく利用することができ、高価かつ消費電力の大きいTCAM120を有効に利用することが可能となる。
また、前記従来例(特許文献1)では、引例ではIPアドレス3ビットをCAMに設定することになり、プリフィックス長が6ビットのエントリにヒットするパケットが入力された場合には、3ビットのツリー検索を行う必要がある。上述したように3ビット等の短いビット長の場合は問題は小さいが、IPv6アドレスのようにビット長が長い場合には、2段目で行うツリー検索を行うビット数が長大(例えば、64ビット)にとなる場合があり、高速検索が難しくなる。
また、前記従来例(特許文献1)では、例えば、3〜5ビットのプリフィックス長を持つエントリをCAM−1に設定し、6〜8ビットのプリフィックス長を持つエントリをCAM−2に設定する。この際、プリフィックス長が6ビットのエントリにヒットするパケットが入力された場合には、CAM−1を検索するだけで良いため、極めて高速に検索を実行することが可能となる。
しかし、プリフィックス長が3ビットのエントリにヒットすべきパケットが入力された場合には、CAM2も検索する必要があり、この際、CAMには6ビット(CAM−1用)+3ビット(CAM−2用)の検索キーを入力することになり、上位3ビットはCAMに2回入力されており、CAMのリソースを無駄にすることになる。
すなわち、プリフィックス長が6ビットのエントリにヒットするパケットが入力した場合は、高速検索できないことになる。
これに対して、本発明では、TCAMに上位6ビットを設定する場合を考えると、プリフィックス長が6ビットのエントリにヒットする場合も、3ビットのエントリにヒットする場合も、どちらも6ビットの検索キーをTCAMに入力すれば良いだけであるので、高価なTCAMを有効に利用して、前記従来例に比して必要とするTCAM(またはCAM)の容量を低減できる。したがって、本発明を適用することによりルータ200などのパケット転送装置の製造コストを低減し、安価で高性能なパケット転送装置を提供することができる。
以上のように、本発明は、CAMの検索リソースや、CAMと検索制御デバイス間の検索キーの入力帯域を有効活用し、経路テーブル検索を高速に行うことができるので、高速なルータやL3スイッチなどのパケット転送装置に適用することができる。
本発明の一実施形態を示す、ルータのブロック図。 ルータが外部の機器と送受信するパケットのフォーマットを示す説明図。 ルータの内部で送受信を行うパケットのフォーマットを示す説明図。 ルータの経路テーブル検索部の構成を示すブロック図。 経路テーブル検索部のTCAMの構成を示す説明図。 上位ビットのビット長を設定するコマンドの一例を示す説明図。 検索中間テーブルAのフォーマットを示す説明図。 検索中間テーブルBのフォーマットを示す説明図。 検索結果保持テーブルのフォーマットを示す説明図。 経路テーブル検索部で行われる処理の一例を示すフローチャート。 経路テーブル検索部で行われる処理の他の例を示すフローチャート。 5つの経路エントリの例を示す説明図。 6つの経路エントリを持つ8ビットの経路テーブルの説明図。 従来の経路テーブル検索の一例を示す説明図。 6つの経路エントリをツリー構造で示した説明図。
符号の説明
100 経路テーブル検索部
120 TCAM
140 検索中間テーブルA
150 検索中間テーブルB
160 検索結果保持テーブル
170 アドレス境界蓄積部
180 宛先IPアドレス蓄積部
200 ルータ

Claims (10)

  1. パケットを入力する入力回線と、
    パケットを出力する複数の出力回線と、
    宛先アドレスのビット毎に一致条件を指定した宛先アドレス条件と、宛先アドレス条件毎に転送情報を設定した経路エントリを複数備えて、前記入力回線へ入力されたパケットの宛先アドレスに対応する前記宛先アドレス条件を検索し、前記宛先アドレス条件に一致したパケットの転送先を、当該宛先アドレス条件に対応する転送情報に設定する経路テーブル検索部と、
    前記転送情報に対応する前記複数の出力回線のいずれかに前記パケットを転送するパケット転送部と、
    を備えたパケット転送装置において、
    前記経路テーブル検索部は、
    前記宛先アドレス条件の上位ビットを設定する第1のTCAMエントリを有するTCAMと、
    前記入力されたパケットの宛先アドレスの上位ビットと、前記第1のTCAMエントリとを比較して、一致する宛先アドレス条件を検索する第1の検索処理部と、
    前記検索の結果から前記パケットの宛先アドレス上位ビットに対応する宛先アドレス条件が一意に定まらない場合には、前記パケットの宛先アドレス下位ビットに基づいて一致する宛先アドレス条件を検索する第2の検索処理部と、
    前記第1の検索処理部または第2の検索処理部で検索した前記パケットの宛先アドレスと一意に対応する宛先アドレス条件に基づいて、前記パケットの転送情報を設定する転送情報設定部と、
    を備えたことを特徴とするパケット転送装置。
  2. 前記TCAMは、
    前記宛先アドレス条件の上位ビットを設定する第1のTCAMエントリと、前記宛先アドレス条件の下位ビットを設定する第2のTCAMエントリと、を含む複数の領域を有し、
    前記第2の検索処理部は、
    前記第1の検索処理部の検索結果から前記パケットの宛先アドレス上位ビットに対応する宛先アドレス条件が一意に定まらない場合には、前記パケットの宛先アドレス下位ビットと前記第2のTCAMエントリとを比較して、一致する宛先アドレス条件を検索することを特徴とする請求項1に記載のパケット転送装置。
  3. 前記宛先アドレス条件は、前記宛先アドレスの上位ビットをビット毎に’0’または’1’に設定するプリフィックス部と、宛先アドレスの下位ビットを指定しないことを示すマスク部とを備え、
    前記プリフィックス部のビット長が、前記第1のTCAMに設定可能なビット長を超える場合には、前記第2のTCAMにプリフィックス部の下位ビットを設定し、
    前記第1の検索処理部は、前記宛先アドレスの上位ビットと一致する前記プリフィックス部のうち、より長いプリフィックス部の第1のTCAMエントリを、前記パケットの宛先アドレスと一致する宛先アドレス条件として選択することを特徴とする請求項2に記載のパケット転送装置。
  4. 前記経路テーブル検索部は、
    前記第1の検索処理部または第2の検索処理部は検索結果の宛先アドレス条件に対応するテーブルアドレス毎に転送情報を設定した検索結果保持テーブルと、
    前記検索結果保持テーブルのテーブルアドレスを設定した最終テーブルアドレス設定部と、前記第1の検索処理部の検索の後、第2の検索処理部において検索を行う必要があるか否かを示す識別子としての検索継続情報を設定した検索継続情報設定部と、前記第1のTCAMエントリと一意に対応するキー情報を設定したキー情報設定部と、を前記第1の検索処理部の検索結果に応じて設定した第1の検索中間テーブルと、を備え、
    前記第1の検索処理部は、前記パケットの宛先アドレス上位ビットと第1のTCAMエントリを比較して、当該検索結果に対応する前記第1の検索中間テーブルから検索継続情報を取得し、当該検索継続情報が第2の検索処理部での検索が不要のときには、前記最終テーブルアドレス設定部のテーブルアドレスから前記検索結果保持テーブルを参照して転送情報を設定する一方、前記検索継続情報が第2の検索処理部での検索が必要のときには、前記キー情報と宛先アドレス下位ビットに基づいて、前記第2の検索処理部での検索を実行することを特徴とする請求項3に記載のパケット転送装置。
  5. 前記第2の検索処理部での検索の結果、プリフィックス部のビット長が前記第1の検索処理部で一致した宛先アドレス条件よりも長い宛先アドレス条件が存在しない場合には、前記第1の検索処理部における検索結果に対応するテーブルアドレスに基づいて、前記検索結果保持テーブルから転送情報を取得して前記パケットに設定することを特徴とする請求項4に記載のパケット転送装置。
  6. 前記経路テーブル検索部が、前記宛先アドレス条件の上位ビットのビット長を設定するアドレス境界蓄積部を備え、このビット長に基づいて前記宛先アドレス条件の上位ビットを設定することを特徴とする請求項1乃至5のいずれかひとつに記載のパケット転送装置。
  7. 第1及び第2のTCAMエントリは、それぞれ上位ビットまたは下位ビットのいずれであるかを識別するビット位置情報を含むことを特徴とする請求項3に記載のパケット転送装置。
  8. パケットを入力する入力回線と、
    パケットを出力する複数の出力回線と、
    宛先アドレスのビット毎に一致条件を指定した宛先アドレス条件と、宛先アドレス条件毎に転送情報を設定した経路エントリを複数備えて、前記入力回線へ入力されたパケットの宛先アドレスに対応する前記宛先アドレス条件を検索し、前記宛先アドレス条件に一致したパケットの転送先を、当該宛先アドレス条件に対応する転送情報に設定する経路テーブル検索部と、
    前記転送情報に対応する前記複数の出力回線のいずれかに前記パケットを転送するパケット転送部と、
    を備えたパケット転送装置において、
    前記経路テーブル検索部は、
    前記宛先アドレス条件の上位ビットを順次設定する第1のTCAMエントリと、前記宛先アドレス条件の下位ビットを所定の長さでM−1個に分割して設定する第2〜第MのTCAMエントリと、を含む複数の領域を有するTCAMと、
    前記入力されたパケットの宛先アドレスの上位ビットと、前記第1のTCAMエントリとを比較して、一致する宛先アドレス条件を検索する第1の検索処理部と、
    前記検索の結果から前記パケットの宛先アドレス上位ビットに対応する宛先アドレス条件が一意に定まらない場合には、前記パケットの宛先アドレス下位ビットと前記第2〜MのTCAMエントリとを順次比較して、一致する宛先アドレス条件を検索する第2の検索処理部と、
    前記第1の検索処理部または第2の検索処理部で検索した前記パケットの宛先アドレスと一意に対応する宛先アドレス条件に基づいて、前記転送情報を前記パケットに設定する転送情報設定部と、
    を備えたことを特徴とするパケット転送装置。
  9. 前記経路テーブル検索部が、前記第2の検索処理部の検索処理継続を指示する検索継続情報と、第2〜第MのTCAMエントリのそれぞれについて一意に対応するキー情報と、第2〜第MのTCAMエントリに対応する経路エントリ内の転送情報をテーブルアドレス毎に格納する検索結果保持テーブルと、を備えた第2の検索中間テーブルを備え、
    前記第2〜第MのTCAM検索結果に対応する検索継続情報が継続不要である場合には、前記第2〜第MのTCAMエントリの検索結果のうち最後の検索結果に対応するテーブルアドレスに基づいて転送情報を前記パケットに設定し、
    前記第2〜第MのTCAM検索結果に対応する検索継続情報が継続である場合には、前回までの検索処理にて未使用の前記宛先アドレスと第2〜第MのTCAMエントリとして未設定の宛先アドレス条件を用いて前記パケットの転送情報を設定することを特徴とする請求項8に記載のパケット転送装置。
  10. 前記経路テーブル検索部が、前記宛先アドレス条件のうち、前記第2〜第MのTCAMエントリに設定する宛先アドレスのビット長を設定する第2のアドレス境界蓄積部を備え、この第2アドレス境界蓄積部に蓄積されているビット長に従って前記第2の検索処理部で検索を行うことを特徴とする請求項8に記載のパケット転送装置。
JP2004179612A 2004-06-17 2004-06-17 パケット転送装置 Expired - Fee Related JP4336625B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2004179612A JP4336625B2 (ja) 2004-06-17 2004-06-17 パケット転送装置
CN200510003915A CN100581129C (zh) 2004-06-17 2005-01-10 数据包传送装置
US11/032,159 US7315547B2 (en) 2004-06-17 2005-01-11 Packet forwarding device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004179612A JP4336625B2 (ja) 2004-06-17 2004-06-17 パケット転送装置

Publications (3)

Publication Number Publication Date
JP2006005636A JP2006005636A (ja) 2006-01-05
JP2006005636A5 JP2006005636A5 (ja) 2007-05-10
JP4336625B2 true JP4336625B2 (ja) 2009-09-30

Family

ID=35480488

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004179612A Expired - Fee Related JP4336625B2 (ja) 2004-06-17 2004-06-17 パケット転送装置

Country Status (3)

Country Link
US (1) US7315547B2 (ja)
JP (1) JP4336625B2 (ja)
CN (1) CN100581129C (ja)

Families Citing this family (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
CN101364987B (zh) * 2008-09-22 2011-11-16 华为技术有限公司 帧处理的方法、装置和系统
US8442043B2 (en) * 2008-12-29 2013-05-14 Cisco Technology, Inc. Service selection mechanism in service insertion architecture data plane
US8255496B2 (en) 2008-12-30 2012-08-28 Juniper Networks, Inc. Method and apparatus for determining a network topology during network provisioning
US20100326928A1 (en) * 2009-06-25 2010-12-30 Mpc Inc. Filtration System
US8599859B2 (en) * 2009-11-16 2013-12-03 Marvell World Trade Ltd. Iterative parsing and classification
US20110227757A1 (en) * 2010-03-16 2011-09-22 Telcordia Technologies, Inc. Methods for context driven disruption tolerant vehicular networking in dynamic roadway environments
CN101834802B (zh) * 2010-05-26 2012-08-08 华为技术有限公司 转发数据包的方法及装置
US8660132B2 (en) * 2010-06-28 2014-02-25 Avaya Inc. Control plane packet processing and latency control
JP2012014397A (ja) * 2010-06-30 2012-01-19 Fujitsu Ltd 入出力制御装置、及び情報処理装置
RU2595918C2 (ru) * 2010-09-08 2016-08-27 Нек Корпорейшн Коммутационная система, система управления коммутацией и носитель данных
US8891406B1 (en) 2010-12-22 2014-11-18 Juniper Networks, Inc. Methods and apparatus for tunnel management within a data center
US8615015B1 (en) * 2010-12-30 2013-12-24 Juniper Networks, Inc. Apparatus, systems and methods for aggregate routes within a communications network
EP2668753B1 (en) * 2011-01-28 2017-10-04 Napatech A/S An apparatus and a method for receiving and forwarding data packets
US8743885B2 (en) 2011-05-03 2014-06-03 Cisco Technology, Inc. Mobile service routing in a network environment
JP2012257063A (ja) * 2011-06-09 2012-12-27 Nec Corp アクセス中継ユニット
CN102291472A (zh) * 2011-09-09 2011-12-21 华为数字技术有限公司 一种网络地址查找方法及装置
CN103475584B (zh) * 2012-06-07 2017-08-01 南京中兴软件有限责任公司 三态内容寻址存储器(tcam)查询方法和装置
US8775726B2 (en) 2012-07-27 2014-07-08 International Business Machine Corporation TCAM extended search function
JP6170718B2 (ja) 2012-11-21 2017-07-26 ルネサスエレクトロニクス株式会社 検索システム
JP5967222B2 (ja) * 2012-12-19 2016-08-10 日本電気株式会社 パケット処理装置、フローエントリの配置方法及びプログラム
US9794379B2 (en) 2013-04-26 2017-10-17 Cisco Technology, Inc. High-efficiency service chaining with agentless service nodes
US9577924B2 (en) * 2013-11-14 2017-02-21 Electronics And Telecommunications Research Institute SDN-based network device with extended function and method of processing packet in the same device
US9379931B2 (en) 2014-05-16 2016-06-28 Cisco Technology, Inc. System and method for transporting information to services in a network environment
US9479443B2 (en) 2014-05-16 2016-10-25 Cisco Technology, Inc. System and method for transporting information to services in a network environment
US10417025B2 (en) 2014-11-18 2019-09-17 Cisco Technology, Inc. System and method to chain distributed applications in a network environment
USRE48131E1 (en) 2014-12-11 2020-07-28 Cisco Technology, Inc. Metadata augmentation in a service function chain
US9660909B2 (en) 2014-12-11 2017-05-23 Cisco Technology, Inc. Network service header metadata for load balancing
US9935834B1 (en) 2015-03-13 2018-04-03 Cisco Technology, Inc. Automated configuration of virtual port channels
US10110668B1 (en) 2015-03-31 2018-10-23 Cisco Technology, Inc. System and method for monitoring service nodes
US9954783B1 (en) 2015-03-31 2018-04-24 Cisco Technology, Inc. System and method for minimizing disruption from failed service nodes
US10103995B1 (en) 2015-04-01 2018-10-16 Cisco Technology, Inc. System and method for automated policy-based routing
US10079725B1 (en) 2015-04-01 2018-09-18 Cisco Technology, Inc. Route map policies for network switches
US10382534B1 (en) 2015-04-04 2019-08-13 Cisco Technology, Inc. Selective load balancing of network traffic
US10033631B1 (en) 2015-04-23 2018-07-24 Cisco Technology, Inc. Route distribution for service appliances
US10469389B1 (en) 2015-04-23 2019-11-05 Cisco Technology, Inc. TCAM-based load balancing on a switch
US10075377B1 (en) 2015-04-23 2018-09-11 Cisco Technology, Inc. Statistical collection in a network switch natively configured as a load balancer
WO2016176853A1 (zh) * 2015-05-07 2016-11-10 华为技术有限公司 一种路由查询方法和网络设备
US9935882B2 (en) 2015-05-13 2018-04-03 Cisco Technology, Inc. Configuration of network elements for automated policy-based routing
US9762402B2 (en) 2015-05-20 2017-09-12 Cisco Technology, Inc. System and method to facilitate the assignment of service functions for service chains in a network environment
US11044203B2 (en) 2016-01-19 2021-06-22 Cisco Technology, Inc. System and method for hosting mobile packet core and value-added services using a software defined network and service chains
US10187306B2 (en) 2016-03-24 2019-01-22 Cisco Technology, Inc. System and method for improved service chaining
US10931793B2 (en) 2016-04-26 2021-02-23 Cisco Technology, Inc. System and method for automated rendering of service chaining
US10419550B2 (en) 2016-07-06 2019-09-17 Cisco Technology, Inc. Automatic service function validation in a virtual network environment
US10320664B2 (en) 2016-07-21 2019-06-11 Cisco Technology, Inc. Cloud overlay for operations administration and management
US10218616B2 (en) 2016-07-21 2019-02-26 Cisco Technology, Inc. Link selection for communication with a service function cluster
US10225270B2 (en) 2016-08-02 2019-03-05 Cisco Technology, Inc. Steering of cloned traffic in a service function chain
US10218593B2 (en) 2016-08-23 2019-02-26 Cisco Technology, Inc. Identifying sources of packet drops in a service function chain environment
US10361969B2 (en) 2016-08-30 2019-07-23 Cisco Technology, Inc. System and method for managing chained services in a network environment
US10848432B2 (en) 2016-12-18 2020-11-24 Cisco Technology, Inc. Switch fabric based load balancing
US10225187B2 (en) 2017-03-22 2019-03-05 Cisco Technology, Inc. System and method for providing a bit indexed service chain
US10257033B2 (en) 2017-04-12 2019-04-09 Cisco Technology, Inc. Virtualized network functions and service chaining in serverless computing infrastructure
US10884807B2 (en) 2017-04-12 2021-01-05 Cisco Technology, Inc. Serverless computing and task scheduling
US10333855B2 (en) 2017-04-19 2019-06-25 Cisco Technology, Inc. Latency reduction in service function paths
US10554689B2 (en) 2017-04-28 2020-02-04 Cisco Technology, Inc. Secure communication session resumption in a service function chain
US10735275B2 (en) 2017-06-16 2020-08-04 Cisco Technology, Inc. Releasing and retaining resources for use in a NFV environment
US10798187B2 (en) 2017-06-19 2020-10-06 Cisco Technology, Inc. Secure service chaining
US10397271B2 (en) 2017-07-11 2019-08-27 Cisco Technology, Inc. Distributed denial of service mitigation for web conferencing
US10673698B2 (en) 2017-07-21 2020-06-02 Cisco Technology, Inc. Service function chain optimization using live testing
US11063856B2 (en) 2017-08-24 2021-07-13 Cisco Technology, Inc. Virtual network function monitoring in a network function virtualization deployment
US10791065B2 (en) 2017-09-19 2020-09-29 Cisco Technology, Inc. Systems and methods for providing container attributes as part of OAM techniques
US10965598B1 (en) 2017-10-04 2021-03-30 Cisco Technology, Inc. Load balancing in a service chain
US10965596B2 (en) 2017-10-04 2021-03-30 Cisco Technology, Inc. Hybrid services insertion
US11082312B2 (en) 2017-10-04 2021-08-03 Cisco Technology, Inc. Service chaining segmentation analytics
US11018981B2 (en) 2017-10-13 2021-05-25 Cisco Technology, Inc. System and method for replication container performance and policy validation using real time network traffic
US10541893B2 (en) 2017-10-25 2020-01-21 Cisco Technology, Inc. System and method for obtaining micro-service telemetry data
US10666612B2 (en) 2018-06-06 2020-05-26 Cisco Technology, Inc. Service chains for inter-cloud traffic
CN109587061B (zh) * 2018-11-08 2022-04-22 华为技术有限公司 一种路由处理的方法、装置及设备

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6658002B1 (en) * 1998-06-30 2003-12-02 Cisco Technology, Inc. Logical operation unit for packet processing
US6289414B1 (en) * 1998-10-08 2001-09-11 Music Semiconductors, Inc. Partially ordered cams used in ternary hierarchical address searching/sorting
JP3569802B2 (ja) 1999-06-17 2004-09-29 日本電信電話株式会社 ルーティングテーブル検索装置および検索法
US6658458B1 (en) * 2000-06-22 2003-12-02 Cisco Technology, Inc. Cascading associative memory arrangement
US6900999B1 (en) * 2003-06-30 2005-05-31 Integrated Device Technology, Inc. Ternary content addressable memory (TCAM) cells with small footprint size and efficient layout aspect ratio
US7173837B1 (en) * 2003-09-26 2007-02-06 Netlogic Microsystems, Inc. Content addressable memory (CAM) cell bit line architecture
US7499450B2 (en) * 2004-04-30 2009-03-03 Infineon Technologies Ag Router IP port for an IP router

Also Published As

Publication number Publication date
CN100581129C (zh) 2010-01-13
US20050281257A1 (en) 2005-12-22
US7315547B2 (en) 2008-01-01
JP2006005636A (ja) 2006-01-05
CN1710879A (zh) 2005-12-21

Similar Documents

Publication Publication Date Title
JP4336625B2 (ja) パケット転送装置
US7418505B2 (en) IP address lookup using either a hashing table or multiple hash functions
US6061712A (en) Method for IP routing table look-up
EP1344152B1 (en) Apparatus and method for performing high-speed ip route lookup and managing routing/forwarding tables
JP3735471B2 (ja) パケット中継装置およびlsi
US7443841B2 (en) Longest prefix matching (LPM) using a fixed comparison hash table
US7424468B2 (en) Internet protocol address look-up device
US7325071B2 (en) Forwarding traffic in a network using a single forwarding table that includes forwarding information related to a plurality of logical networks
US7630367B2 (en) Approach for fast IP address lookups
JP3881663B2 (ja) フィールドレベルツリーを用いたパケット分類装置及び方法
US20030031167A1 (en) Methods and system for efficient route lookup
CN106330716B (zh) Ip路由查找方法及装置
JP2007195180A (ja) ルーティングシステム及びルートアップデート方法
US7487255B2 (en) Routing cache management with route fragmentation
US11115333B2 (en) Single stage look up table based match action processor for data packets
US20040044868A1 (en) Method and apparatus for high-speed longest prefix match of keys in a memory
US11502957B2 (en) Avoiding markers for longest prefix match based on binary search tree algorithm
US7746865B2 (en) Maskable content addressable memory
JP2005347969A (ja) パケット転送装置およびパケット転送方法
US20030041169A1 (en) Method for forming a database to route a data packet and method for routing and a router using the method thereof
JP4726310B2 (ja) 情報検索装置、情報検索用マルチプロセッサおよびルータ
KR100460188B1 (ko) 인터넷 프로토콜 주소 룩-업 방법
KR100459542B1 (ko) 인터넷 프로토콜 주소 룩-업 장치
JP3795881B2 (ja) テーブル検索方法および装置
US20090210382A1 (en) Method for priority search using a tcam

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070316

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070316

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090213

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

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

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120703

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4336625

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

Year of fee payment: 4

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

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

LAPS Cancellation because of no payment of annual fees