JP3199051B2 - キャッシュを有するルータの方路決定装置及びプログラムを記録した機械読み取り可能な記録媒体 - Google Patents

キャッシュを有するルータの方路決定装置及びプログラムを記録した機械読み取り可能な記録媒体

Info

Publication number
JP3199051B2
JP3199051B2 JP3328799A JP3328799A JP3199051B2 JP 3199051 B2 JP3199051 B2 JP 3199051B2 JP 3328799 A JP3328799 A JP 3328799A JP 3328799 A JP3328799 A JP 3328799A JP 3199051 B2 JP3199051 B2 JP 3199051B2
Authority
JP
Japan
Prior art keywords
cache
entry
registered
prefix
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
JP3328799A
Other languages
English (en)
Other versions
JP2000232479A (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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP3328799A priority Critical patent/JP3199051B2/ja
Priority to CA002298191A priority patent/CA2298191C/en
Priority to US09/501,279 priority patent/US6768739B1/en
Priority to EP00102179A priority patent/EP1035687A3/en
Publication of JP2000232479A publication Critical patent/JP2000232479A/ja
Application granted granted Critical
Publication of JP3199051B2 publication Critical patent/JP3199051B2/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/74Address processing for routing
    • H04L45/742Route cache; Operation thereof

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、キャッシュを有す
るルータの方位決定技術に関し、特に、キャッシュヒッ
ト確率を高くし、且つキャッシュの容量を少なくするこ
とができるキャッシュを有するルータの方位決定技術に
関する。
【0002】
【従来の技術】複数の端末と、それらを収容する複数の
ネットワークを接続するルータでは、異なるネットワー
クを越えて行われる通信を接続するため、通信情報の固
まり(パケット)の転送(フォワーディング)を行わな
ければならない。ルータは、接続されたネットワークか
ら入力されるパケットをインタフェースで受信し、パケ
ットに含まれる送信先アドレスを基に、各ルータの持つ
フォワーディングテーブルを検索して、パケットを送信
すべきインタフェースの番号を決定し、パケットのフォ
ワーディングを行う。従来の、キャッシュテーブルを用
いた検索を利用して高速に送信インタフェースを決定す
るルータ(以下キャッシュを有するルータと呼ぶ)の送
信インタフェース決定方法を説明する。
【0003】従来のキャッシュを有するルータでは、特
開平6―261078号公報に示されているように、フ
ォワーディングテーブルとその検索を行うフォワーディ
ングテーブル検索部と、完全一致検索のできるキャッシ
ュテーブルを持つ。まず、それぞれのテーブルの構成と
検索方法について説明する。
【0004】フォワーディングテーブルは図26のよう
に、宛先フィールドと送信インタフェース番号フィール
ドの組から構成される。宛先フィールドは、ネットワー
クアドレスを表すビット列の最上位ビットから下位ビッ
トに向かって、ある連続した長さ(これをプレフィクス
長と呼ぶ)のビット列(以下プレフィクス)を指定して
いる。このプレフィクスを表現するため、宛先フィール
ドは、次の2つの情報から構成される。
【0005】・プレフィクスビット列: アドレスと同じ
ビット長さをもつビット列で、最上位ビットから連続し
て指定したいビット列を格納する。指定しないビットに
ついてはどんなビットを格納してもいいが、以下ではビ
ット’0’を格納するものとする。
【0006】・プレフィクス長: プレフィクスビット列
のうち、最上位ビットからプレフィクスとして指定した
いビットの数。
【0007】たとえば、ネットワークアドレスが32bit
アドレスの場合に、最上位ビットから10000000 0100000
0(8bitごとにスペースで区切っている) というプレフィ
クスを指定したい場合には、プレフィクスビット列は10
000000 01000000 00000000 0000000 (8bitごとにスペー
スで区切っている) 、プレフィクス長は16となる。以下
では、32bit のビット列を示す場合に、それらを8bitず
つに区切り、それぞれを10進数で表して、ドットで区切
って表示する(ドット付き10進表示)ことがある。ま
た、32bit のネットワークアドレスの場合、宛先フィー
ルド(プレフィクス)を、プレフィクスビット列を表す
ドット付き10進表示と、プレフィクス長を”/”で区切
った組にして表示することがある。例えば、上の32bit
のプレフィクスは129.64.0.0/16 と表記する。さらに、
プレフィクス長をマスクビット列で表現することもあ
る。これは、ネットワークアドレスの最上位ビットから
下位ビットに向かってプレフィクス長の長さのビットの
部分だけ1を立て、残りを0のビットとしたもので、上
の例ではマスクビット列は11111111 11111111 00000000
00000000 (8bit ごとにスペースで区切っている) とな
る。フォワーディングテーブルの送信インタフェース番
号フィールドには、パケットを送信すべきインタフェー
ス番号が書かれている。フォワーディングテーブルの検
索方法については、ロンゲストプレフィクスマッチ検索
(以下LPM 検索)という方法が用いられる。この検索で
は、すべてのエントリについて、パケットの送信先アド
レスを、フォワーディングテーブルの宛先フィールドに
設定されているプレフィクスと比較する。比較判定は、
次の(1),(2) のビット列が一致する否かを判定するもの
である。
【0008】(1) パケットの送信先アドレスの最上位ビ
ットから連続して下位ビット方向に、エントリのプレフ
ィクス長の長さ分だけビット列を取り出したもの (2) エントリのプレフィクスビット列の最上位ビットか
ら連続して下位ビット方向に、エントリのプレフィクス
長の長さ分だけビット列を取り出したもの(比較対象部
分)
【0009】ここで、一致するエントリはフォワーディ
ングテーブルの中に複数存在する可能性があるが、その
中で最も長いプレフィクス長をもつエントリが、LPM 検
索の結果のエントリである。
【0010】キャッシュテーブルは、送信先アドレスフ
ィールドと、送信インタフェース番号フィールドからな
る。送信先アドレスフィールドには、ネットワークアド
レスが書かれている。送信インタフェース番号フィール
ドには、対応する送信先アドレスフィールドに書かれた
ネットワークアドレスを送信先アドレスとするパケット
を、フォワードすべきインタフェース番号が書かれてい
る。検索においては、検索キーとして送信先アドレスを
与え、キャッシュテーブルの中で、送信先アドレスフィ
ールドが検索キーと完全一致するエントリを検索する。
【0011】従来のキャッシュを有するルータでは、送
信インタフェース番号の決定処理(方路決定処理)を以
下のように実行する。ルータにパケットが到着すると、
パケットの送信先アドレスを取り出し、それを検索キー
として、まず、キャッシュテーブルを完全一致検索す
る。一致するエントリが見つかった場合は、そのエント
リの送信インタフェース番号フィールドから、パケット
を送信すべきインタフェース番号が得られる。一致する
エントリが見つからなかった場合は、フォワーディング
テーブル検索部において、パケットの宛先フィールドを
基に先に述べたLPM 検索を行って送信インタフェース番
号を得る。フォワーディングテーブル検索を行った場合
には、パケットの送信先アドレスと、テーブル検索にお
いて得られた送信インタフェース番号は、組にしてキャ
ッシュに格納される。上記の従来のキャッシュを有する
ルータは、フォワーディングテーブル検索よりも高速な
検索が可能なキャッシュに、一度検索したパケットの送
信先アドレスと検索結果を格納しておき、次に同じ送信
先アドレスのパケットが到着した場合に、キャッシュ検
索のみで送信インタフェース番号を得ることによって、
キャッシュ検索に比較して、時間のかかるフォワーディ
ングテーブル検索を省略することで、送信インタフェー
ス番号の決定処理の高速化を図っている。
【0012】ここで、最大キャッシュプレフィクス長,
最適キャッシュプレフィクス長という2つの用語を定義
しておく。
【0013】〔最大キャッシュプレフィクス長〕
【0014】フォワーディングテーブルの宛先フィール
ドは、ネットワークアドレスのある集合を指定してい
る。例えば、フォワーディングテーブルの10.5.6.0/24
という宛先フィールドは、10.5.6.0, 10.5.6.1, …, 10
5.6.255 という256 個のネットワークアドレスの集合を
示している。この集合をそのエントリのアドレス集合と
呼ぶことにする。また、あるエントリAのアドレス集合
が、エントリBのアドレス集合に含まれる(一致も含め
る)ことを、エントリAはエントリBに包含される、と
以下では呼ぶことにする。AがBに包含されることは、 ・包含条件1:Aのプレフィクス長がBのプレフィクス
長より長い(一致してもいい)。 ・包含条件2:Aのプレフィクスビット列とBのプレフ
ィクスビット列について、最上位ビットからBのプレフ
ィクス長部分について、一致する。という2つの条件が
両方成立する場合である。また、宛先フィールドは、ネ
ットワークアドレスを表すビット列の中で、最上位ビッ
トから下位ビットに向かって連続したビット列を指定し
ていることから、任意の2つのプレフィクスが指定する
集合は、どちらかがどちらかを包含するか、全く共通部
分を持たないかの何れかである。
【0015】これをふまえて、あるフォワーディングテ
ーブルのエントリに注目したとき、そのエントリが包含
する他のエントリの中で最大のプレフィクス長を持つエ
ントリのプレフィクス長を最大キャッシュプレフィクス
長と呼ぶ。包含するエントリがない場合には、そのエン
トリ自身のプレフィクス長を最大キャッシュプレフィク
ス長と呼ぶ。例えば、フォワーディングテーブルが、 宛先フィールド 10.0.0.0/8 10.2.0.0/16 10.2.3.0/24 20.0.0.0/8 であった場合、先頭の10.0.0.0/8の最大キャッシュプレ
フィクス長は24であり、4番目の20.0.0.0/8の最大キャ
ッシュプレフィクス長は8である。
【0016】〔最適キャッシュプレフィクス長〕
【0017】フォワーディングテーブルの各エントリに
ついて、プレフィクスビット列のうち、最上位ビットか
ら下位ビットに向かってプレフィクス長の長さの部分に
着目しこれをプレフィクスと呼ぶことにする。また、あ
るネットワークアドレスビット列と、プレフィクスの組
に対して、この2つを最上位ビットから下位ビットに向
かって比較してゆき、一致しているビット数を、前方一
致ビット数と呼ぶことにする。
【0018】最適キャッシュプレフィクス長は、あるネ
ットワークアドレス(これをAとする)が与えられる
と、フォワーディングテーブルをLPM 検索し、さらに、
以下の処理を行って決定される。
【0019】ネットワークアドレスAと、フォワーディ
ングテーブルの各エントリの宛先フィールドの示すプレ
フィクスについて、それぞれ前方一致ビット数を求め、
最大の前方一致ビット数を求める。また、最大の前方一
致ビット数を持つエントリが複数あるかどうかも求め
る。そして、 (1) 最大の前方一致ビット数が、LPM 検索にヒットした
エントリのプレフィクス長より大きい場合、最大の前方
一致ビット数+1をが最適キャッシュプレフィクス長。 (2) 最大の前方一致ビット数が、LPM 検索にヒットした
エントリのプレフィクス長と同じ場合(短い場合はあり
えない。なぜなら、LPM 検索にヒットしたエントリで
は、前方一致ビット数はそのエントリのプレフィクス長
になっているから)、最大の前方一致ビット数を持つエ
ントリが複数あるかどうかをチェックし、複数あるな
ら、最大の前方一致ビット数+1が最適キャッシュプレ
フィクス長とし、複数ないなら、最大の前方一致ビット
数を最適キャッシュプレフィクス長にする。
【0020】たとえば、8bitのネットワークアドレス
で、フォワーディングテーブルのエントリの宛先が、 エントリ1:プレフィクスビット列 11100000 プレフィ
クス長3 エントリ2:プレフィクスビット列 10110000 プレフィ
クス長4 エントリ3:プレフィクスビット列 10111000 プレフィ
クス長5 エントリ4:プレフィクスビット列 10111100 プレフィ
クス長6 エントリ5:プレフィクスビット列 11111100 プレフィ
クス長6 エントリ6:プレフィクスビット列 10010000 プレフィ
クス長4 の時、ネットワークアドレス 10110001 が与えられる
と、LPM 検索の結果ヒットするエントリはエントリ2で
ある。
【0021】また、各エントリの前方一致ビット数は、 エントリ1:1 エントリ2:4 エントリ3:4 エントリ4:4 エントリ5:1 エントリ6:2 となる。エントリ2,3,4が前方一致ビット数が最大
のエントリである。この場合最大の前方一致ビット数は
4で、これはヒットしたエントリ2のプレフィクス長4
と一致するので、(2) の場合に当たる。そして、最大の
前方一致するエントリが複数あるから4+1=5が最適
キャッシュプレフィクス長である。
【0022】同じフォワーディングテーブルで、ネット
ワークアドレス11111111が与えられたとすると、LPM 検
索の結果ヒットするエントリは1で、前方一致ビット数
は エントリ1:3 エントリ2:1 エントリ3:1 エントリ4:1 エントリ5:6 エントリ6:1 となり、最大の前方一致ビット数は6である。これはヒ
ットしたエントリ1のプレフィクス長より大きいので、
(1) の場合にあたり、最適キャッシュプレフィクス長は
6+1の7である。
【0023】同じフォワーディングエントリで、ネット
ワークアドレス10011111が与えられたとすると、LPM 検
索の結果ヒットするエントリは6で、前方一致ビット数
は エントリ1:1 エントリ2:2 エントリ3:2 エントリ4:2 エントリ5:1 エントリ6:4 となり、最大の前方一致ビット数は4である。これはヒ
ットしたエントリ6のプレフィクス長と同じで、(2) の
場合にあたり、最大の前方一致ビット数を持つエントリ
は1つだけであるので、最適キャッシュプレフィクス長
は最大の前方一致ビット数の4である。
【0024】
【発明が解決しようとする課題】上述したような、従来
のキャッシュを有するルータのキャッシュエントリで
は、パケットの送信先アドレスをキャッシュに格納し、
キャッシュでは完全一致検索を行うため、1つのキャッ
シュエントリにヒットする送信先アドレスは唯1つであ
る。このため、キャッシュのヒット確率が低く、ヒット
しなかった場合にはフォワーディングテーブルを検索す
る必要があるため、送信インタフェース決定までの時間
がかって、ルータのパケット転送性能が低下するという
問題があった。また、あるルータを経由して、n個の送
信先アドレスに対する通信が行われた場合にこれらのパ
ケットに対してキャッシュをヒットさせるには、n個の
キャッシュのエントリを消費するため、送信先の数と同
じ数のキャッシュエントリが必要であった。このため、
通信が行われる端末の数が多いと、それに比例した、大
容量のキャッシュを搭載する必要があり、ルータの回路
基盤面積が大きくなりコストが大きくなるという問題が
あった。
【0025】〔発明の目的〕そこで、本発明の目的は、
キャッシュを有するルータの方路決定装置において、キ
ャッシュのヒット確率を上げ、キャッシュ検索より時間
のかかるフォワーディングテーブル検索を行う確率を下
げ、ルータのパケット処理時間を減らし、ルータのパケ
ット処理能力を向上させることにある。
【0026】本発明の他の目的は、キャッシュのヒット
確率を下げることなく、キャッシュの容量を減らすこと
で、回路基盤面積を減らしたルータを実現することにあ
る。
【0027】
【課題を解決するための手段】本発明のキャッシュを有
するルータの方路決定装置1は、上記目的を達成するた
め、エントリ毎に異なるマスクを付けた一致検索ができ
るキャッシュを有し、キャッシュを登録するキャッシュ
アドレスを決定する手段を有し、フォワーディングテー
ブルとその検索手段を有し、受信パケットの送信先アド
レスをキャッシュに登録する際のキャッシュエントリの
マスクを掛けない部分の長さとして最長キャッシュプレ
フィクス長を求める手段を有する。
【0028】本発明のキャッシュを有するルータの方路
決定装置2は、上記目的を達成するため、ロンゲストプ
レフィクスマッチ検索ができるキャッシュを有し、キャ
ッシュを登録するキャッシュアドレスを決定する手段を
有し、フォワーディングテーブルとその検索手段を有
し、フォワーディングテーブルの検索にヒットしたエン
トリを基にキャッシュに登録すべきフォワーディングテ
ーブルのエントリを決定する手段を有し、キャッシュエ
ントリがを削除する際に同時に削除すべきキャッシュエ
ントリを決定する手段を有する。
【0029】本発明のキャッシュを有するルータの方路
決定装置3は、上記目的を達成するため、上記したキャ
ッシュを有するルータの方路決定装置1において、受信
パケットの送信先アドレスをキャッシュに登録する際の
キャッシュエントリのマスクを掛けない部分の長さとし
て最適キャッシュプレフィクス長を求める手段を有す
る。
【0030】本発明のキャッシュを有するルータの方路
決定装置4は、上記目的を達成するため、ロンゲストプ
レフィクスマッチ検索ができるキャッシュを有し、キャ
ッシュを登録するキャッシュアドレスを決定する手段を
有し、フォワーディングテーブルとその検索手段を有
し、受信パケットの送信先アドレスをキャッシュに登録
する際のプレフィクス長として、最長キャッシュプレフ
ィクス長を求める手段を有する。
【0031】本発明のキャッシュを有するルータの方路
決定装置5は、上記目的を達成するため、上記したキャ
ッシュを有するルータの方路決定装置4において、受信
パケットの送信先アドレスをキャッシュに登録する際の
プレフィクス長さとして最適キャッシュプレフィクス長
を求める手段を有する。
【0032】本発明のキャッシュを有するルータの方路
決定装置6は、本発明のキャッシュを有するルータの方
路決定装置1,2,3,4または5の、キャッシュを登
録するキャッシュアドレスを決定する手段において、キ
ャッシの全アドレス領域を常駐領域と更新領域に分け、
更新領域からキャッシュを登録するキャッシュアドレス
を決定する手段を有する。
【0033】〔作用〕本発明によれば、キャッシュを用
いて送信インタフェース番号を決定するルータにおい
て、フォワーディングテーブル検索よりも高速に検索が
できるキャッシュテーブルとして、(1) エントリ毎に異
なるマスクを付けた一致検索を行うキャッシュあるい
は、(2) ロンゲストプレフィクスマッチ検索を行うキャ
ッシュを用いることで、1つのキャッシュエントリで多
くの送信先アドレスにヒットするキャッシュエントリを
登録することができる。
【0034】送信先アドレスをキーにして、フォワーデ
ィングテーブルを検索し、その検索結果をキャッシュに
登録するのであるが、キャッシュを検索した際に正しい
送信先アドレスが得られるように、(1) の場合には、キ
ャッシュエントリのマスクを掛けない部分の長さとし
て、最長キャッシュプレフィクス長を求める手段、ある
いは、最適キャッシュプレフィクス長を求める手段を用
いて、マスクを付けたキャッシュエントリを登録する。
(2) の場合には、フォワーディングテーブルの検索にヒ
ットしたエントリを基にキャッシュに登録すべきフォワ
ーディングテーブルのエントリを決定する手段を用い
て、キャッシュエントリを登録する。
【0035】また、登録に際して、キャッシュテーブル
のどのアドレスに登録するかについては、キャッシュを
登録するキャッシュアドレスを決定する手段を用いる。
このようにして、1 つのキャッシュエントリで多くの送
信先アドレスにヒットするキャッシュエントリを登録す
ることができるため、本発明によって、キャッシュのヒ
ット確率を上げることができる。また、あるルータを経
由して、異なる複数の送信先アドレスに対する通信が行
われた場合、これらの送信先アドレスに対してキャッシ
ュをヒットさせるには、従来のキャッシュを有するルー
タでは、異なる送信先アドレスと同じ数のキャッシュの
エントリを消費していたが、本発明によれば、1 つのキ
ャッシュエントリで多くの送信先アドレスにヒットする
キャッシュエントリを登録できることから、従来より少
ないエントリ数で、これらの送信先パケットに対してキ
ャッシュをヒットさせることができる。このため、キャ
ッシュのヒット確率を下げることなく、キャッシュの容
量を減らすことができるため、ルータの回路基盤面積を
小さくすることができる。
【0036】また、キャッシュを登録するキャッシュア
ドレスを決定する手段として、キャッシの全アドレス領
域を常駐領域と更新領域に分け、更新領域からキャッシ
ュを登録するキャッシュアドレスを決定する手段をもち
いれば、ルータの管理者が、フォワーディングテーブル
の中でよく使用されるエントリを予めキャッシュの常駐
領域に格納しておくことができ、また、それらのエント
リは他のキャッシュエントリを登録する際に消去される
ことがないため、さらにキャッシュのヒット率を上げる
ことができる。
【0037】
【発明の実施の形態】次に本発明の実施の形態について
図面を参照して詳細に説明する。
【0038】〔第1の実施例〕図1は本発明の第1の実
施例の全体構成図である。まず、図1の構成要素の概要
を説明する。
【0039】・フォワーディングテーブル検索機構100 フォワーディングテーブル検索機構100 は、内部にルー
タのフォワーディングテーブルとその検索機構を持つ。
フォワーディングテーブルは、従来のルータのフォワー
ディングテーブルと同じ、宛先フィールド,送信インタ
フェース番号フィールドを持ち、さらに、マスク付きキ
ャッシュにエントリを登録する際に使用する登録プレフ
ィクス長フィールドと、キャッシュに常駐するエントリ
を示す常駐フラグフィールドとを持つ。登録プレフィク
ス長フィールドの値は、フォワーディングテーブルを格
納する時に、登録プレフィクス長決定機構102 によって
最大キャッシュプレフィクス長が計算されて格納され
る。制御信号線L106が有効化されると、パケットの送信
先アドレス線L101から入力されるパケットの送信先アド
レスを基に、フォワーディングテーブルの宛先フィール
ドを検索する。検索の結果、得られた送信インタフェー
ス番号,登録プレフィクス長をそれぞれ送信インタフェ
ース番号線L102, 登録プレフィクス長線L103にそれぞれ
出力する。常駐フラグフィールドが0ならば、登録線L1
19を有効化し、常駐フラグフィールドが1ならば登録線
L119を有効化しない。
【0040】・制御機構120 ルータが受信したパケットの送信先アドレスL117を入力
とし、フォワーディングテーブル検索機構100 ,キャッ
シュ登録機構140 およびマスク付きキャッシュテーブル
検索機構130 を制御して、パケットをフォワードすべき
送信インタフェース番号を決定し、それをL118に出力す
る。
【0041】・マスク付きキャッシュテーブル検索機構
130 マスク付きキャッシュテーブルとそれを検索する機能を
持つ。マスク付きキャッシュテーブルは、宛先フィール
ドと送信インタフェース番号フィールドとを有する。宛
先フィールドにはネットワークアドレスを示すプレフィ
クスビット列と、マスクビット列の組が格納される。ま
た、このマスク付きキャッシュテーブル検索機構130
は、マスク付きキャッシュテーブルを検索する機能を持
つ。これは、例えば、特開平1-220923号公報に記載され
たマスク機能付き連想メモリとRAM(Random Access Memo
ry) で構成される。検索においては、制御信号線L107が
有効化されると、パケットの送信先アドレスを表すビッ
ト列をL104から取り込んで、各エントリについて、マス
ク付きの一致検索が行われる。すなわち、宛先フィール
ドのプレフィクスビット列のうち、マスクビット列の1
がたっているビット部分(比較対象部分)に関して、プ
レフィクスビット列と送信先アドレスを表すビット列を
比較し、一致するエントリがあった場合(ヒットした場
合)には、キャッシュヒット線L110をヒット値にセット
し、一致したエントリの送信インタフェース番号をL105
に出力する。
【0042】・キャッシュ登録機構140 マスク付きキャッシュテーブルのエントリの登録を行う
機構。L101から入力されるパケットの送信先アドレス
と、L103から入力される登録プレフィクス長を基に、マ
スク付きキャッシュテーブル検索機構130 にキャッシュ
エントリを登録するために必要な情報である、プレフィ
クスビット列,マスクビット列,キャッシュ登録アドレ
スをそれぞれ、L114,L115,L112に出力する。また、キ
ャッシュテーブルの使用中のアドレスと、未使用のアド
レスを管理している。
【0043】次に各構成要素の詳細な説明を行う。
【0044】図2は、フォワーディングテーブル検索機
構100 の詳細な構成を示す。ルータのフォワーディング
テーブルを格納するフォワーディングテーブル用メモリ
103と、それを検索するテーブル検索機構101 と、登録
プレフィクス長決定機構102とから構成される。
【0045】フォワーディングテーブル用メモリ103
は、フォワーディングテーブルを格納している。このフ
ォワーディングテーブルは、従来のルータのフォワーデ
ィングテーブルと同様に、宛先フィールド,送信インタ
フェース番号フィールドを持ち、さらに、登録プレフィ
クス長フィールド,常駐フラグフィールドも有する。宛
先フィールドには、プレフィクスを示すプレフィクスビ
ット列と、プレフィクスビット列のプレフィクス長を示
すプレフィクス長フィールドが含まれる。
【0046】テーブル検索機構101 は、制御信号線L106
が有効化されると、送信先アドレス線L101から入力され
るパケットの送信先アドレスを基にフォワーディングテ
ーブル用メモリ103 に格納されたフォワーディングテー
ブルの宛先フィールドをLPM検索し、エントリが見つか
った場合、検索ヒット線L109をヒット値(エントリが見
つかったことを示す値)にセットする。エントリの送信
インタフェース番号を送信インタフェース番号線L102へ
出力し、登録プレフィクス長を登録プレフィクス長線L1
03に出力する。LPM 検索にヒットしなかった場合、検索
ヒット線L109が非ヒット値(ヒットしなかったことを示
す値)にセットされる。また、検索の結果得られたエン
トリの常駐フラグフィールドが0ならば、登録線L119を
有効化し、そうでなければ、有効化しない。テーブル検
索機構101 において、パケットの送信先アドレスを基
に、宛先フィールドをLPM 検索する機構に関しては従来
のルータと同様のLPM 検索機構を用いて実現できる。
【0047】登録プレフィクス長決定機構102 は、フォ
ワーディングテーブル用メモリ103に格納されている宛
先フィールドを基に、従来のルータのフォワーディング
テーブルにはない、登録プレフィクス長フィールドの値
を求めて、それを格納する。この動作をここで説明して
おく。まず、ルータのフォワーディングテーブルの全エ
ントリについて、宛先,送信インタフェース番号が、フ
ォワーディングテーブル用メモリ103 の宛先フィール
ド,送信インタフェース番号フィールドにそれぞれすで
に格納されているとする。登録プレフィクス長決定機構
102 は、このテーブルを使用して、テーブルの先頭のエ
ントリから順に、先に定義した最大キャッシュプレフィ
クス長を求め、それを登録プレフィクス長の値として、
登録プレフィクス長フィールドに格納してゆく。登録プ
レフィクス長の値(すなわち、最大キャッシュプレフィ
クス長の値)を決定する手順は以下のように行われる。
【0048】登録プレフィクス長を求めたいエントリ
(以下Eと呼ぶ)の宛先フィールドのプレフィクスビッ
ト列とプレフィクス長を取り出し、登録プレフィクス長
の値(以下PLと呼ぶ)を、初期値としてEのプレフィク
ス長に設定しておく。次に、フォワーディングテーブル
の、Eを除いた各エントリに対して、テーブルの先頭か
ら順に以下のZ1〜Z3の判定処理とZ4のPLの値の更新処理
を実行してゆく。尚、以下では、処理を行っているエン
トリをCEと呼んでいる。
【0049】Z1: Eのプレフィクス長の値がCEのプレフ
ィックス長の値より小さい(一致する場合をのぞく)
【0050】Z2: CEのプレフィックスビット列と、Eの
プレフィクスビット列について、最上位ビットからEの
プレフィクス長の部分が一致する(Eのプレフィクス長
が0の時は常に一致する)
【0051】Z3: PLよりCEのプレフィクス長のほうが大
きい(等しい場合を除く)
【0052】Z4: Z1〜Z3がすべて成立すればPLをCEのプ
レフィクス長に更新する。そうでなければなにもしな
い。
【0053】この処理がテーブルの最後に達したとき
の、PLの値が、Eの登録プレフィクス長の値である。こ
の処理によって最長キャッシュプレフィクス長が得られ
ている。この機構は、カウンタ,大小比較判定器,ビッ
ト列の一致判定器およびレジスタを用いて簡単に実現で
きる。以下、上で述べた、各エントリの登録プレフィク
ス長フィールドを決定する処理のことを「登録プレフィ
クス長決定処理」と呼ぶ。この処理をフローチャート図
6に示しておく。
【0054】図3は、マスク付きキャッシュテーブル検
索機構130 の詳細図である。マスク機能付き連想メモリ
131 とRAM(Random Access Memory)132から構成される。
マスク機能付き連想メモリ131 は、プレフィクスビット
列とマスクビット列を組にしたエントリを、アドレス毎
に登録しておくと、検索キーのビット列が与えられたと
きに、各エントリにおいて、プレフィクスビット列をマ
スクビット列でマスクしたビット列と、検索キーのビッ
ト列をマスクビット列でマスクしたビット列とを比較
し、一致するエントリのアドレスを出力するメモリであ
る。例えば、5bit幅のマスク付き連想メモリに、図27
に示す3つのエントリが登録されていた場合、検索キー
として、11011 が与えられると、アドレス1では、デー
タビット列をマスクビット列でマスクしたビット列は、
10100 で、検索キーをマスクビット列でマスクしたビッ
ト列は、11000 となって、これら2つを比較すると一致
しない。同様に、アドレス2では、11010 と11011 を比
較して一致しない。アドレス3では11000 と11000 を比
較して一致するので、検索結果として、一致したエント
リのアドレスである3が出力される。複数一致するエン
トリがあった場合には、それらのうちのどれかのアドレ
スが出力される。
【0055】マスク付きキャッシュテーブルは、宛先フ
ィールドと送信インタフェース番号フィールドからな
り、宛先フィールドはネットワークアドレスを示すプレ
フィクスビット列と、マスクビット列の組から構成され
る。マスク付きキャッシュテーブルの各エントリは、そ
のプレフィクスビット列をマスク付き連想メモリのデー
タビット列として、マスクビット列を、マスク付き連想
メモリのデータビット列として格納する。送信インタフ
ェース番号は、RAM132中の、連想メモリに宛先フィール
ド(プレフィクスビット列とマスクビット列) を格納し
たのと同一のアドレスに格納される。図3では、ネット
ワークアドレスを32ビット幅とし、ドット付き10進数で
プレフィクスビット列,マスクビット列を表現してい
る。例えば、プレフィクスビット列: 2.1.0.0 は、 00000010 00000001 00000000 00000000 (8bit ごとにス
ペースを入れいている) というビット列を表し、マスクビット列: 255.255.0.0
は、11111111 11111111 00000000 00000000(8bitごとに
スペースを入れいている) というビット列を表す。
【0056】制御信号線L113が有効化されると、マスク
付きキャッシュテーブルにエントリが登録される。これ
は以下の手順で行われる。マスク機能付き連想メモリ13
1 では、キャッシュ登録アドレス線L112が示すアドレス
に、プレフィクスビット列線L114から入力されるプレフ
ィクスビット列と、マスクビット列線L115から入力され
るマスクビット列を格納する。同時に、RAM132では、キ
ャッシュ登録アドレス線L112の示すアドレス(マスク付
き連想メモリ131 に格納したのと同じアドレス)に送信
インタフェース番号線L102から入力される送信インタフ
ェース番号を格納する。
【0057】制御信号線L107が有効化されると、検索が
行われる。マスク機能付き連想メモリ131 に送信先アド
レス線L104から送信先アドレスが検索キーとして入力さ
れ、マスク機能付き連想メモリ131 の機能によって、各
エントリについて、宛先フィールドのプレフィクスビッ
ト列のうち、マスクビット列の1がたっているビット部
分に関して、プレフィクスビット列と送信先アドレスを
表すビット列を比較し、一致するエントリがあった場合
(ヒットした場合)には、ヒットアドレス線L111にヒッ
トしたエントリを登録しているマスク付き連想メモリの
アドレスが出力される。また、同時に、キャッシュヒッ
ト線L110がヒット値にセットされる。そして、RAM132で
は、ヒットアドレス線L111の示すアドレスに書かれてい
る送信インタフェース番号が読み出され、送信インタフ
ェース番号線L105にその値が出力される。ヒットしなか
った場合には、キャッシュヒット線L110が非ヒット値に
セットされる。
【0058】図4はキャッシュ登録機構140 の詳細図で
ある。ビットマスク生成回路143 では、登録プレフィク
ス長線L103の値に基づいて、ネットワークアドレスのビ
ット幅と同じ幅のマスクビット列を生成する。これは、
L103の値の長さだけ、最上位ビットから下位ビット方向
に向かって連続して1をたて、残りのビットは0である
ようなビット列を生成する回路である。たとえば、ネッ
トワークアドレスのビット幅が、32の時、L103の値が6
であったなら、32bit のうち最上位ビットから6ビット
だけ1をたて、残りのビットを0とした 11111100 00000000 0000000 0000000 (8bit 毎にスペー
スを入れている) というビット列を生成し、マスクビット列線L115に出力
する回路である。
【0059】AND 回路142 は、送信先アドレス線L101
(ネットワークアドレスのビット幅と同じビット幅をも
つ)から入力されるビット列と、ビットマスク生成回路
143 で生成されたビット列のビット毎のAND をとったビ
ット列を生成する回路である。例えば、ネットワークア
ドレスが32ビット幅の時、L101から 11001111 11111100 11111111 00000000 (8bit 毎にスペ
ースを入れている) というビット列が入力され、L115が 11111100 00000000 00000000 00000000(8bit毎にスペー
スを入れている) であった場合、 11001100 00000000 00000000 00000000(8bit毎にスペー
スを入れている) というビット列を生成し、プレフィクスビット列線L114
に出力する。
【0060】また、キャッシュ登録アドレス管理機構14
1 では、制御信号線L108が有効化されると、制御信号線
L113を有効化し、キャッシュを登録すべきマスク付きキ
ャッシュテーブルのアドレスをキャッシュ登録アドレス
線L112に出力する。このアドレスの決定は次のように行
われる。まず、キャッシュのアドレスを、常にエントリ
が登録がされていて、消去されることのないエントリ
(常駐エントリ)の為の部分と、LRU 等のアルゴリズム
を使って、キャッシュの更新が行われるエントリ(更新
エントリ)の為の部分に分けておく。キャッシュ登録ア
ドレス管理機構141 は、キャッシュの中で常駐エントリ
に使うための部分以外のキャッシュアドレスについて、
エントリが登録されていない、未使用のアドレスをリス
トなどで記憶しておいて、それをキャッシュの登録アド
レスとして使用したり、未使用アドレスがない場合に
は、すでにキャッシュを登録した、使用中のアドレスを
リストなどで記憶しておき、キャッシュヒット線L110が
ヒット値にセットされた時のヒットアドレス線L111の値
で、いつ、どのアドレスがヒットしたかを知ることがで
きることから、最近ヒットしていないエントリのアドレ
スを適切に見つけ出して、キャッシュを登録すべきアド
レスを決定することができる。常駐エントリの為の部分
をなくして、すべてを更新エントリ用のアドレスとし
て、アドレスを管理することも勿論可能である。
【0061】図5は制御機構120 の詳細図である。パケ
ットが到着すると、パケットの送信先アドレスがL117か
ら入力され、動作を開始する。送信先アドレスレジスタ
121は、制御機構120 に入力されるパケットの送信先ア
ドレスを格納し、その値を送信先アドレス線L101と、送
信先アドレス線L104に出力する。制御回路123 は内部に
シーケンサをもち、以下のように動作する。
【0062】パケットの送信先アドレスが制御機構120
に入力されると、動作を開始し、まず制御信号線L107を
有効化する。次にキャッシュヒット線L110がヒット値に
セットされれば、送信インタフェース番号線L105の値を
送信インタフェース番号レジスタ122 に取り込み、送信
インタフェース番号をL118に出力する。キャッシュヒッ
ト線L110が非ヒット値に設定されれば、制御信号線L106
を有効化する。そして、その後、検索ヒット線L109がヒ
ット値にセットされなければ、エラー処理を行なう。検
索ヒット線L109がヒット値にセットされれば、送信先イ
ンタフェース番号線L102の値を送信インタフェース番号
レジスタ122 に取り込み、送信インタフェース番号をL1
18に出力する。L109がヒット値にセットされていて、か
つ、登録線L119が有効化されれば、制御信号線L108を有
効化する。そして、すべての制御信号線L107,L106,L108
を無効化して停止する。L118に出力されている値が、こ
の実施例での方路決定処理の結果である。
【0063】次に図7のフローチャートを用いて、第1
の実施例の動作を説明する。まず、フォワーディングテ
ーブル用メモリ103 に、従来のルータのフォワーディン
グテーブルと同様に、宛先フィールド,送信インタフェ
ース番号フィールドが格納される(FC100) 。このとき、
フォワーディングテーブル検索機構100 の構成の説明中
に既に説明したように、登録プレフィクス長決定処理が
行われ、各エントリの登録プレフィクス長フィールドも
決定される(FC101) 。また、フォワーディングテーブル
の中で、常駐させたいエントリが存在するなら、そのエ
ントリを、キャッシュの常駐エントリ用の領域に格納
し、対応するフォワーディングテーブルのエントリの常
駐フラグを1にセットする(FC101-1) 。
【0064】ルータにパケットが到着すると(FC104) 、
パケットの送信先アドレスがL117を介して制御機構120
に入力される。この送信先アドレスが制御機構120 の中
の送信先アドレスレジスタ121 に格納され、送信先アド
レス線L101,L104へ出力される。次に、制御機構120 の
中の制御回路123 が制御信号線L107を有効化し、マスク
付きキャッシュテーブル検索機構130 において、送信先
アドレス線L104の値を用いて、マスク付きキャッシュテ
ーブルが検索される(FC105) 。
【0065】キャッシュにヒットした場合(FC107) 、キ
ャッシュヒット線L110がヒット値にセットされ、マスク
付きキャッシュテーブルのヒットしたエントリのアドレ
スが、ヒットアドレス線L111に出力され、さらに、送信
インタフェース番号線L105に、ヒットしたエントリの送
信インタフェース番号が出力される。このとき、キャッ
シュ登録アドレス管理機構141 では、キャッシュヒット
線L110がヒット値にセットされたことを受けて、ヒット
アドレス線L111の値を取り込み、LRU アルゴリズムなど
を用いて、次にマスク付きキャッシュのどのアドレスに
登録すべきかを決定し、そのアドレスをキャッシュ登録
アドレス線L112に出力する(FC115) 。制御機構120 にお
いても、キャッシュヒット線L110がヒット値( ヒットを
示す値)にセットされたことを受けて、送信インタフェ
ース番号線L105の値を送信インタフェース番号レジスタ
122 に格納し、送信インタフェース番号L118を出力する
(FC116) 。
【0066】フローチャートのFC106 でキャッシュにヒ
ットしなかった場合(キャッシュヒット線L110が非ヒッ
ト値にセットされ、FC108 へ分岐を行った場合)、制御
機構120 の中の制御回路123 が、制御信号線L106を有効
化する。フォワーディングテーブル検索機構100 では、
制御信号線L106が有効化されたことを受けて、送信先ア
ドレス線L101に出力されているパケットの送信先アドレ
スの値を取り込み、テーブル検索機構101 によって、フ
ォワーディングテーブルをLPM 検索する(FC109) 。検索
の結果エントリが見つかると(FC111) 、検索ヒット線L1
09がヒット値に設定され、見つかったエントリの送信イ
ンタフェース番号、登録プレフィクス長が、それぞれ、
送信インタフェース番号線L102、登録プレフィクス長線
L103に出力される。また、見つかったエントリの常駐フ
ラグが0ならば、登録線L119も有効化される。
【0067】制御機構120 では、検索ヒット線L109が有
効化されたことを受けて、送信インタフェース番号線L1
02の値を取り込み、送信インタフェース番号をL118へ出
力する(FC112) 。さらに、登録線L119が有効化されてい
れば(FC120) 、制御信号線L108を有効化する。
【0068】キャッシュ登録機構140 では、送信先アド
レス線L101の示すビット列と、登録プレフィクス長線L1
03の値を基に、マスク付きキャッシュの宛先フィールド
に登録する、プレフィクスビット列と、マスクビット列
を生成し(FC113) 、それぞれを、プレフィクスビット列
線L114、マスクビット列線L115に出力する。また、制御
信号線L108が有効化されたことを受けて、キャッシュ登
録アドレス管理機構141 は、制御信号線L113を有効化す
る。
【0069】マスク付きキャッシュテーブル管理機構13
0 では、制御信号線L113が有効化されたことを受けて、
プレフィクスビット列線L114,マスクビット列線L115,
送信インタフェース番号線L102,キャッシュ登録アドレ
ス線L112の値を取り込み、キャッシュ登録アドレス線L1
12の示すマスク付きキャッシュテーブルのアドレスに、
プレフィクスビット列線L114、マスクビット列線L115、
送信インタフェース番号線L102の値を格納する(FC114)
。フローチャートのFC110 において、検索結果が見つ
からない場合には(FC117) 、制御機構120 においてエラ
ー処理(FC118) が行われる。また、FC119 において、登
録線L119が有効化されていなければ(FC121) 、制御機構
120 は制御信号線L108を有効化せず、FC113 ,FC114 の
処理は行われない。
【0070】動作の説明中の、フォワーディングテーブ
ルの中で、マスク付きキャッシュテーブルに常駐させる
ことができるエントリには制約がある。これについて
は、本実施例の最後で述べる。
【0071】また、フォワーディングテーブルを検索
し、エントリが見つかった場合に(FC111) 、登録線L119
を有効化しているが、キャッシュに登録すべきかどうか
を識別するフラグをフォワーディングテーブル中に用意
しておいて、それに応じて、登録線L119を有効化するよ
うにすることも可能である。
【0072】以降、動作例を上げて、第1の実施例の動
作を説明する。ここでは、ネットワークアドレスが32ビ
ットとする。マスク付きキャッシュテーブルの更新領域
には初期状態としてなにも登録されていないとする。ま
ず、ルータのフォワーディングテーブルが、図28に示
すものであったとする。また、この中で、アドレス4の
エントリが常駐エントリに選ばれているとする。そし
て、キャッシュのエントリ数は4(アドレス1〜4)
で、キャッシュのアドレス4 が常駐エントリの為のアド
レスとして決められているとする。
【0073】先ず、登録プレフィクス長決定機構102
が、登録プレフィクス長決定処理を行って、フォワーデ
ィングテーブルの各エントリの登録プレフィクス長を決
定する。
【0074】アドレス1のエントリの登録プレフィクス
長は、登録プレフィクス長決定機構102 の構成の説明の
中で述べた登録プレフィクス長決定処理においてE=
1,PL=8と設定して、アドレス2〜6のエントリに対
して、順に登録プレフィクス長決定処理のZ1〜Z4を実行
すればよい。アドレス2のエントリを処理すると、PL=
16に更新され、アドレス3のエントリを処理すると、PL
=24と更新される。以降、アドレス4〜6の、どのエン
トリに対してもPLは更新されず、登録プレフィクス長は
24に決定される。
【0075】アドレス2のエントリの登録プレフィクス
長は、登録プレフィクス長決定処理においてE=2,PL
=16 として、アドレス1 ,3〜6のエントリに対して、
順に登録プレフィクス決定処理のZ1〜Z4を実行すればよ
い。アドレス1に対しては、登録プレフィクス決定処理
のZ1〜Z3が成立せず、Z4で、PL=16のままである。アド
レス3に対しては、登録プレフィクス決定処理のZ1〜Z3
が成立し、Z4でPL=24となる。アドレス4〜6について
は、Z4ではなにも更新が行われず、結局、アドレス2に
対しては、登録プレフィクス長は、24と決定される。
【0076】同様の登録プレフィクス長決定処理をアド
レス3〜6にも行ってフォワーディングテーブルは、図
29に示すものとなる。また、マスク付きキャッシュテ
ーブルは、図30に示すものになっている。
【0077】次に、送信先アドレスが、10.5.1.1, 10.
2.3.5, 1.1.1.1, 10.2.3.4, 20.1.2.3 のパケットがこ
の順に到着したとする。
【0078】まず、送信先アドレス10.5.1.1のパケット
が到着した場合、マスク付きキャッシュテーブル検索機
構130 において、マスク付きキャッシュテーブルが10.
5.1.1をキーとして検索される。マスク付きキャッシュ
テーブルには該当するエントリがないのでヒットせず、
次に、フォワーディングテーブルが10.5.1.1をキーとし
て検索される。この結果、アドレス1にヒットし、送信
インタフェース番号線L102に値1が、登録プレフィクス
長線L103には24が出力される。制御機構120 では、送信
インタフェース番号を1と決定してこれをL118へ出力す
る。同時に、キャッシュ登録機構140 では、マスクビッ
ト列線L115に、登録プレフィクス長線L103の示す最上位
ビットから24ビットに1がたち、残りには0がセットさ
れたビット列255.255.255.0 がビットマスク生成回路14
3 によって生成される。また、プレフィクスビット列線
L114には、送信先アドレス線L101の値10.5.1.1とマスク
ビット列線L115のAND をとった 10.5.1.0 が出力され
る。キャッシュ登録アドレス管理機構141 は、マスク付
きキャッシュのアドレスの未使用エントリがある場合、
未使用のエントリの先頭のアドレスからエントリを登録
するものとすれば、この場合、マスク付きキャッシュテ
ーブルのアドレス1 にマスク付きキャッシュエントリが
登録されることになり、マスク付きキャッシュテーブル
は、図31に示すものとなる。
【0079】次に、送信先アドレス10.2.3.5のパケット
が到着した場合は、マスク付きキャッシュにはヒットせ
ず、フォワーディングテーブルのアドレス3にヒット
し、送信インタフェース番号は3と決定される、また、
アドレス3の登録プレフィクス長フィールドが24である
から、キャッシュ登録機構140 で、マスク付きキャッシ
ュテーブルに登録するプレフィクスビット列は、10.2.
3.0、マスクビット列は255.255.255.0 と決定され、マ
スク付きキャッシュテーブルは、図32に示すものとな
る。
【0080】次に、送信先アドレス1.1.1.1 のパケット
が到着した場合は、マスク付きキャッシュにはヒットせ
ず、フォワーディングテーブルのアドレス5にヒット
し、送信インタフェース番号は5と決定され、マスク付
きキャッシュテーブルは、図33に示すものとなる。
【0081】そして、送信先アドレス10.2.3.4のパケッ
トが到着した場合には、マスク付きキャッシュのアドレ
ス2にヒットし、送信インタフェース番号は3と決定さ
れる。マスク付きキャッシュテーブルは、変更されな
い。
【0082】さらに、送信先アドレス20.1.2.3のパケッ
トが到着した時も、マスク付きキャッシュのアドレス4
にヒットし、送信インタフェース番号は4と決定され
る。マスク付きキャッシュテーブルは、変更されない。
【0083】以上のようにして、第1の実施例では、パ
ケットの送信インタフェース番号が決定され、パケット
が送信される。
【0084】ここで、第1の実施例のマスク付きキャッ
シュテーブルへのキャッシュ登録方法に従ってキャッシ
ュを登録した場合に、キャッシュにヒットした場合に
も、正しい送信インタフェース番号が決定できることを
示す。
【0085】第1の実施例では、パケットの送信先アド
レスを基にフォワーディングテーブルを検索してヒット
したエントリの、登録プレフィクス長を求めて、パケッ
トの送信先アドレスを表すビット列の最上位ビットか
ら、登録プレフィクス長部分をマスク付きキャッシュに
登録しているが、この登録方法に従ってキャッシュを登
録した場合に、キャッシュにヒットした場合にも、正し
い送信インタフェース番号が決定できるためには、キャ
ッシュに登録するエントリが、フォワーディングテーブ
ル検索でヒットしたエントリが包含する他のフォワーデ
ィグテーブルのエントリがあった場合にそのどれをも包
含することはないことを示せばよい。
【0086】実際、フォワーディングテーブルの登録プ
レフィクス長フィールドは、最大キャッシュプレフィク
ス長、すなわち、そのエントリのアドレス集合に包含さ
れる、他のフォワーディングテーブルのエントリの中で
最大のプレフィクス長を示している。これは、登録プレ
フィクス決定処理の中で、Z1とZ2によって、エントリCE
がエントリEに包含されるかどうかを調べ(Z1かつZ2が
成立すれば、包含されている)、Z3において、CEのプレ
フィクスが、PLより長いことを調べることによって、最
大のプレフィクス長が選び出されるからである。このこ
とから、最大キャッシュプレフィクス長の定義の中で述
べている、アドレス集合の包含条件1が決して成立しな
いので、登録するエントリが、フォワーディングテーブ
ル検索でヒットしたエントリが包含する他のフォワーデ
ィグテーブルのエントリがあった場合にそのどれをも包
含することはない。
【0087】フォワーディングテーブルの中で、マスク
付きキャッシュテーブルに常駐させることができるエン
トリには制約がある。これは、第1の実施例のキャッシ
ュ登録方法で、正しい送信インタフェース番号を決定で
きるという上の説明の中で述べたように、登録するエン
トリが、フォワーディングテーブル検索でヒットしたエ
ントリが包含する他のフォワーディグテーブルのエント
リがあった場合にそのどれをも包含することはないとい
う制約である。
【0088】例えば、図34に示すフォワーディングテ
ーブルでは、アドレス3,4,6のエントリはこの制約
を満たしており、常駐させることが可能であるが、アド
レス1,2,5のエントリは常駐させることができな
い。
【0089】〔第2の実施例〕図8は本発明の第2の実
施例の構成図である。まず、図8の構成要素の概要を説
明する。
【0090】・フォワーディングテーブル検索機構200 フォワーディングテーブル検索機構200 は、内部にルー
タのフォワーディングテーブルを格納したフォワーディ
ングテーブル用メモリ203 とその検索機構であるテーブ
ル検索機構201 を持つ。フォワーディングテーブルは、
従来のルータのフォワーディングテーブルと同じ、宛先
フィールド、送信インタフェース番号(以下送信IF番
号)フィールドを持ち、さらに、後述する、フォワーデ
ィングテーブルに対応して生成されるツリー構造のリス
トの、ツリーノードへのポインタを保持する、ツリー管
理リストノードへのポインタフィールドを持つ。制御信
号線L206が有効化されると、パケットの送信先アドレス
線L201から入力されるパケットの送信先アドレスを基
に、フォワーディングテーブルの宛先フィールドをLPM
検索する。検索の結果得られた送信IF番号と、ツリーノ
ードへのポインタを送信IF番号線L202, ツリーノードへ
のポインタ線L203にそれぞれ出力する。また、フォワー
ディングテーブルは、後述するツリー初期化機構242 か
らも読み書きされる。
【0091】・制御機構220 ルータが受信したパケットの送信先アドレスL217を入力
とし、フォワーディングテーブル検索機構200 ,LPM キ
ャッシュ登録機構240 およびLPM キャッシュテーブル検
索機構230 を制御して、パケットをフォワードすべき送
信IF番号を決定し、それをL218に出力する。
【0092】・LPM キャッシュテーブル検索機構230 LPM キャッシュテーブルとそれを検索する機能を持つ。
LPM キャッシュテーブルは、宛先フィールドと送信IF番
号フィールドとツリーノードへのポインタフィールドと
からなる。宛先フィールドは、ネットワークアドレスを
示すプレフィクスビット列と、マスクビット列の組が格
納される。また、このLPM キャッシュテーブル検索機構
230 は、LPM キャッシュテーブルを検索する機能を持
つ。これは、たとえば、特願平9-234250号公報に記載さ
れているLPM 検索機能付きメモリとRAM(Random Access
Memory) で構成される。検索においては、パケットの送
信先アドレスがL204から与えられると、各エントリにつ
いて、宛先フィールドをLPM検索し、該当するエントリ
があった場合には、キャッシュヒット線L210をヒット値
にセットし、そのエントリの送信IF番号,ツリーノード
へのポインタフィールドの値をそれぞれL205,L215に出
力する。ヒットしなかった場合には、キャッシュヒット
線L210を非ヒット値にセットする。
【0093】・LPM キャッシュ登録機構240 LPM キャッシュテーブルのエントリの登録を行う機構。
内部に、キャッシュ登録アドレス管理機構241 と、ツリ
ー初期化機構242 と、管理用メモリ243 とを持つ。キャ
ッシュ登録アドレス管理機構241 は、キャッシュのアド
レスを常に登録が行われて消去されることのないエント
リ(常駐エントリ)の為の部分と、LRU等のアルゴリズ
ムを使って、キャッシュの更新が行われるエントリ(更
新エントリ)の為の部分(更新エントリ用キャッシュア
ドレス領域)に分けて管理している。また、更新エント
リ用キャッシュアドレス領域に関してLPM キャッシュテ
ーブルの使用/未使用エントリのアドレスを管理し、キ
ャッシュの有効活用のために、使用されているエントリ
について、キャッシュにヒットしたエントリを例えばLR
U などで管理している。また、フォワーディングテーブ
ルをツリー型のリスト構造で管理しており、LPM キャッ
シュ登録/削除の際に、フォワーディングテーブルの中
のどのエントリを登録/削除すべきかを決定する。ツリ
ー初期化機構242 は、このツリー型リストの初期化を行
う。常駐エントリを作らないことも勿論可能である。
【0094】次に各構成要素の詳細な説明を行う。
【0095】図9は、フォワーディングテーブル検索機
構200 の詳細な構成を示す。ルータのフォワーディング
テーブルを格納するフォワーディングテーブル用メモリ
203とそれを検索するテーブル検索機構201 から構成さ
れる。フォワーディングテーブル用メモリ203 は、フォ
ワーディングテーブルを格納している。このフォワーデ
ィングテーブルは、従来のルータのフォワーディングテ
ーブルと同様に、宛先フィールド、送信先IFフィールド
を持ち、さらに、ツリーノードへのポインタフィールド
も持つ。宛先フィールドには、プレフィクスを示すプレ
フィクスビット列と、プレフィクスビット列のプレフィ
クス長を示すプレフィクス長フィールドが含まれる。テ
ーブル検索機構201 は、制御信号線L206が有効化される
と、送信先アドレス線L201から入力されるパケットの送
信先アドレスを基にフォワーディングテーブル用メモリ
203 に格納されたフォワーディングテーブルの宛先フィ
ールドをLPM 検索し、検索にヒットした場合、検索ヒッ
ト線L209をヒット値にセットし、検索にヒットしたエン
トリの送信IF番号を送信IF番号線L202へ出力し、ツリー
ノードへのポインタをツリーノードへのポインタ線L203
に出力する。検索にヒットしなかった場合、検索ヒット
線L209が非ヒット値にセットされる。テーブル検索機構
201 において、パケットの送信先アドレスを基に、宛先
フィールドをLPM 検索する機構に関しては従来のルータ
と同様のLPM 検索機構を用いて実現できる。
【0096】図10は、LPM キャッシュテーブル検索機
構230 の詳細図である。LPM 検索機能付きメモリ231 と
RAM(Random Access Memory)232とから構成される。LPM
検索機能付きメモリ231 は、プレフィクスを表すプレフ
ィクスビット列と、プレフィクス長を表すマスクビット
列を組にしたエントリを、アドレス毎に登録しておく
と、検索キーのビット列が与えられたときに、LPM 検索
を行い、該当するエントリのアドレスを出力するメモリ
である。マスクビット列は、最上位ビットから下位ビッ
トに向かってプレフィクス長の長さのビットについて1
とし、残りのビットについては0としたものである。例
えば、8bit幅のLPM 検索機能付きメモリ231 に図35に
示す4つのエントリが登録されていたとする。
【0097】これらのエントリは、それぞれ、 アドレス1: 101xxxxx(プレフィクス長3) アドレス2: 1101xxxx(プレフィクス長4) アドレス3: 1100xxxx(プレフィクス長4) アドレス4: 11011xxx(プレフィクス長5) というプレフィクスを表している。尚、xは、ドントケ
ア(0でも1でもよい)を表している。
【0098】検索キーとして、11011111が与えられる
と、アドレス2と4のエントリのプレフィクスが一致す
るが、この中で最長のプレフィクスを持つアドレス4が
LPM 検索結果としてL220に出力される。アドレス1で
は、データビット列をマスクビット列でマスクしたビッ
ト列は、10100000で、検索キーをマスクビット列でマス
クしたビット列は、11000000となって、これら2つを比
較すると一致しない。同様に、アドレス3では、110000
00と11010000とを比較して一致しない。アドレス2では
11010000と11010000とを比較して一致し、アドレス4で
は11011000と11011000とを比較して一致するが、アドレ
ス4の方がプレフィクス長が長いので、検索結果とし
て、アドレス4が出力される。
【0099】LPM キャッシュテーブルは、宛先フィール
ド,送信IF番号フィールドおよびツリーノードへのポイ
ンタフィールドからなる。宛先フィールドはネットワー
クアドレスを示すプレフィクスビット列と、マスクビッ
ト列の組から構成される。プレフィクスビット列はLPM
検索機能付きメモリ231 のデータビット列として、マス
クビット列はLPM 検索機能付きメモリ231 のマスクビッ
ト列として格納される。送信IF番号フィールド,ツリー
ノードへのポインタフィールドは、RAM232中の、LPM 検
索機能付きメモリ231 に宛先フィールド(プレフィクス
ビット列とマスクビット列)を格納したのと同一のアド
レスに格納される。図10では、ネットワークアドレス
を32ビット幅とし、ドット付き10進数でプレフィクスビ
ット列、マスクビット列を表現している。例えば、プレ
フィクスビット列: 2.1.0.0 は、 00000010 00000001 00000000 00000000 (8bit ごとにス
ペースを入れいている) というビット列を表し、マスクビット列: 255.255.0.0
は、11111111 11111111 00000000 00000000(8bitごとに
スペースを入れいている)というビット列を表す。
【0100】制御信号線L213が書き込みを表す値にセッ
トされると、LPM キャッシュテーブルにエントリが登録
される。これは以下の手順で行われる。 LPM検索機能付
きメモリ231 では、キャッシュ登録アドレス線L212が示
すアドレスに、登録内容線L214から入力されるプレフィ
クスビット列、マスクビット列が格納される。同時に、
RAM232では、キャッシュ登録アドレス線L212の示すアド
レス(LPM検索機能付きメモリ231 に格納したのと同じア
ドレス) に登録内容線L214から入力される送信IF番号、
ツリーノードへのポインタを格納する。エントリの削除
については、制御信号線L213が削除を表す値にセットさ
れ、このときのキャッシュ登録アドレス線L212の値が示
すアドレスのキャッシュエントリが削除される。
【0101】制御信号線L207が有効化されると、検索が
行われる。LPM 検索機能付きメモリ231 に、送信先アド
レス線L204から送信先アドレスを表すビット列が検索キ
ーとして入力され、LPM 検索機能付きメモリ231 の機能
によって、LPM 検索を行い、一致するエントリがあった
場合には、キャッシュヒット線L210がヒット値にセット
され、ヒットアドレス線L220にヒットしたエントリを登
録しているLPM 検索機能付きメモリ231 のアドレスが出
力される。また、同時に、キャッシュヒット線L210がヒ
ット値にセットされる。そして、RAM232では、ヒットア
ドレス線L220の示すアドレスに書かれている送信IF番
号,ツリーノードへのポインタが読み出され、送信IF番
号線L205,ツリーノードへのポインタ線L215にその値が
出力される。ヒットしなかった場合には、キャッシュヒ
ット線L210が非ヒット値にセットされる。
【0102】図11はLPM キャッシュ登録機構240 の詳
細図である。
【0103】LPM キャッシュ登録機構240 では、フォワ
ーディングテーブルの各エントリに対応するノードをツ
リー状のリストで管理している。ツリーノードは管理用
メモリ243 に置かれ、ツリー初期化機能242 は、ツリー
構造の初期化を行う。ツリーの各ノードは図12に示す
ように、プレフィクスビット列とマスクビット列のペア
からなる宛先フィールドと、送信IF番号フィールドと、
2bitの登録済みフラグと、親ノードへのポインタと、子
ノードリストへの先頭ポインタとを有する。さらに、該
当エントリがキャッシュに登録された場合の、キャッシ
ュのアドレスを示すキャッシュアドレスフィールド、そ
して、キャッシュ登録されている場合にそのアドレスを
LRU 管理するために使用する次ポインタフィールド、前
ポインタフィールド持つ。子ノードリストへの先頭ポイ
ンタは、該当ノードの子ノードへのポインタをリストで
管理した子ノードリストを指している。
【0104】ここで、まず、親ノード、子ノードの関係
について説明する。
【0105】あるノードの宛先フィールドが表すネット
ワークアドレスの集合を考える。フォワーディングテー
ブルに対応付けられているすべてのノードには、それぞ
れのアドレス集合がある。これらの集合全体をUとす
る。あるノードAの親ノードとは、Uの中で、Aの宛先
フィールドが表すネットワークアドレスを包含する集合
のうち、最も少ない構成要素を持つ、すなわち、最もプ
レフィクス長の長い宛先を持つノードである。これは次
の親ノード検索手順で見つけることができる。
【0106】〔親ノード検索手順〕
【0107】親ノードを見つけたいノードをN1とする。
そして、親ノードをPNとし(初期値ではNullを入れてお
く)、親ノードのプレフィクス長をL(初期値でL=−
1)とする。N1を除くすべてのノードについて順に着目
し、次のX1,X2 の判定とX3を実行する。
【0108】X1: 着目したノードのプレフィクス長がN1
のプレフィクス長より短い(等しい場合を除く)
【0109】X2: N1のプレフィクスビット列と、着目し
たノードのプレフィクスビット列を、最上位ビットから
下位ビットに向かって、着目したプレフィクス長の長さ
のビットに関して比較して、一致する。
【0110】X3: X1,X2 が成立し、かつ、着目したノー
ドのプレフィクス長が、Lより大きい(等しい場合を除
く)ならば、PNを着目したノードに置き換える。
【0111】エントリの最後に達したとき、PNには、E
の親ノードがセットされている。PN=Null であれば、そ
のエントリには親ノードがなく、Null値(無効値)を親
ノードへのポインタとする。
【0112】ツリー構造の初期化に話を戻して、ツリー
初期化機構242 は、以下のツリー初期化手順を実行す
る。
【0113】〔ツリー初期化手順〕
【0114】1.フォワーディングテーブルのエントリ
数と同じ数のノードを管理用メモリ243 上に用意し、フ
ォワーディングテーブルの、ツリーノードへのポインタ
フィールドを、用意した各ノードを指すようにセット
し、ノードの宛先フィールド,送信IF番号フィールドに
は、フォワーディングテーブルと同じ宛先,送信IF番号
フィールドを書く。ただし、宛先フィールドのマスクビ
ット列としては、ネットワークアドレスと同じビット幅
のビット列に、最上位ビットから下位ビットに向かっ
て、プレフィクス長と同じ数のビットに1をたて、残り
のビットは0としたビット列とする。また、2bitの登録
済みフラグは”00”、キャッシュアドレス,前ポイン
タ,次ポインタはNULL(無効値)とする。フォワーディ
ングテーブルのエントリの中で、常にキャッシュとして
登録しておきたいエントリ(常駐エントリ)がある場合
は、登録済みフラグを”10”にセットし、常駐エントリ
用のキャッシュアドレス領域に、そのエントリを登録す
る。
【0115】2.1.で作成した各ノードについて順に
着目し、着目したノードの親ノードを見つけるために、
先に述べた親ノード検索手順を踏む。親ノードが見つか
れば、親ノードポインタに、その親ノードのアドレスを
登録する。また、その親ノードに対して、子ノードとし
て着目しているノード自身を登録する。これは、子ノー
ドリストに、着目しているエントリのアドレスを格納し
たリストを追加すればよい。
【0116】3.終了
【0117】キャッシュ登録アドレス管理機構241 は、
未使用エントリ数レジスタ244 ,未使用エントリリスト
への先頭ポインタ245 ,未使用エントリリストへの末尾
ポインタ246 ,使用中ツリーノードリストへの先頭ポイ
ンタ247 および使用中ツリーノードリストへの末尾ポイ
ンタ248 を持つ。キャッシュのアドレスは、常に登録が
行われて、消去されることのないエントリ(常駐エント
リ)の為の部分と(ツリー初期化手順の1の中で、常駐
エントリ用のキャッシュアドレス領域と呼んだ部分)
と、LRU 等のアルゴリズムを使って、キャッシュの更新
が行われるエントリ(更新エントリ)の為の部分(更新
エントリ用キャッシュアドレス領域)とに分けておく。
未使用エントリリストは更新エントリ用キャッシュアド
レス領域に関して、図13に示すように、リストの各ノ
ードが、更新エントリとして使われる部分のアドレスの
中で、未使用のキャッシュエントリのアドレスと次ノー
ドへのポインタを持ち、キャッシュの中で未使用のアド
レスをリストで管理しており、未使用エントリリストへ
の先頭ポインタ245 がそのリストの先頭ノードを、未使
用エントリリストへの末尾ポインタ246 が末尾ノードを
指している。ツリー初期化機構242 で作成したツリーノ
ードのうち、LPM キャッシュテーブルに、その宛先、送
信IF番号が登録されているツリーノードは、双方向リス
トで接続されており、使用中ツリーノードリストへの先
頭ポインタ247 ,末尾ポインタ248 が、その先頭ノー
ド,末尾ノードを記憶している(図13参照)。
【0118】これらのレジスタ,ポインタ,リストは以
下のように初期化される。未使用エントリリストは、キ
ャッシュの全アドレスをリストでつないで初期化し、そ
の先頭リストのアドレスを未使用エントリリストの先頭
ポインタ245 に登録する。また、未使用エントリ数レジ
スタ244 には未使用エントリリストのノード数が設定さ
れる。使用中ツリーノードリストの先頭ポインタ247 ,
末尾ポインタ248 はNull(無効値)で初期化する。
【0119】次に、キャッシュ登録アドレス管理機構24
1 が実行する、エントリ登録手順と、エントリ削除手順
を述べる。
【0120】〔エントリ登録手順〕
【0121】1.キャッシュ登録アドレス管理機構241
へは、任意個(例えばM個)のツリーノードへのポイン
タ(ツリーのアドレス)が入力される。
【0122】2.未使用エントリリストからM個のリス
トを取り外す。また、未使用エントリ数レジスタ244 は
Mを減算した値に更新する。
【0123】3.M個のツリーノードを読み出して、使
用中ツリーノードリストの先頭に付け加える(M個の中
での順序は問わない)。このとき、M個のツリーノード
は、それらの前ポインタ,次ポインタで双方向リストと
してつながれ、使用中ツリーノードリストへの先頭ポイ
ンタ247 ,末尾ポインタ248 も正しくセットされる。
【0124】4.同時に、ツリーノードの、宛先,送信
IF番号を読み出し、2.で取り外したリストから読み出
したM個のキャッシュアドレスに、M個の (宛先,送信
先IF番号,ツリーノードへのポインタ)の組を格納す
る。格納には、制御信号線L213がM回書き込みを示す値
にセットされて、L212にはキャッシュアドレスが、L214
には、(宛先,送信先IF番号,ツリーノードへのポイン
タ)の組がそれぞれM個出力され、LPM キャッシュテー
ブル検索機構230 によって、それらが指定したM個のア
ドレスに格納される。
【0125】5.M個のツリーノードについて、そのノ
ードの(宛先、送信IF番号、ツリーノードへのポイン
タ)を格納した、キャッシュのアドレスを、キャッシュ
アドレスフィールドに格納する。また、2bitの登録済み
フラグも”01”にセットする。
【0126】6. 終了
【0127】〔エントリ削除手順〕
【0128】1.使用中ツリーノードリストへの末尾ポ
インタ248 の指す、ツリーノードを読み出す。
【0129】2.ツリーノードの親を順にたどってゆ
き、登録済みフラグが”01”にセットされているノード
ついて(常駐エントリではなく、登録されているノード
について)、 2-1.登録済みフラグを”00”にセット 2-2.ツリーノードのアドレス(ポインタ)、キャッシュ
アドレスの取得を行う。
【0130】3. 2-2. で得られたツリーノードすべて
について、使用中ツリーノードリストからそのノードを
取り外す処理を行い、それらのノードに書かれているキ
ャッシュアドレスフィールドの値を使って、(キャッシ
ュアドレスフィールド、次ポインタ)を組とする未使用
エントリリストのノードを作成し、未使用エントリリス
トの任意の場所(たとえば先頭)に付け加える。また、
未使用エントリ数レジスタ244 の値に、未使用エントリ
リストに付け加えたノード数を加算して更新する。
【0131】4. 2-2で得られたすべてのキャッシュア
ドレスのキャッシュを削除する。これには、制御信号線
L213、キャッシュアドレス線L212を用いて、LPM キャッ
シュテーブル検索機構230 に、それぞれ、削除の指示、
削除したいアドレスが出力される。
【0132】5.終了
【0133】さらに、キャッシュ登録アドレス管理機構
241 が実行する、LRU 管理手順を述べる。キャッシュヒ
ット線L210が、ヒット値にセットされると、以下のLRU
管理手順を実行する。
【0134】〔LRU 管理手順〕
【0135】1.ツリーノードへのポインタ線L215の値
を読み込み、検索にヒットしたキャッシュエントリに対
応する、ツリーノードのアドレスを得る。
【0136】2.該当ポインタの指すツリーノードが、
使用中ツリーノードリストの先頭にくるように、キャッ
シュ登録アドレス管理機構241 が、使用中ツリーノード
リストの双方向リストをつなぎかえる。
【0137】3.終了
【0138】また、キャッシュ登録アドレス管理機構24
1 は、以下に述べるキャッシュ登録手順も実行する。制
御信号線L208が有効化されると、ツリーノードへのポイ
ンタ線L203からポインタを読み込み、ポインタレジスタ
249 に格納する。そして、次に示す、キャッシュ登録手
順を実行する
【0139】〔キャッシュ登録手順〕
【0140】1.ポインタレジスタ249 の指す、ツリー
のノードから、一般的なツリー探索アルゴリズムを使っ
て(たとえば、幅優先探索など)、管理メモリ243上
のツリーノードに対して、ツリーにおける下(子ノード
方向)のすべてのノードを探索して、登録フラグの立っ
ていないノードについて、ノードのアドレスを取得す
る。またこれらのノードの個数も数え、これをNとす
る。
【0141】2.キャッシュ登録アドレス管理機構241
の、未使用エントリ数レジスタ244の値とNを比較し、
Nと等しいあるいか小さければ4.へ進む。
【0142】3.キャッシュ登録アドレス管理機構241
にて、前出のエントリ削除手順1〜5を実行し、1.へ
戻る。
【0143】4.で得たN個のノードのアドレスを入力
として、キャッシュ登録アドレス管理機構241 にて、前
出のエントリ登録手順1〜6を実行する。
【0144】5.終了
【0145】図14は制御機構220 の詳細図である。送
信先アドレスレジスタ221 は、制御機構220 に入力され
るパケットの送信先アドレス(L217を介して入力され
る)を格納し、その値を送信先アドレス線L201と、送信
先アドレス線L204に出力する。制御回路223 は内部にシ
ーケンサを持ち、以下のように動作する。
【0146】パケットの送信先アドレスが制御機構220
に入力されると、動作を開始し、まず制御信号線L207を
有効化する。次にキャッシュヒット線L210がヒット値に
セットされれば、送信IF番号線L205の値を送信IF番号レ
ジスタ222 に取り込み、送信IF番号をL218に出力する。
キャッシュヒット線L210が非ヒット値に設定されれば、
制御信号線L206を有効化する。また、検索ヒット線L209
がヒット値にセットされれば、制御信号線L208を有効化
し、さらに、送信IF番号線L202の値を送信IF番号レジス
タ222 に取り込み、送信IF番号をL218出力する。ヒット
値にセットされなければ、エラー処理を行う。そして、
すべての制御信号線L207,L206,L208を無効化して停止す
る。
【0147】次に図15のフローチャートを用いて、第
2の実施例の動作を説明する。まず、フォワーディング
テーブル用メモリ203 にフォワーディングテーブルが登
録される(FC200) 。次に、LPM キャッシュ登録機構240
の中で、ツリー初期化機構242 が先に述べたツリー初期
化手順を行い(常駐エントリの登録が、もしあればそれ
も行う)、キャッシュ登録アドレス管理機構241 が未使
用エントリリストの初期化を行う(FC201) 。
【0148】ルータにパケットが到着すると(FC204) 、
パケットの送信先アドレスL217が制御機構220 に入力さ
れる。この送信先アドレスが制御機構220 の中の送信先
アドレスレジスタ221 に格納され、送信先アドレス線L2
01,L204へ出力される。次に、制御機構220 の中の制御
回路223 が制御信号線L207を有効化し、LPM キャッシュ
テーブル検索機構230 において、送信先アドレス線L204
の値を用いて、LPM キャッシュテーブルが検索される(F
C205) 。
【0149】キャッシュにヒットした場合(FC207) 、キ
ャッシュヒット線L210がヒット値にセットされ、LPM キ
ャッシュテーブルのヒットしたエントリのツリーノード
へのポインタが、ツリーノードへのポインタ線L215に出
力され、さらに、送信IF番号線L205に、ヒットしたエン
トリ中の送信IF番号が出力される。このとき、キャッシ
ュ登録アドレス管理機構241 では、キャッシュヒット線
L210がヒット値にセットされたことを受けて、ツリーノ
ードへのポインタ線L215の値を取り込み、先に述べたLR
U 管理手順を用いて、使用中ツリーノードリストの双方
向リンクリストを付け替える(FC215) 。制御機構220 に
おいても、キャッシュヒット線L210がヒット値にセット
されたことを受けて、送信IF番号線L205の値を送信IF番
号レジスタ222 に格納し、パケットの送信IF番号L218を
出力する(FC216) 。
【0150】キャッシュにヒットしなかった場合(図1
5のFC208 の分岐へ進んだ場合)、キャッシュヒット線
L210が非ヒット値にセットされ、制御機構220 の中の制
御回路223 が、制御信号線L206を有効化する。フォワー
ディングテーブル検索機構200 では、制御信号線L206が
有効化されたことを受けて、送信先アドレス線L201に出
力されているパケットの送信先アドレス線の値を取り込
み、テーブル検索機構201 によって、フォワーディング
テーブルをLPM 検索する(FC209) 。検索の結果エントリ
が見つかると(FC211) 、検索ヒット線L209がヒット値に
設定され、見つかったエントリの送信IF番号,ツリーノ
ードへのポインタが、それぞれ、送信IF番号線L202,ツ
リーノードへのポインタ線L203に出力される(FC212) 。
制御機構220 では、検索ヒット線L209が有効化されたこ
とを受けて、制御信号線L208を有効化する。LPM キャッ
シュ登録機構240 では、制御信号線L208が有効化された
ことを受けて、先に述べたキャッシュ登録手順を実行し
(FC213) 、登録すべきツリーノードの、宛先、送信IF番
号、ツリーノードへのポインタをLPM キャッシュテーブ
ル検索機構230 のLPM キャッシュテーブルに登録する。
フォワーディングテーブルのLPM 検索の結果、エントリ
が見つからなかった場合(FC217) 、検索ヒット線L209が
非ヒット値にセットされる。制御機構220 では、検索ヒ
ット線L209の非ヒット値にセットされたことを受けて、
エラー処理を行う(FC218) 。
【0151】また、ツリーノードにキャッシュに登録す
べきかどうかを識別するフラグを用意しておいて、キャ
ッシュ登録手順の1.のはじめにおいて、そのフラグに
応じて登録処理を実行するかどうかを変えることも可能
である。
【0152】以降、動作例を上げて、第2の実施例の動
作を説明する。ここでは、ネットワークアドレスが32ビ
ットとする。LPM キャッシュエントリには初期状態とし
てなにも登録されていないとし、キャッシュの容量は5
で、アドレス1 〜4 が更新エントリの為の領域で、アド
レス5が常駐エントリの領域とする。
【0153】まず、ルータのフォワーディングテーブル
が、図36に示すものであったとし、アドレス7のエン
トリは常駐エントリとしてキャッシュに常に登録される
とする。
【0154】まず、図15のフローチャートのFC201
で、LPM キャッシュ登録機構240 のツリー初期化機構24
2 によって、ツリー初期化が行われ、図16のようにツ
リーが初期化される。図16では、ツリーノードの親ノ
ードへのポインタ,子ノードリストへの先頭ポインタ,
子ノードリストは省略して、親ノードへのポインタを点
線矢印、子ノードへのポインタを実線矢印で表記してい
る。また、未使用エントリリストについても図16のよ
うに初期化される。キャッシュの更新エントリの容量が
4であるので、未使用エントリ数レジスタ244 には4が
格納される。LPMキャッシュ登録機構240 の管理用メモ
リ243 にツリーノード1〜7を格納したアドレスが、ア
ドレス1〜7であるとすると、フォワーディングテーブ
ルは、図37に示すものとなる。
【0155】また、LPM キャッシュテーブルは、図38
に示すものとなる。
【0156】次に、送信先アドレスが、10.5.1.1, 10.
1.2.3, 20.1.2.3のパケットがこの順に到着したとす
る。まず、送信先アドレス10.5.1.1のパケットが到着す
ると、LPM キャッシュテーブル検索機構230 において、
LPM キャッシュテーブルが10.5.1.1をキーとしてLPM 検
索される。LPM キャッシュテーブルには該当するエント
リがないのでヒットせず、次に、フォワーディングテー
ブルが10.5.1.1をキーとしてLPM 検索される。この結
果、アドレス1にヒットし、送信IF番号線L202に値10
が、ツリーノードへのポインタ線L203には、1 が出力さ
れる。制御機構220 では、送信IF番号をL202の値から10
と決定してこれをL218へ出力する。同時に、LPMキャッ
シュ登録機構240 では、ポインタレジスタ249 にL203の
値である1が格納され、キャッシュ登録手順の1.が実
行され、ポインタレジスタ249 の値から図16のツリー
ノード1及びその配下(子ノード方向)のすべてのツリ
ーノードすなわち、ツリノード1,2,3,6の4個の
ツリーノードが選ばれる。キャッシュ登録手順の2で、
この個数4と未使用エントリ数レジスタ244 の値4とを
比較し、比較の結果キャッシュ登録手順の4.へ進む。
キャッシュ登録手順4.では、キャッシュ登録アドレス
管理機構241 でエントリ登録手順1.〜6.が実行さ
れ、ツリーリスト及び、未使用エントリリスト、使用中
ツリーリストは図17のように変化する。未使用エント
リ数レジスタ244 は、未使用エントリリストのノード数
が0になるので、0とセットされる。LPM キャッシュテ
ーブルは、図39に示すものとなる。
【0157】次に、送信先アドレス10.1.2.3のパケット
が到着すると、まずLPM キャッシュテーブルが10.1.2.3
をキーにしてLPM 検索され、アドレス2にヒットし、キ
ャッシュヒット線L210が有効化され、送信IF番号線L205
にはヒットしたエントリの送信IF番号である60が出力さ
れ、ツリーノードへのポインタ線L215には、ヒットした
エントリのツリーノードへのポインタフィールドの値で
ある6が出力される。制御機構220 では、パケットの送
信IF番号をL205の値から60と決定しこれをL218に出力す
る。キャッシュ登録アドレス管理機構241 では、キャッ
シュヒット線L210が有効化されたことをうけて、先に述
べたLRU 管理手順1〜3を実行し、ツリーノード6を使
用中ツリーノードリストの先頭にもってきて、図18の
ように変化する。
【0158】次に、送信先アドレス20.1.2.3のパケット
が到着すると、まずLPM キャッシュテーブル検索機構23
0 において、LPM キャッシュテーブルが20.1.2.3をキー
としてLPM 検索される。LPM キャッシュテーブルには該
当するエントリがないのでヒットせず、次に、フォワー
ディングテーブルが20.1.2.3をキーとして検索される。
この結果、アドレス4にヒットし、送信IF番号線L202に
値40が、ツリーノードへのポインタ線L203には、4が出
力される。制御機構220 では、送信IF番号をL202の値か
ら40と決定してこれをL218へ出力する。同時に、LPM キ
ャッシュ登録機構240 では、L203の値4をポインタレジ
スタ249 に格納し、キャッシュ登録手順の1.が実行さ
れ、ポインタレジスタ249 の値から図16のツリーノー
ド4及びその配下(子ノード方向)のすべてのツリーノ
ードすなわち、ツリノード4の1個のツリーノードが選
ばれる。キャッシュ登録手順の2.で、この個数1と未
使用エントリ数レジスタ244 の値0とを比較し、比較の
結果キャッシュ登録手順の3.へ進む。キャッシュ登録
手順3.では、キャッシュ登録アドレス管理機構241 が
先に述べたエントリ削除手順を実行する。
【0159】エントリ削除手順1.では、使用中ツリー
ノードリストの末尾ポインタ248 を読み(LRUアルゴリズ
ムで消されるべきエントリを指している)、ツリーノー
ド3が選ばれる。エントリ削除手順2.では、ツリーを
親方向にたどり、登録済みフラグが”01”にセットされ
ているノード、すなわちツリーノード3,2,1につい
て、登録済みフラグを”00”にし、ツリーノードに書か
れているキャッシュアドレスを取得する。これらは、ツ
リーノード3,2,1についてそれぞれ、4,3,1と
なる。さらにエントリ削除手順3.及び4.を実行する
と、結果としてツリーリスト及び、未使用エントリリス
ト、使用中ツリーリストは図19のように変化する。ま
た、LPM キャッシュテーブルも、アドレス4,3,1 が削除
されて図40に示すものとなる。
【0160】ここまでがエントリ削除手順で、キャッシ
ュ登録手順3.の続きを実行すると、キャッシュ登録手
順1.へ戻り、キャッシュ登録手順1.が実行される。
キャッシュ登録手順の1.が実行されると、ポインタレ
ジスタ249 の値が4であったことから、図16のツリー
ノード4及びその配下(子ノード方向)のすべてのツリ
ーノードすなわち、ツリノード4の1個のツリーノード
が選ばれる。キャッシュ登録手順2.では、未使用エン
トリ数レジスタ244 の値が、3に変化しているので、こ
の3と選んだツリーノードの数1を比較した結果、今度
は、キャッシュ登録手順4.に進む。キャッシュ登録手
順4.ではツリーノード4をキャッシュに格納するた
め、エントリ登録手順1.〜6.を実行し、結果として
ツリーリスト及び、未使用エントリリスト、使用中ツリ
ーリストは図20のように変化する。また、LPM キャッ
シュテーブルも、図41に示すように変化する。
【0161】以上のようにして、第2の実施例は動作す
る。
【0162】ここで、第2の実施例のLPM キャッシュテ
ーブルへのキャッシュ登録方法に従ってキャッシュを登
録した場合に、キャッシュにヒットした場合にも、正し
い送信IF番号が決定できることを示す。第2の実施例で
は、ツリーノードの親子関係は、ツリーノードの宛先が
示すネットワークアドレスの集合について、親ノードが
子ノードを包含しているという関係が成立する。このた
め、第2の実施例のキャッシュ登録方法に従えば、フォ
ワーディングテーブルで検索にヒットしたエントリの宛
先が示すネットワークアドレスの集合に包含されるよう
な宛先を持つエントリはすべて登録される。このため、
登録したキャッシュのエントリは、フォワーディングテ
ーブルの一部ではあるが、正しい宛先と送信IF番号の組
を与えている。またキャッシュエントリを削除する際に
も、キャッシュ登録アドレス管理機構241 のエントリ削
除手順では、任意の2つのツリーノードについて、ツリ
ーの上位のノードだけがキャッシュに登録され、下位の
ノードが登録されていないという状態が発生しないよう
に削除を行っているため問題ない。
【0163】キャッシュ登録アドレス管理機構241 の構
成の中で、キャッシュテーブルのエントリの中で、LRU
アルゴリズムの対象から除外し、常に使用されているエ
ントリがあるような構成でがとれることを示した。この
常駐させるエントリには制約がある。それをここで述べ
ておく。その制約とは、常にキャッシュに登録されてい
るフォワーディングテーブルのエントリについては、対
応するツリノードの配下(子ノード方向)の、すべての
ノードに対応するフォワーディングテーブルエントリも
一緒に常に登録しておく必要があるという制約である。
たとえば、先の動作例のフォワーディングテーブルにお
いては、常に登録しておくエントリの例としては、 ・ツリーノード4 に対応するエントリを1つだけ常に登
録しておく。 ・ツリーノード1,6,2,3 に対応するエントリ4つを常に
登録しておく。 等である。いずれの例でも、登録した任意のエントリに
対応するツリーノードの配下のノードに対応するエント
リはすべて登録されている。
【0164】〔第3の実施例〕第3の実施例の構成図を
図21に示す。第3の実施例は、第1の実施例のフォワ
ーディングテーブル検索機構100 をフォワーディングテ
ーブル検索機構300 に置き換えたもので、制御機構120,
キャッシュ登録機構140,マスク付きキャッシュテーブル
検索機構130 は、第1の実施例と全く同一のものでよ
く、各機構の接続関係L101〜L119も全く同一である。以
下では、第1の実施例とは異なるフォワーディングテー
ブル検索機構300 を説明する。フォワーディングテーブ
ル検索機構300 の詳細図を図22に示す。フォワーディ
ングテーブル用メモリ303 は、ルータのフォワーディン
グテーブルを格納しており、第1の実施例のフォワーデ
ィングテーブル用メモリ103 とは、登録プレフィクス長
フィールドを持たないという点以外は同じである。テー
ブル検索機構301 はフォワーディングテーブル用メモリ
303 をLPM 検索する機構で、第1の実施例のテーブル検
索機構とは、登録プレフィクス長を出力しないこと以外
は同一である。
【0165】登録プレフィクス長決定機構302 は、フォ
ワーディングテーブル検索にヒットしたエントリのプレ
フィクスビット列、プレフィクス長をテーブル検索機構
301から受け取り、最適キャッシュプレフィクス長を以
下に述べる登録プレフィクス長決定手順で決定し、得ら
れた登録プレフィクス長を登録プレフィクス線L103へ出
力する。
【0166】〔登録プレフィクス長決定手順〕
【0167】1.フォワーディングテーブル検索にヒッ
トしたエントリのプレフィクスビット列をP、プレフィ
クス長をLとする。
【0168】2.Eをアドレス1とする。PE=Lとす
る。またカウンタCをC=0に設定する。
【0169】3.Eがフォワーディングテーブルのエン
トリ数を越えていなければ4を実行、そうでなければ7
へ。
【0170】4.Eのアドレスのエントリのプレフィク
スビット列,プレフィクス長及び、P,Lをつかって、
前方一致ビット数を求める。
【0171】5.4.で求めた前方一致ビット数がPEよ
り大きければPEをそれに置き換え、C=1とする。等し
い場合、C=C+1とする。
【0172】6.Eのアドレスを1つ増加させ、2へ戻
る。
【0173】7.PEがLより大きい場合、登録プレフィ
クス長=PE+1。PE=LかつC=2以上の場合、登録プ
レフィクス長=PE +1。PE=Lかつ、C=1の場合、登
録プレフィクス長=PEとする。
【0174】8.終了
【0175】これは、回路で簡単に実現できる。
【0176】第3の実施例のこれ以外の構成要素は、第
1の実施例と同一なので、ここでは説明しない。
【0177】第3の実施例の動作は、第1の実施例の図
7のフローチャートにおいて、登録プレフィクス長決定
処理(FC101) を取り除いて、FC112 とFC113 の間に、上
で述べた登録プレフィクス長決定手順を実行する処理を
加えること以外はすべて同じである。
【0178】ここで、第3の実施例のマスク付きキャッ
シュテーブルへのキャッシュ登録方法に従ってキャッシ
ュを登録した場合に、キャッシュにヒットした場合に
も、正しい送信IF番号が決定できることを示す。これに
は、登録するエントリの宛先フィールドが示すネットワ
ークアドレス集合が、(1) 検索にヒットしたエントリが
表すアドレス集合と同じあるいは、包含されていて、か
つ、(2) フォワーディングテーブルの、他のエントリの
表すアドレス集合をどれも包含していないということを
示せばよい。
【0179】実際、キャッシュに登録するエントリの登
録プレフィクス長は、ヒットしたフォワーディングテー
ブルのエントリのプレフィクス長より等しいか長い。こ
れは、登録プレフィクス長さ決定処理の1でのPEの初期
設定値と、登録プレフィクス長さ決定処理の7から成立
する。また、キャッシュに登録するエントリのプレフィ
クスビット列は、少なくとも、最上位ビットから、下位
ビットに向かって、検索にヒットしたフォワーディング
テーブルのプレフィクス長に関しては、検索にヒットし
たエントリのプレフィクスビット列と一致する。よっ
て、この2つから、(1) の条件を満たしていることがわ
かる。(2) については、登録プレフィクス長が、前方一
致ビット数の最大値+1を使用している場合は明らかに
成立する。登録プレフィクス長が、前方一致ビット数の
最大値を用いている場合は、登録するキャッシュエント
リの宛先が、ヒットした宛先と同一の場合に相当し、こ
の場合にも、(2) は成立している。よって、第3の実施
例のキャッシュ登録方法を用い、キャッシュにヒットし
た場合でも、正しい送信IF番号を得ることができる。
【0180】第3の実施例において、フォワーディング
テーブルの中で、マスク付きキャッシュテーブルに常駐
させることができるエントリには制約についても第1の
実施例の場合と同様で、登録するエントリが、フォワー
ディングテーブル検索でヒットしたエントリが包含する
他のフォワーディグテーブルのエントリがあった場合に
そのどれをも包含することはないという制約である。
【0181】〔第4の実施例〕本発明の第4の実施例の
構成図を図23に示す。各構成要素を説明する。
【0182】・フォワーディングテーブル検索機構100 第1の実施例のフォワーディングテーブル検索機構100
と全く同じ機構。
【0183】・制御機構120 第1の実施例の制御機構120 と全く同じ機構。
【0184】・キャッシュ登録機構140 LPM キャッシュテーブルのエントリの登録を行う機構。
第1の実施例のキャッシュ登録機構140 と全く同じ機
構。
【0185】・LPM キャッシュテーブル検索機構430 LPM キャッシュテーブルとそれを検索する機能を持つ。
LPM キャッシュテーブルは、宛先フィールドと送信IF番
号フィールドからなる。宛先フィールドはネットワーク
アドレスを示すプレフィクスビット列と、マスクビット
列の組が格納される。また、このLPM キャッシュテーブ
ル検索機構430 は、LPM キャッシュテーブルを検索する
機能を持つ。これは、たとえば、特願平9-234250号公報
に記載されたLPM 検索機能付きメモリとRAM(Random Acc
ess Memory) で構成される。図24に詳細な構成を示
す。
【0186】制御信号線L113が有効化されると、LPM キ
ャッシュテーブルにエントリが登録される。これは以下
の手順で行われる。 LPM検索機能付きメモリ431 では、
キャッシュ登録アドレス線L112が示すアドレスに、プレ
フィクスビット列線L114から入力されるプレフィクスビ
ット列と、マスクビット列線L115から入力されるマスク
ビット列とが格納される。同時に、RAM432では、キャッ
シュ登録アドレス線L112の示すアドレス(LPM検索機能付
きメモリ431 に格納したのと同じアドレス) に送信IF番
号線L102から入力される送信IF番号を格納する。エント
リの削除については、制御信号線L113が削除を表す値に
セットされ、このときのキャッシュ登録アドレス線L112
の値示すアドレスのキャッシュエントリが削除される。
【0187】制御信号線L107が有効化されると、検索が
行われる。LPM 検索機能付きメモリ431 に、送信先アド
レス線L104から送信先アドレスを表すビット列が検索キ
ーとして入力され、LPM 検索機能付きメモリ431 の機能
によって、LPM 検索を行い、一致するエントリがあった
場合には、キャッシュヒット線L110がヒット値にセット
され、ヒットアドレス線L111にヒットしたエントリを登
録しているLPM 検索機能付きメモリ431 のアドレスが出
力される。そして、RAM432では、ヒットアドレス線L111
の示すアドレスに書かれている送信IF番号が読み出さ
れ、送信IF番号線L105にその値が出力される。ヒットし
なかった場合には、キャッシュヒット線L110が非ヒット
値にセットされる。
【0188】第4の実施例の動作については、LPM キャ
ッシュテーブル検索機構430 以外の動作は、第1の実施
例と全く同じである。
【0189】ここで、第4の実施例のLPM キャッシュテ
ーブルへのキャッシュ登録方法に従ってキャッシュを登
録した場合に、キャッシュにヒットした場合にも、正し
い送信IF番号が決定できることを示す。
【0190】第4の実施例においては、LPM キャッシュ
テーブル検索機構430 には、(プレフィクスビット列、
マスクビット列、送信先IF番号)の組としては、第1の
実施例と同一のキャッシュエントリが格納され、検索方
法が、マスク付きの一致検索を行うか、LPM 検索を行う
かの違いがあるだけである。マスク付き一致検索と、LP
M 検索の違いは、マスク付き一致検索では複数一致した
エントリがあった場合、その中のいずれかのエントリ
(どのエントリになるかは問わない)が検索結果として
得られるのに対して、LPM 検索では、マスクビット列の
中の最上位ビットから下位ビットに向かって、連続して
1の立っているビット数が最大のものが検索結果として
得られるという違いである。しかし、第1の実施例のマ
スク付きキャッシュテーブルへのエントリ登録方法で
は、マスク付き一致検索を行った場合に複数一致がおこ
るような登録を行っていないため、結局、第4の実施例
でLPMキャッシュテーブル検索機構430 によって求まる
送信IF番号は、第1の実施例でマスク付きキャッシュ検
索機構130 で求まる送信IF番号と一致する。このことか
ら、第1の実施例と同じ理由によって、第4の実施例の
LPM キャッシュテーブルへのキャッシュ登録方法に従っ
てキャッシュを登録した場合に、キャッシュにヒットし
た場合にも、正しい送信IF番号が決定できる。
【0191】第4の実施例において、常駐させておくエ
ントリについては、キャッシュの検索方法の違いによっ
て、制約が第1の実施例とは異なるので、それをここで
述べておく。第1の実施例での制約条件は、登録するエ
ントリが、フォワーディングテーブル検索でヒットした
エントリが包含する他のフォワーディグテーブルのエン
トリがあった場合にそのどれをも包含することはないと
いう制約であったが、第4の実施例ではLPM 検索ができ
るキャッシュを用いているため、制約条件は、第2の実
施例と同様になり、常にキャッシュに登録させるフォワ
ーディングテーブルのエントリについては、対応するツ
リノードの配下(子ノード方向)の、すべてのノードに
対応するフォワーディングテーブルエントリも一緒に常
に登録しておく必要があるという制約である。
【0192】例えば、フォワーディングテーブルが、図
42に示すものであったとする。
【0193】例えば、アドレス2のエントリを常駐させ
るには、アドレス3のエントリも常駐させる必要がある
(アドレス2の宛先フィールドが表すネットワークアド
レスの集合がアドレス3の宛先フィールドが表すネット
ワークアドレスの集合を包含するため)。常駐させるこ
とができるエントリのアドレス組の例としては、(アド
レス2,アドレス3), (アドレス1,アドレス2,ア
ドレス3,アドレス6),(アドレス4)などである。
【0194】〔第5の実施例〕第5の実施例の構成図を
図25に示す。各構成要素の説明をする。
【0195】・フォワーディングテーブル検索機構300 第3の実施例のフォワーディングテーブル検索機構100
と全く同じ機構。
【0196】・制御機構120 第1の実施例の制御機構120 と全く同じ機構。
【0197】・キャッシュ登録機構140 LPM キャッシュテーブルのエントリの登録を行う機構。
第1の実施例のキャッシュ登録機構140 全く同じ機構。
【0198】・LPM キャッシュテーブル検索機構430 第4の実施例のLPM キャッシュテーブル検索機構430 と
全く同じ機構。
【0199】第5の実施例の動作は、LPM キャッシュテ
ーブル検索機構430 以外の動作については、第3の実施
例と全く同じである。
【0200】ここで、第5の実施例のLPM キャッシュテ
ーブルへのキャッシュ登録方法に従ってキャッシュを登
録した場合に、キャッシュにヒットした場合にも、正し
い送信IF番号が決定できることを示す。
【0201】第5の実施例においては、LPM キャッシュ
テーブル検索機構430 には、(プレフィクスビット列、
マスクビット列、送信先IF番号)の組としては、第3の
実施例と同一のキャッシュエントリが格納され、検索方
法が、マスク付きの一致検索を行うか、LPM 検索を行う
かの違いがあるだけである。マスク付き一致検索と、LP
M 検索の違いは、マスク付き一致検索では複数一致した
エントリがあった場合、その中のいずれかのエントリ
(どのエントリになるかは問わない)が検索結果として
得られるのに対して、LPM 検索では、マスクビット列の
中の最上位ビットから下位ビットに向かって、連続して
1の立っているビット数が最大のものが検索結果として
得られるという違いである。しかし、第3の実施例のマ
スク付きキャッシュテーブルへのエントリ登録方法で
は、マスク付き一致検索を行った場合に複数一致がおこ
るような登録を行っていないため、結局、第4の実施例
でLPMキャッシュテーブル検索機構430 によって求まる
送信IF番号は、第3の実施例でマスク付きキャッシュ検
索機構130 で求まる送信IF番号と一致する。このことか
ら、第3の実施例と同じ理由によって、第4の実施例の
LPM キャッシュテーブルへのキャッシュ登録方法に従っ
てキャッシュを登録した場合に、キャッシュにヒットし
た場合にも、正しい送信IF番号が決定できる。
【0202】第5の実施例において常駐させておくエン
トリについては、キャッシュの検索方法の違いによっ
て、制約が第3の実施例とは異なるので、それをここで
述べておく。第3の実施例での制約条件は、第1の実施
例と同じく、登録するエントリが、フォワーディングテ
ーブル検索でヒットしたエントリが包含する他のフォワ
ーディグテーブルのエントリがあった場合にそのどれを
も包含することはないという制約であったが、第4の実
施例ではLPM 検索ができるキャッシュを用いているた
め、制約条件は、第2の実施例と同様になり、常にキャ
ッシュに登録させるフォワーディングテーブルのエント
リについては、対応するツリノードの配下(子ノード方
向)の、すべてのノードに対応するフォワーディングテ
ーブルエントリも一緒に常に登録しておく必要があると
いう制約である。
【0203】例えば、フォワーディングテーブルが、図
43に示すものであったとする。
【0204】例えば、アドレス2のエントリを常駐させ
るには、アドレス3のエントリも常駐させる必要がある
(アドレス2の宛先フィールドが表すネットワークアド
レスの集合がアドレス3の宛先フィールドが表すネット
ワークアドレスの集合を包含するため)。常駐させるこ
とができるエントリのアドレス組の例としては、(アド
レス2,アドレス3), (アドレス1,アドレス2,ア
ドレス3,アドレス6),(アドレス4)などである。
【0205】図44は、第1〜第5の実施例を実現する
ハードウェア構成例を示した図であり、コンピュータC
と、記録媒体Kとから構成される。記録媒体Kは、ディ
スク,半導体メモリ,その他の記録媒体であり、コンピ
ュータCをキャッシュを有するルータの方路決定装置を
して機能させるためのプログラムが記録されている。
【0206】第1の実施例を実現する場合には、記録媒
体Kに記録されているプログラムは、コンピュータCに
よって読み取られ、コンピュータCの動作を制御するこ
とで、コンピュータC上に、フォワーディングテーブル
検索機構100 ,制御機構120,マスク付きキャッシュテ
ーブル検索機構130 ,キャッシュ登録機構140 を実現す
る。
【0207】第2の実施例を実現する場合には、記録媒
体Kに記録されているプログラムは、コンピュータCに
よって読み取られ、コンピュータCの動作を制御するこ
とで、コンピュータC上に、フォワーディングディスク
検索機構200 ,制御機構220,LPM キャッシュテーブル
検索機構230 ,LPM キャッシュ登録機構240 を実現す
る。
【0208】第3の実施例を実現する場合には、記録媒
体Kに記録されているプログラムは、コンピュータCに
よって読み取られ、コンピュータCの動作を制御するこ
とで、コンピュータC上に、フォワーディングディスク
検索機構300 ,制御機構120,マスク付きキャッシュテ
ーブル検索機構130 ,キャッシュ登録機構140 を実現す
る。
【0209】第4の実施例を実現する場合には、記録媒
体Kに記録されているプログラムは、コンピュータCに
よって読み取られ、コンピュータCの動作を制御するこ
とで、コンピュータC上に、フォワーディングディスク
検索機構100 ,制御機構120,LPM キャッシュテーブル
検索機構430 ,キャッシュ登録機構140 を実現する。
【0210】第5の実施例を実現する場合には、記録媒
体Kに記録されているプログラムは、コンピュータCに
よって読み取られ、コンピュータCの動作を制御するこ
とで、コンピュータC上に、フォワーディングディスク
検索機構300 ,制御機構120,LPM キャッシュテーブル
検索機構430 ,キャッシュ登録機構140 を実現する。
【0211】
【発明の効果】第1の効果は、キャッシュを有するルー
タにおいて、キャッシュのヒット確率を上げることがで
きることである。その理由は、エントリ毎に異なるマス
クを付けた一致検索ができるキャッシュあるいは、ロン
ゲストプレフィクスマッチ検索のできるキャッシュを用
いることで、1つのキャッシュエントリで多くの送信先
アドレスにヒットするキャッシュエントリを登録するこ
とができるためである。例えば、8bitのネットワークア
ドレスである場合に、フォワーディングテーブルが、 宛先(プレフィクスビット列/プレフィクス長):送信
インタフェース番号 10110000 / 4 : 1 00000000 / 0 : 3 であった場合に、最初に送信先アドレスが 10110001 と
いう宛先のパケットが到着し、その後10110000〜110111
11までの宛先のパケットが1つづつ16個到着して、合計
17個のパケットがルータに到着した場合を考える。最初
のパケットが到着したとき、本発明によれば、エントリ
毎に異なるマスクを付けた一致検索ができるキャッシ
ュ、ロンゲストプレフィクスマッチ検索のできるキャッ
シュいずれを用いても、 宛先(プレフィクスビット列/マスクビット列): 送
信インタフェース番号 10110000 / 11110000 : 1 というキャッシュエントリが登録される。これに対し
て、従来のキャッシュを有するルータにおいては、 宛先 : 送信インタフェース番号 10110001 : 1 というキャッシュエントリが登録される。
【0212】本発明によれば、2パケット目以降の、10
110000〜11011111までの宛先のパケット16個に対してす
べてキャッシュがヒットし、キャッシュヒット確率は17
パケットに対して16/17になる。これに対して従来技術
では、2パケット目以降の、10110000〜11011111までの
宛先のパケット16個に対しては、10110001の宛先を持つ
パケットのみにヒットするのでキャッシュヒット確率は
17パケットに対して1/17となり、本発明によって、16倍
のキャッシュヒット率を実現できる。
【0213】第2の効果は、キャッシュを有するルータ
において、キャッシュのヒット確率を下げることなく、
キャッシュの容量を減らすことで、回路基盤面積を減ら
したルータを実現できることである。その理由は、エン
トリ毎に異なるマスクを付けた一致検索ができるキャッ
シュあるいは、ロンゲストプレフィクスマッチ検索ので
きるキャッシュを用いることで、1つのキャッシュエン
トリで多くの送信先アドレスにヒットするキャッシュエ
ントリを登録することができるためである。例えば、第
一の効果の例と同じ例において、17個のパケットが通過
したときのキャッシュエントリ数は、本発明によれば、
宛先( プレフィクスビット列/マスクビット列) : 送
信インタフェース番号 10110000/ 11110000 : 1 の1エントリであるが、従来技術によれば、宛先が1011
0000〜10111111の16個のエントリを消費しており、本発
明は従来技術の1/16のキャッシュエントリ消費量になっ
ている。
【図面の簡単な説明】
【図1】本発明の第1の実施例の構成図である。
【図2】フォワーディングテーブル検索機構100 の詳細
な構成図である。
【図3】マスク付きキャッシュテーブル検索機構130 の
詳細な構成図である。
【図4】キャッシュ登録機構140 の詳細な構成図であ
る。
【図5】制御機構120 の詳細な構成図である。
【図6】登録プレフィクス長決定機構102 における登録
プレフィクス長決定処理を示すフローチャートである。
【図7】第1の実施例の動作を説明するフローチャート
である。
【図8】本発明の第2の実施例の構成図である。
【図9】フォワーディングテーブル検索機構200 の詳細
な構成図である。
【図10】LPM キャッシュテーブル検索機構230 の詳細
な構成図である。
【図11】LPM キャッシュ登録機構240 の詳細な構成図
である。
【図12】LPM キャッシュ登録機構240 で管理されるツ
リーノードを示す図である。
【図13】LPM キャッシュ登録機構240 で管理される未
使用エントリリストと使用中ツリーリストを示す図であ
る。
【図14】制御機構220 の詳細な構成図である。
【図15】第2の実施例の動作を説明するフローチャー
トである。
【図16】LPM キャッシュ登録機構240 で管理されるツ
リーノード,未使用エントリリスト,使用中ツリーリス
トが変化する様子を示す図である。
【図17】LPM キャッシュ登録機構240 で管理されるツ
リーノード,未使用エントリリスト,使用中ツリーリス
トが変化する様子を示す図である。
【図18】LPM キャッシュ登録機構240 で管理されるツ
リーノード,未使用エントリリスト,使用中ツリーリス
トが変化する様子を示す図である。
【図19】LPM キャッシュ登録機構240 で管理されるツ
リーノード,未使用エントリリスト,使用中ツリーリス
トが変化する様子を示す図である。
【図20】LPM キャッシュ登録機構240 で管理されるツ
リーノード,未使用エントリリスト,使用中ツリーリス
トが変化する様子を示す図である。
【図21】本発明の第3の実施例の構成図である。
【図22】フォワーディングテーブル検索機構300 の詳
細な構成図である。
【図23】本発明の第4の実施例の構成図である。
【図24】LPM キャッシュテーブル検索機構430 の詳細
な構成図である。
【図25】本発明の第5の実施例の構成図である。
【図26】従来技術の構成図である。
【図27】マスク機能付き連想メモリの内容例を示す図
である。
【図28】フォワーディングテーブルの内容例を示す図
である。
【図29】フォワーディングテーブルの内容例を示す図
である。
【図30】マスク付きキャッシュテーブルの内容例を示
す図である。
【図31】マスク付きキャッシュテーブルの内容例を示
す図である。
【図32】マスク付きキャッシュテーブルの内容例を示
す図である。
【図33】マスク付きキャッシュテーブルの内容例を示
す図である。
【図34】フォワーディングテーブルの内容例を示す図
である。
【図35】LPM 機能付きメモリの内容例を示す図であ
る。
【図36】フォワーディングテーブルの内容例を示す図
である。
【図37】フォワーディングテーブルの内容例を示す図
である。
【図38】LPM キャッシュテーブルの内容例を示す図で
ある。
【図39】LPM キャッシュテーブルの内容例を示す図で
ある。
【図40】LPM キャッシュテーブルの内容例を示す図で
ある。
【図41】LPM キャッシュテーブルの内容例を示す図で
ある。
【図42】フォワーディングテーブルの内容例を示す図
である。
【図43】フォワーディングテーブルの内容例を示す図
である。
【図44】第1〜第5の実施例のハードウェア構成の一
例を示すブロック図である。
【符号の説明】
100 …フォワーディングテーブル検索機構 101 …テーブル検索機構 102 …登録プレフィクス長決定機構 103 …フォワーディングテーブル用メモリ 120 …制御機構 121 …送信先アドレスレジスタ 122 …送信インタフェース番号レジスタ 123 …制御回路 130 …マスク付きキャッシュテーブル検索機構 131 …マスク機能付き連想メモリ 132 …RAM 140 …キャッシュ登録機構 141 …キャッシュ登録アドレス管理機構 142 …AND 回路 143 …ビットマスク生成回路 200 …フォワーディングテーブル検索機構 201 …テーブル検索機構 203 …フォワーディングテーブル用メモリ 220 …制御機構 221 …送信先アドレスレジスタ 222 …送信IF番号レジスタ 223 …制御回路 230 …LPM キャッシュテーブル検索機構 231 …LPM 検索機能付きメモリ 232 …RAM 240 …LPM キャッシュ登録機構 241 …キャッシュ登録アドレス管理機構 242 …ツリー初期化機構 243 …管理用メモリ 244 …未使用エントリ数レジスタ 245 …未使用エントリリストへの先頭ポインタ 246 …未使用エントリリストへの末尾ポインタ 247 …使用中ツリーノードリストへの先頭ポインタ 248 …使用中ツリーノードリストへの末尾ポインタ 249 …ポインタレジスタ 300 …フォワーディングテーブル検索機構 301 …テーブル検索機構 302 …登録プレフィクス長決定機構 303 …フォワーディングテーブル用メモリ 430 …LPM キャッシュテーブル検索機構 431 …LPM 検索機能付きメモリ 432 …RAM
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平6−261078(JP,A) 特開2000−41065(JP,A) 特開 平11−73782(JP,A) 特開 平11−289345(JP,A) 特開 平11−187045(JP,A) 特開2000−196670(JP,A) 特表 平9−500774(JP,A) 信学技報 SSE2000−20 信学技報 SSE99−180 信学技報 IN98−119 2000信学総合大会 B−6−39 1999信学総合大会 B−6−45 1999信学総合大会 B−6−46 NEC技報 Vol.52 No.3 p128−130 (58)調査した分野(Int.Cl.7,DB名) H04L 12/56 H04L 12/28

Claims (26)

    (57)【特許請求の範囲】
  1. 【請求項1】 受信パケットの送信先アドレスを基にパ
    ケットの方路を決定する、キャッシュを有するルータの
    方路決定装置において、 エントリ毎に異なるマスクを付けた一致検索ができるキ
    ャッシュを有し、 キャッシュを登録するキャッシュアドレスを決定する手
    段を有し、 フォワーディングテーブルとその検索手段を有し、 受信パケットの送信先アドレスをキャッシュに登録する
    際のキャッシュエントリのマスクを掛けない部分の長さ
    として最長キャッシュプレフィクス長を求める手段を有
    することを特徴とするキャッシュを有するルータの方路
    決定装置。
  2. 【請求項2】 受信パケットの送信先アドレスに基づい
    て前記受信パケットの方路を決定する、キャッシュを有
    するルータの方路決定装置において、 プレフィクスビット列とプレフィクス長とからなるネッ
    トワークアドレスの集合を示す情報と、該ネットワーク
    アドレスの集合に対するパケットの方路を示す情報との
    組が登録されたエントリを複数有するフォワーディング
    テーブルと、 該フォワーディングテーブルの各エントリに登録されて
    いるプレフィクスビット列,プレフィクス長に基づい
    て、前記フォワーディングテーブルの各エントリに対す
    る最長キャッシュプレフィクス長を求める登録プレフィ
    クス長決定手段と、 受信パケットの送信先アドレスの内の、該送信先アドレ
    スをキーにして前記フォワーディングテーブルを検索し
    たときにヒットするエントリの最長キャッシュプレフィ
    クス長によって示される比較対象部分が少なくとも登録
    されると共に、前記送信先アドレスをキーにして前記フ
    ォワーディングテーブルを検索したときにヒットするエ
    ントリ中の方路を示す情報が登録されるエントリを複数
    有するキャッシュテーブルと、 ルータがパケットを受信した時、該受信したパケットの
    送信先アドレスをキーにして前記キャッシュテーブルを
    検索し、登録されている比較対象部分のビットパターン
    が前記送信先アドレスの比較対象部分に対応する部分の
    ビットパターンと一致するエントリを探し出し、該探し
    出したエントリに登録されている方路を示す情報を出力
    するマスク付きキャッシュテーブル検索手段と、 該マスク付きキャッシュテーブル検索手段が該当するエ
    ントリを探し出せなかったとき、前記受信したパケット
    の送信先アドレスをキーにして前記フォワーディングテ
    ーブルを検索し、ヒットしたエントリに登録されている
    方路を示す情報を出力するテーブル検索手段と、 該テーブル検索手段から出力された方路を示す情報と、
    前記受信したパケットの送信先アドレスの内の少なくと
    も比較対象部分とを前記キャッシュテーブルの何れかの
    エントリに登録するキャッシュ登録手段とを備えたこと
    を特徴とするキャッシュを有するルータの方路決定装
    置。
  3. 【請求項3】 前記テーブル検索手段は、前記フォワー
    ディングテーブルに対してロンゲストプレフィクスマッ
    チ検索を行う構成を備えたことを特徴とする請求項2記
    載のキャッシュを有するルータの方路決定装置。
  4. 【請求項4】 受信パケットの送信先アドレスを基にパ
    ケットの方路を決定する、キャッシュを有するルータの
    方路決定装置において、 ロンゲストプレフィクスマッチ検索ができるキャッシュ
    を有し、 キャッシュを登録するキャッシュアドレスを決定する手
    段を有し、 フォワーディングテーブルとその検索手段を有し、 フォワーディングテーブルの検索にヒットしたエントリ
    を基にキャッシュに登録すべきフォワーディングテーブ
    ルのエントリを決定する手段を有し、 キャッシュエントリを削除する際に同時に削除すべきキ
    ャッシュエントリを決定する手段を有することを特徴と
    するキャッシュを有するルータの方路決定装置。
  5. 【請求項5】 受信パケットの送信先アドレスに基づい
    て前記受信パケットの方路を決定する、キャッシュを有
    するルータの方路決定装置において、 プレフィクスビット列とプレフィクス長とからなるネッ
    トワークアドレスの集合を示す情報と、該ネットワーク
    アドレスの集合に対するパケットの方路を示す情報との
    組が登録されたエントリを複数有するフォワーディング
    テーブルと、 該フォワーディングテーブルの各エントリに登録されて
    いる情報の内の、一部のエントリに登録されている情報
    の写しが、それぞれ異なるエントリに登録されるLPM キ
    ャッシュテーブルと、ルータがパケットを受信した時、
    該受信したパケットの送信先アドレスをキーにして前記
    LPM キャッシュテーブルをロンゲストプレフィクスマッ
    チ検索し、ヒットしたエントリに登録されているパケッ
    トの方路を示す情報を出力するLPM キャッシュテーブル
    検索手段と、該LPM キャッシュテーブル検索手段がヒッ
    トするエントリを探し出せなかったとき、前記受信した
    パケットの送信先アドレスをキーにして前記フォワーデ
    ィングテーブルを検索し、ヒットしたエントリに登録さ
    れている方路を示す情報を出力するテーブル検索手段
    と、該テーブル検索手段から方路を示す情報が出力され
    たとき、前記テーブル検索手段においてヒットしたエン
    トリに登録されている情報と、前記フォワーディングテ
    ーブルのエントリの内の、そのエントリに登録されてい
    るプレフィクスビット列とプレフィクス長とによって示
    されるネットワークアドレスの集合が前記テーブル検索
    手段においてヒットしたエントリ中のプレフィクスビッ
    ト列とプレフィクス長とによって示されるネットワーク
    アドレスの集合に包含されるエントリに登録されている
    情報とを、前記LPM キャッシュテーブルのそれぞれ異な
    る未使用のエントリに登録し、前記LPM キャッシュテー
    ブル中に未使用のエントリを生成することが必要になっ
    たとき、所定のアルゴリズムに基づいて使用中のエント
    リの内の1つを未使用にし、更に、前記使用中のエント
    リの内の、そのエントリに登録されているプレフィクス
    ビット列とプレフィクス長とによって示されるネットワ
    ークアドレスの集合が前記未使用にされたエントリに登
    録されているプレフィクスビット列,プレフィクス長に
    よって示されるネットワークアドレスを包含しているエ
    ントリを未使用にするLPM キャッシュ登録手段とを備え
    たことを特徴とするキャッシュを有するルータの方路決
    定装置。
  6. 【請求項6】 前記所定のアルゴリズムは、LRU である
    ことを特徴とする請求項5記載のキャッシュを有するル
    ータの方路決定装置。
  7. 【請求項7】 前記テーブル検索手段は、前記フォワー
    ディングテーブルに対してLPM 検索を行う構成を有する
    ことを特徴とする請求項6記載のキャッシュを有するル
    ータの方路決定装置。
  8. 【請求項8】 受信パケットの送信先アドレスをキャッ
    シュに登録する際のキャッシュエントリのマスクを掛け
    ない部分の長さとして最適キャッシュプレフィクス長を
    求める手段を有すことを特徴とする請求項1記載のキャ
    ッシュを有するルータの方路決定装置。
  9. 【請求項9】 前記登録プレフィクス長決定手段の代わ
    りに、前記フォワーディングテーブルの各エントリに登
    録されているプレフィクスビット列,プレフィクス長お
    よび受信パケットの送信先アドレスに基づいて、前記各
    エントリに対する最適キャッシュプレフィクス長を求め
    る登録プレフィクス長決定手段を備え、且つ、 前記キャッシュテーブルの代わりに、受信パケットの送
    信先アドレスの内の、該送信先アドレスをキーにして前
    記フォワーディングテーブルを検索したときに前記登録
    プレフィクス長決定手段によって得られる最適キャッシ
    ュプレフィクス長によって示される比較対象部分が少な
    くとも登録されると共に、前記送信先アドレスをキーに
    して前記フォワーディングテーブルを検索したときにヒ
    ットするエントリ中の方路を示す情報が登録されるエン
    トリを複数有するキャッシュテーブルを備えたことを特
    徴とする請求項2記載のキャッシュを有するルータの方
    路決定装置。
  10. 【請求項10】 前記テーブル検索手段は、前記フォワ
    ーディングテーブルに対してロンゲストプレフィクスマ
    ッチ検索を行う構成を備えたことを特徴とする請求項9
    記載のキャッシュを有するルータの方路決定装置。
  11. 【請求項11】 受信パケットの送信先アドレスを基に
    パケットの方路を決定する、キャッシュを有するルータ
    の方路決定装置において、 ロンゲストプレフィクスマッチ検索ができるキャッシュ
    を有し、 キャッシュを登録するキャッシュアドレスを決定する手
    段を有し、 フォワーディングテーブルとその検索手段を有し、 受信パケットの送信先アドレスをキャッシュに登録する
    際のプレフィクス長として、最長キャッシュプレフィク
    ス長を求める手段を有することを特徴とするキャッシュ
    を有するルータの方路決定装置。
  12. 【請求項12】 受信パケットの送信先アドレスに基づ
    いて前記受信パケットの方路を決定する、キャッシュを
    有するルータの方路決定装置において、 プレフィクスビット列とプレフィクス長とからなるネッ
    トワークアドレスの集合を示す情報と、該ネットワーク
    アドレスの集合に対するパケットの方路を示す情報との
    組が登録されたエントリを複数有するフォワーディング
    テーブルと、 該フォワーディングテーブルの各エントリに登録されて
    いるプレフィクスビット列,プレフィクス長に基づい
    て、前記フォワーディングテーブルの各エントリに対す
    る最長キャッシュプレフィクス長を求める登録プレフィ
    クス長決定手段と、 受信パケットの送信先アドレスの内の、該送信先アドレ
    スをキーにして前記フォワーディングテーブルを検索し
    たときにヒットするエントリの最長キャッシュプレフィ
    クス長によって示される比較対象部分が少なくとも登録
    されると共に、前記送信先アドレスをキーにして前記フ
    ォワーディングテーブルを検索したときにヒットするエ
    ントリ中の方路を示す情報が登録されるエントリを複数
    有するLPM キャッシュテーブルと、 ルータがパケットを受信した時、該受信したパケットの
    送信先アドレスをキーにして前記LPM キャッシュテーブ
    ルをロンゲストプレフィクスマッチ検索し、ヒットする
    エントリが存在する場合は、そのエントリに登録されて
    いる方路を示す情報を出力するLPM キャッシュテーブル
    検索手段と、該LPM キャッシュテーブル検索手段がヒッ
    トするエントリを探し出せなかったとき、前記受信した
    パケットの送信先アドレスをキーにして前記フォワーデ
    ィングテーブルを検索し、ヒットしたエントリに登録さ
    れている方路を示す情報を出力するテーブル検索手段
    と、 該テーブル検索手段から出力された方路を示す情報と、
    前記受信したパケットの送信先アドレスの内の少なくと
    も比較対象部分を前記LPM キャッシュテーブルの何れか
    のエントリに登録するキャッシュ登録手段とを備えたこ
    とを特徴とするキャッシュを有するルータの方路決定装
    置。
  13. 【請求項13】 受信パケットの送信先アドレスをキャ
    ッシュに登録する際のプレフィクス長として最適キャッ
    シュプレフィクス長を求める手段を有することを特徴と
    する請求項11記載のキャッシュを有するルータの方路
    決定装置。
  14. 【請求項14】 前記登録プレフィクス長決定手段の代
    わりに、前記フォワーディングテーブルの各エントリに
    登録されているプレフィクスビット列,プレフィクス長
    および受信先パケットの送信先アドレスに基づいて、前
    記フォワーディングテーブルの各エントリに対する最適
    キャッシュプレフィクス長を求める登録プレフィクス長
    決定手段を備え、且つ、 前記LPM キャッシュテーブルの代わりに、受信パケット
    の送信先アドレスの内の、該送信先アドレスをキーにし
    て前記フォワーディングテーブルを検索したときに前記
    登録プレフィクス長決定手段によって得られる最適キャ
    ッシュプレフィクス長によって示される比較対象部分が
    少なくとも登録されると共に、前記送信先アドレスをキ
    ーにして前記フォワーディングテーブルを検索したとき
    にヒットするエントリ中の方路を示す情報が登録される
    エントリを複数有するLPM キャッシュテーブルを備えた
    ことを特徴とする請求項12記載のキャッシュを有する
    ルータの方路決定装置。
  15. 【請求項15】 前記キャッシュを登録するキャッシュ
    アドレスを決定する手段において、キャッシの全アドレ
    ス領域を常駐領域と更新領域に分け、更新領域からキャ
    ッシュを登録するキャッシュアドレスを決定する手段を
    有することを特徴とする請求項1,4,8,11または
    13記載のキャッシュを有するルータの方路決定装置。
  16. 【請求項16】 前記キャッシュ登録手段は、前記キャ
    ッシュテーブルの全アドレス領域を常駐領域と更新領域
    とに分け、更新領域の中から情報を登録するアドレスを
    決定する構成を有することを特徴とする請求項2,3,
    9または10記載のキャッシュを有するルータの方路決
    定装置。
  17. 【請求項17】 前記LPM キャッシュ登録手段は、前記
    LPM キャッシュテーブルの全アドレス領域を常駐領域と
    更新領域とに分け、更新領域の中から情報を登録するア
    ドレスを決定する構成を有することを特徴とする請求項
    5,6または7記載のキャッシュを有するルータの方路
    決定装置。
  18. 【請求項18】 前記キャッシュ登録手段は、前記LPM
    キャッシュテーブルの全アドレス領域を常駐領域と更新
    領域とに分け、更新領域の中から情報を登録するアドレ
    スを決定する構成を有することを特徴とする請求項12
    または14記載のキャッシュを有するルータの方路決定
    装置。
  19. 【請求項19】 プレフィクスビット列とプレフィクス
    長とからなるネットワークアドレスの集合を示す情報お
    よび該ネットワークアドレスの集合に対するパケットの
    方路を示す情報との組が登録されたエントリを複数有す
    るフォワーディングテーブルと、受信パケットの送信先
    アドレスの内の、該送信先アドレスをキーにして前記フ
    ォワーディングテーブルを検索したときにヒットするエ
    ントリの最長キャッシュプレフィクス長によって示され
    る比較対象部分が少なくとも登録されると共に、前記送
    信先アドレスをキーにして前記フォワーディングテーブ
    ルを検索したときにヒットするエントリ中の方路を示す
    情報が登録されるエントリを複数有するキャッシュテー
    ブルとを備えたコンピュータを、 前記フォワーディングテーブルの各エントリに登録され
    ているプレフィクスビット列,プレフィクス長に基づい
    て、前記フォワーディングテーブルの各エントリに対す
    る最長キャッシュプレフィクス長を求める登録プレフィ
    クス長決定手段、 ルータがパケットを受信した時、該受信したパケットの
    送信先アドレスをキーにして前記キャッシュテーブルを
    検索し、登録されている比較対象部分のビットパターン
    が前記送信先アドレスの比較対象部分に対応する部分の
    ビットパターンと一致するエントリを探し出し、該探し
    出したエントリに登録されている方路を示す情報を出力
    するマスク付きキャッシュテーブル検索手段、 該マスク付きキャッシュテーブル検索手段が該当するエ
    ントリを探し出せなかったとき、前記受信したパケット
    の送信先アドレスをキーにして前記フォワーディングテ
    ーブルを検索し、ヒットしたエントリに登録されている
    方路を示す情報を出力するテーブル検索手段、 該テーブル検索手段から出力された方路を示す情報と、
    前記受信したパケットの送信先アドレスの内の少なくと
    も比較対象部分とを前記キャッシュテーブルの何れかの
    エントリに登録するキャッシュ登録手段として機能させ
    るためのプログラムを記録した機械読み取り可能な記録
    媒体。
  20. 【請求項20】 プレフィクスビット列とプレフィクス
    長とからなるネットワークアドレスの集合を示す情報お
    よび該ネットワークアドレスの集合に対するパケットの
    方路を示す情報との組が登録されたエントリを複数有す
    るフォワーディングテーブルと、該フォワーディングテ
    ーブルの各エントリに登録されている情報の内の、一部
    のエントリに登録されている情報の写しが、それぞれ異
    なるエントリに登録されるLPM キャッシュテーブルとを
    備えたコンピュータを、ルータがパケットを受信した
    時、該受信したパケットの送信先アドレスをキーにして
    前記LPM キャッシュテーブルをロンゲストプレフィクス
    マッチ検索し、ヒットしたエントリに登録されているパ
    ケットの方路を示す情報を出力するLPM キャッシュテー
    ブル検索手段、該LPM キャッシュテーブル検索手段がヒ
    ットするエントリを探し出せなかったとき、前記受信し
    たパケットの送信先アドレスをキーにして前記フォワー
    ディングテーブルを検索し、ヒットしたエントリに登録
    されている方路を示す情報を出力するテーブル検索手
    段、該テーブル検索手段から方路を示す情報が出力され
    たとき、前記テーブル検索手段においてヒットしたエン
    トリに登録されている情報と、前記フォワーディングテ
    ーブルのエントリの内の、そのエントリに登録されてい
    るプレフィクスビット列とプレフィクス長とによって示
    されるネットワークアドレスの集合が前記テーブル検索
    手段においてヒットしたエントリ中のプレフィクスビッ
    ト列とプレフィクス長とによって示されるネットワーク
    アドレスの集合に包含されるエントリに登録されている
    情報とを、前記LPM キャッシュテーブルのそれぞれ異な
    る未使用のエントリに登録し、前記LPM キャッシュテー
    ブル中に未使用のエントリを生成することが必要になっ
    たとき、所定のアルゴリズムに基づいて使用中のエント
    リの内の1つを未使用にし、更に、前記使用中のエント
    リの内の、そのエントリに登録されているプレフィクス
    ビット列とプレフィクス長とによって示されるネットワ
    ークアドレスの集合が前記未使用にされたエントリに登
    録されているプレフィクスビット列,プレフィクス長に
    よって示されるネットワークアドレスを包含しているエ
    ントリを未使用にするLPM キャッシュ登録手段として機
    能させるためのプログラムを記録した機械読み取り可能
    な記録媒体。
  21. 【請求項21】 プレフィクスビット列とプレフィクス
    長とからなるネットワークアドレスの集合を示す情報お
    よび該ネットワークアドレスの集合に対するパケットの
    方路を示す情報との組が登録されたエントリを複数有す
    るフォワーディングテーブルと、受信パケットの送信先
    アドレスの内の、該送信先アドレスをキーにして前記フ
    ォワーディングテーブルを検索したときに登録プレフィ
    クス長決定手段によって得られる最適キャッシュプレフ
    ィクス長によって示される比較対象部分が少なくとも登
    録されると共に、前記送信先アドレスをキーにして前記
    フォワーディングテーブルを検索したときにヒットする
    エントリ中の方路を示す情報が登録されるエントリを複
    数有するキャッシュテーブルとを備えたコンピュータ
    を、 前記フォワーディングテーブルの各エントリに登録され
    ているプレフィクスビット列,プレフィクス長および受
    信パケットの送信先アドレスに基づいて最適キャッシュ
    プレフィクス長を求める登録プレフィクス長決定手段、 ルータがパケットを受信した時、該受信したパケットの
    送信先アドレスをキーにして前記キャッシュテーブルを
    検索し、登録されている比較対象部分のビットパターン
    が前記送信先アドレスの比較対象部分に対応する部分の
    ビットパターンと一致するエントリを探し出し、該探し
    出したエントリに登録されている方路を示す情報を出力
    するマスク付きキャッシュテーブル検索手段、 該マスク付きキャッシュテーブル検索手段が該当するエ
    ントリを探し出せなかったとき、前記受信したパケット
    の送信先アドレスをキーにして前記フォワーディングテ
    ーブルを検索し、ヒットしたエントリに登録されている
    方路を示す情報を出力するテーブル検索手段、 該テーブル検索手段から出力された方路を示す情報と、
    前記受信したパケットの送信先アドレスの内の少なくと
    も比較対象部分を前記キャッシュテーブルの何れかのエ
    ントリに登録するキャッシュ登録手段として機能させる
    ためのプログラムを記録した機械読み取り可能な記録媒
    体。
  22. 【請求項22】 プレフィクスビット列とプレフィクス
    長とからなるネットワークアドレスの集合を示す情報お
    よび該ネットワークアドレスの集合に対するパケットの
    方路を示す情報との組が登録されたエントリを複数有す
    るフォワーディングテーブルと、受信パケットの送信先
    アドレスの内の、該送信先アドレスをキーにして前記フ
    ォワーディングテーブルを検索したときにヒットするエ
    ントリの最長キャッシュプレフィクス長によって示され
    る比較対象部分が少なくとも登録されると共に、前記送
    信先アドレスをキーにして前記フォワーディングテーブ
    ルを検索したときにヒットするエントリ中の方路を示す
    情報が登録されるエントリを複数有するLPM キャッシュ
    テーブルとを備えたコンピュータを、 前記フォワーディングテーブルの各エントリに登録され
    ているプレフィクスビット列,プレフィクス長に基づい
    て、前記フォワーディングテーブルの各エントリに対す
    る最長キャッシュプレフィクス長を求める登録プレフィ
    クス長決定手段、 ルータがパケットを受信した時、該受信したパケットの
    送信先アドレスをキーにして前記LPM キャッシュテーブ
    ルをロンゲストプレフィクスマッチ検索し、ヒットする
    エントリが存在する場合は、そのエントリに登録されて
    いる方路を示す情報を出力するLPM キャッシュテーブル
    検索手段、該LPM キャッシュテーブル検索手段がヒット
    するエントリを探し出せなかったとき、前記受信したパ
    ケットの送信先アドレスをキーにして前記フォワーディ
    ングテーブルを検索し、ヒットしたエントリに登録され
    ている方路を示す情報を出力するテーブル検索手段、 該テーブル検索手段から出力された方路を示す情報と、
    前記受信したパケットの送信先アドレスの内の少なくと
    も比較対象部分を前記LPM キャッシュテーブルの何れか
    のエントリに登録するキャッシュ登録手段として機能さ
    せるためのプログラムを記録した機械読み取り可能な記
    録媒体。
  23. 【請求項23】 プレフィクスビット列とプレフィクス
    長とからなるネットワークアドレスの集合を示す情報お
    よび該ネットワークアドレスの集合に対するパケットの
    方路を示す情報との組が登録されたエントリを複数有す
    るフォワーディングテーブルと、受信パケットの送信先
    アドレスの内の、該送信先アドレスをキーにして前記フ
    ォワーディングテーブルを検索したときに登録プレフィ
    クス長決定手段によって得られる最適キャッシュプレフ
    ィクス長によって示される比較対象部分が少なくとも登
    録されると共に、前記送信先アドレスをキーにして前記
    フォワーディングテーブルを検索したときにヒットする
    エントリ中の方路を示す情報が登録されるエントリを複
    数有するLPM キャッシュテーブルとを備えたコンピュー
    タを、 前記フォワーディングテーブルの各エントリに登録され
    ているプレフィクスビット列,プレフィクス長および受
    信パケットの送信先アドレスに基づいて、前記フォワー
    ディングテーブルの各エントリに対する最適キャッシュ
    プレフィクス長を求める登録プレフィクス長決定手段、 ルータがパケットを受信した時、該受信したパケットの
    送信先アドレスをキーにして前記LPM キャッシュテーブ
    ルをロンゲストプレフィクスマッチ検索し、ヒットする
    エントリが存在する場合は、そのエントリに登録されて
    いる方路を示す情報を出力するLPM キャッシュテーブル
    検索手段、該LPM キャッシュテーブル検索手段がヒット
    するエントリを探し出せなかったとき、前記受信したパ
    ケットの送信先アドレスをキーにして前記フォワーディ
    ングテーブルを検索し、ヒットしたエントリに登録され
    ている方路を示す情報を出力するテーブル検索手段、 該テーブル検索手段から出力された方路を示す情報と、
    前記受信したパケットの送信先アドレスの内の少なくと
    も比較対象部分を前記キャッシュテーブルの何れかのエ
    ントリに登録するキャッシュ登録手段として機能させる
    ためのプログラムを記録した機械読み取り可能な記録媒
    体。
  24. 【請求項24】 前記キャッシュ登録手段は、前記キャ
    ッシュテーブルの全アドレス領域を常駐領域と更新領域
    とに分け、更新領域の中から情報を登録するアドレスを
    決定する構成を有することを特徴とする請求項19また
    は21記載のプログラムを記録した機械読み取り可能な
    記録媒体。
  25. 【請求項25】 前記LPM キャッシュ登録手段は、前記
    LPM キャッシュテーブルの全アドレス領域を常駐領域と
    更新領域とに分け、更新領域の中から情報を登録するア
    ドレスを決定する構成を有することを特徴とする請求項
    20記載のプログラムを記録した機械読み取り可能な記
    録媒体。
  26. 【請求項26】 前記キャッシュ登録手段は、前記LPM
    キャッシュテーブルの全アドレス領域を常駐領域と更新
    領域とに分け、更新領域の中から情報を登録するアドレ
    スを決定する構成を有することを特徴とする請求項22
    または23記載のプログラムを記録した機械読み取り可
    能な記録媒体。
JP3328799A 1999-02-10 1999-02-10 キャッシュを有するルータの方路決定装置及びプログラムを記録した機械読み取り可能な記録媒体 Expired - Fee Related JP3199051B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP3328799A JP3199051B2 (ja) 1999-02-10 1999-02-10 キャッシュを有するルータの方路決定装置及びプログラムを記録した機械読み取り可能な記録媒体
CA002298191A CA2298191C (en) 1999-02-10 2000-02-09 Router with a cache having a high hit probability
US09/501,279 US6768739B1 (en) 1999-02-10 2000-02-09 Router with a cache having a high hit probability
EP00102179A EP1035687A3 (en) 1999-02-10 2000-02-09 Router and a packet forwarding direction determinating method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3328799A JP3199051B2 (ja) 1999-02-10 1999-02-10 キャッシュを有するルータの方路決定装置及びプログラムを記録した機械読み取り可能な記録媒体

Publications (2)

Publication Number Publication Date
JP2000232479A JP2000232479A (ja) 2000-08-22
JP3199051B2 true JP3199051B2 (ja) 2001-08-13

Family

ID=12382331

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3328799A Expired - Fee Related JP3199051B2 (ja) 1999-02-10 1999-02-10 キャッシュを有するルータの方路決定装置及びプログラムを記録した機械読み取り可能な記録媒体

Country Status (4)

Country Link
US (1) US6768739B1 (ja)
EP (1) EP1035687A3 (ja)
JP (1) JP3199051B2 (ja)
CA (1) CA2298191C (ja)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3591420B2 (ja) * 2000-04-07 2004-11-17 日本電気株式会社 ルータにおけるキャッシュテーブル管理装置およびプログラム記録媒体
US7047317B1 (en) * 2000-06-14 2006-05-16 Altera Corporation High performance network address processor system
US7185196B1 (en) * 2000-09-15 2007-02-27 Atheros Communications, Inc. Key caching system
KR20020055287A (ko) * 2000-12-28 2002-07-08 구자홍 라우터 장치의 패킷 라우팅 방법
DE60202136T2 (de) * 2001-03-19 2005-12-01 International Business Machines Corp. Cache-eintrag-auswahlverfahren und -vorrichtung
US7027446B2 (en) * 2001-07-18 2006-04-11 P-Cube Ltd. Method and apparatus for set intersection rule matching
IL145040A0 (en) * 2001-08-21 2002-06-30 Infocyclone Inc Tree search unit
US7032072B1 (en) * 2001-12-31 2006-04-18 Packeteer, Inc. Method and apparatus for fast lookup of related classification entities in a tree-ordered classification hierarchy
US7277399B1 (en) * 2002-04-08 2007-10-02 Cisco Technology, Inc. Hardware-based route cache using prefix length
US7257643B2 (en) * 2002-05-16 2007-08-14 Intel Corporation Method and apparatus to improve network routing
US7362744B2 (en) * 2002-08-15 2008-04-22 International Business Machines Corporation Database management system and method of using it to transmit packets
US7493412B2 (en) * 2002-09-12 2009-02-17 International Business Machines Corporation Method for processing a data packet
US7382731B1 (en) * 2003-03-05 2008-06-03 Cisco Technology, Inc. Method and apparatus for updating probabilistic network routing information
US7418519B1 (en) * 2003-05-29 2008-08-26 Nortel Networks Limited Technique for prefix limit exchange for route advertisement
US8018953B1 (en) 2003-08-20 2011-09-13 Cisco Technology, Inc. Adaptive, deterministic ant routing approach for updating network routing information
JP2005117206A (ja) * 2003-10-06 2005-04-28 Hitachi Ltd ネットワークプロセッサアクセラレータ
US20050135135A1 (en) * 2003-10-24 2005-06-23 Stmicroelectronics Pvt. Ltd. Content addressable memory for CIDR address searches
JP4493321B2 (ja) * 2003-11-19 2010-06-30 株式会社日立製作所 ディスクアレイ装置及びデータ退避方法
US7536467B2 (en) * 2004-04-20 2009-05-19 Microsoft Corporation Peer-to-peer (P2P) mobility system, and method
US7725450B1 (en) 2004-07-23 2010-05-25 Netlogic Microsystems, Inc. Integrated search engine devices having pipelined search and tree maintenance sub-engines therein that maintain search coherence during multi-cycle update operations
US7603346B1 (en) 2004-07-23 2009-10-13 Netlogic Microsystems, Inc. Integrated search engine devices having pipelined search and b-tree maintenance sub-engines therein
US7653619B1 (en) 2004-07-23 2010-01-26 Netlogic Microsystems, Inc. Integrated search engine devices having pipelined search and tree maintenance sub-engines therein that support variable tree height
US7747599B1 (en) 2004-07-23 2010-06-29 Netlogic Microsystems, Inc. Integrated search engine devices that utilize hierarchical memories containing b-trees and span prefix masks to support longest prefix match search operations
US8886677B1 (en) 2004-07-23 2014-11-11 Netlogic Microsystems, Inc. Integrated search engine devices that support LPM search operations using span prefix masks that encode key prefix length
US7580356B1 (en) 2005-06-24 2009-08-25 Packeteer, Inc. Method and system for dynamically capturing flow traffic data
US7639613B1 (en) 2005-06-24 2009-12-29 Packeteer, Inc. Adaptive, flow-based network traffic measurement and monitoring system
US20070171833A1 (en) * 2005-11-21 2007-07-26 Sukhbinder Singh Socket for use in a networked based computing system having primary and secondary routing layers
JP4646823B2 (ja) * 2006-02-17 2011-03-09 エスアイアイ・ネットワーク・システムズ株式会社 ルータ装置、ルータ装置におけるルート決定方法
US7697518B1 (en) 2006-09-15 2010-04-13 Netlogic Microsystems, Inc. Integrated search engine devices and methods of updating same using node splitting and merging operations
US7929524B2 (en) * 2006-09-29 2011-04-19 Cisco Technology, Inc. Apparatus and method to hide transit only multi-access networks in OSPF
US7987205B1 (en) 2006-11-27 2011-07-26 Netlogic Microsystems, Inc. Integrated search engine devices having pipelined node maintenance sub-engines therein that support database flush operations
US8086641B1 (en) 2006-11-27 2011-12-27 Netlogic Microsystems, Inc. Integrated search engine devices that utilize SPM-linked bit maps to reduce handle memory duplication and methods of operating same
US7953721B1 (en) 2006-11-27 2011-05-31 Netlogic Microsystems, Inc. Integrated search engine devices that support database key dumping and methods of operating same
US7831626B1 (en) 2006-11-27 2010-11-09 Netlogic Microsystems, Inc. Integrated search engine devices having a plurality of multi-way trees of search keys therein that share a common root node
US8289851B2 (en) * 2007-04-30 2012-10-16 Alcatel Lucent Lightweight bandwidth-management scheme for elastic traffic
US7822927B1 (en) * 2007-05-14 2010-10-26 Emc Corporation Dynamically configurable reverse DNLC lookup
US7886176B1 (en) 2007-09-24 2011-02-08 Integrated Device Technology, Inc. DDR memory system for measuring a clock signal by identifying a delay value corresponding to a changed logic state during clock signal transitions
US7716204B1 (en) 2007-12-21 2010-05-11 Netlogic Microsystems, Inc. Handle allocation managers and methods for integated circuit search engine devices
US7801877B1 (en) 2008-04-14 2010-09-21 Netlogic Microsystems, Inc. Handle memory access managers and methods for integrated circuit search engine devices
US8908696B2 (en) 2008-09-09 2014-12-09 At&T Intellectual Property I, L.P. Systems and methods for optimized route caching
US8630294B1 (en) * 2011-05-11 2014-01-14 Juniper Networks, Inc. Dynamic bypass mechanism to alleviate bloom filter bank contention
US8886827B2 (en) 2012-02-13 2014-11-11 Juniper Networks, Inc. Flow cache mechanism for performing packet flow lookups in a network device
US8799507B2 (en) 2012-03-13 2014-08-05 Juniper Networks, Inc. Longest prefix match searches with variable numbers of prefixes
JP5966561B2 (ja) * 2012-04-20 2016-08-10 富士通株式会社 通信装置および通信方法
US8937955B2 (en) * 2012-12-05 2015-01-20 Cisco Technology, Inc. System and method for scaling IPv6 addresses in a network environment
JP6139908B2 (ja) * 2013-02-26 2017-05-31 京セラ株式会社 電力管理装置、通信制御装置、電力管理システム及び電力管理方法
CN110753133B (zh) * 2018-07-23 2022-03-29 华为技术有限公司 处理地址的方法和网络设备

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3371006B2 (ja) 1993-03-03 2003-01-27 株式会社日立製作所 テーブル検索方法及びルータ装置
FR2707775B1 (fr) 1993-07-12 1996-04-12 Duret Chrsitian Procédé et dispositif d'analyse d'informations contenues dans des structures de données.
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
US6223172B1 (en) * 1997-10-31 2001-04-24 Nortel Networks Limited Address routing using address-sensitive mask decimation scheme
US6052683A (en) * 1998-02-24 2000-04-18 Nortel Networks Corporation Address lookup in packet data communication networks
US6141738A (en) * 1998-07-08 2000-10-31 Nortel Networks Corporation Address translation method and system having a forwarding table data structure
US6212184B1 (en) * 1998-07-15 2001-04-03 Washington University Fast scaleable methods and devices for layer four switching

Non-Patent Citations (7)

* Cited by examiner, † Cited by third party
Title
1999信学総合大会 B−6−45
1999信学総合大会 B−6−46
2000信学総合大会 B−6−39
NEC技報 Vol.52 No.3 p128−130
信学技報 IN98−119
信学技報 SSE2000−20
信学技報 SSE99−180

Also Published As

Publication number Publication date
EP1035687A3 (en) 2003-01-29
US6768739B1 (en) 2004-07-27
EP1035687A2 (en) 2000-09-13
CA2298191C (en) 2005-07-26
JP2000232479A (ja) 2000-08-22
CA2298191A1 (en) 2000-08-10

Similar Documents

Publication Publication Date Title
JP3199051B2 (ja) キャッシュを有するルータの方路決定装置及びプログラムを記録した機械読み取り可能な記録媒体
US6665297B1 (en) Network routing table
US6993031B2 (en) Cache table management device for router and program recording medium thereof
US20080192754A1 (en) Routing system and method for managing rule entries of ternary content addressable memory in the same
US5909440A (en) High speed variable length best match look-up in a switching device
US7630373B2 (en) Packet transfer apparatus
US6842791B2 (en) Method and apparatus for memory efficient fast VLAN lookups and inserts in hardware-based packet switches
CA2274962C (en) High speed variable length best match look-up in a switching device
CA2434876C (en) Method and apparatus for ternary content addressable memory (tcam) table management
US7281085B1 (en) Method and device for virtualization of multiple data sets on same associative memory
US20070171911A1 (en) Routing system and method for managing rule entry thereof
US7630367B2 (en) Approach for fast IP address lookups
US20050243827A1 (en) Lookup engine
US20070115968A1 (en) Default route coding
WO2001005116A2 (en) Routing method and apparatus
US6925503B2 (en) Method and system for performing a longest prefix match search
US20190294549A1 (en) Hash Table-Based Mask Length Computation for Longest Prefix Match Caching
US7330469B2 (en) Internet protocol address lookup system and method using three-layer table architecture
JP2001237881A (ja) テーブル型データ検索機構及びそれを用いるパケット処理システム並びにそのテーブル型データ検索方法
CN115086221B (zh) 一种报文处理方法、装置、转发设备和存储介质
CN111865804B (zh) 一种通过硬件发包机制提升路由下发效率的方法及系统
JP2007221514A (ja) ルータ装置、ルータ装置におけるルート決定方法
CN107204926B (zh) 预处理cache的路由快速查找方法
JP3660311B2 (ja) テーブル検索装置および方法およびプログラムおよび記録媒体
CN114640641B (zh) 一种流量感知的OpenFlow流表弹性节能查找方法

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080615

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20090615

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20100615

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20100615

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20110615

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20110615

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20120615

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20120615

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20130615

Year of fee payment: 12

LAPS Cancellation because of no payment of annual fees