(57)【要約】【課題】高帯域のネットワークとの接続においても、入力したパケットへのフィルタリング処理時間を低減し、転送条件の動的な変更が可能な通信処理装置及び方法を提供する。【解決手段】本発明の通信処理装置は、受信したフレームから、所定の位置に記述されている情報又は情報及びフレームを入力したインタフェースの情報を含む解析結果情報を取得し、フレームの加工又は転送を行い、解析結果情報の条件を示す転送条件情報と、フレームの加工又は転送処理を指定する判定情報を、テーブルのエントリとして記憶する記億部と、各エントリの転送条件情報に基づき解析結果情報の適合の有無を判定し、適合とされたエントリの判定情報を出力する検索部とを有し、検索部が解析結果情報と転送条件情報を入力し、同時に入力される同一転送条件情報と、各々個別に異なる解析結果情報との適合の有無を判定する複数の適合判定部を有する。【選択図】図１
2007166513.tif 000002
【特許請求の範囲】
【請求項１】
フレームを受信し、前記フレームから前記フレーム内の所定の位置に記述されている情報または前記情報及び前記フレームを入力したインタフェースの情報を含む解析結果情報を取得し、前記解析結果情報に応じて、前記フレームの加工または前記フレームの転送を行う、通信処理装置であり、
解析結果情報に対する条件を示す転送条件情報と、フレームの加工または前記フレームの転送の処理方法を指定する判定情報を、テーブルのエントリとして記憶する記億部と、
前記テーブルの各エントリの転送条件情報に基づいて、解析結果情報に対して適合の有無を判定し、適合と判定したエントリの判定情報を出力する、検索部と、
を有し、検索部が、解析結果情報と転送条件情報を入力し、前記転送条件情報に基づいて前記解析結果情報に対して適合の有無を判定する適合判定部を複数個有し、各適合判定部が、適合判定部毎に異なる解析結果情報を入力し、全適合判定部に同時に入力された同一の転送条件情報に基づいて、適合の有無を判定する、ことを特徴とする通信処理装置。
【請求項２】
判定情報に、フレームの通過あるいは破棄を指定するフィルタ判定情報、フレームを品質クラス別に分類する分類判定情報、フレームがIPパケットを含むときの前記IPパケットに対するNAT/NAPT判定情報、前記IPパケットに対する経路判定情報、のうち少なくとも１種類の判定情報を含む、ことを特徴とする請求項１記載の通信処理装置。
【請求項３】
第１の記億部が記憶するテーブルの各エントリの転送条件情報に基づいて、解析結果情報に対して適合の有無を判定し、適合と判定したエントリの判定情報を出力する、第１の検索部と、前記判定情報の一部もしくは全てと前記解析結果情報の一部もしくは全てとを含む解析結果情報に対して、第２の記億部が記憶するテーブルの各エントリの転送条件情報に基づいて、適合の有無を判定し、適合と判定したエントリの判定情報を出力する、第２の検索部と、を有する、ことを特徴とする請求項１または請求項２記載の通信処理装置。
【請求項４】
前記第１の検索部が、前記第１の記憶部のテーブルに記載されている順番に、転送条件情報を読み出し、適合判定部に出力し、前記第２の検索部が、前記第２の記憶部のテーブルに記載されている順番に、転送条件情報を読み出し、適合判定部に出力することを特徴とする請求項３に記載の通信処理装置。
【請求項５】
前記第１及び第２の検索部が、時系列的に入力されるフレームを、順次、前記適合判定部のいずれかに出力する適合判定部選択部を有していることを特徴とする請求項３または請求項４のいずれかに記載の通信処理装置。
【請求項６】
適合判定部が、解析結果情報の入力を契機に、テーブルの各エントリについて、前記エントリの転送条件情報に基づいて前記解析結果情報に対する適合有無の判定を開始し、
テーブルの全エントリについて前記判定を完了した後、前記判定により適合と判定されたエントリの判定結果及び/または前記エントリを識別するためのエントリ番号を出力する、ことを特徴とする請求項１から請求項５のいずれかに記載の通信処理装置。
【請求項７】
前記検索部が、解析結果情報を入力したとき、前記解析結果情報を入力する適合判定部を選択する適合判定部選択部を有し、該適合判定部選択部が、前記解析結果情報の入力を契機に、前記適合判定部に対応付けられた適合判定部番号を順に繰り返し生成し、該適合判定部番号に基づき適合判定部を選択する、ことを特徴とする請求項６に記載の通信処理装置。
【請求項８】
エントリ毎に優先度が設定され、前記適合判定部が、解析結果情報の入力を契機に、テーブルの各エントリについて、前記エントリの転送条件情報に基づいて前記解析結果情報に対する適合の有無を判定し、適合と判定されたエントリが複数個検出された場合に、前記エントリのうち最も優先度が高いエントリの、判定情報及び/またはエントリ番号を出力する、ことを特徴とする請求項６または請求項７に記載の通信処理装置。
【請求項９】
第１の記憶部が記憶するテーブルの各エントリの転送条件情報に基づいて、解析結果情報に対しての適合の有無を判定し、適合と判定したエントリの判定情報及び／またはエントリ番号を出力する、第１の適合判定部と、
前記判定情報の１部または全てと、前記解析情報の１部または全てとを含む解析結果情報に対して、第２の記憶部が記憶するテーブルの各エントリの転送条件情報に基づいて、適合の有無を判定し、適合と判定したエントリの判定情報及び／またはエントリ番号を出力する第２の適合判定部と
を有することを特徴とする請求項５から請求項８のいずれかに記載の通信処理装置。
【請求項１０】
エントリ毎に優先度が設定され、適合判定部が、解析結果情報の入力を契機に、テーブルの各エントリについて、前記エントリの転送条件情報に基づいて前記解析結果情報に対する適合有無の判定を開始し、前記開始からテーブルの全エントリについて判定を完了するまでに、初めて適合と判定したエントリｘの優先度及び判定情報及び/またはエントリ番号を中間結果として記憶し、その後テーブルの全エントリについて判定を完了するまでに、適合と判定したエントリｙを検出したとき、前記中間結果の優先度よりもエントリｙの優先度が高い場合に、エントリｙの優先度及び判定情報及び/またはエントリ番号を中間結果として記憶しなおし、テーブルの全エントリについて前記判定を完了した後、中間結果の判定情報及び/またはエントリ番号を出力する、ことを特徴とする請求項８に記載の通信処理装置。
【請求項１１】
フレームを受信し、前記フレームから前記フレーム内の所定の位置に記述されている情報または前記情報及び前記フレームを入力したインタフェースの情報を含む解析結果情報を取得し、前記解析結果情報に応じて、前記フレームの加工または前記フレームの転送処理を行う、通信処理方法であり、
解析結果情報に対する条件を示す転送条件情報と、フレームの加工または前記フレームの転送の処理方法を指定する判定情報を、テーブルのエントリとして記憶部に記億させる記憶過程と、
検索部が前記テーブルの各エントリの転送条件情報に基づいて、解析結果情報に対して適合の有無を判定し、適合と判定したエントリの判定情報を出力する検索過程と、
を有し、
前記検索過程において、前記検索部が解析結果情報と転送条件情報を入力し、検索部に複数設けられた適合判定部が、前記転送条件情報に基づいて前記解析結果情報に対して適合の有無を判定し、各適合判定部が、適合判定部毎に異なる解析結果情報を入力し、全適合判定部に同時に入力された同一の転送条件情報に基づいて、適合の有無を判定することを特徴とする通信処理方法。
【請求項１２】
前記検索過程において、適合判定部が、解析結果情報の入力を契機に、テーブルの各エントリについて、前記エントリの転送条件情報に基づいて前記解析結果情報に対する適合有無の判定を開始し、
テーブルの全エントリについて前記判定を完了した後、前記判定により適合と判定されたエントリの判定結果及び/または前記エントリを識別するためのエントリ番号を出力する、ことを特徴とする請求項１１に記載の通信処理方法。
【請求項１３】
前記検索過程において、適合判定部が、解析結果情報の入力を契機に、エントリ毎に優先度が設定された、テーブルの各エントリについて、該エントリの転送条件情報に基づいて前記解析結果情報に対する適合有無の判定を開始し、前記開始からテーブルの全エントリについて判定を完了するまでに、初めて適合と判定したエントリｘの優先度及び判定情報及び/またはエントリ番号を中間結果として記憶し、その後テーブルの全エントリについて判定を完了するまでに、適合と判定したエントリｙを検出したとき、前記中間結果の優先度よりもエントリｙの優先度が高い場合に、エントリｙの優先度及び判定情報及び/またはエントリ番号を中間結果として記憶しなおし、テーブルの全エントリについて前記判定を完了した後、中間結果の判定情報及び/またはエントリ番号を出力する、ことを特徴とする請求項１２に記載の通信処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケットフィルタリング機能を有し、パケットの転送処理を行うルータなどの通信処理装置及び通信処理方法に関する。
【背景技術】
【０００２】
近年、インターネットに代表されるネットワークの利用拡大に伴い、企業及び家庭内にＬＡＮ（ローカルエリアネットワーク、以下、内部ネットワーク）を構築し、外部のネットワークにインターネット等を介して接続する形態をとることが多くなってきている。
しかし、内部の端末を、外部ネットワークを接続する際、内部ネットワークのセキュリティの確保が重要な問題となっている。
すなわち、外部ネットワークに自由に接続することが可能であるため、外部から内部ネットワークに対する不正なアクセスにより、個人情報等の機密情報が漏洩し、また、改竄されることが考えられる。
【０００３】
上述した不正なアクセスを防止する方法の１つとして、パケットのフィルタリング処理が用いられている。
上記パケットフィルタリング処理は、ファイアウォールなどに用いられ、保護したいネットワークを不正アクセスから守る有効な方法と考えられている。
すなわち、パケットフィルタリング処理は、パケットを中継するルータなどの通信装置に機能として設けられ、入力されるパケットを全てチェックし、設定されているフィルタリングのルールに基づいて、パケットの通過を許可するか否かを判定するものである。
【０００４】
各ルールには、パケットに関するいくつかの要素を定義し、これらの要素に応じて、パケットがフィルタリング処理される。
ここで、フィルタリング処理の判定に用いられるパケットの要素としては、例えば、パケットの送信元アドレス、送信先アドレス、プロトコル、送信元ポート番号、送信先ポート番号、パケットのペイロードなどがある。
【０００５】
すなわち、ある送信元から送られるパケットの通過を拒否したり、別の送信元から、ある宛先へ送られるパケットの通過を許可の判定を行うことができる。
上記ルールは、パケットのフィルタリング処理部のテーブルに順番に記憶され、パケットが通信装置に到着した際、テーブルに記憶された順に評価のために読み出される。
パケットが通信装置に入力されたとき、このパケットに該当する要素を含む最初のルールが適用され、パケットはそのルールに示されるように処理される。
【０００６】
このパケットフィルタリング処理は、パケット毎にフィルタ規則を適用する為、通信システムとしては比較的負荷の重い処理となる。
このため、よく使用されるルール、すなわちパケットに対応するルールがテーブルにおける順番が後ろにあると、パケットの比較回数が増加し、１つのパケットに対する平均的なパケットフィルタリングの処理時間が長くなる。
このため、テーブル内におけるルールの最適配置を行い、パケットの比較回数を減少させ、遅延時間の短縮を図ることが行われている（例えば、非特許文献１参照）。
【非特許文献１】「パケットフィルタにおけるルールの最適配置」、http://lc.linux.or.jp/lc2004/slide/CP-01s.pdf（2005年7月24日にアクセスを確認）
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ところが、最近は外部ネットワークとの接続の高広帯域化、ネットワークセキュリティ に対する脅威の増加、それに伴うフィルタ規則の高度化、新たな用途に伴うフィルタ規則の動的な変更等の処理を行うため、パケットフィルタに非常に高い性能が要求されている。
同様に、ＮＡＴ／ＮＡＰＴ検索や経路検索においても、検索の高度化、新たな用途に伴う各検索の規則（ルール）の動的な変更などの処理を行うため、検索処理を行う手段に対しても、非常に高い性能が要求されている。
パケットフィルタリング処理の処理能力によっては、各パケット毎に時系列に処理するため、１つのパケットが終了するまで、次に入力されたパケットの処理が行えず、このため、バッファをオーバーフローすることで、パケット（もしくはフレーム）のラインレートでのスループットを保証することができず、破棄されるパケットが増加し、通信能力自体を低下させる原因となってしまう。
【０００８】
本発明は、このような事情に鑑みてなされたもので、入力されるパケットに対するフィルタリング処理，ＮＡＴ／ＮＡＰＴ検索処理や経路検索処理を並列に処理することにより、外部ネットワークとの接続の高帯域化を可能とする通信処理装置及び方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の通信処理装置は、フレームを受信し、前記フレームから前記フレーム内の所定の位置に記述されている情報または前記情報及び前記フレームを入力したインタフェースの情報を含む解析結果情報を取得し、前記解析結果情報に応じて、前記フレームの加工または前記フレームの転送を行う装置であり、解析結果情報に対する条件を示す転送条件情報と、フレームの加工または前記フレームの転送の処理方法を指定する判定情報を、テーブルのエントリとして記憶する記億部と、前記テーブルの各エントリの転送条件情報に基づいて、解析結果情報に対して適合の有無を判定し、適合と判定したエントリの判定情報を出力する、検索部と、を有し、検索部が、解析結果情報と転送条件情報を入力し、前記転送条件情報に基づいて前記解析結果情報に対して適合の有無を判定する適合判定部を複数個有し、各適合判定部が、適合判定部毎に異なる解析結果情報を入力し、全適合判定部に同時に入力された同一の転送条件情報に基づいて、適合の有無を判定する、ことを特徴とする。
【００１０】
本発明の通信処理装置は、判定情報に、フレームの通過あるいは破棄を指定するフィルタ判定情報、フレームを品質クラス別に分類する分類判定情報、フレームがIPパケットを含むときの前記IPパケットに対するNAT/NAPT判定情報、前記IPパケットに対する経路判定情報、のうち少なくとも１種類の判定情報を含むことを特徴とする。
【００１１】
本発明の通信処理装置は、第１の記億部が記憶するテーブルの各エントリの転送条件情報に基づいて、解析結果情報に対して適合の有無を判定し、適合と判定したエントリの判定情報を出力する、第１の検索部と、前記判定情報の一部もしくは全てと前記解析結果情報の一部もしくは全てとを含む解析結果情報に対して、第２の記億部が記憶するテーブルの各エントリの転送条件情報に基づいて、適合の有無を判定し、適合と判定したエントリの判定情報を出力する、第２の検索部と、を有することを特徴とする。
【００１２】
本発明の通信処理装置は、前記第１の検索部が、前記第１の記憶部のテーブルに記載されている順番に、転送条件情報を読み出し、適合判定部に出力し、前記第２の検索部が、前記第２の記憶部のテーブルに記載されている順番に、転送条件情報を読み出し、適合判定部に出力することを特徴とする。
【００１３】
本発明の通信処理装置は、前記第１及び第２の検索部が、時系列的に入力されるフレームを、順次、前記適合判定部のいずれかに出力する適合判定部選択部を有していることを特徴とする。
【００１４】
本発明の通信処理装置は、適合判定部が、解析結果情報の入力を契機に、テーブルの各エントリについて、前記エントリの転送条件情報に基づいて前記解析結果情報に対する適合有無の判定を開始し、テーブルの全エントリについて前記判定を完了した後、前記判定により適合と判定されたエントリの判定結果及び/または前記エントリを識別するためのエントリ番号を出力する、ことを特徴とする。
【００１５】
本発明の通信処理装置は、前記検索部が、解析結果情報を入力したとき、前記解析結果情報を入力する適合判定部を選択する適合判定部選択部を有し、該適合判定部選択部が、前記解析結果情報の入力を契機に、前記適合判定部に対応付けられた適合判定部番号を順に繰り返し生成し、該適合判定部番号に基づき適合判定部を選択する、ことを特徴とする。
【００１６】
本発明の通信処理装置は、エントリ毎に優先度が設定され、前記適合判定部が、解析結果情報の入力を契機に、テーブルの各エントリについて、前記エントリの転送条件情報に基づいて前記解析結果情報に対する適合の有無を判定し、適合と判定されたエントリが複数個検出された場合に、前記エントリのうち最も優先度が高いエントリの、判定情報及び/またはエントリ番号を出力する、ことを特徴とする。
【００１７】
本発明の通信処理装置は、第１の記憶部が記憶するテーブルの各エントリの転送条件情報に基づいて、解析結果情報に対しての適合の有無を判定し、適合と判定したエントリの判定情報及び／またはエントリ番号を出力する、第１の適合判定部と、前記判定情報の１部または全てと、前記解析情報の１部または全てとを含む解析結果情報に対して、第２の記憶部が記憶するテーブルの各エントリの転送条件情報に基づいて、適合の有無を判定し、適合と判定したエントリの判定情報及び／またはエントリ番号を出力する第２の適合判定部とを有することを特徴とする。
【００１８】
本発明の通信処理装置は、エントリ毎に優先度が設定され、適合判定部が、解析結果情報の入力を契機に、テーブルの各エントリについて、前記エントリの転送条件情報に基づいて前記解析結果情報に対する適合有無の判定を開始し、前記開始からテーブルの全エントリについて判定を完了するまでに、初めて適合と判定したエントリｘの優先度及び判定情報及び/またはエントリ番号を中間結果として記憶し、その後テーブルの全エントリについて判定を完了するまでに、適合と判定したエントリｙを検出したとき、前記中間結果の優先度よりもエントリｙの優先度が高い場合に、エントリｙの優先度及び判定情報及び/またはエントリ番号を中間結果として記憶しなおし、テーブルの全エントリについて前記判定を完了した後、中間結果の判定情報及び/またはエントリ番号を出力する、ことを特徴とする。
【００１９】
本発明の通信処理方法は、フレームを受信し、前記フレームから前記フレーム内の所定の位置に記述されている情報または前記情報及び前記フレームを入力したインタフェースの情報を含む解析結果情報を取得し、前記解析結果情報に応じて、前記フレームの加工または前記フレームの転送処理を行う、通信処理方法であり、解析結果情報に対する条件を示す転送条件情報と、フレームの加工または前記フレームの転送の処理方法を指定する判定情報を、テーブルのエントリとして記憶部に記億させる記憶過程と、検索部が前記テーブルの各エントリの転送条件情報に基づいて、解析結果情報に対して適合の有無を判定し、適合と判定したエントリの判定情報を出力する検索過程と、を有し、前記検索過程において、前記検索部が解析結果情報と転送条件情報を入力し、検索部に複数設けられた適合判定部が、前記転送条件情報に基づいて前記解析結果情報に対して適合の有無を判定し、各適合判定部が、適合判定部毎に異なる解析結果情報を入力し、全適合判定部に同時に入力された同一の転送条件情報に基づいて、適合の有無を判定することを特徴とする。
【００２０】
本発明の通信処理方法は、前記検索過程において、適合判定部が、解析結果情報の入力を契機に、テーブルの各エントリについて、前記エントリの転送条件情報に基づいて前記解析結果情報に対する適合有無の判定を開始し、テーブルの全エントリについて前記判定を完了した後、前記判定により適合と判定されたエントリの判定結果及び/または前記エントリを識別するためのエントリ番号を出力する、ことを特徴とする。
【００２１】
本発明の通信処理方法は、前記検索過程において、適合判定部が、解析結果情報の入力を契機に、エントリ毎に優先度が設定された、テーブルの各エントリについて、該エントリの転送条件情報に基づいて前記解析結果情報に対する適合有無の判定を開始し、前記開始からテーブルの全エントリについて判定を完了するまでに、初めて適合と判定したエントリｘの優先度及び判定情報及び/またはエントリ番号を中間結果として記憶し、その後テーブルの全エントリについて判定を完了するまでに、適合と判定したエントリｙを検出したとき、前記中間結果の優先度よりもエントリｙの優先度が高い場合に、エントリｙの優先度及び判定情報及び/またはエントリ番号を中間結果として記憶しなおし、テーブルの全エントリについて前記判定を完了した後、中間結果の判定情報及び/またはエントリ番号を出力する、ことを特徴とする。
【発明の効果】
【００２２】
以上説明したように、本発明によれば、上述したように、複数のフレームの転送可否を判定する適合判定部が複数設けられているため、フレーム（パケット）フィルタリング処理を高速化することができ、フレームのラインレートでのスループットを従来に比較して大幅に向上でき、破棄されるフレーム数を減少させ、通信能力を向上させることができる。
また、本発明によれば、動的にルールを変更させる機能を持たせた場合でも、有効フラグのチェックを行うことにより、従来のようにタイミングによっては、書き替え中の不明なルールを用いた判定を行うことが無くなり、ルールの変更により柔軟性を持たせつつ誤判定を防止し、転送可否の判定の精度を向上させることができる。
【発明を実施するための最良の形態】
【００２３】
本発明の通信処理装置は、受信したフレームから、このフレーム内の所定の位置に記述されている情報、またはこの情報及び上記フレームを入力したインタフェースの情報を含む解析結果情報を取得し、この解析結果情報に応じて、フレームの加工またはこのフレームの転送を行う、通信処理装置に関わる。
すなわち、本発明の通信処理装置は、イーサネット（登録商標）フレームのヘッダから、宛先・送信元ＭＡＣアドレス，ＶＬＡＮタグの有無，ＶＬＡＮタグ有のときのＶＬＡＮ  ＩＤ、ＶＬＡＮ優先度、イーサネット（登録商標）タイプを抽出し、さらに、イーサネット（登録商標）タイプがＰＰＰｏＥセッションステージを示す場合は、イーサネット（登録商標）フレームのヘッダに続くＰＰＰｏＥヘッダから、ＰＰＰｏＥ有の情報として、ＰＰＰｏＥセッションＩＤを抽出する。
【００２４】
また、イーサネット（登録商標）タイプもしくはＰＰＰｏＥの上位プロトコルがＩＰＶ４またはＩＰＶ６を示す場合には、上位プロトコルが上記ＩＰＶ４またはＩＰＶ６のいずれであるかを識別するＩＰＶ４／ＩＰＶ６識別情報を取得し、さらに、イーサネット（登録商標）フレームのヘッダもしくはＰＰＰｏＥヘッダに続くＩＰパケットのヘッダから、送信元・宛先ＩＰアドレス、ＤＳＣＰ（ＩＰＶ４のＴＯＳ、ＩＰｖ６のトラフィッククラス）、上位プロトコル等を抽出する。
【００２５】
さらに、上記ＩＰパケットのヘッダに、ＩＰフラグメントを示す情報が含まれている場合には、上記情報に基づき、フラグメント状態（フラグメント無，先頭／最後尾／中間）を識別するフラグメント状態情報を取得する。
また、上位プロトコルがＴＣＰもしくはＵＤＰである場合には、上記ＩＰパケットのヘッダに続くＴＣＰ／ＵＤＰヘッダから、送信元・宛先ポート番号を抽出する。ここで、ＴＣＰヘッダからは、さらにＴＣＰフラグ（ＳＹＮ／ＡＣＫ／ＦＩＮ／ＲＳＴ等）を抽出する。
【００２６】
一方、プロトコルがＩＣＭＰである場合には、上記ＩＰパケットのヘッダに続くＩＣＭＰヘッダから、ＩＣＭＰタイプ・コードを抽出する。
なお、本発明の通信処理装置には、ＷＡＮ側ネットワーク接続用の物理インタフェースと、ＬＡＮ側ネットワーク接続用の物理インタフェースを備えるため、この受信した物理インタフェースを示す情報が受信フレームに付加される。
さらに、本発明の通信処理装置には、ＩＰｓｅｃのトンネルモードでのカプセル化を送信フレームに対して実施し、ＩＰｓｅｃのトンネルモードでのデカプセル化を受信フレームに対して実施する、ＩＰｓｅｃ処理を有し、このＩＰｓｅｃ処理において、受信フレームに対するＩＰｓｅｃの有無と、ＩＰｓｅｃが有のときの受信ＩＰｓｅｃ  ＳＡを識別する受信ＳＡ番号、の情報が受信フレームに付加される。
上述したように、本発明の通信処理装置は、受信したフレームの各種ヘッダから抽出した情報、上記受信した物理インタフェースを示す情報、さらにこれらの情報に基づきＩＰｓｅｃ等の処理を施した結果得られた情報を、解析結果情報として取得する。
【００２７】
また、本発明の通信処理装置は、受信したフレームの上記解析結果情報に対して、受信論理Ｉ／Ｆ検索、ＮＡＴ／ＮＡＰＴ検索、経路検索、フィルタ検索、分類検索等の検索を行う各検索部を備える。この各検索部においては、解析結果情報に含まれる各種情報の全て、または一部（検索によって対象となる情報が異なる）に対して、外部（例えばＣＰＵ）から設定された転送条件情報に基づく適合判定のルールに従って、適合判定を行う。
本発明の通信処理装置は、上記転送条件情報を、フレームの加工またはこのフレームの転送の処理方法を指定する判定情報とともに、テーブルのエントリとして記憶している。上記テーブルの各エントリの転送条件情報に基づいて、受信したフレームの解析結果情報に対して、上記転送条件情報との適合の有無を判定し、適合が有ると判定したエントリの判定情報に基づいて、対応するフレームの加工またはこのフレームの転送の処理を行う。
【００２８】
上記転送条件情報に基づく、エントリにおける適合判定のルールの一例を以下に示す。転送条件情報は、解析結果情報に含まれる各判定対象値（例えばフレームから抽出したあて先ＩＰアドレス）に対して、一致／不―致を判定するための一致判定条件値や、一致判定対象値に対してマスクを行うための一致判定マスク値（例えばあて先ＩＰアドレスの上位２４ビットのみが比較対象であり下位８ビットをマスクする場合、すなわち、判定対象値の下位８ビットを０として各判定条件値と一致比較する場合、判定マスク値は、プレフィックス長である「２４」、またはマスク長である「８」、となる）などである。このように、判定対象値に対して上記判定マスク値を用いてマスク処理を行った後に、一致判定条件値との一致・不―致の判定が行われる。
【００２９】
また、転送条件情報は、解析結果情報中の各判定対象値（例えばあて先ポート番号）に対して、範囲内・範囲外を判定するための範囲判定最小値と範囲判定最大値である。上記判定対象値が対応する範囲判定最小値以上であり、かつ範囲判定最大値以下である場合に一致と判定し、上述した以外の場合、すなわち範囲判定最小値と範囲判定最大値との範囲内にないとことが検出された場合に不―致と判定される。このとき、複数の判定対象値の各々に対して一致・不一致の判定を行う場合には、上記複数の判定対象値全てに対して一致と判定された場合にのみ、適合と判定され、前記以外の場合には、不適合と判定される。
【００３０】
また、本発明の通信処理装置は、受信論理Ｉ／Ｆ検索、ＮＡＴ／ＮＡＰＴ検索、経路検索、フィルタ検索、分類検索、等の検索を行う各検索部が、各判定情報を出力する。この各検索部の動作について、下記に簡単に示す。
受信論理Ｉ／Ｆ検索を行う検索部において、受信論理Ｉ／Ｆ検索の判定対象値は、受信物理Ｉ／Ｆ，あて先ＭＡＣアドレス，送信元ＭＡＣアドレス，ＶＬＡＮタグ有無，ＶＬＡＮタグ有のときのＶＬＡＮＩＤ，ＰＰＰｏＥ有無，ＰＰＰｏＥ有のときのＰＰＰｏＥセッションＩＤ，受信ＩＰｓｅｃ有無，受信ＩＰｓｅｃ有のときの受信ＳＡ番号であり、判定結果は、受信論理Ｉ／Ｆ番号，ＮＡＴ／ＮＡＰＴの有無などである。ここで、受信論理Ｉ／Ｆ番号とは、ＶＬＡＮやＩＰｓｅｃによって１個の物理Ｉ／Ｆに複数個の論理Ｉ／Ｆを構成可能である場合に、フレームを受信した論理Ｉ／Ｆを識別する番号として用いられる。また、前記でＮＡＴ／ＮＡＰＴ有の結果を得たパケットのみが、後述のＮＡＴ／ＮＡＰＴ検索（グローバル→ローカル）の対象となる。
【００３１】
また、ＮＡＴ／ＮＡＰＴ検索を行う検索部において、ＮＡＴ／ＮＡＰＴ検索（グローバル→ローカル）の判定対象値は、宛先ＩＰアドレスと宛先ＴＣＰ／ＵＤＰポート番号（ＮＡＰＴのみ）であり、この宛先ＩＰアドレスと宛先ＴＣＰ／ＵＤＰポート番号とに対して、一致判定条件値が転送条件情報として、外部から設定される。これら宛先ＩＰアドレスと宛先ＴＣＰ／ＵＤＰポート番号に対しては、この判定において、すでに述べた一致判定マスク値はなく、判定対象値と一致判定条件値とが完全に一致するか否かによる判定が行われる。判定情報は、付け替え後のあて先ＩＰアドレスと宛先ＴＣＰ／ＵＤＰポート番号（ＮＡＰＴのみ）である。ここで、ＮＡＴ／ＮＡＰＴ検索（グローバル→ローカル）の対象となったパケットに対する、経路検索、フィルタ検索、分類検索の各々は、解析結果情報に含まれあて先ＩＰアドレスとあて先ＴＣＰ／ＵＤＰポートではなく、ＮＡＴ／ＮＡＰＴ検索結果である付け替え後のあて先ＩＰアドレスとあて先ＴＣＰ／ＵＤＰポートを、判定対象値として、適合判定を行う（グローバル→ローカルＮＡＴ／ＮＡＰＴを行うパケットについてはローカルアドレスやポート番号に基づく検索が行われる）。
【００３２】
経路検索の判定対象値は、受信論理Ｉ／Ｆ番号，送信元ＩＰアドレス，あて先ＩＰアドレスであり、これら受信論理Ｉ／Ｆ番号，送信元ＩＰアドレス，あて先ＩＰアドレス前記各々に対して、一致判定条件値と一致判定マスク値とが転送条件情報として、外部から設定される。ここで、受信論理Ｉ／Ｆ番号に対する一致判定マスク値は、受信論理Ｉ／Ｆ番号を判定条件に加えるか否かを示すフラグであり、このフラグを立てた場合、受信論理Ｉ／Ｆ番号に対する一致判定条件値との一致・不一致の判定結果によらず、一致として扱うこととなる。
【００３３】
また、送信元ＩＰアドレス，あて先ＩＰアドレスに対する一致判定マスク値は、プレフィックス長であり、ＩＰアドレスの最上位ビットからプレフィックス長までのビットのみについて、一致判定条件値との一致・不―致の判定が行われる。判定情報は、送信Ｉ／Ｆ番号，宛先ＭＡＣアドレス，ＮＡＴ／ＮＡＰＴ有無，などである。ここで、送信論理Ｉ／Ｆ番号とは、パケットを送信する論理Ｉ／Ｆを識別する番号（受信論理Ｉ／Ｆと送信論理Ｉ／Ｆが同一である場合は番号も共通）である。また、上記判定情報を用いた判定において、ＮＡＴ／ＮＡＰＴ有の結果を得たパケットのみが、後述のＮＡＴ／ＮＡＰＴ検索（ローカル→グローバル）の対象となる。
【００３４】
上述したＮＡＴ／ＮＡＰＴ検索（ローカル→グローバル）の判定対象値は、送信元ＩＰアドレスと送信元ＴＣＰ／ＵＤＰポート番号（ＮＡＰＴのみ）とであり、この送信元ＩＰアドレスと送信元ＴＣＰ／ＵＤＰポート番号に対して、一致判定条件値が転送条件情報として、外部から設定される。これら送信元ＩＰアドレスと送信元ＴＣＰ／ＵＤＰポート番号に対しては、この判定において、すでに述べた一致判定マスク値はなく、判定対象値と一致判定条件値とが完全に一致するか否かによる判定が行われる。判定情報は、付け替え後の送信元ＩＰアドレスと送信元ＴＣＰ／ＵＤＰポート番号（ＮＡＰＴのみ）である。
【００３５】
フィルタ検索および分類検索の判定対象値は、受信論理Ｉ／Ｆ番号，送信論理Ｉ／Ｆ番号，ＶＬＡＮ優先度，ＩＰｖ４／ＩＰｖ６識別情報，送信元ＩＰアドレス，あて先ＩＰアドレス，ＤＳＣＰ，フラグメント状態情報，上位プロトコル，送信元ポート番号，あて先ポート番号，ＴＣＰフラグ，ＩＣＭＰタイプ・コードである。これら受信論理Ｉ／Ｆ番号，送信論理Ｉ／Ｆ番号，ＶＬＡＮ優先度，ＩＰｖ４／ＩＰｖ６識別情報，送信元ＩＰアドレス，あて先ＩＰアドレス，ＤＳＣＰ，フラグメント状態情報，上位プロトコル，送信元ポート番号，あて先ポート番号，ＴＣＰフラグ，ＩＣＭＰタイプ・コードに対して、一致判定条件値と一致判定マスク値、あるいは、範囲判定最小値と範囲判定最大値とが、転送条件情報として、外部から設定される。
【００３６】
上記受信論理Ｉ／Ｆ番号，送信論理Ｉ／Ｆ番号，ＶＬＡＮ優先度，ＩＰｖ４／ＩＰｖ６識別情報，フラグメント状態情報，上位プロトコル，ＩＣＭＰタイプ・コード各々に対する、一致判定マスク値は、これら受信論理Ｉ／Ｆ番号，送信論理Ｉ／Ｆ番号，ＶＬＡＮ優先度，ＩＰｖ４／ＩＰｖ６識別情報，フラグメント状態情報，上位プロトコル，ＩＣＭＰタイプ・コード各々を判定条件に加えるか否かを示すフラグであり、このフラグを立てた上記判定対象値に対する判定結果は無条件にて一致として扱うこととなる。送信元ＩＰアドレス，宛先ＩＰアドレスに対する一致判定マスク値は、プレフィックス長であり、ＩＰアドレスの最上位ビットからプレフィックス長までのビットのみについて、一致判定条件値との一致・不−致の判定が行われる。
【００３７】
また、ＤＳＣＰ，ＴＣＰフラグに対する、一致判定マスク値は、判定対象値のビット毎に、ＤＳＣＰ，ＴＣＰフラグ各々を判定条件に加えるか否かを示すマスクビットパターンであり、このマスクビットパターンのビットが１の判定対象値のビットを０として、一致判定条件値との一致・不一致の判定が行われる。
さらに、送信元ポート番号，宛先ポート番号に対しては、範囲判定最小値と範囲判定最大値とが、転送条件情報として外部から設定される。判定対象値であるポート番号が範囲判定最小値から範囲判定最大値までの範囲内にあるか否かにより、判定が行われる。フィルタ検索の判定情報は、破棄／通過等の指定であり、分類検索結果は品質クラスに関する各種情報（送信時のＶＬＡＮ優先度，リマ一クの有無，リマーク値＝書換え後のＤＳＣＰ，キューの指定など）である。
【００３８】
本発明の通信処理装置においては、上述した受信論理Ｉ／Ｆ検索、ＮＡＴ／ＮＡＰＴ検索、経路検索、フィルタ検索、分類検索等の検索部各々が、解析結果情報及び転送条件情報の比較を行う適合判定部を並列に複数有し、フレームの転送可否の検出のための比較を、複数のフレームに対して同時に実行することを特徴としている。
【００３９】
＜第１の実施形態＞
以下、本発明の一実施形態による通信処理装置を図面を参照して説明する。図１は同実施形態による通信処理装置の構成を示す図である。すなわち、図１は、本発明の通信処理回路の第１実施形態による通信処理回路２を備えた通信処理装置１及び通信処理装置１がＬＡＮ（Local Area Network）及びＷＡＮ（Wide Area Network）に接続する構成を示す概略ブロック図である。
通信処理装置１は、ＧＭＩＩ（Gigabit Medium Independent Interface）やＭＩＩ(Medium Independent Interface)の規格のインタフェースを介してＷＡＮに接続する物理Ｉ／Ｆ（Interface）１００及びＬＡＮに接続する物理Ｉ／Ｆ１１０と接続し、ＬＡＮ側から送信されるパケットをＷＡＮ側またはＬＡＮ側へ転送し、また、ＷＡＮ側から送信されるパケットをＬＡＮ側またはＷＡＮ側へ転送する。
【００４０】
また、本実施形態の通信処理装置１では、ＯＳＩの第３層にあたるネットワーク層では、ＩＰｖ４あるいはＩＰｖ６のパケットの送受信を行い、ＯＳＩの第２層にあたるデータリンク層では、イーサネット（登録商標）のフレームの送受信を行う。
以下、第２層に係る処理については送受信されるものについてはフレームと記載し、第３層に係る処理について送受信されるデータ、すなわちフレームからＭＡＣヘッダが除かれたものについてはパケットと記載して、パケット及びフレームを使い分けているが、フィルタリングの処理においては、ヘッダ情報としてフレームのヘッダが使用されている。
【００４１】
通信処理装置１は、転送処理の高速化を図るため半導体素子で構成される通信処理回路２と、ＣＰＵ（中央処理部：Central Processing Unit）４と、ＤＤＲ−ＳＤＲＡＭ（Double Data Rate-Synchronous Dynamic Random Access Memory、以下、メモリとする）３とを備えている。
上記メモリ３は、半導体記憶素子であり、一定容量値、例えば２キロバイトごとに領域分割され、フレーム長が長いフレームであっても、短いフレームであっても分割した１つの領域を割り当てて記憶する。なお、分割されたそれぞれの領域は、後述するハンドル管理部１８が付与するハンドル番号に対応付けられる。
【００４２】
ＣＰＵ４は、主に通信処理回路２で転送処理を行うことができないフレームを通信処理回路２から受信し、受信したフレームに対する転送先を検出する等の処理を予め内部で動作するソフトウェアに基づいて行う。ＣＰＵ４が備えるドライバ４ａは、通信処理回路２がＣＰＵ４に入力するパケットのＣＰＵ４の内部のメモリへの書き込み及び読み出しを行い、また、通信処理回路２の各機能部の動作を制御する情報の設定を各機能部に対して行う。
【００４３】
通信処理回路２において、ＷＡＮ用ＭＡＣ(Media Access Control)Ｉ／Ｆ１１は、ＷＡＮに接続される物理Ｉ／Ｆ１００へ接続する接続インタフェースである。ＬＡＮ用ＭＡＣＩ／Ｆ１２は、ＬＡＮに接続される物理Ｉ／Ｆ１１０へ接続する接続インタフェースである。ＷＡＮ用ＭＡＣＩ／Ｆ１１及び、ＬＡＮ用ＭＡＣＩ／Ｆ１２は、上記したＧＭＩＩ及びＭＩＩに準拠した規格を有し、送受信するイーサネット（登録商標）のフレーム（以下、フレームと記載）に対してＩＥＥＥ８０２．３準拠のＭＡＣ処理を行い、また、物理Ｉ／Ｆ１００あるいは１１０との間で送受信されるフレームに対してＣＲＣ（Cyclic Redundancy Check）処理などを行う。
【００４４】
ＩＰｓｅｃ部１３は、ＷＡＮ用ＭＡＣＩ／Ｆ１１に接続され、ＲＦＣ(Request for Comments)２４０６準拠のＩＰｓｅｃ処理に基づく暗号化処理をＷＡＮに送信するパケットに対して行い、また、ＷＡＮから受信するパケットに対して復号化処理を行う。ここで、ＲＦＣ２４０６準拠のＩＰｓｅｃ処理とは、ＲＦＣ２４０３／２４０４準拠のＨＭＡＣ−ＭＤ５（Keyed Hashing for Message Authentication Code-Message Digest 5）やＨＭＡＣ−ＳＨＡ−１（HMAC-Secure Hash Algorithm-1）の認証機能や、ＲＦＣ２４１０／２４５１のＮＵＬＬ，ＣＢＣ−ＡＥＳ（Cipher Block Chaining - Advanced Encryption Standard）の暗号機能などによるＩＰｖ４及びＩＰｖ６パケットに対する暗号化及び復号化処理である。
【００４５】
書き込みスケジューラ部１４は、ＩＰｓｅｃ部１３と、ＬＡＮ用ＭＡＣＩ／Ｆ１２と、ＣＰＵ４に接続するＣＰＵＩ／Ｆ１５とに接続され、ラウンドロビン方式により、ＩＰｓｅｃ部１３と、ＬＡＮ用ＭＡＣＩ／Ｆ１２と、ＣＰＵＩ／Ｆ１５の順に、これら３つの機能部によって情報が付加されたフレーム（以下、前記３つの機能部によって情報が付加されたフレームをフレーム情報と記載）を出力する。
【００４６】
ＣＰＵＩ／Ｆ１５は、通信処理回路２の各機能部と、書き込みスケジューラ部１４と、メモリコントローラ部１７とＣＰＵ４とに接続され、メモリコントローラ部１７から出力されるフレーム情報をＣＰＵ４に入力する。また、ＣＰＵ４から出力されるフレームを書き込みスケジューラ部１４に入力する。また、ＣＰＵ４が通信処理回路２の各機能部に対して設定を行う際、ＣＰＵＩ／Ｆ１５は、設定情報を該当する機能部に入力する。
ＤＤＲ−ＳＤＲＡＭＩ／Ｆ（以下、メモリＩ／Ｆとする）１９は、メモリコントローラ部１７とメモリ３に接続され、メモリコントローラ部１７とメモリ３の間でフレームの入出力を行う。
【００４７】
フレーム生成部１６は、予めＣＰＵ４のドライバ４ａから設定される情報に基づいて、メモリコントローラ部１７から出力されるフレームに対して送信先の論理インタフェースに応じたＶＬＡＮ（Virtual LAN）タグやＰＰＰｏＥ（Point to Point Protocol over Ethernet：Ethernetは登録商標）ヘッダの挿入を行い、当該挿入を行ったフレームを出力する。また、フレーム生成部１６は、宛先ＭＡＣアドレスの付け替え、ＮＡＴ(Network Address Translation)／ＮＡＰＴ（Network Address Port Translation）のためのＩＰアドレス及びポート番号の付け替えを行う。また、フレーム生成部１６は、ＩＰｓｅｃ部１３に出力するフレーム対してＩＰｓｅｃＳＡ（Security Association）の情報の付加を行う。また、フレーム生成部１６は、ＤＳＣＰ（DiffServ Code Point）のＩＰパケットのヘッダへの付加、ＶＬＡＮ  ｐｒｉｏｒｉｔｙのフレームのヘッダへの付加を行う。ＤＳＣＰやＶＬＡＮ  ｐｒｉｏｒｉｔｙは、優先制御の際に参照される品質クラス情報となる。ここで、品質クラス情報とは、転送されるフレームに含まれる情報の種別を分類する分類情報であり、分類情報によって示される情報の種別が例えば音声の場合には、当該分類種別を有するフレームには遅延が少ない高い品質の通信処理が適用されることになる。
【００４８】
ハンドル管理部１８は、ＱｏＳ（Quality of Service）部７０と、メモリコントローラ部１７とに接続され、メモリ３の分割された領域のそれぞれに対応するハンドル番号に基づいてメモリ３の分割された領域の空塞管理を行う。ここで、空塞管理とは、メモリコントローラ部１７へは空きハンドル番号を出力して使用中のハンドル番号として管理し、ＱｏＳ部７０から入力されるフレーム破棄により返却対象となるハンドル番号や、送信により返却対象となるハンドル番号については領域が空きとなるため、空きのハンドル番号として管理する。また、ハンドル管理部１８は、マルチキャストフレームの場合には、マルチキャストの回数分送信が終了するまで、フレームを削除できないため、ＱｏＳ部７０が、メモリコントローラ部１７にジョブ情報を出力した情報を図１に示すＱｏＳ部７０からメモリコントローラ部１７へ直接接続する接続線から分岐する線により参照して、送信開始時に定められるマルチキャストの回数を管理する。
【００４９】
メモリコントローラ部１７は、書き込みスケジューラ部１４と、フレーム生成部１６と、メモリＩ／Ｆ１９と、パーサ部３０と、ハンドル管理部１８と、ＱｏＳ部７０とに接続されている。メモリコントローラ部１７は、書き込みスケジューラ部１４から入力されるフレーム情報に対し、ハンドル管理部１８から付与された空きハンドルのハンドル番号に対応するメモリ３の分割された領域に、メモリＩ／Ｆ１９を介してメモリ３に書き込む。また、メモリコントローラ部１７は、書き込みスケジューラ部１４から入力されるフレーム情報に対し、ハンドル管理部１８から付与されたハンドル番号を付加してパーサ部３０に出力する。また、メモリコントローラ部１７は、後述するＱｏＳ部７０から出力されるジョブ情報に含まれるハンドル番号に対応するメモリ３の領域からメモリＩ／Ｆ１９を介してフレーム情報を読み出し、読み出したフレーム情報に対してジョブ情報に基づく情報を付加し、フレーム生成部１６に出力、あるいはＣＰＵＩ／Ｆ１５を介してＣＰＵ４に出力する。
【００５０】
パーサ部３０は、メモリコントローラ部１７によりハンドル番号が付加されたフレーム情報に対して解析を行い、フレーム情報から転送処理に係る情報であるヘッダ情報などを抽出し、解析結果情報としてメモリコントローラ部１７が付加したハンドル番号等の情報とともに、検索部４０に対して出力する。
【００５１】
検索部４０は、パーサ部３０（転送条件抽出部）から入力される解析結果情報に基づいて、予めＣＰＵ４により検索部４０の内部に設定される転送条件情報を参照し、転送条件情報に基づいて、当該フレームを破棄するか、通過させるか、ＣＰＵ４へ転送、すなわちＣＰＵ４へ入力するかを示すフィルタ検索結果情報、及び品質クラスなどの情報を示す分類検索結果などを検出し、検出したフィルタ検索結果情報及び分類検索結果（判定情報）と、パーサ部３０から入力される解析結果情報の一部の情報例えばフレーム長等と、ハンドル番号の付加情報とを、ＣＰＵ転送判定部６１に出力する。ここで、転送条件情報に含まれる条件としては、ＭＡＣアドレス，ＩＰアドレス，ポート番号などがあり、検索結果情報に含まれるフレームのヘッダ情報がこれらの転送条件に一致するか否かの検索が行われる。
【００５２】
ＣＰＵ転送判定部６１は、検索部４０においてＣＰＵ４へ転送する要因があるとして検出されたフレームに対して、ＣＰＵ転送要因を示す情報、すなわち後述するＣＰＵ転送要因フラグを付与し、ＣＰＵ４へ転送するか、あるいは破棄するかを判定し、判定した判定情報を、検索部４０から出力される情報とともに出力する。
【００５３】
キュー選択部６２は、ＣＰＵ転送判定部６１から入力される情報に含まれる品質クラス情報や送信先の論理Ｉ／Ｆの情報に基づいてＱｏＳ部７０がキューを選択する際に参照するキュー番号を検出し、ＣＰＵ転送判定部６１から出力される情報と、検出したキュー番号とを出力する。
【００５４】
ＱｏＳ部７０は、キュー選択部６２から出力される情報に基づいてジョブ情報を生成し、同じくキュー選択部６２から出力されるキュー番号に基づいて、生成したジョブ情報を該当するキューに記録する。また、ＱｏＳ部７０は、キューに記録されているジョブ情報を予め定められているキューごとの優先度に基づいて読み出し、メモリコントローラ部１７へ出力する。また、ＱｏＳ部７０は、メモリコントローラ部１７へジョブ情報を出力する際、及び破棄するフレームである場合に、ハンドル番号を返却するためハンドル管理部１８へ出力する。
ここで、ジョブ情報とは、ＷＡＮ用ＭＡＣＩ／Ｆ１１やＬＡＮ用ＭＡＣＩ／Ｆ１２から送信されるフレームに対しては、受信フレーム長、送信フレーム長、送信論理Ｉ／Ｆ、宛先ＭＡＣアドレス、ＮＡＴ／ＮＡＰＴ指定、ＤＳＣＰやＶＬＡＮ  ｐｒｉｏｒｉｔｙ等の情報に対応する品質クラス、ハンドル番号等の情報から構成されている。また、ＣＰＵ４に転送されるフレームに対しては、ジョブ情報は、受信フレーム長、送信フレーム長、受信論理Ｉ／Ｆ、ＣＰＵ転送理由、品質クラス、ハンドル番号等の情報から構成される。
なお、ＣＰＵ転送判定部６１において破棄すると判定されたフレームついてはＣＰＵ転送判定部６１あるいはＱｏＳ部７０のいずれかにより破棄されることとなる。
【００５５】
次に、図２を参照して、検索部４０の構成を詳細に説明する。この図２は、第１の実施形態による検索部４０の構成例を示すブロック図である。説明において、フィルタ検索を例にとり説明するが、本発明の各実施形態は、後の第９の実施形態にて述べるように、ＮＡＴ／ＮＡＰＴ検索及び経路検索にも同様に適用可能である。
本実施形態及び以降に説明する他の第２〜第９の実施形態において、検索部４０は、判定情報とともに解析結果情報（ハンドル番号等の付加情報を含む）を、次段のＣＰＵ転送判定部６１に対して出力する。
記億部４１は、複数のエントリを記憶可能なテーブル領域（図４参照）を有し、フレームの解析結果情報に対する条件を示す転送条件情報と、フレームの加工またはこのフレームの転送の処理方法を指定する判定情報とを、上記各エントリとして記憶する。
検索部４０は、すでに述べたように、上記テーブルの各エントリの転送条件情報に基づいて、解析結果情報に対して適合の有無を判定し、適合と判定したエントリの判定情報を出力する。
【００５６】
上記解析結果情報のうち、本検索の対象である判定対象値は、受信論理Ｉ／Ｆ番号，送信論理Ｉ／Ｆ番号，ＶＬＡＮ優先度，ＩＰｖ４／ＩＰｖ６識別情報，送信元ＩＰアドレス，あて先ＩＰアドレス，ＤＳＣＰ，フラグメント状態情報，上位プロトコル，送信元ポート番号，あて先ポート番号，ＴＣＰフラグ，ＩＣＭＰタイプ・コード、である。
また、上記転送条件情報は、各判定対象値に対する条件を示す情報であり、判定情報は、破棄／通過／ＣＰＵ転送の何れか１つを指定する情報である。なお、このＣＰＵ転送の選択肢は、通信処理回路で処理できないフレームについて、ＣＰＵ側で処理するために設けられた設定である。
【００５７】
上記各判定対象値に対する条件は、記憶部４１に記憶されている図４のテーブルに記述されている一致判定条件値及び一致判定マスク値、あるいは、範囲判定最小値及び範囲判定最大値、である。受信論理Ｉ／Ｆ番号，送信論理Ｉ／Ｆ番号，ＶＬＡＮ優先度，ＩＰｖ４／ＩＰｖ６識別情報，フラグメント状態情報，上位プロトコル，ＩＣＭＰタイプ・コードに対する、一致判定マスク値は、前記を判定条件に加えるか否かを示すフラグであり、また、すでに述べたように、フラグを立てた上記判定対象値に対する判定結果は一致として扱う。
送信元ＩＰアドレス，あて先ＩＰアドレスに対する一致判定マスク値は、プレフィックス長であり、ＩＰアドレスの最上位ビットからプレフィックス長までのビットのみについて、一致判定条件値との一致・不一致の判定を行う。
また、ＤＳＣＰ，ＴＣＰフラグに対する、一致判定マスク値は、判定対象値のビット毎に、ＤＳＣＰ及びＴＣＰフラグを判定条件に加えるか否かを示すマスクビットパターンであり、マスクビットが１の判定対象値のビットを０として、一致判定条件値との一致・不一致の判定を行う。
【００５８】
送信元ポート番号，あて先ポート番号に対しては、範囲判定最小値と範囲判定最大値が、転送条件情報として外部から設定される。判定対象値であるポート番号が範囲判定最小値から範囲判定最大値までの範囲内であるか否かにより、判定を行う。
フィルタ検索の判定情報は、破棄／通過等の指定であり、分類検索結果は品質クラスに関する各種情報（送信時のＶＬＡＮ優先度，リマークの有無，リマーク値＝書換え後のＤＳＣＰ，キューの指定など）である。
検索部４０は、上記各判定対象値に対応した判定を行い、全て一致であった場合に、解析結果情報に対する転送条件情報に基づく判定を適合とし、いずれか一つでも不一致の場合に不適合とする。
【００５９】
また、第１の実施形態においては、検索テーブルに記載された順番により、各エントリに対して優先度が設定されており、例えば、エントリ番号の大きいものほど優先度が高くなるように、検索テーブルが設定されている。
したがって、ｍ個のエントリ各々について、これらのエントリの転送条件情報に基づいて、解析結果情報に対する適合の有無を判定し、適合と判定されたエントリを複数個検出した場合に、検索部４０は、上記エントリのなかから、最も優先度が高いエントリの判定情報を、出力する。すなわち、本実施形態の検索部４０は、検出されたエントリのなかから、エントリ番号が最も大きいエントリの判定情報を出力する。
【００６０】
上述したように、検索部４０は、入力される各フレーム毎に、解析結果情報と転送条件情報との比較を行い、転送条件情報の記述に従い、各フレームの転送可否を検出する。
ここで、検索部４０は、上記転送可否の検出を高速に行うため、解析結果情報及び転送条件情報の比較を行う適合判定部を並列に複数、例えば、適合判定部４３1，４３2，４３3，…，４３nを有し、フレームの転送可否の検出のための比較を、ｎ個（複数）のフレームに対して同時に実行する。
【００６１】
ルール読出部４２は、順次、記憶部４１に記憶されているエントリを、検索テーブルに記述されている順番に（エントリ番号の順番に）、クロック１サイクル（１周期）につき、１エントリ（１つの転送条件情報）の速度にて読み出し、適合判定部４３1，４３2，４３3，…，４３n各々に対して、順次供給する。上記クロックは、通信処理回路２における基準の内部クロックであり、通信処理回路２内の各回路を動作させている。
【００６２】
ここで、ルール読出部４２は、同一タイミングにて、同一のルールをそのエントリ番号とともに、適合判定部４３1，４３2，４３3，…，４３nの全てに入力する。
また、ルール読出部４２は、検索テーブルの全てのエントリを読みだした後、すなわち、最後のエントリである第ｍエントリを読みだした後、次のクロックにおいて、第１エントリから読み出しを継続する（検索テーブルにおいてルールの読み出しを循環させる）。
適合判定部４３1，４３2，４３3，…，４３n各々は、入力されたフレームから抽出された解析結果情報を、記憶部４１の検索テーブルにおける全てのエントリと適合するか否かの検出を行う。
【００６３】
適合判定部選択部４４は、パーサ部３０から時系列に、クロックに同期して入力されるフレーム毎の解析結果情報を、入力順に、適合判定部４３1，４３2，４３3，…，４３n各々に、順番に出力する。
ここで、適合判定部選択部４４は、フレームの時系列番号が「１」の解析結果情報を適合判定部４３1に出力し、「２」の解析結果情報を適合判定部４３2に出力し、…、「ｎ」の解析結果情報を４３nに出力し、「ｎ＋１」の解析結果情報を適合判定部４３1に出力して、時系列順にフレームの転送可否を検出するための判定処理を割り当てる。
【００６４】
このように、適合判定部選択部４４は、解析結果情報の入力を契機として、各適合判定部に対応付けられた適合判定部番号を順に繰り返し生成して、この適合判定部番号に基づき、入力された解析結果情報を出力する適合判定部を選択する。
あるいは、適合判定部選択部４４は、解析結果情報の入力を契機として、判定の処理を行っていない適合判定部を検出し、検出された適合判定部を選択して、上記解析結果情報を出力する。各適合判定部に最後に解析結果情報を入力してから、適合判定部が判定情報を出力するのに要する時間Ｔを経過している場合、この適合判定部を、適合処理が行われていない適合判定部として検出することができる。
【００６５】
ここで、ワイヤレートを保障する検索を行う（最小フレーム長かつ最小フレーム間ギャップでフレームを連続して受信した場合にも、前記全フレームに対して検索を可能とする）場合は、適合判定部番号を順に繰り返し生成し、この適合判定部番号に基づき適合判定部を選択することによって、選択された適合判定部が判定の処理を行っていないことが保障される。このため、判定の処理を行っていない適合判定部を検出する処理が不要となる。以下に、上述した適合判定部を検出する処理が不要となる理由を示す。
すなわち、最小フレーム長分のデータを入力する時間ｔfの間、次のフレームの入力は無く、解析結果情報が出力される間隔についても時間ｔf以上とすることが可能である。
【００６６】
したがって、解析結果情報から次の解析結果情報の入力まで時間ｔf以上あるため、適合判定部４３1，４３2，４３3，…，４３n各々において検索テーブルの全てのエントリに対しての判定に必要な時間がＴである場合、各適合判定部の並列度をＴ／ｔfとすることにより、原理的に、適合判定部に解析結果情報を入力する時点においては、必ず適合判定処理が可能な状態（前に入力された解析結果情報に対する検索が終了し、次の入力が可能な状態）となる。
しかしながら、解析結果情報の入力から次の解析結果情報の入力まで時間ｔf以上となることが保証されない場合、本実施形態に記載したように、適合判定部選択部４４が各適合判定部における適合判定処理の実行の可否を検出することが必要となる。
【００６７】
適合判定部４３1，４３2，４３3，…，４３n各々は、適合判定部選択部４４から入力される解析結果情報と、ルール読出部４２から入力される転送条件情報との比較を順次行い、適合であることを検出したルールのエントリ番号及び検索及び判断の判定情報を記憶する。
また、上記適合判定部各々は、解析結果情報の入力を契機に、テーブルの各エントリについて、このエントリの転送条件情報に基づいて、上記解析結果情報に対する適合の有無の判定を開始し、この開始から全エントリについての判定を終了するまでに、初めて適合と判定したエントリｘのエントリ番号及び判定情報を中間結果として記憶する。その後、適合判定部は、テーブルの全てのエントリについて判定を完了するまでに適合と判定したエントリｙを検出したとき、上記中間結果のエントリ番号に対応した優先度よりも、エントリｙのエントリ番号に対応した優先度が高い場合に、エントリｙのエントリ番号及び判定情報を中間結果として記憶し直し、テーブルの全エントリについて判定を完了した後、中間結果の判定情報及び／またはエントリ番号を出力する。
【００６８】
ここで、適合判定部４３1，４３2，４３3，…，４３n各々は、解析結果情報が入力されると、処理中を示すフラグを立て、全てのエントリ番号のエントリと比較した後、すなわち、エントリ数カウンタが設定された数値（テーブルに記憶されているルール数）を超えた際に、次の、クロックにおいて（次に適合検出処理を行う対象の解析結果情報が入力されるタイミング）、このフラグを下ろし（消去し）、かつエントリ数カウンタをリセットし、検出結果の判定情報とともに、判定完了信号が、結合部４５へ出力される。
【００６９】
また、各適合判定部は、上述したエントリ数カウンタを設けるのではなく、解析結果情報の入力に同期して、その時点で入力されていたエントリ番号（すなわち、実際の比較が開始されるエントリ番号の１つ前のエントリ番号）を検出エントリ番号として記憶し、検索テーブルから読み出されるエントリ番号と、上記検出エントリ番号とを比較して一致したことを検出すると、すなわち検索テーブルからのエントリの読み出しが一巡したことを検出すると、判定完了信号を判定情報とともに結合部４５へ出力するようにしてもよい。
そして、各適合判定部は、次に入力されるクロックにおいて、次に適合検出処理を行う対象の解析結果情報がパーサ部３０にあれば、それを入力する。
すなわち、適合判定部選択部４４は、適合部カウンタが示す適合判定部の上記フラグが下ろされた状態（立っていない状態）であるとき、その適合判定部に対して解析結果情報を書き込む。
【００７０】
また、ルールの数と、適合判定部との数とを一致させることにより（適合判定部の数の最大値）、フレームのスループットをラインレートにて処理することが可能となる。
しかしながら、上述したように、エントリ数と適合判定部との数を一致させずとも、ルールの数より少ない数であっても、適合判定部を２以上の複数個設けることにより、すなわち並列度を持たせるため、従来に比してスループットを向上させることができる。
【００７１】
また、適合判定部の数を記憶部４１に記憶されている検索テーブルの全エントリ数に対して、適合するか否かの検出を行うために必要な時間Ｔの間（適合判定部に解析結果情報を入力してから、上記適合判定部がエントリ番号及び/または判定情報を出力するまでの時間であり、ｍ個のエントリについて判定を行っている時間（ｍ×クロックの周期）に、解析結果情報を入力してから判定を開始するまでの時間と、判定を終了してから判定情報を出力するまでの時間を加えた時間）に、入力されるフレームの数の最大値以上としてもよい。
この理由としては、上記並列度がワイヤレートを達成しつつ、並列度を最小化するための並列度である。
【００７２】
適合判定部選択部４４に対して、クロックに同期して時系列に、時系列番号「１」のフレームの解析結果情報から順に「ｎ」のフレームの解析結果情報が入力されたとき、上記解析情報結果が、時系列に適合判定部４３1〜４３nの順番に、入力される。各適合判定部に解析結果情報が入力されてから、時間Ｔが経過したとき解析結果情報に対するエントリ番号及び／または判定情報が適合判定部から出力されるため、解析結果情報が時系列に、適合判定部４３1〜４３nの順番に出力される。
結合部４５は、各適合判定部からクロックに同期して入力される上記エントリ番号及び／または判定情報を、次段のＣＰＵ転送判定部６１へ出力する。
上述した動作において、結合部４５は、適合判定部から判定完了信号を出力されることを契機に、上記適合判定部が出力したエントリ番号及び／または判定情報を入力する。
【００７３】
次に、第１の実施形態による通信処理装置における検索部４０の動作を図５を用いて説明する。図５は、第１の実施形態による適合判定部の動作例を示すフローチャートである。また、図５は、適合判定部４３1に注目して説明されているが、他の適合判定部４３2〜４３nも同様な動作を行う。
ここで、検索部４０の動作が開始され、フレームが入力されていると、パーサ部３０から、解析結果情報が適合判定部選択部４４へ出力される。
【００７４】
また、記憶部４１の検索テーブルには、第１エントリから第ｍエントリのｍ個のルールが設定されているとする。本実施形態では、エントリ番号が優先度となっており、１→２→…→ｍの順に優先度が高くなるとする。
検索部４０の動作開始時において、適合判定部選択部４４は、内部の適合判定部カウンタを「１」に初期設定する。
検索部４０が解析結果情報を入力したとき、上記解析結果情報を入力する適合判定部４３1〜４３nを選択する適合判定部選択部４４を有する。この適合判定部選択部４４は、解析結果情報の入力を契機に、すなわち入力される解析結果情報の数を計数し、適合判定部４３1〜４３n各々に対応付けられた適合判定部番号を順に繰り返し生成し、この適合判定部番号に基づき、解析結果情報を出力する適合判定部の選択をする、適合判定カウンタを有する。この適合判定カウンタは、「１」から「ｎ」までの適合判定部番号をカウンタ値として生成し、このカウンタ値が「１」のとき適合判定部４３1を、「ｎ」のとき適合判定部４３nを指定する。また、適合判定カウンタ前記値は、「ｎ」を生成した後に、解析結果情報が入力されたとき、「１」を生成する。
また、上記適合判定カウンタを、「０」のとき適合判定部４３1，「１」のとき適合判定部４３2，…，「ｎ−１」のとき適合判定部４３nを指定する、「０」〜「ｎ−１」を計数するカウンタとしてもよい。
【００７５】
パーサ部３０から検索部４０に解析結果情報が入力されると、適合判定部選択部４４は、上記解析結果情報を入力する適合判定部を選択し、選択された適合判定部に、解析結果情報を入力する。以下の説明においては、適合判定部選択部４４の適合判定部カウンタが適合判定部番号「１」を生成し、適合判定部４３1が選択された場合について、適合判定部４３1の動作を説明する。適合判定部４３1は、開始からステップＳ１に移行し、処理を開始する。
そして、ステップＳ１に移行すると、適合判定部選択部４４から解析結果情報が入力されるまでステップＳ１に留まる。
適合判定部選択部４４が適合判定部４３1を選択して、解析結果情報がクロックに同期して適合判定部４３1に入力されると、適合判定部４３1は入力される解析結果情報を保持し、一時的に優先度を保持する優先度変数を初期化し、解析結果情報に対して判定を終えたエントリ数を計数するエントリ数カウンタを「０」に初期化し、次のクロックでステップＳ２に移行する。
【００７６】
上記優先度変数としては、適合と判定されたエントリが複数個検出された場合に、これらのエントリのうち最も優先度が高いエントリを検出するために、解析結果情報入力から現時点までに検出した適合判定エントリの中で最も高い優先度が保持される。この優先度変数の初期値は、テーブルの各エントリの優先度としてとり得る範囲よりも低くすることにより、ステップＳ５で初期化された優先度変数よりも比較対象のエントリの優先度が高いと判定されて、ステップＳ６において結果更新と判断される値であればよい。本実施形態においては、エントリ番号「１」〜「ｍ」が優先度を示すため、「０」を初期値とすることができる。
【００７７】
あるいは、上記優先度変数の初期値は、テーブルの各エントリの優先度としてとり得る範囲で最低の優先度であり、ステップＳ５において初期化された優先度変数よりも比較対象のエントリの優先度が高いかまたは一致していると判定され、ステップＳ６において結果更新と判断される値であればよい。このことから、前述したように、エントリ番号「１」〜「ｍ」が優先度を示すため、「１」が初期値となる。なお、適合判定値が、優先度変数に加え、各エントリの有効・無効を示す情報を保持する場合は、優先度変数の初期化は不要であり、無効を示す情報に初期化し、無効の状態で初めて適合と判定されたエントリを検出したとき、有効を示す情報に変化させ、前記エントリの優先度を優先度変数に保持する処理を行わせることも可能である。エントリ数カウンタは、テーブルの全エントリに対して適合判定を行ったことを検出するために、解析結果情報入力から現時点までに判定を終えたエントリ数を計数する。
【００７８】
次に、ステップＳ２に移行すると、適合判定部４３1は、その時点でルール読出部４２が同時に適合判定部４３1〜４３n各々に分配しているエントリの転送条件情報を入力し、エントリ数カウンタを「１」進める。
このとき、適合判定部４３1は、上記前記転送条件情報の入力と併せて、上記エントリの判定情報を入力するように構成してもよい。
また、適合判定部４３1は、上記前記転送条件情報の入力と併せて、上記エントリのエントリ番号を入力するように構成してもよい。
そして、適合判定部４３1は、上述したエントリ数カウンタを「１」進めたクロックと同一周期においてステップＳ３に移行する。
【００７９】
次に、ステップＳ３において、適合判定部４３1は、保持している解析結果情報と、入力した転送条件情報との適合の有無を検出し、ステップＳ２と同一クロックの周期内に処理をステップＳ４へ処理を進める。
【００８０】
次に、ステップＳ４において、適合判定部４３1は、ステップＳ３において解析結果情報と転送条件情報とが適合していることが検出された場合、ステップＳ２と同一クロックの周期の間に処理をステップＳ５に移行し、一方、ステップＳ３において適合していないことが検出された場合、ステップＳ２と同一クロックの周期の間に処理をステップＳ８へ進める。
【００８１】
次に、ステップＳ５において、適合判定部４３1は、新たに適合したエントリの優先度が、すでに記憶されている優先度と比較して、より上位の優先度であるか否か、すなわち、記憶されている優先度の数字より、新たに適合したルールの優先度が大きいか否かの検出を行い、ステップＳ２と同一クロックの周期の間に処理をステップＳ６へ進める。
ここで、適合判定部が新たに適合したエントリの優先度と、すでに記憶されている優先度との比較において、新たに適合したエントリの優先度が、すでに記憶されている優先度より高いかまたは等しいかの比較を行うようにしてもよい。
このとき、検索処理の開始時に、記憶する優先度を「０」とする必要がなく、優先度を「０」から「ｍ−１」の範囲とするようにしてもよい。
ただし、上述した比較構成において、優先度変数に「０」が保持されていないとき、解析結果情報の優先度が同一ものが検出されると、新たに検出された方を解析結果情報として選択する場合と、先に検出されていた方を解析結果情報として選択する場合とのいずれとしてもよい。
そして、ステップＳ６において、適合判定部４３1は、新たに適合が検出された優先度が、記憶されている優先度より高いことを検出した場合、ステップＳ２と同一クロックの周期の間に処理をステップＳ７へ進め、一方、新たに適合が検出された優先度が記憶されている優先度より低いことを検出した場合、ステップＳ２と同一クロックの周期の間に処理をステップＳ８へ進める。
【００８２】
次に、ステップＳ７において、適合判定部４３1は、記憶されているエントリ番号を、新たなエントリ番号に書き替える（変更する）。
そして、適合判定部４３1は、ステップＳ２と同一クロックの周期の間に処理をステップＳ８へ進める。
また、ステップＳ６からステップＳ８へ処理が遷移した場合、適合判定部４３1は、記憶されているエントリ番号を、書き替えない。
【００８３】
次に、ステップＳ８において、適合判定部４３1は、エントリ数カウンタの出力値がルール計数値「ｍ」以上となることを検出し、すなわち、検索テーブル全ての転送条件情報が終了したか否かの検出を行う。
このとき、適合判定部４３1は、ルール数計数値が「ｍ」以上であることを検出した場合、入力された解析結果情報を検索テーブルの全ての転送条件情報と比較したため、判定情報として最も高い優先度として記憶されているエントリ番号を結合部４５へ出力した後、次のクロックが入力された時点で処理をステップＳ９へ移行する。
一方、適合判定部４３1は、ルール数計数値が「ｍ」未満であることを検出した場合、次のクロックが入力された時点で処理をステップＳ２へ移行する。
【００８４】
次に、ステップＳ９において、適合判定部４３1は、優先度変数として保持されている、最も優先度の高い適合判定されたエントリのエントリ番号を、判定完了信号とともに結合部４５に出力する。
また、適合判定部４３1は、エントリ番号及び判定完了信号の出力と併せて、中間結果として保持されている、上記エントリの判定情報を出力し、ステップＳ９のクロックの同一周期においてステップＳ１に移行する。
【００８５】
そして、適合判定部４３1は、すでに述べたように、エントリ数カウンタによる判定処理完了の検出を行わない場合、解析結果情報の入力に同期して、その時点で入力されていたエントリ番号（すなわち、実際の比較が開始されるエントリ番号の１つ前のエントリ番号）を検出エントリ番号として記憶し、検索テーブルから読み出されるエントリ番号と、上記検出エントリ番号とを比較して一致したことを検出すると、すなわち検索テーブルからのエントリの読み出しが一巡したことを検出すると、判定完了信号を判定情報とともに結合部４５へ出力するようにしてもよい。
上述した処理において、ステップＳ７にて、適合判定部４３1は、ルール読出部４２から入力したエントリ番号を優先度変数に保持し、またルール読出部４２から入力した判定情報を中間結果として保持することも可能である。
一方、適合判定部４３1は、ルール数計数値が「ｍ」未満であることを検出した場合、入力された解析結果情報が検索テーブルの全ての転送条件情報と比較されていないため、処理をステップＳ２へ進める。
【００８６】
上述したように、ルール読出部４２は、クロック毎に、直前のクロックにおいて、読み出したエントリの次のエントリを、検索テーブルから順次読み出し、各適合判定部に分配する。
このため、適合判定部においては、エントリ数カウンタがルール数計数値「ｍ」未満であったために、ステップＳ８から次のクロックでステップＳ２に移行した場合、前回のステップＳ２で入力したエントリの次のエントリを入力することになる。
このように、適合判定部各々が、クロック毎にステップＳ２からステップＳ８を繰り返すことにより、エントリ１個につき１クロックで次々と適合判定される。
このとき、エントリ数カウンタが「１」づつ進み、エントリ数カウンタがルール数計数値「ｍ」に達した時点で、テーブルの全エントリに対して、適合判定を行ったことになり、判定が完了する。
【００８７】
後の処理は、すでに述べた適合判定部４３1の処理と同様であるため、説明を省略する。
また、適合判定部４３2は、解析結果情報を第２エントリのエントリから開始し、第ｍエントリの転送条件情報を用いた適合検出処理の後、第１エントリのエントリを用いた適合検出処理を行い、検索テーブルの全エントリと解析結果情報との適合検出の処理を終了する。
すなわち、各適合判定部は、解析結果情報が入力されるタイミングで、ルール読取部４２が検索テーブルから読み込んだエントリから、この解析結果情報との適合検出処理を開始する。
【００８８】
＜第２の実施形態＞
第２の実施形態による通信処理装置は、第１の実施形態による通信処理装置の構成と同様であり、以下、第１の実施形態と異なる点のみを説明する。
図２の記憶部４１に記憶されている検索テーブルの構成が、図６に示すように、エントリ番号に対応させて、エントリ（転送条件情報）及び優先度が決定されている。
これにより、ルール読出部４２は、記憶部４１の検索テーブルから、エントリ番号の順番に、クロックに同期させて、各適合判定部（４３1〜４３n）に対して、エントリ番号，ルール及び優先度を出力する。
検索部４０における適合処理は、図５のフローチャートで説明した動作と同様のため、説明を省略する。
異なる点は、ステップＳ４における優先度の比較を、エントリ番号でなく優先度の数値自体で行う点である。
【００８９】
＜第３の実施形態＞
第３の実施形態による通信処理装置の構成は、第１及び第２の実施形態による通信処理装置と同様である。
第１及び第２の実施形態と異なる点は、記憶部４１に複数の検索テーブル、例えば、図７に示すように、検索テーブルＡ（奇数のエントリ番号の転送条件情報）及び検索テーブルＢ（偶数のエントリ番号の転送条件情報）を有し、かつ、各適合判定部内において、図８に示すように、検索テーブルの数に対応した適合を判定する比較部が複数、例えば１００Ａ及び１００Ｂが設けられてる点である。
検索テーブルと上記比較部とは対応、すなわち、各比較部が使用するエントリが設定されている検索テーブルが対応しており、図７及び図８とにおいて、検索テーブルＡと比較部１００Ａとが対応し、検索テーブルＢと比較部１００Ｂとが対応している。
【００９０】
ルール読出部４２は、エントリ番号と、記憶部４１に記憶されている検索テーブルＡ及び検索テーブルＢ各々から読み出したエントリの情報（転送条件情報及び判定情報）とを、全ての適合判定部に対して出力する。ルール読出部４２にはカウンタがあり、このカウンタをクロック毎にインクリメントすることにより、エントリ番号を生成し、記憶部４１における検索テーブル読み出しのためのアドレスとしている。すなわち、上記検索テーブルには、エントリ番号に対応するアドレスに各エントリが記憶されている。
そして、各適合判定部において、パーサ部３０から解析結果情報が検索部４０に入力される。
【００９１】
比較部１００Ａ及び１００Ｂは、第１及び第２の実施形態の適合判定部で述べたように、１つの解析結果情報の適合判定処理において、内部にいままで適合したエントリの中で最も優先度の高いエントリ番号（またはエントリ番号及び優先度）を記憶している。
また、比較部１００Ａは、解析結果情報記憶部１０２に記憶されている解析結果情報と、検索テーブルＡから読み出した転送条件情報とを比較し、この転送条件情報に対して解析結果情報が適合した場合、新たに適合したエントリの優先度と、記憶されている優先度とを比較し、優先度の高い方のエントリ番号（またはエントリ番号及び優先度）を記憶する。
同様に、比較部１００Ｂは、解析結果情報記憶部１０２に記憶されている解析結果情報と、検索テーブルＢから読み出した転送条件情報とを比較し、転送条件情報に対して解析結果情報が適合した場合、新たに適合したエントリの優先度と、記憶されている優先度とを比較し、優先度の高い方のエントリ番号（またはエントリ番号及び優先度）を記憶する。
【００９２】
エントリ数カウンタ１０４は、第１及び第２の実施形態において述べたように、ルール読出部４２が各適合判定部にエントリの情報を入力するタイミングにてインクリメントを行う。
また、エントリ数カウンタ１０４は、第１及び第２の実施形態におけるエントリ数カウンタと同様に、解析結果情報記憶部１０２に対して、解析結果情報が書き込まれたタイミングにて「１」に初期化される。
比較部１００Ａ及び１００Ｂは、常に記憶されているエントリ番号（またはエントリ番号及び優先度）を検出結果選択部１０３に出力している。
【００９３】
エントリ数カウンタ１０４は、自身の計数値が設定された数値以上となるか否かの検出を行い、設定された数値以上となったことを検出した際、制御信号を検出結果選択部１０３に対して出力する。
上記設定された数値は、検索テーブルＡ及び検索テーブルＢに設定されているエントリの数に対応しており、検索テーブルＡ，Ｂ各々に、エントリがｍ個ずつ設定されていれば、「ｍ」である。
検出結果選択部１０３は、エントリ数カウンタ１０４から、上記制御信号が入力されると、比較部１００Ａ及び１００Ｂが出力しているエントリ番号から、いずれか優先度の高いエントリ番号を結合部４５に対して出力する。
他の動作については、第１及び第２の実施形態と同様のため、説明を省略する。
【００９４】
＜第４の実施形態＞
第４の実施形態による通信処理装置の構成は、第１及び第２の実施形態による通信処理装置、または第３の実施形態による通信処理装置と同様である。
以下、第４の実施形態による通信処理装置が、第１及び第２の実施形態による通信処理装置、または第３の実施形態による通信処理装置と異なる点を説明する。
記憶部４１の検索テーブルには、図９に示すように、各エントリ番号に対応して、転送条件情報（エントリ），優先度，判定情報（転送を許可するか否かの結果情報）が記述されている。また、有効フラグテーブルには、各エントリ番号に対応して、エントリが有効化否かを示す有効フラグが記述されている。この有効フラグは、例えば、エントリが有効で有る場合、「ＯＮ」が設定されており、書き替え途中及び消去中などで、エントリが有効でない場合、「ＯＦＦ」が設定されている。
【００９５】
ルール読出部４２は、エントリ番号と、記憶部４１の検索テーブルから、記述された順に読み出した転送条件情報，優先度及び判定情報と、有効フラグテーブルから読み出した上記エントリに対応する有効フラグとを、適合判定部４３1〜４３nの全てに対して出力する。
すなわち、第４の実施形態による通信処理装置の動作として、図５の第１から第３の実施形態による通信処理装置の動作を示すフローチャートに対して、図１０に示すように、ステップＳ２とステップＳ３との間に、有効フラグをチェックする処理のステップＳ９が挿入されている。
【００９６】
このステップＳ９において、各適合判定部４３1〜４３n（第１及び第２の実施形態）またはその内部にある比較部（第３の実施形態）は、有効フラグをチェックすることにより、そのエントリ番号のルールが有効化否かの検出を行い、有効フラグが「ＯＮ」であることを検出した場合、そのルールが有効であるため、解析結果情報との適合検出処理を行う。
一方、各適合判定部４３1〜４３n（第１及び第２の実施形態）またはその内部にある比較部（第３の実施形態）は、有効フラグが「ＯＦＦ」であることを検出した場合、そのルールが有効でない（無効で）あるため、解析結果情報との適合検出処理を行わない。
【００９７】
また、第４の実施形態においては、検索テーブルに判定情報が記述され、各適合判定部４３1〜４３n（第１及び第２の実施形態）またはその内部にある比較部（第３の実施形態）は、適合処理の結果として、エントリ番号に替えて判定情報を出力する。
この、判定情報を加えた第４の実施形態における検索テーブルを、第１〜第３の実施形態の記憶部４１の検索テーブルとし、第１及び第２の実施形態における各適合判定部４３1〜４３nまたは第３の実施形態における適合判定部内の比較部（第３の実施形態）の適合検出の結果を、エントリ番号に替え、判定情報とするようにしても良い。
ここで、エントリ番号が優先度を示しているため、優先度の検出のためには、各適合判定部はエントリ番号とこのエントリ番号に対応した判定情報を記憶し、優先度比較を行い優先度の高いものに順次置き換えていき、最終的に、最も優先度の高い判定情報を出力させる。
【００９８】
しかしながら、検索テーブルからエントリ順に読み出されているため、適合判定部が検索テーブルにおける最後のエントリか終了した後、検索テーブルの最初のエントリに戻ったことを検出可能とすれば、適合判定部はエントリ番号を記憶する必要は無くなる。例えば、ルール読出部４２が検索テーブルの最初のエントリ番号を読み出した際に、各適合判定部に通知するようにする。
また、複数のエントリにて適合させないように各エントリを設定すれば、優先度を比較する必要が無いため、適合判定部がエントリ番号を記憶する必要がない。
【００９９】
上述した「適合判定部はエントリ番号を記憶する必要は無くなる」ことについての理由として、エントリ番号が大きいほど優先度が高いという例においては、エントリ番号順に判定したとき、後に適合と判定されたエントリほど優先度が高いことが判るので、適合と判定された時点で、優先度比較なしに、判定情報を更新すればよいことになる。すなわち、エントリ番号を記憶しておく必要はないこととなる。
ただし、エントリ順に判定を進めていくとき、ルール読み出し部が最初のエントリに戻って読み出すタイミングが発生する。このタイミング以前に適合と判定されたエントリの優先度は、それ以後に適合と判定されたエントリの優先度よりも高いため、その時点で適合と判定されたエントリがあれば以後は判定情報を更新せず保持し、適合と判定されたエントリがなければ、後に適合と判定されたエントリほど優先度が高いとして、適合と判定されたエントリの判定情報に更新する。
【０１００】
＜第５の実施形態＞
第５の実施形態の構成としては、例えば、図１１に示すように、記憶部４１の検索テーブルに対して編集処理、すなわちルール（転送条件情報）の追加，削除及び変更、または優先度の変更を行う検索テーブル管理部４６が設けられている。第５の実施形態による通信処理装置は、構成及び動作ともに、第４の実施形態による通信処理装置のいずれかと同様である。以下、第５の実施形態が他の第４の実施形態と異なる検索テーブル管理部４６に関連する構成及び動作のみを説明する。
【０１０１】
検索テーブル管理部４６は、利用者が上記検査テーブルの書き換え命令を入力することにより、すなわち、図１２に示すように、検索テーブルのエントリ番号が第ｋエントリの転送条件情報を変更しようとする場合、有効フラグテーブルにおける第ｋエントリの有効フラグを「ＯＮ」から「ＯＦＦ」に変更する。
そして、検索テーブル管理部４６は、検索テーブルにおける第ｋエントリの転送条件情報または優先度の変更を行う。
これにより、検索部４０が行う解析結果情報とルールとの適合判定処理において、編集されている途中のルールが適合判定部に読み込まれているとしても、適合判定部が有効フラグが「ＯＦＦ」となっているエントリに対しては適合検出処理を行わない。
【０１０２】
すなわち、適合判定部は、第４の実施形態でも同様であるが、有効フラグが「ＯＦＦ」となっているルールに対しては、適合判定処理を行わず、無条件に不適合（一致しない）との検出結果を出力する。
そして、検索テーブル管理部４６は、記憶部４１の検索テーブルにおける第ｋエントリのルールに対する編集処理が終了したことを検出すると、有効フラグテーブルにおけるこのエントリ番号、すなわち第ｋエントリの有効フラグを「ＯＦＦ」から「ＯＮ」に変更して、有効フラグに対する操作を終了する。
したがって、第５の実施形態の通信処理装置は、有効判定フラグによりルールの使用を制限することが可能となるため、装置を停止させて検索テーブルの編集を行う必要がなくなり、検索テーブルにおける転送条件情報に対する編集処理の自由度を、従来例に比して向上させることができる。
【０１０３】
＜第６の実施形態＞
次に、第６の実施形態による通信処理装置を説明するが、構成及び動作は第５の実施形態による通信処理装置と同様であり、第５の実施形態と異なる部分のみを説明する。
また、記憶部４１に有効フラグテーブルが無く、検索テーブルにおけるルール（及び優先度）の編集処理を行う場合、編集途中のルール（及び優先度）を読み込むことによる誤検出を防止する構成として、第５の実施形態の通信処理回路２の図１におけるメモリコントローラ部１７とパーサ部３０との間にフレーム情報転送制御部２００を設ける構成とする。図１３は、第６の実施形態による上記フレーム情報転送制御部２００の構成例を示すブロック図である。
【０１０４】
上述した本実施形態においては、フレーム情報転送制御部２００がフレーム情報ＦＩＦＯバッファ２０１及びフレーム情報転送スイッチ２０２が設けられている。
上記フレーム情報ＦＩＦＯバッファ２０１は、パーサ部３０から入力されるフレーム情報（ハンドル情報が付加されている）を一旦記憶し、フレーム情報転送スイッチ２０２に対して、先に入力されたものから順次供給する記憶部である。
【０１０５】
利用者から検索テーブルのルールに対する編集要求、例えば書き換え命令が入力された際、検索テーブル管理部４６は、この書き換え命令の入力を検出すると、フレーム情報転送スイッチ２０２を切断するため、フレーム情報転送スイッチ２０２に対して、停止信号を出力する。
そして、フレーム情報転送スイッチ２０２は、上記停止信号の入力を検出すると、フレーム情報ＦＩＦＯバッファ２０１から、パーサ部３０に対して現在転送中のフレーム情報の転送が終了した後、次のフレーム情報の読み込みを停止し、次段のパーサ部３０に対するフレーム情報の出力を停止、すなわち、フレーム情報ＦＩＦＯバッファ２０１によるパーサ部３０に対するフレーム情報の供給パスを切断する。
これにより、フレーム情報ＦＩＦＯバッファ２０１は、メモリコントローラ部１７から出力されるフレーム情報を蓄積する。
また、フレーム情報転送スイッチ２０２は、上記切断処理が終了すると、検索テーブル管理部４６に対して、応答信号を出力する。
【０１０６】
次に、検索テーブル管理部４６は、検索部４０の各適合判定部に記憶されている解析結果情報の適合検出処理が終了するタイミングの検出を行う。
そして、検索テーブル管理部４６は、フレーム情報転送スイッチ２０２からの応答信号を検出し、かつ検索部４０内の全ての適合判定部における適合検出処理が終了したことを検出すると、ルール読出部４２，適合判定部４３1〜４３n及び適合判定部選択部４４の動作を停止させ、記憶部４１の検索テーブルに対する編集処理を行う。
【０１０７】
次に、検索テーブル管理部４６は、記憶部４１における検索テーブルの編集処理が終了すると、ルール読出部４２，適合判定部４３1〜４３n及び適合判定部選択部４４に動作を開始させ、フレーム情報転送スイッチ２０２に対して接続要求を出力する。
そして、フレーム情報転送スイッチ２０２は、フレーム情報ＦＩＦＯバッファ２０１から出力される解析結果情報を、パーサ部３０に対して出力する。
【０１０８】
これにより、検索部４０は、ルール読出部４２により、次のクロックのタイミングで読み込んだ転送条件情報から、同様のタイミングにて読み込まれた解析結果情報の適合検出処理を開始する。
したがって、検索部４０の各適合判定部は、順次、編集終了後の検索テーブルの転送条件情報が供給されるので、この新たに読み込まれた転送条件情報を用いて、適合検出処理を行うこととなる。すなわち、適合判定部内部に保持されている編集処理前の転送条件情報は、順次、新たな転送条件情報に書き替えられるため、適合検出処理に用いられることはない。
【０１０９】
上述した構成とすることにより、記憶部４１の検索テーブルの編集処理を行う際、パーサ部３０から検索部４０への解析結果情報の供給を停止し、一旦、検索部４０に転送された解析結果集合全てに対しての適合検出処理を終了した後に、検索テーブルの編集処理を行うことができる。
これにより、本実施形態においては、検索テーブルの編集中に変更過程の中途半端な記述の転送条件情報を用いて、解析結果情報の適合検出処理を行うことが無くなり、第５の実施形態における有効フラグを用いずとも、検索テーブルにおける転送条件情報の編集処理の自由度を向上させることができる。
【０１１０】
＜第７の実施形態＞
次に、図１４を用いて、第７の実施形態による検索テーブルを記憶する記憶部４１の構成を説明する。図１４は、記憶部４１の構成例を説明する概念図である。
第７の実施形態による記憶部４１は、それぞれ読み出し及び書き込み処理が可能な第１ポート及び第２のポートを有するデュアルポートメモリが用いられている。このデュアルポートメモリの構成は、第６の実施形態にも用いることはできるが、有効フラグを用いた第４及び第５の実施形態の構成に用いると、より有効に使用することができる。
【０１１１】
このデュアルポートメモリにおいては、第１のポートに端子として、読出／書込の選択，アドレス，書き込みデータ，読み出しデータの各端子が設けられており、また、第２のポートとして、アドレスとエントリ番号及び転送条件情報，判定情報を出力する端子が設けられ、例えば、図１１において、第１のポートが検索テーブル管理部４６に接続され、第２のポートがルール読出部４２に接続されている。
【０１１２】
これにより、検索テーブル管理部４６が記憶部４１の検索テーブルに対する編集処理をしている間であっても、検索テーブル管理部４６が有効フラグにおいて、編集処理対象の転送条件情報に対応するエントリ番号の有効フラグを立てることにより、ルール読出部４２は検索テーブルの各エントリをエントリ番号順に有効フラグとともに読み出し、各適合判定部に対して供給することができる。
すなわち、上述した本実施形態の構成を、第４及び第５の実施形態に対して用いることにより、記憶部４１の検索テーブルからのエントリの読み出し処理と、検索テーブルにおける転送条件情報の編集処理を並行して行うことができ、通信処理装置の動作を停止させずに、転送条件情報の編集処理が行え、検索テーブルの編集処理によって、フレームのスループットを低下させることがない。
【０１１３】
＜第８の実施形態＞
次に、図１５を用いて、第８の実施形態による検索テーブルを記憶する記憶部４１の構成を説明する。図１５は、記憶部４１の構成例を説明する概念図である。
第８の実施形態による記憶部４１は、読み出し及び書き込み処理が可能なポートが１つのシングルポートメモリ４１aが用いられている。
ここで、アクセス切替部４１ｂが、検索テーブル管理部４６によるアクセス制御信号（アクセス端子に入力される）により、検索テーブル管理部４６からのアクセスに対応するか、またはルール読出部４２からのアクセスに対応するかを切り替えている。
【０１１４】
そして、検索テーブル管理部４６がアクセス切替部４１ｂに対し、自身からのシングルポートメモリ４１ａに対するアクセスを有効とするように、アクセス制御信号を出力することにより、アクセス切替部４１ｂは、検索テーブル管理部４６に接続された読出／書込の選択，アドレス，書き込みデータ，読み出しデータの各端子と、シングルポートメモリの各々対応する端子に接続する。
一方、検索テーブル管理部４６がアクセス切替部４１ｂに対し、ルール読出部４２からのシングルポートメモリ４１ａにアクセスを有効とするように、アクセス制御信号を出力することにより、アクセス切替部４１ｂは、検索テーブル管理部４６に接続されたアドレスとエントリ番号及び転送条件情報，判定情報を出力する端子を、シングルポートメモリの各々対応する端子、例えば、アドレス端子，読み出しデータの端子に接続する。
【０１１５】
この図１５のシングルポートメモリを用いた記憶部４１の構成は、第４及び第５の実施形態にも用いることはできるが、第４及び第５の実施形態のように、書き込みと読み出しを並行して行うことはできないため、機能的に有効に用いることはできない。
しかしながら、有効フラグを用いない第６の実施形態の構成に用いると、デュアルポートメモリを用いるのに比較してコストを低下させることができる。
【０１１６】
＜第９の実施形態＞
検索部４０の構成として、図２に示すように複数の適合判定部を並列に並べて、複数のフレームヘッダの適合判定を行うだけでなく、図１６に示す第９の実施形態のように、適合判定部を並列に並べたブロック、すなわち判定ブロックを直列に複数接続した構成としてもよい。この図１６において、図２と同一の符号を付した構成は、第１の実施形態に記載した構成と同様の動作を行う。
図１６に示す実施形態においては、各判定ブロックは、図２の構成と同様であり、例えば、判定ブロックＡ，Ｂ，Ｃ各々において、記憶部４１Ａ，Ｂ，Ｃが図２に示す記憶部４１と同様の機能であり、ルール読出部４２Ａ，４２Ｂ，４２Ｃが図２に示すルール読出部４２と同様の機能であり、適合判定部４３1Ａ〜４３nＡ，４３1Ｂ〜４３nＢ，４３1Ｃ〜４３nＣが図２に示す適合判定部４３1〜４３nと同様の機能である。
【０１１７】
また、判定ブロックの各適合判定部は、他の判定ブロックの対応する適合判定部と直列に接続されている。
すなわち、適合判定部４３1Ａの解析結果情報を入力する入力端子は、適合判定部選択部４４の適合判定部４３1Ａに対応する出力端子へ接続されている。この構成は、図２に示す適合判定部選択部４４と適合判定部４３1〜４３nとの接続と同様である。
適合判定部４３1Ａの判定情報を出力する出力端子は、適合判定部４３1Ｂの適合検出処理の対象となる処理対象情報（図２における解析結果情報に対応）を入力する入力端子に接続されている。
【０１１８】
同様に、適合判定部４３1Ｂの判定情報を出力する出力端子は、適合判定部４３1Ｃの適合検出処理の対象となる処理対象情報を入力する入力端子に接続されている。
また、適合判定部４３1Ｃの判定情報を出力する出力端子は、結合部４５の適合判定部４３1Ｃに対応した入力端子に接続されている。この構成は、図２に示す適合判定部４３1〜４３nと、結合部４５との接続と同様である。
上述したように、第９の実施形態は、図２の検索テーブルを複数に分割、例えば、適合処理の分割したエントリ群を各ブロックの検索テーブルに分配し、直列に接続された適合判定部により、フレームヘッダの適合検出処理をパイプライン処理として行う。
【０１１９】
ここで、判定ブロックの検索の組合せとしては、異なる種類の検索の組合せでも、また同一種類の検索の組合せのいずれでもかまわない。
異なる種類の検索の組合せとして、例えば、ＮＡＴ／ＮＡＰＴ検索（エントリ番号１〜２５６）→経路検索（エントリ番号１〜２５６）→フィルタ・分類検索（エントリ番号１〜２５６）の組合せがある。
また、同一種類の検索の組合せとして、ＮＡＴ／ＮＡＰＴ検索（エントリ番号１〜２５６）→経路検索（エントリ番号１〜２５６）→フィルタ・分類検索（エントリ番号１〜２５６）→フィルタ・分類検索（エントリ番号２５７〜６１２）の組合せも可能である。
すなわち、各判定ブロックにおいて、時間Ｔ以内で判定ブロックに対応する検索テーブルの全てのエントリに対する比較が完了する必要がある。時間Ｔ以内で完了しない判定ブロックがあると、その判定ブロックにおいて、適合判定部が検索処理中に次のフレームの入力が行われてしまい、検索できずに廃棄されるフレームが発生する。
これを回避するため、判定ブロックのなかで最も時間がかかる判定ブロックの検索の時間Ｔmaxを基準に各判定ブロックの並列度を設定する必要がある。
【０１２０】
そのため、ＮＡＴ／ＮＡＰＴ検索及び経路検索が２５６個のエントリであり、フィルタ・分類検索が５１２個のエントリとすると、ＮＡＴ／ＮＡＰＴ検索（エントリ番号１〜２５６）→経路検索（エントリ番号１〜２５６）→フィルタ・分類検索（エントリ番号１〜５１２）のパイプライン構成となる。この場合、フィルタ・分類検索の判定ブロックによって並列度が決定されてしまうため、ＮＡＴ／ＮＡＰＴ検索及び経路検索の判定ブロックは無駄に並列度を増加させることとなり、回路規模を増大させることとなる。
したがって、ＮＡＴ／ＮＡＰＴ検索（エントリ番号１〜２５６）→経路検索（エントリ番号１〜２５６）→フィルタ・分類検索（エントリ番号１〜２５６）→フィルタ・分類検索（エントリ番号２５７〜５１２）と、各判定ブロックの比較するエントリ数を統一したパイプライン構成とすることで、各判定ブロックの検索の時間を同一とすることとなり、上述したような、回路規模を無駄に増大させることが無くなる。
【０１２１】
以下の説明としては、異なる種類の検索処理を行う判定ブロックをパイプライン接続した構成例を説明する。
ここで、ブロックＡにおいては、ＮＡＴ／ＮＡＰＴの適合検出（検索）処理が行われており、解析結果情報として、ＩＰアドレス（ＷＡＮの場合グローバルアドレス、ＬＡＮの場合ローカルアドレス），プロトコル（ＮＡＰＴのみ），ポート番号（ＷＡＮの場合グローバルポート番号、ＬＡＮの場合ローカルポート番号）、受信論理ＩＦ番号、受信物理ＩＦ番号（ＷＡＮポート，ＬＡＮポート，ＣＰＵＩ／Ｆ）、送信元ＭＡＣアドレス、Ｌ３プロトコル，送信元ＩＰｖ４／ＩＰｖ６アドレス，宛先ＩＰｖ４／ＩＰｖ６アドレス，ＶＬＡＮタグ等が入力され、記憶部４１Ａに記憶されている検索テーブルの転送条件情報（入力される解析結果情報と判定情報との対応を示す）との適合判定処理の結果として、以下の判定情報が、次段のブロックＢにおける処理対象情報として出力される。ブロックＡにおける判定情報としては、ＮＡＴ／ＮＡＰＴ方法（ＮＡＴ，ＮＡＰＴ，また全てのルールに対して不適合の場合付け替えなし）、付け替え後（変更後）のＩＰｖ４アドレス及びポート番号及び適合が検出された転送条件情報のエントリ番号、検索ミスヒット有無情報（適合検出により適合したか否かを示す情報）、送信論理インターフェース番号等がある。
【０１２２】
また、ブロックＢにおいては、フレームを転送する宛先への経路の適合検出（検索）処理が行われており、処理対象情報（解析結果情報）として、前段の判定ブロックＡの判定情報、及び受信論理Ｉ／Ｆ（ルールにおいて複数の受信論理Ｉ／Ｆを指定可），Ｌ３プロトコル（ルールにおいて、Ｐｖ４またはＩＰｖ６のいずれかを指定可），送信元ＩＰｖ４／ＩＰｖ６アドレス，宛先ＩＰｖ４／ＩＰｖ６アドレス等が入力され、記憶部４１Ｂに記憶されている検索テーブルの転送条件情報（入力される解析結果情報と判定情報との対応を示す）との適合判定処理の結果として、以下の判定情報が、次段のブロックＣにおける処理対象情報として出力される。ブロックＢにおける判定情報（経路検索結果）としては、送信時のＮＡＴ／ＮＡＰＴの有無，ＭＴＵ値，宛先ＭＡＣアドレス，送信論理Ｉ／Ｆ番号（Ｉ／Ｆ別のフラグ），検索ミスヒット有無情報（適合検出により適合したか否かを示す情報）等がある。
【０１２３】
また、ブロックＣにおいては、第１〜第８の実施形態で述べたようなフレームの転送の可否を判定する適合検出処理（フィルタ処理）と、通信制御を行う際の分類クラスへの振り分けである分類処理とが行われており、処理対象情報（解析結果情報）として、前段の判定ブロックＡ及び判定ブロックＢにおける判定情報、及びＣＰＵ転送，受信論理Ｉ／Ｆ番号，送信論理Ｉ／Ｆ番号，Ｌ３プロトコル，送信元ＩＰｖ４／ＩＰｖ６アドレス，宛先ＩＰｖ４／ＩＰｖ６アドレス，送信元ポートアドレス，宛先ポートアドレス，ＶＬＡＮタグ等が入力され、記憶部４１Ｂに記憶されている検索テーブルの転送条件情報（入力される解析結果情報と判定情報との対応を示す）との適合判定処理の結果として、破棄（判定として転送を否），通過（判定として転送を可）及びＣＰＵ転送の選択（判定として転送を可）のいずれかと、処理対象情報とにより判定された品質クラス（キューを決める値、Primary/Secondaryの両方），リマーク値（変更後のTOS/TC値、Primary/Secondaryの両方）及びエントリ番号とが判定情報として、次段の結合部４５に出力される。
【０１２４】
動作の例として、ブロックＡの適合判定部４３1Ａ，ブロックＢの適合判定部４３1Ｂ及びブロックＣの適合判定部４３1Ｃからなる直列接続におけるパイプライン処理を説明する。
パーサ部３０は、フレームが入力されるごとに、クロックに同期して、解析結果情報を検索部に送信する。ここで、適合判定部４３1Ａ，４３1Ｂ，４３1Ｃが直列に接続されたパイプライン処理に注目して説明されているが、他の適合判定部が直列に接続されたパイプライン処理も同様な動作を行う。
ここで、検索部４０の動作が開始され、パーサ部３０から解析結果情報が入力されたとする。
【０１２５】
また、記憶部４１Ａ，４１Ｂ，４１Ｃの各検索テーブルには、第１エントリから第ｍエントリのｍ個の転送条件情報が設定されているとする。さらに、適合判定部４３1Ａ〜４３nＡ，４３1Ｂ〜４３nＢ，４３1Ｃ〜４３nＣは記憶している優先度を「０」に初期化する。本実施形態では、エントリ番号が優先度となっており、１→２→…→ｍの順に優先度が高くなるとする。
検索部４０の動作開始時において、適合判定部選択部４４は、内部の適合判定部カウンタを「１」に初期設定する。上記適合判定カウンタは、第１の実施形態に記載してあるように、解析結果情報が入力される毎にインクリメントし、入力された解析結果情報の数を計数し、解析結果情報を出力する適合判定部を指定するものであり、例えば、「１」のとき適合判定部４３1Ａ，「２」のとき適合判定部４３2Ａ，…，「ｎ」のとき適合判定部４３nＡを指定する。
【０１２６】
適合判定部選択部４４は、第１の実施形態と同様に、クロックの入力されたタイミングにて、パーサ部３０から解析結果情報を入力し、上記適合判定カウンタが「１」であるため、この解析結果情報を適合判定部４３1へ出力する。このとき、適合判定部カウンタは、上記解析結果情報が入力されたことで計数値をインクリメントし、計数値「２」とする。
そして、適合判定部４３1Ａは、入力される解析結果情報を保持し、一時的に優先度を保持する優先度変数を初期化し、解析結果情報に対して判定を終えたエントリ数を計数するエントリ数カウンタを「０」に初期化する。
このとき、適合判定部４３1Ａ以外、すなわち適合判定部４３2Ａ〜４３nＡは解析結果情報が入力されないため、ルール読出部４２Ａから供給される第１エントリの転送条件情報を入力する以外の動作を行わない。
また、ルール読出部４２Ａは、上記クロックのタイミングにて、記憶部４１Ａの検索テーブルから第１エントリの転送条件情報を読み出し、適合判定部４３1Ａ〜４３nＡの全てに対し、エントリ番号とともに出力する。
これ以降、ブロックＡは、第１の実施形態における検索部４０の適合判定部４３1〜４３n，ルール読出部４２と、同様な処理を行うため、説明を省略する。
【０１２７】
そして、適合判定処理を繰り返し行った結果、第１の実施形態における適合判定部４３1と同様に、適合判定部４３1Ａは、エントリ数カウンタのルール計数値が「ｍ」に達したか否か、すなわち、検索テーブル全てのエントリが終了したか否かの検出を行う。
このとき、適合判定部４３1Ａは、ルール数計数値が「ｍ」に達したことを検出した場合、入力された解析結果情報を検索テーブルの全てのエントリと比較したため、判定情報としてブロックＡにおける最も高い優先度として記憶されているエントリ番号及び／または判定情報と、エントリ数カウンタの出力する判定完了信号と、解析結果情報とを、次段のブロックＢにおける適合判定部４３1Ｂへ出力する。
【０１２８】
次に、適合判定部４３1Ｂは、適合判定部４３1Ａからの判定完了信号が出力された後のクロックにより、適合判定部４３1Ａの出力する解析結果情報，エントリ番号及び／または判定情報を入力し、この判定情報及び解析結果情報の一部または全てを処理対象情報として用いる。
そして、検索テーブルのルール数がブロックＡと同様に「ｍ」であるとすると、適合判定部４３1Ｂは、適合判定部４３1Ａと同様に、ルール読出部４２Ｂが読み出すルールと、上記処理対象情報との適合検出処理を行い、エントリ数カウンタのルール計数値が「ｍ」に達した（一致する）か否か、すなわち、検索テーブル全てのルールが終了したか否かの検出を行う。
【０１２９】
そして、適合判定部４３1Ｂは、ルール数計数値が「ｍ」に達したことを検出した場合、入力された処理対象情報を検索テーブルの全てのエントリと比較したため、判定情報としてブロックＢにおける最も高い優先度として記憶されているエントリ番号及び／または判定情報と、エントリ数カウンタの出力する判定完了信号とに、ブロックＡの判定結果を付加して、解析結果情報とともに、次段のブロックＣにおける適合判定部４３1Ｃへ出力する。
【０１３０】
次に、適合判定部４３1Ｃは、適合判定部４３1Ｂからの判定完了信号が出力された後のクロックにより、適合判定部４３1Ｂの出力する解析結果情報，ブロックＡ及びブロックＢの双方のエントリ番号及び／または判定情報を入力し、解析結果情報及び判定情報（ブロックＡ及びＢ）の判定情報の一部または全てを、処理対象情報、すなわち新たな解析結果情報とする。
そして、検索テーブルのルール数がブロックＢと同様に「ｍ」であるとすると、適合判定部４３1Ｃは、適合判定部４３1Ｂと同様に、ルール読出部４２Ｃが読み出す転送条件情報と、上記処理対象情報との適合検出処理を行い、エントリ数カウンタのルール計数値が「ｍ」に達したか否か、すなわち、検索テーブル全てのエントリが終了したか否かの検出を行う。
【０１３１】
そして、適合判定部４３1Ｃは、ルール数計数値が「ｍ」に達したことを検出した場合、入力された処理対象情報を検索テーブルの全てのエントリと比較したため、判定情報としてブロックＣにおける最も高い優先度として記憶されているエントリ番号及び／または判定情報と、エントリ数カウンタの出力する判定完了信号とに、ブロックＡ及びＢにおける判定結果を付加して結合部４５へ出力する。
同様に、適合判定部４３2Ａ，４３2Ｂ，４３2Ｃ、適合判定部４３3Ａ，４３3Ｂ，４３3Ｃ、…、適合判定部４３nＡ，４３nＢ，４３nＣ各々の組合せは、パーサ部３０のバッファにフレームデータが連続的に入力されているとすると、１クロックずつずれて、上述した適合判定部４３1Ａ，４３1Ｂ，４３1Ｃの組合せと同様の動作を行う。
【０１３２】
次に、結合部４５は、ブロックＣの各適合判定部から出力される判定結果（すなわちエントリ番号及び／または判定情報とブロックＡ及びＢにおける判定結果との一部もしくは全て）を、第１の実施形態と同様に、判定完了信号が出力された適合判定部の信号をクロックに同期させて、次段のＣＰＵ転送判定部６１へ出力する。
【０１３３】
なお、図１における検索部４０の適合判定部を動作させる機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより適合判定部による並列した適合判定処理の制御を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、ホームページ提供環境（あるいは表示環境）を備えたＷＷＷシステムも含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【０１３４】
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【図面の簡単な説明】
【０１３５】
【図１】本発明の第１の実施形態による通信処理装置の構成例を示すブロック図である。
【図２】図１における検索部４０の構成例を示すブロック図である。
【図３】第１の実施形態における検索部４０の記憶部４１に記憶されている検索テーブルの構成を示す概念図である。
【図４】検索テーブルに記載されたルールの構成を説明する概念図である。
【図５】第１の実施形態における検索部４０の適合検出処理の動作例を説明するフローチャートである。
【図６】第２実施形態における記憶部４１に記憶されている検索テーブルの構成例を示す概念図である。
【図７】第３実施形態における記憶部４１に記憶されている検索テーブルの構成例を示す概念図である。
【図８】第３の実施形態における検索部４０の各適合判定部の構成例を示すブロック図である。
【図９】第４の実施形態ににおける記憶部４１に記憶されている検索テーブルの構成例を示す概念図である。
【図１０】第４の実施形態における検索部４０の適合検出処理の動作例を説明するフローチャートである。
【図１１】第５の実施形態における検索部４０の構成例を示すブロック図である。
【図１２】第５の実施形態における検索テーブルに対するルール変更処理の説明を行う概念図である。
【図１３】第６の実施形態におけるフレーム情報転送制御部２００の構成例を示すブロック図である。
【図１４】第７の実施形態における記憶部４１の構成例を示す概念図である。
【図１５】第８の実施形態における記憶部４１の構成例を示す概念図である。
【図１６】第９の実施形態における検索部４０の構成例を示すブロック図である。
【符号の説明】
【０１３６】
１…通信処理装置
２…通信処理回路
３…ＤＤＲ−ＳＤＲＡＭ
４…ＣＰＵ
４ａ…ドライバ
１１…ＷＡＮ用ＭＡＣＩ／Ｆ
１２…ＬＡＮ用ＭＡＣＩ／Ｆ
１３…ＩＰsec部
１４…書き込みスケジューラ部
１５…ＣＰＵＩ／Ｆ
１６…フレーム生成部
１７…メモリコントローラ部
１８…ハンドル管理部
１９…ＤＤＲ−ＳＤＲＡＭＩ／Ｆ
３０…パーサ部
４０…探索部
４１，４１Ａ，４１Ｂ，４１Ｃ…記憶部
４１ａ…記憶部（シングルポートメモリ）
４１ｂ…アクセス切替部
４２，４２Ａ，４２Ｂ，４２Ｃ…ルール読出部
４３1，４３2，４３3，４３n…適合判定部
４３1Ａ，４３2Ａ，４３3Ａ，４３nＡ…適合判定部
４３1Ｂ，４３2Ｂ，４３3Ｂ，４３nＢ…適合判定部
４３1Ｃ，４３2Ｃ，４３3Ｃ，４３nＣ…適合判定部
４４…適合判定部選択部
４５…結合部
４６…検索テーブル管理部
６１…ＣＰＵ転送判定部
６２…キュー選択部
７０…ＱoＳ部
１００，１１０…物理Ｉ／Ｆ
１００Ａ，１００Ｂ…比較部
１０１Ａ，１０１Ｂ…転送条件情報記憶部
１０２…解析結果情報記憶部
１０３…検出結果選択部
１０４…エントリ数カウンタ
２０１…フレーム情報ＦＩＦＯバッファ
２０２…フレーム情報転送スイッチ
【図１】
2007166513.tif 000003
【図２】
2007166513.tif 000004
【図３】
2007166513.tif 000005
【図４】
2007166513.tif 000006
【図５】
2007166513.tif 000007
【図６】
2007166513.tif 000008
【図７】
2007166513.tif 000009
【図８】
2007166513.tif 000010
【図９】
2007166513.tif 000011
【図１０】
2007166513.tif 000012
【図１１】
2007166513.tif 000013
【図１２】
2007166513.tif 000014
【図１３】
2007166513.tif 000015
【図１４】
2007166513.tif 000016
【図１５】
2007166513.tif 000017
【図１６】
2007166513.tif 000018