JP4263718B2 - 通信処理装置及び通信処理方法 - Google Patents

通信処理装置及び通信処理方法 Download PDF

Info

Publication number
JP4263718B2
JP4263718B2 JP2005363510A JP2005363510A JP4263718B2 JP 4263718 B2 JP4263718 B2 JP 4263718B2 JP 2005363510 A JP2005363510 A JP 2005363510A JP 2005363510 A JP2005363510 A JP 2005363510A JP 4263718 B2 JP4263718 B2 JP 4263718B2
Authority
JP
Japan
Prior art keywords
information
determination
entry
unit
conformity
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.)
Active
Application number
JP2005363510A
Other languages
English (en)
Other versions
JP2007166513A (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.)
NTT Electronics Corp
Nippon Telegraph and Telephone Corp
Original Assignee
NTT Electronics Corp
Nippon Telegraph and Telephone 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 NTT Electronics Corp, Nippon Telegraph and Telephone Corp filed Critical NTT Electronics Corp
Priority to JP2005363510A priority Critical patent/JP4263718B2/ja
Publication of JP2007166513A publication Critical patent/JP2007166513A/ja
Application granted granted Critical
Publication of JP4263718B2 publication Critical patent/JP4263718B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、パケットフィルタリング機能を有し、パケットの転送処理を行うルータなどの通信処理装置及び通信処理方法に関する。
近年、インターネットに代表されるネットワークの利用拡大に伴い、企業及び家庭内にLAN(ローカルエリアネットワーク、以下、内部ネットワーク)を構築し、外部のネットワークにインターネット等を介して接続する形態をとることが多くなってきている。
しかし、内部の端末を、外部ネットワークを接続する際、内部ネットワークのセキュリティの確保が重要な問題となっている。
すなわち、外部ネットワークに自由に接続することが可能であるため、外部から内部ネットワークに対する不正なアクセスにより、個人情報等の機密情報が漏洩し、また、改竄されることが考えられる。
上述した不正なアクセスを防止する方法の1つとして、パケットのフィルタリング処理が用いられている。
上記パケットフィルタリング処理は、ファイアウォールなどに用いられ、保護したいネットワークを不正アクセスから守る有効な方法と考えられている。
すなわち、パケットフィルタリング処理は、パケットを中継するルータなどの通信装置に機能として設けられ、入力されるパケットを全てチェックし、設定されているフィルタリングのルールに基づいて、パケットの通過を許可するか否かを判定するものである。
各ルールには、パケットに関するいくつかの要素を定義し、これらの要素に応じて、パケットがフィルタリング処理される。
ここで、フィルタリング処理の判定に用いられるパケットの要素としては、例えば、パケットの送信元アドレス、送信先アドレス、プロトコル、送信元ポート番号、送信先ポート番号、パケットのペイロードなどがある。
すなわち、ある送信元から送られるパケットの通過を拒否したり、別の送信元から、ある宛先へ送られるパケットの通過を許可の判定を行うことができる。
上記ルールは、パケットのフィルタリング処理部のテーブルに順番に記憶され、パケットが通信装置に到着した際、テーブルに記憶された順に評価のために読み出される。
パケットが通信装置に入力されたとき、このパケットに該当する要素を含む最初のルールが適用され、パケットはそのルールに示されるように処理される。
このパケットフィルタリング処理は、パケット毎にフィルタ規則を適用する為、通信システムとしては比較的負荷の重い処理となる。
このため、よく使用されるルール、すなわちパケットに対応するルールがテーブルにおける順番が後ろにあると、パケットの比較回数が増加し、1つのパケットに対する平均的なパケットフィルタリングの処理時間が長くなる。
このため、テーブル内におけるルールの最適配置を行い、パケットの比較回数を減少させ、遅延時間の短縮を図ることが行われている(例えば、非特許文献1参照)。
「パケットフィルタにおけるルールの最適配置」、http://lc.linux.or.jp/lc2004/slide/CP-01s.pdf(2005年7月24日にアクセスを確認)
ところが、最近は外部ネットワークとの接続の高広帯域化、ネットワークセキュリティ に対する脅威の増加、それに伴うフィルタ規則の高度化、新たな用途に伴うフィルタ規則の動的な変更等の処理を行うため、パケットフィルタに非常に高い性能が要求されている。
同様に、NAT/NAPT検索や経路検索においても、検索の高度化、新たな用途に伴う各検索の規則(ルール)の動的な変更などの処理を行うため、検索処理を行う手段に対しても、非常に高い性能が要求されている。
パケットフィルタリング処理の処理能力によっては、各パケット毎に時系列に処理するため、1つのパケットが終了するまで、次に入力されたパケットの処理が行えず、このため、バッファをオーバーフローすることで、パケット(もしくはフレーム)のラインレートでのスループットを保証することができず、破棄されるパケットが増加し、通信能力自体を低下させる原因となってしまう。
本発明は、このような事情に鑑みてなされたもので、入力されるパケットに対するフィルタリング処理,NAT/NAPT検索処理や経路検索処理を並列に処理することにより、外部ネットワークとの接続の高帯域化を可能とする通信処理装置及び方法を提供することを目的とする。
本発明の通信処理装置は、フレームを受信し、前記フレームから前記フレーム内の所定の位置に記述されている情報または前記情報及び前記フレームを入力したインタフェースの情報を含む解析結果情報を取得し、前記解析結果情報に応じて、前記フレームの加工または前記フレームの転送を行う、通信処理装置であり、解析結果情報に対する条件を示す転送条件情報と、フレームの加工または前記フレームの転送の処理方法を指定する判定情報を、テーブルのエントリとして記憶する記億部と、前記テーブルの各エントリの転送条件情報に基づいて、解析結果情報に対して適合の有無を判定し、適合と判定したエントリの判定情報を出力する、検索部と、を有し、検索部が、解析結果情報と転送条件情報を入力し、前記転送条件情報に基づいて前記解析結果情報に対して適合の有無を判定する複数の適合判定部とクロックに同期し、前記記憶部のテーブルに記憶されている順番に、前記エントリを読み出し、前記複数の適合判定部の各々に供給するルール読み出し部と、前記クロックに同期して入力される解析結果情報を、前記複数の適合判定部の1つに順番に出力する適合判定部選択部と、各適合判定部が、適合判定部毎に異なる解析結果情報を入力し、全適合判定部に同時に入力された同一の転送条件情報に基づいて、適合の有無を判定する、ことを特徴とする。
本発明の通信処理装置は、判定情報に、フレームの通過あるいは破棄を指定するフィルタ判定情報、フレームを品質クラス別に分類する分類判定情報、フレームがIPパケットを含むときの前記IPパケットに対するNAT/NAPT判定情報、前記IPパケットに対する経路判定情報、のうち少なくとも1種類の判定情報を含むことを特徴とする。
本発明の通信処理装置は、適合判定部が、解析結果情報の入力を契機に、テーブルの各エントリについて、前記エントリの転送条件情報に基づいて前記解析結果情報に対する適合有無の判定を開始し、テーブルの全エントリについて前記判定を完了した後、前記判定により適合と判定されたエントリの判定結果及び/または前記エントリを識別するためのエントリ番号を出力する、ことを特徴とする。
本発明の通信処理装置は、エントリ毎に優先度が設定され、前記適合判定部が、解析結果情報の入力を契機に、テーブルの各エントリについて、前記エントリの転送条件情報に基づいて前記解析結果情報に対する適合の有無を判定し、適合と判定されたエントリが複数個検出された場合に、前記エントリのうち最も優先度が高いエントリの、判定情報及び/またはエントリ番号を出力する、ことを特徴とする。
本発明の通信処理装置は、前記エントリ毎に、エントリが有効か否かを示す有効フラグが設定され、前記適合判定部が、有効フラグをチェックしてエントリが有効であれば、解析結果情報に対する適合検出処理を行うことを特徴とする。
本発明の通信処理方法は、フレームを受信し、前記フレームから前記フレーム内の所定の位置に記述されている情報または前記情報及び前記フレームを入力したインタフェースの情報を含む解析結果情報を取得し、前記解析結果情報に応じて、前記フレームの加工または前記フレームの転送処理を行う、通信処理方法であり、解析結果情報に対する条件を示す転送条件情報と、フレームの加工または前記フレームの転送の処理方法を指定する判定情報を、テーブルのエントリとして記憶部に記億させる記憶過程と、検索部が前記テーブルの各エントリの転送条件情報に基づいて、解析結果情報に対して適合の有無を判定し、適合と判定したエントリの判定情報を出力する検索過程と、を有し、前記検索過程において、複数の適合判定部が解析結果情報と転送条件情報を入力し、前記転送条件情報に基づいて前記解析結果情報に対して適合の有無を判定する適合判過程とルール読み出し部がクロックに同期し、前記記憶部のテーブルに記憶されている順番に、前記エントリを読み出し、前記複数の適合判定部の各々に供給するルール読み出し過程と、適合判定部選択部が前記クロックに同期して入力される解析結果情報を、前記複数の適合判定部の1つに順番に出力する適合判定部選択過程と、前記適合判定過程において、各適合判定部が適合判定部毎に異なる解析結果情報を入力し、全適合判定部に同時に入力された同一の転送条件情報に基づいて、適合の有無を判定することを特徴とする。
本発明の通信処理方法は、前記検索過程において、適合判定部が、解析結果情報の入力を契機に、テーブルの各エントリについて、前記エントリの転送条件情報に基づいて前記解析結果情報に対する適合有無の判定を開始し、テーブルの全エントリについて前記判定を完了した後、前記判定により適合と判定されたエントリの判定結果及び/または前記エントリを識別するためのエントリ番号を出力する、ことを特徴とする。
以上説明したように、本発明によれば、上述したように、複数のフレームの転送可否を判定する適合判定部が複数設けられているため、フレーム(パケット)フィルタリング処理を高速化することができ、フレームのラインレートでのスループットを従来に比較して大幅に向上でき、破棄されるフレーム数を減少させ、通信能力を向上させることができる。
また、本発明によれば、動的にルールを変更させる機能を持たせた場合でも、有効フラグのチェックを行うことにより、従来のようにタイミングによっては、書き替え中の不明なルールを用いた判定を行うことが無くなり、ルールの変更により柔軟性を持たせつつ誤判定を防止し、転送可否の判定の精度を向上させることができる。
本発明の通信処理装置は、受信したフレームから、このフレーム内の所定の位置に記述されている情報、またはこの情報及び上記フレームを入力したインタフェースの情報を含む解析結果情報を取得し、この解析結果情報に応じて、フレームの加工またはこのフレームの転送を行う、通信処理装置に関わる。
すなわち、本発明の通信処理装置は、イーサネット(登録商標)フレームのヘッダから、宛先・送信元MACアドレス,VLANタグの有無,VLANタグ有のときのVLAN ID、VLAN優先度、イーサネット(登録商標)タイプを抽出し、さらに、イーサネット(登録商標)タイプがPPPoEセッションステージを示す場合は、イーサネット(登録商標)フレームのヘッダに続くPPPoEヘッダから、PPPoE有の情報として、PPPoEセッションIDを抽出する。
また、イーサネット(登録商標)タイプもしくはPPPoEの上位プロトコルがIPV4またはIPV6を示す場合には、上位プロトコルが上記IPV4またはIPV6のいずれであるかを識別するIPV4/IPV6識別情報を取得し、さらに、イーサネット(登録商標)フレームのヘッダもしくはPPPoEヘッダに続くIPパケットのヘッダから、送信元・宛先IPアドレス、DSCP(IPV4のTOS、IPv6のトラフィッククラス)、上位プロトコル等を抽出する。
さらに、上記IPパケットのヘッダに、IPフラグメントを示す情報が含まれている場合には、上記情報に基づき、フラグメント状態(フラグメント無,先頭/最後尾/中間)を識別するフラグメント状態情報を取得する。
また、上位プロトコルがTCPもしくはUDPである場合には、上記IPパケットのヘッダに続くTCP/UDPヘッダから、送信元・宛先ポート番号を抽出する。ここで、TCPヘッダからは、さらにTCPフラグ(SYN/ACK/FIN/RST等)を抽出する。
一方、プロトコルがICMPである場合には、上記IPパケットのヘッダに続くICMPヘッダから、ICMPタイプ・コードを抽出する。
なお、本発明の通信処理装置には、WAN側ネットワーク接続用の物理インタフェースと、LAN側ネットワーク接続用の物理インタフェースを備えるため、この受信した物理インタフェースを示す情報が受信フレームに付加される。
さらに、本発明の通信処理装置には、IPsecのトンネルモードでのカプセル化を送信フレームに対して実施し、IPsecのトンネルモードでのデカプセル化を受信フレームに対して実施する、IPsec処理を有し、このIPsec処理において、受信フレームに対するIPsecの有無と、IPsecが有のときの受信IPsec SAを識別する受信SA番号、の情報が受信フレームに付加される。
上述したように、本発明の通信処理装置は、受信したフレームの各種ヘッダから抽出した情報、上記受信した物理インタフェースを示す情報、さらにこれらの情報に基づきIPsec等の処理を施した結果得られた情報を、解析結果情報として取得する。
また、本発明の通信処理装置は、受信したフレームの上記解析結果情報に対して、受信論理I/F検索、NAT/NAPT検索、経路検索、フィルタ検索、分類検索等の検索を行う各検索部を備える。この各検索部においては、解析結果情報に含まれる各種情報の全て、または一部(検索によって対象となる情報が異なる)に対して、外部(例えばCPU)から設定された転送条件情報に基づく適合判定のルールに従って、適合判定を行う。
本発明の通信処理装置は、上記転送条件情報を、フレームの加工またはこのフレームの転送の処理方法を指定する判定情報とともに、テーブルのエントリとして記憶している。上記テーブルの各エントリの転送条件情報に基づいて、受信したフレームの解析結果情報に対して、上記転送条件情報との適合の有無を判定し、適合が有ると判定したエントリの判定情報に基づいて、対応するフレームの加工またはこのフレームの転送の処理を行う。
上記転送条件情報に基づく、エントリにおける適合判定のルールの一例を以下に示す。転送条件情報は、解析結果情報に含まれる各判定対象値(例えばフレームから抽出したあて先IPアドレス)に対して、一致/不―致を判定するための一致判定条件値や、一致判定対象値に対してマスクを行うための一致判定マスク値(例えばあて先IPアドレスの上位24ビットのみが比較対象であり下位8ビットをマスクする場合、すなわち、判定対象値の下位8ビットを0として各判定条件値と一致比較する場合、判定マスク値は、プレフィックス長である「24」、またはマスク長である「8」、となる)などである。このように、判定対象値に対して上記判定マスク値を用いてマスク処理を行った後に、一致判定条件値との一致・不―致の判定が行われる。
また、転送条件情報は、解析結果情報中の各判定対象値(例えばあて先ポート番号)に対して、範囲内・範囲外を判定するための範囲判定最小値と範囲判定最大値である。上記判定対象値が対応する範囲判定最小値以上であり、かつ範囲判定最大値以下である場合に一致と判定し、上述した以外の場合、すなわち範囲判定最小値と範囲判定最大値との範囲内にないとことが検出された場合に不―致と判定される。このとき、複数の判定対象値の各々に対して一致・不一致の判定を行う場合には、上記複数の判定対象値全てに対して一致と判定された場合にのみ、適合と判定され、前記以外の場合には、不適合と判定される。
また、本発明の通信処理装置は、受信論理I/F検索、NAT/NAPT検索、経路検索、フィルタ検索、分類検索、等の検索を行う各検索部が、各判定情報を出力する。この各検索部の動作について、下記に簡単に示す。
受信論理I/F検索を行う検索部において、受信論理I/F検索の判定対象値は、受信物理I/F,あて先MACアドレス,送信元MACアドレス,VLANタグ有無,VLANタグ有のときのVLANID,PPPoE有無,PPPoE有のときのPPPoEセッションID,受信IPsec有無,受信IPsec有のときの受信SA番号であり、判定結果は、受信論理I/F番号,NAT/NAPTの有無などである。ここで、受信論理I/F番号とは、VLANやIPsecによって1個の物理I/Fに複数個の論理I/Fを構成可能である場合に、フレームを受信した論理I/Fを識別する番号として用いられる。また、前記でNAT/NAPT有の結果を得たパケットのみが、後述のNAT/NAPT検索(グローバル→ローカル)の対象となる。
また、NAT/NAPT検索を行う検索部において、NAT/NAPT検索(グローバル→ローカル)の判定対象値は、宛先IPアドレスと宛先TCP/UDPポート番号(NAPTのみ)であり、この宛先IPアドレスと宛先TCP/UDPポート番号とに対して、一致判定条件値が転送条件情報として、外部から設定される。これら宛先IPアドレスと宛先TCP/UDPポート番号に対しては、この判定において、すでに述べた一致判定マスク値はなく、判定対象値と一致判定条件値とが完全に一致するか否かによる判定が行われる。判定情報は、付け替え後のあて先IPアドレスと宛先TCP/UDPポート番号(NAPTのみ)である。ここで、NAT/NAPT検索(グローバル→ローカル)の対象となったパケットに対する、経路検索、フィルタ検索、分類検索の各々は、解析結果情報に含まれあて先IPアドレスとあて先TCP/UDPポートではなく、NAT/NAPT検索結果である付け替え後のあて先IPアドレスとあて先TCP/UDPポートを、判定対象値として、適合判定を行う(グローバル→ローカルNAT/NAPTを行うパケットについてはローカルアドレスやポート番号に基づく検索が行われる)。
経路検索の判定対象値は、受信論理I/F番号,送信元IPアドレス,あて先IPアドレスであり、これら受信論理I/F番号,送信元IPアドレス,あて先IPアドレス前記各々に対して、一致判定条件値と一致判定マスク値とが転送条件情報として、外部から設定される。ここで、受信論理I/F番号に対する一致判定マスク値は、受信論理I/F番号を判定条件に加えるか否かを示すフラグであり、このフラグを立てた場合、受信論理I/F番号に対する一致判定条件値との一致・不一致の判定結果によらず、一致として扱うこととなる。
また、送信元IPアドレス,あて先IPアドレスに対する一致判定マスク値は、プレフィックス長であり、IPアドレスの最上位ビットからプレフィックス長までのビットのみについて、一致判定条件値との一致・不―致の判定が行われる。判定情報は、送信I/F番号,宛先MACアドレス,NAT/NAPT有無,などである。ここで、送信論理I/F番号とは、パケットを送信する論理I/Fを識別する番号(受信論理I/Fと送信論理I/Fが同一である場合は番号も共通)である。また、上記判定情報を用いた判定において、NAT/NAPT有の結果を得たパケットのみが、後述のNAT/NAPT検索(ローカル→グローバル)の対象となる。
上述したNAT/NAPT検索(ローカル→グローバル)の判定対象値は、送信元IPアドレスと送信元TCP/UDPポート番号(NAPTのみ)とであり、この送信元IPアドレスと送信元TCP/UDPポート番号に対して、一致判定条件値が転送条件情報として、外部から設定される。これら送信元IPアドレスと送信元TCP/UDPポート番号に対しては、この判定において、すでに述べた一致判定マスク値はなく、判定対象値と一致判定条件値とが完全に一致するか否かによる判定が行われる。判定情報は、付け替え後の送信元IPアドレスと送信元TCP/UDPポート番号(NAPTのみ)である。
フィルタ検索および分類検索の判定対象値は、受信論理I/F番号,送信論理I/F番号,VLAN優先度,IPv4/IPv6識別情報,送信元IPアドレス,あて先IPアドレス,DSCP,フラグメント状態情報,上位プロトコル,送信元ポート番号,あて先ポート番号,TCPフラグ,ICMPタイプ・コードである。これら受信論理I/F番号,送信論理I/F番号,VLAN優先度,IPv4/IPv6識別情報,送信元IPアドレス,あて先IPアドレス,DSCP,フラグメント状態情報,上位プロトコル,送信元ポート番号,あて先ポート番号,TCPフラグ,ICMPタイプ・コードに対して、一致判定条件値と一致判定マスク値、あるいは、範囲判定最小値と範囲判定最大値とが、転送条件情報として、外部から設定される。
上記受信論理I/F番号,送信論理I/F番号,VLAN優先度,IPv4/IPv6識別情報,フラグメント状態情報,上位プロトコル,ICMPタイプ・コード各々に対する、一致判定マスク値は、これら受信論理I/F番号,送信論理I/F番号,VLAN優先度,IPv4/IPv6識別情報,フラグメント状態情報,上位プロトコル,ICMPタイプ・コード各々を判定条件に加えるか否かを示すフラグであり、このフラグを立てた上記判定対象値に対する判定結果は無条件にて一致として扱うこととなる。送信元IPアドレス,宛先IPアドレスに対する一致判定マスク値は、プレフィックス長であり、IPアドレスの最上位ビットからプレフィックス長までのビットのみについて、一致判定条件値との一致・不−致の判定が行われる。
また、DSCP,TCPフラグに対する、一致判定マスク値は、判定対象値のビット毎に、DSCP,TCPフラグ各々を判定条件に加えるか否かを示すマスクビットパターンであり、このマスクビットパターンのビットが1の判定対象値のビットを0として、一致判定条件値との一致・不一致の判定が行われる。
さらに、送信元ポート番号,宛先ポート番号に対しては、範囲判定最小値と範囲判定最大値とが、転送条件情報として外部から設定される。判定対象値であるポート番号が範囲判定最小値から範囲判定最大値までの範囲内にあるか否かにより、判定が行われる。フィルタ検索の判定情報は、破棄/通過等の指定であり、分類検索結果は品質クラスに関する各種情報(送信時のVLAN優先度,リマ一クの有無,リマーク値=書換え後のDSCP,キューの指定など)である。
本発明の通信処理装置においては、上述した受信論理I/F検索、NAT/NAPT検索、経路検索、フィルタ検索、分類検索等の検索部各々が、解析結果情報及び転送条件情報の比較を行う適合判定部を並列に複数有し、フレームの転送可否の検出のための比較を、複数のフレームに対して同時に実行することを特徴としている。
<第1の実施形態>
以下、本発明の一実施形態による通信処理装置を図面を参照して説明する。図1は同実施形態による通信処理装置の構成を示す図である。すなわち、図1は、本発明の通信処理回路の第1実施形態による通信処理回路2を備えた通信処理装置1及び通信処理装置1がLAN(Local Area Network)及びWAN(Wide Area Network)に接続する構成を示す概略ブロック図である。
通信処理装置1は、GMII(Gigabit Medium Independent Interface)やMII(Medium Independent Interface)の規格のインタフェースを介してWANに接続する物理I/F(Interface)100及びLANに接続する物理I/F110と接続し、LAN側から送信されるパケットをWAN側またはLAN側へ転送し、また、WAN側から送信されるパケットをLAN側またはWAN側へ転送する。
また、本実施形態の通信処理装置1では、OSIの第3層にあたるネットワーク層では、IPv4あるいはIPv6のパケットの送受信を行い、OSIの第2層にあたるデータリンク層では、イーサネット(登録商標)のフレームの送受信を行う。
以下、第2層に係る処理については送受信されるものについてはフレームと記載し、第3層に係る処理について送受信されるデータ、すなわちフレームからMACヘッダが除かれたものについてはパケットと記載して、パケット及びフレームを使い分けているが、フィルタリングの処理においては、ヘッダ情報としてフレームのヘッダが使用されている。
通信処理装置1は、転送処理の高速化を図るため半導体素子で構成される通信処理回路2と、CPU(中央処理部:Central Processing Unit)4と、DDR−SDRAM(Double Data Rate-Synchronous Dynamic Random Access Memory、以下、メモリとする)3とを備えている。
上記メモリ3は、半導体記憶素子であり、一定容量値、例えば2キロバイトごとに領域分割され、フレーム長が長いフレームであっても、短いフレームであっても分割した1つの領域を割り当てて記憶する。なお、分割されたそれぞれの領域は、後述するハンドル管理部18が付与するハンドル番号に対応付けられる。
CPU4は、主に通信処理回路2で転送処理を行うことができないフレームを通信処理回路2から受信し、受信したフレームに対する転送先を検出する等の処理を予め内部で動作するソフトウェアに基づいて行う。CPU4が備えるドライバ4aは、通信処理回路2がCPU4に入力するパケットのCPU4の内部のメモリへの書き込み及び読み出しを行い、また、通信処理回路2の各機能部の動作を制御する情報の設定を各機能部に対して行う。
通信処理回路2において、WAN用MAC(Media Access Control)I/F11は、WANに接続される物理I/F100へ接続する接続インタフェースである。LAN用MACI/F12は、LANに接続される物理I/F110へ接続する接続インタフェースである。WAN用MACI/F11及び、LAN用MACI/F12は、上記したGMII及びMIIに準拠した規格を有し、送受信するイーサネット(登録商標)のフレーム(以下、フレームと記載)に対してIEEE802.3準拠のMAC処理を行い、また、物理I/F100あるいは110との間で送受信されるフレームに対してCRC(Cyclic Redundancy Check)処理などを行う。
IPsec部13は、WAN用MACI/F11に接続され、RFC(Request for Comments)2406準拠のIPsec処理に基づく暗号化処理をWANに送信するパケットに対して行い、また、WANから受信するパケットに対して復号化処理を行う。ここで、RFC2406準拠のIPsec処理とは、RFC2403/2404準拠のHMAC−MD5(Keyed Hashing for Message Authentication Code-Message Digest 5)やHMAC−SHA−1(HMAC-Secure Hash Algorithm-1)の認証機能や、RFC2410/2451のNULL,CBC−AES(Cipher Block Chaining - Advanced Encryption Standard)の暗号機能などによるIPv4及びIPv6パケットに対する暗号化及び復号化処理である。
書き込みスケジューラ部14は、IPsec部13と、LAN用MACI/F12と、CPU4に接続するCPUI/F15とに接続され、ラウンドロビン方式により、IPsec部13と、LAN用MACI/F12と、CPUI/F15の順に、これら3つの機能部によって情報が付加されたフレーム(以下、前記3つの機能部によって情報が付加されたフレームをフレーム情報と記載)を出力する。
CPUI/F15は、通信処理回路2の各機能部と、書き込みスケジューラ部14と、メモリコントローラ部17とCPU4とに接続され、メモリコントローラ部17から出力されるフレーム情報をCPU4に入力する。また、CPU4から出力されるフレームを書き込みスケジューラ部14に入力する。また、CPU4が通信処理回路2の各機能部に対して設定を行う際、CPUI/F15は、設定情報を該当する機能部に入力する。
DDR−SDRAMI/F(以下、メモリI/Fとする)19は、メモリコントローラ部17とメモリ3に接続され、メモリコントローラ部17とメモリ3の間でフレームの入出力を行う。
フレーム生成部16は、予めCPU4のドライバ4aから設定される情報に基づいて、メモリコントローラ部17から出力されるフレームに対して送信先の論理インタフェースに応じたVLAN(Virtual LAN)タグやPPPoE(Point to Point Protocol over Ethernet:Ethernetは登録商標)ヘッダの挿入を行い、当該挿入を行ったフレームを出力する。また、フレーム生成部16は、宛先MACアドレスの付け替え、NAT(Network Address Translation)/NAPT(Network Address Port Translation)のためのIPアドレス及びポート番号の付け替えを行う。また、フレーム生成部16は、IPsec部13に出力するフレーム対してIPsecSA(Security Association)の情報の付加を行う。また、フレーム生成部16は、DSCP(DiffServ Code Point)のIPパケットのヘッダへの付加、VLAN priorityのフレームのヘッダへの付加を行う。DSCPやVLAN priorityは、優先制御の際に参照される品質クラス情報となる。ここで、品質クラス情報とは、転送されるフレームに含まれる情報の種別を分類する分類情報であり、分類情報によって示される情報の種別が例えば音声の場合には、当該分類種別を有するフレームには遅延が少ない高い品質の通信処理が適用されることになる。
ハンドル管理部18は、QoS(Quality of Service)部70と、メモリコントローラ部17とに接続され、メモリ3の分割された領域のそれぞれに対応するハンドル番号に基づいてメモリ3の分割された領域の空塞管理を行う。ここで、空塞管理とは、メモリコントローラ部17へは空きハンドル番号を出力して使用中のハンドル番号として管理し、QoS部70から入力されるフレーム破棄により返却対象となるハンドル番号や、送信により返却対象となるハンドル番号については領域が空きとなるため、空きのハンドル番号として管理する。また、ハンドル管理部18は、マルチキャストフレームの場合には、マルチキャストの回数分送信が終了するまで、フレームを削除できないため、QoS部70が、メモリコントローラ部17にジョブ情報を出力した情報を図1に示すQoS部70からメモリコントローラ部17へ直接接続する接続線から分岐する線により参照して、送信開始時に定められるマルチキャストの回数を管理する。
メモリコントローラ部17は、書き込みスケジューラ部14と、フレーム生成部16と、メモリI/F19と、パーサ部30と、ハンドル管理部18と、QoS部70とに接続されている。メモリコントローラ部17は、書き込みスケジューラ部14から入力されるフレーム情報に対し、ハンドル管理部18から付与された空きハンドルのハンドル番号に対応するメモリ3の分割された領域に、メモリI/F19を介してメモリ3に書き込む。また、メモリコントローラ部17は、書き込みスケジューラ部14から入力されるフレーム情報に対し、ハンドル管理部18から付与されたハンドル番号を付加してパーサ部30に出力する。また、メモリコントローラ部17は、後述するQoS部70から出力されるジョブ情報に含まれるハンドル番号に対応するメモリ3の領域からメモリI/F19を介してフレーム情報を読み出し、読み出したフレーム情報に対してジョブ情報に基づく情報を付加し、フレーム生成部16に出力、あるいはCPUI/F15を介してCPU4に出力する。
パーサ部30は、メモリコントローラ部17によりハンドル番号が付加されたフレーム情報に対して解析を行い、フレーム情報から転送処理に係る情報であるヘッダ情報などを抽出し、解析結果情報としてメモリコントローラ部17が付加したハンドル番号等の情報とともに、検索部40に対して出力する。
検索部40は、パーサ部30(転送条件抽出部)から入力される解析結果情報に基づいて、予めCPU4により検索部40の内部に設定される転送条件情報を参照し、転送条件情報に基づいて、当該フレームを破棄するか、通過させるか、CPU4へ転送、すなわちCPU4へ入力するかを示すフィルタ検索結果情報、及び品質クラスなどの情報を示す分類検索結果などを検出し、検出したフィルタ検索結果情報及び分類検索結果(判定情報)と、パーサ部30から入力される解析結果情報の一部の情報例えばフレーム長等と、ハンドル番号の付加情報とを、CPU転送判定部61に出力する。ここで、転送条件情報に含まれる条件としては、MACアドレス,IPアドレス,ポート番号などがあり、検索結果情報に含まれるフレームのヘッダ情報がこれらの転送条件に一致するか否かの検索が行われる。
CPU転送判定部61は、検索部40においてCPU4へ転送する要因があるとして検出されたフレームに対して、CPU転送要因を示す情報、すなわち後述するCPU転送要因フラグを付与し、CPU4へ転送するか、あるいは破棄するかを判定し、判定した判定情報を、検索部40から出力される情報とともに出力する。
キュー選択部62は、CPU転送判定部61から入力される情報に含まれる品質クラス情報や送信先の論理I/Fの情報に基づいてQoS部70がキューを選択する際に参照するキュー番号を検出し、CPU転送判定部61から出力される情報と、検出したキュー番号とを出力する。
QoS部70は、キュー選択部62から出力される情報に基づいてジョブ情報を生成し、同じくキュー選択部62から出力されるキュー番号に基づいて、生成したジョブ情報を該当するキューに記録する。また、QoS部70は、キューに記録されているジョブ情報を予め定められているキューごとの優先度に基づいて読み出し、メモリコントローラ部17へ出力する。また、QoS部70は、メモリコントローラ部17へジョブ情報を出力する際、及び破棄するフレームである場合に、ハンドル番号を返却するためハンドル管理部18へ出力する。
ここで、ジョブ情報とは、WAN用MACI/F11やLAN用MACI/F12から送信されるフレームに対しては、受信フレーム長、送信フレーム長、送信論理I/F、宛先MACアドレス、NAT/NAPT指定、DSCPやVLAN priority等の情報に対応する品質クラス、ハンドル番号等の情報から構成されている。また、CPU4に転送されるフレームに対しては、ジョブ情報は、受信フレーム長、送信フレーム長、受信論理I/F、CPU転送理由、品質クラス、ハンドル番号等の情報から構成される。
なお、CPU転送判定部61において破棄すると判定されたフレームついてはCPU転送判定部61あるいはQoS部70のいずれかにより破棄されることとなる。
次に、図2を参照して、検索部40の構成を詳細に説明する。この図2は、第1の実施形態による検索部40の構成例を示すブロック図である。説明において、フィルタ検索を例にとり説明するが、本発明の各実施形態は、後の第9の実施形態にて述べるように、NAT/NAPT検索及び経路検索にも同様に適用可能である。
本実施形態及び以降に説明する他の第2〜第9の実施形態において、検索部40は、判定情報とともに解析結果情報(ハンドル番号等の付加情報を含む)を、次段のCPU転送判定部61に対して出力する。
記億部41は、複数のエントリを記憶可能なテーブル領域(図4参照)を有し、フレームの解析結果情報に対する条件を示す転送条件情報と、フレームの加工またはこのフレームの転送の処理方法を指定する判定情報とを、上記各エントリとして記憶する。
検索部40は、すでに述べたように、上記テーブルの各エントリの転送条件情報に基づいて、解析結果情報に対して適合の有無を判定し、適合と判定したエントリの判定情報を出力する。
上記解析結果情報のうち、本検索の対象である判定対象値は、受信論理I/F番号,送信論理I/F番号,VLAN優先度,IPv4/IPv6識別情報,送信元IPアドレス,あて先IPアドレス,DSCP,フラグメント状態情報,上位プロトコル,送信元ポート番号,あて先ポート番号,TCPフラグ,ICMPタイプ・コード、である。
また、上記転送条件情報は、各判定対象値に対する条件を示す情報であり、判定情報は、破棄/通過/CPU転送の何れか1つを指定する情報である。なお、このCPU転送の選択肢は、通信処理回路で処理できないフレームについて、CPU側で処理するために設けられた設定である。
上記各判定対象値に対する条件は、記憶部41に記憶されている図4のテーブルに記述されている一致判定条件値及び一致判定マスク値、あるいは、範囲判定最小値及び範囲判定最大値、である。受信論理I/F番号,送信論理I/F番号,VLAN優先度,IPv4/IPv6識別情報,フラグメント状態情報,上位プロトコル,ICMPタイプ・コードに対する、一致判定マスク値は、前記を判定条件に加えるか否かを示すフラグであり、また、すでに述べたように、フラグを立てた上記判定対象値に対する判定結果は一致として扱う。
送信元IPアドレス,あて先IPアドレスに対する一致判定マスク値は、プレフィックス長であり、IPアドレスの最上位ビットからプレフィックス長までのビットのみについて、一致判定条件値との一致・不一致の判定を行う。
また、DSCP,TCPフラグに対する、一致判定マスク値は、判定対象値のビット毎に、DSCP及びTCPフラグを判定条件に加えるか否かを示すマスクビットパターンであり、マスクビットが1の判定対象値のビットを0として、一致判定条件値との一致・不一致の判定を行う。
送信元ポート番号,あて先ポート番号に対しては、範囲判定最小値と範囲判定最大値が、転送条件情報として外部から設定される。判定対象値であるポート番号が範囲判定最小値から範囲判定最大値までの範囲内であるか否かにより、判定を行う。
フィルタ検索の判定情報は、破棄/通過等の指定であり、分類検索結果は品質クラスに関する各種情報(送信時のVLAN優先度,リマークの有無,リマーク値=書換え後のDSCP,キューの指定など)である。
検索部40は、上記各判定対象値に対応した判定を行い、全て一致であった場合に、解析結果情報に対する転送条件情報に基づく判定を適合とし、いずれか一つでも不一致の場合に不適合とする。
また、第1の実施形態においては、検索テーブルに記載された順番により、各エントリに対して優先度が設定されており、例えば、エントリ番号の大きいものほど優先度が高くなるように、検索テーブルが設定されている。
したがって、m個のエントリ各々について、これらのエントリの転送条件情報に基づいて、解析結果情報に対する適合の有無を判定し、適合と判定されたエントリを複数個検出した場合に、検索部40は、上記エントリのなかから、最も優先度が高いエントリの判定情報を、出力する。すなわち、本実施形態の検索部40は、検出されたエントリのなかから、エントリ番号が最も大きいエントリの判定情報を出力する。
上述したように、検索部40は、入力される各フレーム毎に、解析結果情報と転送条件情報との比較を行い、転送条件情報の記述に従い、各フレームの転送可否を検出する。
ここで、検索部40は、上記転送可否の検出を高速に行うため、解析結果情報及び転送条件情報の比較を行う適合判定部を並列に複数、例えば、適合判定部431,432,433,…,43nを有し、フレームの転送可否の検出のための比較を、n個(複数)のフレームに対して同時に実行する。
ルール読出部42は、順次、記憶部41に記憶されているエントリを、検索テーブルに記述されている順番に(エントリ番号の順番に)、クロック1サイクル(1周期)につき、1エントリ(1つの転送条件情報)の速度にて読み出し、適合判定部431,432,433,…,43n各々に対して、順次供給する。上記クロックは、通信処理回路2における基準の内部クロックであり、通信処理回路2内の各回路を動作させている。
ここで、ルール読出部42は、同一タイミングにて、同一のルールをそのエントリ番号とともに、適合判定部431,432,433,…,43nの全てに入力する。
また、ルール読出部42は、検索テーブルの全てのエントリを読みだした後、すなわち、最後のエントリである第mエントリを読みだした後、次のクロックにおいて、第1エントリから読み出しを継続する(検索テーブルにおいてルールの読み出しを循環させる)。
適合判定部431,432,433,…,43n各々は、入力されたフレームから抽出された解析結果情報を、記憶部41の検索テーブルにおける全てのエントリと適合するか否かの検出を行う。
適合判定部選択部44は、パーサ部30から時系列に、クロックに同期して入力されるフレーム毎の解析結果情報を、入力順に、適合判定部431,432,433,…,43n各々に、順番に出力する。
ここで、適合判定部選択部44は、フレームの時系列番号が「1」の解析結果情報を適合判定部431に出力し、「2」の解析結果情報を適合判定部432に出力し、…、「n」の解析結果情報を43nに出力し、「n+1」の解析結果情報を適合判定部431に出力して、時系列順にフレームの転送可否を検出するための判定処理を割り当てる。
このように、適合判定部選択部44は、解析結果情報の入力を契機として、各適合判定部に対応付けられた適合判定部番号を順に繰り返し生成して、この適合判定部番号に基づき、入力された解析結果情報を出力する適合判定部を選択する。
あるいは、適合判定部選択部44は、解析結果情報の入力を契機として、判定の処理を行っていない適合判定部を検出し、検出された適合判定部を選択して、上記解析結果情報を出力する。各適合判定部に最後に解析結果情報を入力してから、適合判定部が判定情報を出力するのに要する時間Tを経過している場合、この適合判定部を、適合処理が行われていない適合判定部として検出することができる。
ここで、ワイヤレートを保障する検索を行う(最小フレーム長かつ最小フレーム間ギャップでフレームを連続して受信した場合にも、前記全フレームに対して検索を可能とする)場合は、適合判定部番号を順に繰り返し生成し、この適合判定部番号に基づき適合判定部を選択することによって、選択された適合判定部が判定の処理を行っていないことが保障される。このため、判定の処理を行っていない適合判定部を検出する処理が不要となる。以下に、上述した適合判定部を検出する処理が不要となる理由を示す。
すなわち、最小フレーム長分のデータを入力する時間tfの間、次のフレームの入力は無く、解析結果情報が出力される間隔についても時間tf以上とすることが可能である。
したがって、解析結果情報から次の解析結果情報の入力まで時間tf以上あるため、適合判定部431,432,433,…,43n各々において検索テーブルの全てのエントリに対しての判定に必要な時間がTである場合、各適合判定部の並列度をT/tfとすることにより、原理的に、適合判定部に解析結果情報を入力する時点においては、必ず適合判定処理が可能な状態(前に入力された解析結果情報に対する検索が終了し、次の入力が可能な状態)となる。
しかしながら、解析結果情報の入力から次の解析結果情報の入力まで時間tf以上となることが保証されない場合、本実施形態に記載したように、適合判定部選択部44が各適合判定部における適合判定処理の実行の可否を検出することが必要となる。
適合判定部431,432,433,…,43n各々は、適合判定部選択部44から入力される解析結果情報と、ルール読出部42から入力される転送条件情報との比較を順次行い、適合であることを検出したルールのエントリ番号及び検索及び判断の判定情報を記憶する。
また、上記適合判定部各々は、解析結果情報の入力を契機に、テーブルの各エントリについて、このエントリの転送条件情報に基づいて、上記解析結果情報に対する適合の有無の判定を開始し、この開始から全エントリについての判定を終了するまでに、初めて適合と判定したエントリxのエントリ番号及び判定情報を中間結果として記憶する。その後、適合判定部は、テーブルの全てのエントリについて判定を完了するまでに適合と判定したエントリyを検出したとき、上記中間結果のエントリ番号に対応した優先度よりも、エントリyのエントリ番号に対応した優先度が高い場合に、エントリyのエントリ番号及び判定情報を中間結果として記憶し直し、テーブルの全エントリについて判定を完了した後、中間結果の判定情報及び/またはエントリ番号を出力する。
ここで、適合判定部431,432,433,…,43n各々は、解析結果情報が入力されると、処理中を示すフラグを立て、全てのエントリ番号のエントリと比較した後、すなわち、エントリ数カウンタが設定された数値(テーブルに記憶されているルール数)を超えた際に、次の、クロックにおいて(次に適合検出処理を行う対象の解析結果情報が入力されるタイミング)、このフラグを下ろし(消去し)、かつエントリ数カウンタをリセットし、検出結果の判定情報とともに、判定完了信号が、結合部45へ出力される。
また、各適合判定部は、上述したエントリ数カウンタを設けるのではなく、解析結果情報の入力に同期して、その時点で入力されていたエントリ番号(すなわち、実際の比較が開始されるエントリ番号の1つ前のエントリ番号)を検出エントリ番号として記憶し、検索テーブルから読み出されるエントリ番号と、上記検出エントリ番号とを比較して一致したことを検出すると、すなわち検索テーブルからのエントリの読み出しが一巡したことを検出すると、判定完了信号を判定情報とともに結合部45へ出力するようにしてもよい。
そして、各適合判定部は、次に入力されるクロックにおいて、次に適合検出処理を行う対象の解析結果情報がパーサ部30にあれば、それを入力する。
すなわち、適合判定部選択部44は、適合部カウンタが示す適合判定部の上記フラグが下ろされた状態(立っていない状態)であるとき、その適合判定部に対して解析結果情報を書き込む。
また、ルールの数と、適合判定部との数とを一致させることにより(適合判定部の数の最大値)、フレームのスループットをラインレートにて処理することが可能となる。
しかしながら、上述したように、エントリ数と適合判定部との数を一致させずとも、ルールの数より少ない数であっても、適合判定部を2以上の複数個設けることにより、すなわち並列度を持たせるため、従来に比してスループットを向上させることができる。
また、適合判定部の数を記憶部41に記憶されている検索テーブルの全エントリ数に対して、適合するか否かの検出を行うために必要な時間Tの間(適合判定部に解析結果情報を入力してから、上記適合判定部がエントリ番号及び/または判定情報を出力するまでの時間であり、m個のエントリについて判定を行っている時間(m×クロックの周期)に、解析結果情報を入力してから判定を開始するまでの時間と、判定を終了してから判定情報を出力するまでの時間を加えた時間)に、入力されるフレームの数の最大値以上としてもよい。
この理由としては、上記並列度がワイヤレートを達成しつつ、並列度を最小化するための並列度である。
適合判定部選択部44に対して、クロックに同期して時系列に、時系列番号「1」のフレームの解析結果情報から順に「n」のフレームの解析結果情報が入力されたとき、上記解析情報結果が、時系列に適合判定部431〜43nの順番に、入力される。各適合判定部に解析結果情報が入力されてから、時間Tが経過したとき解析結果情報に対するエントリ番号及び/または判定情報が適合判定部から出力されるため、解析結果情報が時系列に、適合判定部431〜43nの順番に出力される。
結合部45は、各適合判定部からクロックに同期して入力される上記エントリ番号及び/または判定情報を、次段のCPU転送判定部61へ出力する。
上述した動作において、結合部45は、適合判定部から判定完了信号を出力されることを契機に、上記適合判定部が出力したエントリ番号及び/または判定情報を入力する。
次に、第1の実施形態による通信処理装置における検索部40の動作を図5を用いて説明する。図5は、第1の実施形態による適合判定部の動作例を示すフローチャートである。また、図5は、適合判定部431に注目して説明されているが、他の適合判定部432〜43nも同様な動作を行う。
ここで、検索部40の動作が開始され、フレームが入力されていると、パーサ部30から、解析結果情報が適合判定部選択部44へ出力される。
また、記憶部41の検索テーブルには、第1エントリから第mエントリのm個のルールが設定されているとする。本実施形態では、エントリ番号が優先度となっており、1→2→…→mの順に優先度が高くなるとする。
検索部40の動作開始時において、適合判定部選択部44は、内部の適合判定部カウンタを「1」に初期設定する。
検索部40が解析結果情報を入力したとき、上記解析結果情報を入力する適合判定部431〜43nを選択する適合判定部選択部44を有する。この適合判定部選択部44は、解析結果情報の入力を契機に、すなわち入力される解析結果情報の数を計数し、適合判定部431〜43n各々に対応付けられた適合判定部番号を順に繰り返し生成し、この適合判定部番号に基づき、解析結果情報を出力する適合判定部の選択をする、適合判定カウンタを有する。この適合判定カウンタは、「1」から「n」までの適合判定部番号をカウンタ値として生成し、このカウンタ値が「1」のとき適合判定部431を、「n」のとき適合判定部43nを指定する。また、適合判定カウンタ前記値は、「n」を生成した後に、解析結果情報が入力されたとき、「1」を生成する。
また、上記適合判定カウンタを、「0」のとき適合判定部431,「1」のとき適合判定部432,…,「n−1」のとき適合判定部43nを指定する、「0」〜「n−1」を計数するカウンタとしてもよい。
パーサ部30から検索部40に解析結果情報が入力されると、適合判定部選択部44は、上記解析結果情報を入力する適合判定部を選択し、選択された適合判定部に、解析結果情報を入力する。以下の説明においては、適合判定部選択部44の適合判定部カウンタが適合判定部番号「1」を生成し、適合判定部431が選択された場合について、適合判定部431の動作を説明する。適合判定部431は、開始からステップS1に移行し、処理を開始する。
そして、ステップS1に移行すると、適合判定部選択部44から解析結果情報が入力されるまでステップS1に留まる。
適合判定部選択部44が適合判定部431を選択して、解析結果情報がクロックに同期して適合判定部431に入力されると、適合判定部431は入力される解析結果情報を保持し、一時的に優先度を保持する優先度変数を初期化し、解析結果情報に対して判定を終えたエントリ数を計数するエントリ数カウンタを「0」に初期化し、次のクロックでステップS2に移行する。
上記優先度変数としては、適合と判定されたエントリが複数個検出された場合に、これらのエントリのうち最も優先度が高いエントリを検出するために、解析結果情報入力から現時点までに検出した適合判定エントリの中で最も高い優先度が保持される。この優先度変数の初期値は、テーブルの各エントリの優先度としてとり得る範囲よりも低くすることにより、ステップS5で初期化された優先度変数よりも比較対象のエントリの優先度が高いと判定されて、ステップS6において結果更新と判断される値であればよい。本実施形態においては、エントリ番号「1」〜「m」が優先度を示すため、「0」を初期値とすることができる。
あるいは、上記優先度変数の初期値は、テーブルの各エントリの優先度としてとり得る範囲で最低の優先度であり、ステップS5において初期化された優先度変数よりも比較対象のエントリの優先度が高いかまたは一致していると判定され、ステップS6において結果更新と判断される値であればよい。このことから、前述したように、エントリ番号「1」〜「m」が優先度を示すため、「1」が初期値となる。なお、適合判定値が、優先度変数に加え、各エントリの有効・無効を示す情報を保持する場合は、優先度変数の初期化は不要であり、無効を示す情報に初期化し、無効の状態で初めて適合と判定されたエントリを検出したとき、有効を示す情報に変化させ、前記エントリの優先度を優先度変数に保持する処理を行わせることも可能である。エントリ数カウンタは、テーブルの全エントリに対して適合判定を行ったことを検出するために、解析結果情報入力から現時点までに判定を終えたエントリ数を計数する。
次に、ステップS2に移行すると、適合判定部431は、その時点でルール読出部42が同時に適合判定部431〜43n各々に分配しているエントリの転送条件情報を入力し、エントリ数カウンタを「1」進める。
このとき、適合判定部431は、上記前記転送条件情報の入力と併せて、上記エントリの判定情報を入力するように構成してもよい。
また、適合判定部431は、上記前記転送条件情報の入力と併せて、上記エントリのエントリ番号を入力するように構成してもよい。
そして、適合判定部431は、上述したエントリ数カウンタを「1」進めたクロックと同一周期においてステップS3に移行する。
次に、ステップS3において、適合判定部431は、保持している解析結果情報と、入力した転送条件情報との適合の有無を検出し、ステップS2と同一クロックの周期内に処理をステップS4へ処理を進める。
次に、ステップS4において、適合判定部431は、ステップS3において解析結果情報と転送条件情報とが適合していることが検出された場合、ステップS2と同一クロックの周期の間に処理をステップS5に移行し、一方、ステップS3において適合していないことが検出された場合、ステップS2と同一クロックの周期の間に処理をステップS8へ進める。
次に、ステップS5において、適合判定部431は、新たに適合したエントリの優先度が、すでに記憶されている優先度と比較して、より上位の優先度であるか否か、すなわち、記憶されている優先度の数字より、新たに適合したルールの優先度が大きいか否かの検出を行い、ステップS2と同一クロックの周期の間に処理をステップS6へ進める。
ここで、適合判定部が新たに適合したエントリの優先度と、すでに記憶されている優先度との比較において、新たに適合したエントリの優先度が、すでに記憶されている優先度より高いかまたは等しいかの比較を行うようにしてもよい。
このとき、検索処理の開始時に、記憶する優先度を「0」とする必要がなく、優先度を「0」から「m−1」の範囲とするようにしてもよい。
ただし、上述した比較構成において、優先度変数に「0」が保持されていないとき、解析結果情報の優先度が同一ものが検出されると、新たに検出された方を解析結果情報として選択する場合と、先に検出されていた方を解析結果情報として選択する場合とのいずれとしてもよい。
そして、ステップS6において、適合判定部431は、新たに適合が検出された優先度が、記憶されている優先度より高いことを検出した場合、ステップS2と同一クロックの周期の間に処理をステップS7へ進め、一方、新たに適合が検出された優先度が記憶されている優先度より低いことを検出した場合、ステップS2と同一クロックの周期の間に処理をステップS8へ進める。
次に、ステップS7において、適合判定部431は、記憶されているエントリ番号を、新たなエントリ番号に書き替える(変更する)。
そして、適合判定部431は、ステップS2と同一クロックの周期の間に処理をステップS8へ進める。
また、ステップS6からステップS8へ処理が遷移した場合、適合判定部431は、記憶されているエントリ番号を、書き替えない。
次に、ステップS8において、適合判定部431は、エントリ数カウンタの出力値がルール計数値「m」以上となることを検出し、すなわち、検索テーブル全ての転送条件情報が終了したか否かの検出を行う。
このとき、適合判定部431は、ルール数計数値が「m」以上であることを検出した場合、入力された解析結果情報を検索テーブルの全ての転送条件情報と比較したため、判定情報として最も高い優先度として記憶されているエントリ番号を結合部45へ出力した後、次のクロックが入力された時点で処理をステップS9へ移行する。
一方、適合判定部431は、ルール数計数値が「m」未満であることを検出した場合、次のクロックが入力された時点で処理をステップS2へ移行する。
次に、ステップS9において、適合判定部431は、優先度変数として保持されている、最も優先度の高い適合判定されたエントリのエントリ番号を、判定完了信号とともに結合部45に出力する。
また、適合判定部431は、エントリ番号及び判定完了信号の出力と併せて、中間結果として保持されている、上記エントリの判定情報を出力し、ステップS9のクロックの同一周期においてステップS1に移行する。
そして、適合判定部431は、すでに述べたように、エントリ数カウンタによる判定処理完了の検出を行わない場合、解析結果情報の入力に同期して、その時点で入力されていたエントリ番号(すなわち、実際の比較が開始されるエントリ番号の1つ前のエントリ番号)を検出エントリ番号として記憶し、検索テーブルから読み出されるエントリ番号と、上記検出エントリ番号とを比較して一致したことを検出すると、すなわち検索テーブルからのエントリの読み出しが一巡したことを検出すると、判定完了信号を判定情報とともに結合部45へ出力するようにしてもよい。
上述した処理において、ステップS7にて、適合判定部431は、ルール読出部42から入力したエントリ番号を優先度変数に保持し、またルール読出部42から入力した判定情報を中間結果として保持することも可能である。
一方、適合判定部431は、ルール数計数値が「m」未満であることを検出した場合、入力された解析結果情報が検索テーブルの全ての転送条件情報と比較されていないため、処理をステップS2へ進める。
上述したように、ルール読出部42は、クロック毎に、直前のクロックにおいて、読み出したエントリの次のエントリを、検索テーブルから順次読み出し、各適合判定部に分配する。
このため、適合判定部においては、エントリ数カウンタがルール数計数値「m」未満であったために、ステップS8から次のクロックでステップS2に移行した場合、前回のステップS2で入力したエントリの次のエントリを入力することになる。
このように、適合判定部各々が、クロック毎にステップS2からステップS8を繰り返すことにより、エントリ1個につき1クロックで次々と適合判定される。
このとき、エントリ数カウンタが「1」づつ進み、エントリ数カウンタがルール数計数値「m」に達した時点で、テーブルの全エントリに対して、適合判定を行ったことになり、判定が完了する。
後の処理は、すでに述べた適合判定部431の処理と同様であるため、説明を省略する。
また、適合判定部432は、解析結果情報を第2エントリのエントリから開始し、第mエントリの転送条件情報を用いた適合検出処理の後、第1エントリのエントリを用いた適合検出処理を行い、検索テーブルの全エントリと解析結果情報との適合検出の処理を終了する。
すなわち、各適合判定部は、解析結果情報が入力されるタイミングで、ルール読取部42が検索テーブルから読み込んだエントリから、この解析結果情報との適合検出処理を開始する。
<第2の実施形態>
第2の実施形態による通信処理装置は、第1の実施形態による通信処理装置の構成と同様であり、以下、第1の実施形態と異なる点のみを説明する。
図2の記憶部41に記憶されている検索テーブルの構成が、図6に示すように、エントリ番号に対応させて、エントリ(転送条件情報)及び優先度が決定されている。
これにより、ルール読出部42は、記憶部41の検索テーブルから、エントリ番号の順番に、クロックに同期させて、各適合判定部(431〜43n)に対して、エントリ番号,ルール及び優先度を出力する。
検索部40における適合処理は、図5のフローチャートで説明した動作と同様のため、説明を省略する。
異なる点は、ステップS4における優先度の比較を、エントリ番号でなく優先度の数値自体で行う点である。
<第3の実施形態>
第3の実施形態による通信処理装置の構成は、第1及び第2の実施形態による通信処理装置と同様である。
第1及び第2の実施形態と異なる点は、記憶部41に複数の検索テーブル、例えば、図7に示すように、検索テーブルA(奇数のエントリ番号の転送条件情報)及び検索テーブルB(偶数のエントリ番号の転送条件情報)を有し、かつ、各適合判定部内において、図8に示すように、検索テーブルの数に対応した適合を判定する比較部が複数、例えば100A及び100Bが設けられてる点である。
検索テーブルと上記比較部とは対応、すなわち、各比較部が使用するエントリが設定されている検索テーブルが対応しており、図7及び図8とにおいて、検索テーブルAと比較部100Aとが対応し、検索テーブルBと比較部100Bとが対応している。
ルール読出部42は、エントリ番号と、記憶部41に記憶されている検索テーブルA及び検索テーブルB各々から読み出したエントリの情報(転送条件情報及び判定情報)とを、全ての適合判定部に対して出力する。ルール読出部42にはカウンタがあり、このカウンタをクロック毎にインクリメントすることにより、エントリ番号を生成し、記憶部41における検索テーブル読み出しのためのアドレスとしている。すなわち、上記検索テーブルには、エントリ番号に対応するアドレスに各エントリが記憶されている。
そして、各適合判定部において、パーサ部30から解析結果情報が検索部40に入力される。
比較部100A及び100Bは、第1及び第2の実施形態の適合判定部で述べたように、1つの解析結果情報の適合判定処理において、内部にいままで適合したエントリの中で最も優先度の高いエントリ番号(またはエントリ番号及び優先度)を記憶している。
また、比較部100Aは、解析結果情報記憶部102に記憶されている解析結果情報と、検索テーブルAから読み出した転送条件情報とを比較し、この転送条件情報に対して解析結果情報が適合した場合、新たに適合したエントリの優先度と、記憶されている優先度とを比較し、優先度の高い方のエントリ番号(またはエントリ番号及び優先度)を記憶する。
同様に、比較部100Bは、解析結果情報記憶部102に記憶されている解析結果情報と、検索テーブルBから読み出した転送条件情報とを比較し、転送条件情報に対して解析結果情報が適合した場合、新たに適合したエントリの優先度と、記憶されている優先度とを比較し、優先度の高い方のエントリ番号(またはエントリ番号及び優先度)を記憶する。
エントリ数カウンタ104は、第1及び第2の実施形態において述べたように、ルール読出部42が各適合判定部にエントリの情報を入力するタイミングにてインクリメントを行う。
また、エントリ数カウンタ104は、第1及び第2の実施形態におけるエントリ数カウンタと同様に、解析結果情報記憶部102に対して、解析結果情報が書き込まれたタイミングにて「1」に初期化される。
比較部100A及び100Bは、常に記憶されているエントリ番号(またはエントリ番号及び優先度)を検出結果選択部103に出力している。
エントリ数カウンタ104は、自身の計数値が設定された数値以上となるか否かの検出を行い、設定された数値以上となったことを検出した際、制御信号を検出結果選択部103に対して出力する。
上記設定された数値は、検索テーブルA及び検索テーブルBに設定されているエントリの数に対応しており、検索テーブルA,B各々に、エントリがm個ずつ設定されていれば、「m」である。
検出結果選択部103は、エントリ数カウンタ104から、上記制御信号が入力されると、比較部100A及び100Bが出力しているエントリ番号から、いずれか優先度の高いエントリ番号を結合部45に対して出力する。
他の動作については、第1及び第2の実施形態と同様のため、説明を省略する。
<第4の実施形態>
第4の実施形態による通信処理装置の構成は、第1及び第2の実施形態による通信処理装置、または第3の実施形態による通信処理装置と同様である。
以下、第4の実施形態による通信処理装置が、第1及び第2の実施形態による通信処理装置、または第3の実施形態による通信処理装置と異なる点を説明する。
記憶部41の検索テーブルには、図9に示すように、各エントリ番号に対応して、転送条件情報(エントリ),優先度,判定情報(転送を許可するか否かの結果情報)が記述されている。また、有効フラグテーブルには、各エントリ番号に対応して、エントリが有効化否かを示す有効フラグが記述されている。この有効フラグは、例えば、エントリが有効で有る場合、「ON」が設定されており、書き替え途中及び消去中などで、エントリが有効でない場合、「OFF」が設定されている。
ルール読出部42は、エントリ番号と、記憶部41の検索テーブルから、記述された順に読み出した転送条件情報,優先度及び判定情報と、有効フラグテーブルから読み出した上記エントリに対応する有効フラグとを、適合判定部431〜43nの全てに対して出力する。
すなわち、第4の実施形態による通信処理装置の動作として、図5の第1から第3の実施形態による通信処理装置の動作を示すフローチャートに対して、図10に示すように、ステップS2とステップS3との間に、有効フラグをチェックする処理のステップS9が挿入されている。
このステップS9において、各適合判定部431〜43n(第1及び第2の実施形態)またはその内部にある比較部(第3の実施形態)は、有効フラグをチェックすることにより、そのエントリ番号のルールが有効化否かの検出を行い、有効フラグが「ON」であることを検出した場合、そのルールが有効であるため、解析結果情報との適合検出処理を行う。
一方、各適合判定部431〜43n(第1及び第2の実施形態)またはその内部にある比較部(第3の実施形態)は、有効フラグが「OFF」であることを検出した場合、そのルールが有効でない(無効で)あるため、解析結果情報との適合検出処理を行わない。
また、第4の実施形態においては、検索テーブルに判定情報が記述され、各適合判定部431〜43n(第1及び第2の実施形態)またはその内部にある比較部(第3の実施形態)は、適合処理の結果として、エントリ番号に替えて判定情報を出力する。
この、判定情報を加えた第4の実施形態における検索テーブルを、第1〜第3の実施形態の記憶部41の検索テーブルとし、第1及び第2の実施形態における各適合判定部431〜43nまたは第3の実施形態における適合判定部内の比較部(第3の実施形態)の適合検出の結果を、エントリ番号に替え、判定情報とするようにしても良い。
ここで、エントリ番号が優先度を示しているため、優先度の検出のためには、各適合判定部はエントリ番号とこのエントリ番号に対応した判定情報を記憶し、優先度比較を行い優先度の高いものに順次置き換えていき、最終的に、最も優先度の高い判定情報を出力させる。
しかしながら、検索テーブルからエントリ順に読み出されているため、適合判定部が検索テーブルにおける最後のエントリか終了した後、検索テーブルの最初のエントリに戻ったことを検出可能とすれば、適合判定部はエントリ番号を記憶する必要は無くなる。例えば、ルール読出部42が検索テーブルの最初のエントリ番号を読み出した際に、各適合判定部に通知するようにする。
また、複数のエントリにて適合させないように各エントリを設定すれば、優先度を比較する必要が無いため、適合判定部がエントリ番号を記憶する必要がない。
上述した「適合判定部はエントリ番号を記憶する必要は無くなる」ことについての理由として、エントリ番号が大きいほど優先度が高いという例においては、エントリ番号順に判定したとき、後に適合と判定されたエントリほど優先度が高いことが判るので、適合と判定された時点で、優先度比較なしに、判定情報を更新すればよいことになる。すなわち、エントリ番号を記憶しておく必要はないこととなる。
ただし、エントリ順に判定を進めていくとき、ルール読み出し部が最初のエントリに戻って読み出すタイミングが発生する。このタイミング以前に適合と判定されたエントリの優先度は、それ以後に適合と判定されたエントリの優先度よりも高いため、その時点で適合と判定されたエントリがあれば以後は判定情報を更新せず保持し、適合と判定されたエントリがなければ、後に適合と判定されたエントリほど優先度が高いとして、適合と判定されたエントリの判定情報に更新する。
<第5の実施形態>
第5の実施形態の構成としては、例えば、図11に示すように、記憶部41の検索テーブルに対して編集処理、すなわちルール(転送条件情報)の追加,削除及び変更、または優先度の変更を行う検索テーブル管理部46が設けられている。第5の実施形態による通信処理装置は、構成及び動作ともに、第4の実施形態による通信処理装置のいずれかと同様である。以下、第5の実施形態が他の第4の実施形態と異なる検索テーブル管理部46に関連する構成及び動作のみを説明する。
検索テーブル管理部46は、利用者が上記検査テーブルの書き換え命令を入力することにより、すなわち、図12に示すように、検索テーブルのエントリ番号が第kエントリの転送条件情報を変更しようとする場合、有効フラグテーブルにおける第kエントリの有効フラグを「ON」から「OFF」に変更する。
そして、検索テーブル管理部46は、検索テーブルにおける第kエントリの転送条件情報または優先度の変更を行う。
これにより、検索部40が行う解析結果情報とルールとの適合判定処理において、編集されている途中のルールが適合判定部に読み込まれているとしても、適合判定部が有効フラグが「OFF」となっているエントリに対しては適合検出処理を行わない。
すなわち、適合判定部は、第4の実施形態でも同様であるが、有効フラグが「OFF」となっているルールに対しては、適合判定処理を行わず、無条件に不適合(一致しない)との検出結果を出力する。
そして、検索テーブル管理部46は、記憶部41の検索テーブルにおける第kエントリのルールに対する編集処理が終了したことを検出すると、有効フラグテーブルにおけるこのエントリ番号、すなわち第kエントリの有効フラグを「OFF」から「ON」に変更して、有効フラグに対する操作を終了する。
したがって、第5の実施形態の通信処理装置は、有効判定フラグによりルールの使用を制限することが可能となるため、装置を停止させて検索テーブルの編集を行う必要がなくなり、検索テーブルにおける転送条件情報に対する編集処理の自由度を、従来例に比して向上させることができる。
<第6の実施形態>
次に、第6の実施形態による通信処理装置を説明するが、構成及び動作は第5の実施形態による通信処理装置と同様であり、第5の実施形態と異なる部分のみを説明する。
また、記憶部41に有効フラグテーブルが無く、検索テーブルにおけるルール(及び優先度)の編集処理を行う場合、編集途中のルール(及び優先度)を読み込むことによる誤検出を防止する構成として、第5の実施形態の通信処理回路2の図1におけるメモリコントローラ部17とパーサ部30との間にフレーム情報転送制御部200を設ける構成とする。図13は、第6の実施形態による上記フレーム情報転送制御部200の構成例を示すブロック図である。
上述した本実施形態においては、フレーム情報転送制御部200がフレーム情報FIFOバッファ201及びフレーム情報転送スイッチ202が設けられている。
上記フレーム情報FIFOバッファ201は、パーサ部30から入力されるフレーム情報(ハンドル情報が付加されている)を一旦記憶し、フレーム情報転送スイッチ202に対して、先に入力されたものから順次供給する記憶部である。
利用者から検索テーブルのルールに対する編集要求、例えば書き換え命令が入力された際、検索テーブル管理部46は、この書き換え命令の入力を検出すると、フレーム情報転送スイッチ202を切断するため、フレーム情報転送スイッチ202に対して、停止信号を出力する。
そして、フレーム情報転送スイッチ202は、上記停止信号の入力を検出すると、フレーム情報FIFOバッファ201から、パーサ部30に対して現在転送中のフレーム情報の転送が終了した後、次のフレーム情報の読み込みを停止し、次段のパーサ部30に対するフレーム情報の出力を停止、すなわち、フレーム情報FIFOバッファ201によるパーサ部30に対するフレーム情報の供給パスを切断する。
これにより、フレーム情報FIFOバッファ201は、メモリコントローラ部17から出力されるフレーム情報を蓄積する。
また、フレーム情報転送スイッチ202は、上記切断処理が終了すると、検索テーブル管理部46に対して、応答信号を出力する。
次に、検索テーブル管理部46は、検索部40の各適合判定部に記憶されている解析結果情報の適合検出処理が終了するタイミングの検出を行う。
そして、検索テーブル管理部46は、フレーム情報転送スイッチ202からの応答信号を検出し、かつ検索部40内の全ての適合判定部における適合検出処理が終了したことを検出すると、ルール読出部42,適合判定部431〜43n及び適合判定部選択部44の動作を停止させ、記憶部41の検索テーブルに対する編集処理を行う。
次に、検索テーブル管理部46は、記憶部41における検索テーブルの編集処理が終了すると、ルール読出部42,適合判定部431〜43n及び適合判定部選択部44に動作を開始させ、フレーム情報転送スイッチ202に対して接続要求を出力する。
そして、フレーム情報転送スイッチ202は、フレーム情報FIFOバッファ201から出力される解析結果情報を、パーサ部30に対して出力する。
これにより、検索部40は、ルール読出部42により、次のクロックのタイミングで読み込んだ転送条件情報から、同様のタイミングにて読み込まれた解析結果情報の適合検出処理を開始する。
したがって、検索部40の各適合判定部は、順次、編集終了後の検索テーブルの転送条件情報が供給されるので、この新たに読み込まれた転送条件情報を用いて、適合検出処理を行うこととなる。すなわち、適合判定部内部に保持されている編集処理前の転送条件情報は、順次、新たな転送条件情報に書き替えられるため、適合検出処理に用いられることはない。
上述した構成とすることにより、記憶部41の検索テーブルの編集処理を行う際、パーサ部30から検索部40への解析結果情報の供給を停止し、一旦、検索部40に転送された解析結果集合全てに対しての適合検出処理を終了した後に、検索テーブルの編集処理を行うことができる。
これにより、本実施形態においては、検索テーブルの編集中に変更過程の中途半端な記述の転送条件情報を用いて、解析結果情報の適合検出処理を行うことが無くなり、第5の実施形態における有効フラグを用いずとも、検索テーブルにおける転送条件情報の編集処理の自由度を向上させることができる。
<第7の実施形態>
次に、図14を用いて、第7の実施形態による検索テーブルを記憶する記憶部41の構成を説明する。図14は、記憶部41の構成例を説明する概念図である。
第7の実施形態による記憶部41は、それぞれ読み出し及び書き込み処理が可能な第1ポート及び第2のポートを有するデュアルポートメモリが用いられている。このデュアルポートメモリの構成は、第6の実施形態にも用いることはできるが、有効フラグを用いた第4及び第5の実施形態の構成に用いると、より有効に使用することができる。
このデュアルポートメモリにおいては、第1のポートに端子として、読出/書込の選択,アドレス,書き込みデータ,読み出しデータの各端子が設けられており、また、第2のポートとして、アドレスとエントリ番号及び転送条件情報,判定情報を出力する端子が設けられ、例えば、図11において、第1のポートが検索テーブル管理部46に接続され、第2のポートがルール読出部42に接続されている。
これにより、検索テーブル管理部46が記憶部41の検索テーブルに対する編集処理をしている間であっても、検索テーブル管理部46が有効フラグにおいて、編集処理対象の転送条件情報に対応するエントリ番号の有効フラグを立てることにより、ルール読出部42は検索テーブルの各エントリをエントリ番号順に有効フラグとともに読み出し、各適合判定部に対して供給することができる。
すなわち、上述した本実施形態の構成を、第4及び第5の実施形態に対して用いることにより、記憶部41の検索テーブルからのエントリの読み出し処理と、検索テーブルにおける転送条件情報の編集処理を並行して行うことができ、通信処理装置の動作を停止させずに、転送条件情報の編集処理が行え、検索テーブルの編集処理によって、フレームのスループットを低下させることがない。
<第8の実施形態>
次に、図15を用いて、第8の実施形態による検索テーブルを記憶する記憶部41の構成を説明する。図15は、記憶部41の構成例を説明する概念図である。
第8の実施形態による記憶部41は、読み出し及び書き込み処理が可能なポートが1つのシングルポートメモリ41aが用いられている。
ここで、アクセス切替部41bが、検索テーブル管理部46によるアクセス制御信号(アクセス端子に入力される)により、検索テーブル管理部46からのアクセスに対応するか、またはルール読出部42からのアクセスに対応するかを切り替えている。
そして、検索テーブル管理部46がアクセス切替部41bに対し、自身からのシングルポートメモリ41aに対するアクセスを有効とするように、アクセス制御信号を出力することにより、アクセス切替部41bは、検索テーブル管理部46に接続された読出/書込の選択,アドレス,書き込みデータ,読み出しデータの各端子と、シングルポートメモリの各々対応する端子に接続する。
一方、検索テーブル管理部46がアクセス切替部41bに対し、ルール読出部42からのシングルポートメモリ41aにアクセスを有効とするように、アクセス制御信号を出力することにより、アクセス切替部41bは、検索テーブル管理部46に接続されたアドレスとエントリ番号及び転送条件情報,判定情報を出力する端子を、シングルポートメモリの各々対応する端子、例えば、アドレス端子,読み出しデータの端子に接続する。
この図15のシングルポートメモリを用いた記憶部41の構成は、第4及び第5の実施形態にも用いることはできるが、第4及び第5の実施形態のように、書き込みと読み出しを並行して行うことはできないため、機能的に有効に用いることはできない。
しかしながら、有効フラグを用いない第6の実施形態の構成に用いると、デュアルポートメモリを用いるのに比較してコストを低下させることができる。
<第9の実施形態>
検索部40の構成として、図2に示すように複数の適合判定部を並列に並べて、複数のフレームヘッダの適合判定を行うだけでなく、図16に示す第9の実施形態のように、適合判定部を並列に並べたブロック、すなわち判定ブロックを直列に複数接続した構成としてもよい。この図16において、図2と同一の符号を付した構成は、第1の実施形態に記載した構成と同様の動作を行う。
図16に示す実施形態においては、各判定ブロックは、図2の構成と同様であり、例えば、判定ブロックA,B,C各々において、記憶部41A,B,Cが図2に示す記憶部41と同様の機能であり、ルール読出部42A,42B,42Cが図2に示すルール読出部42と同様の機能であり、適合判定部431A〜43nA,431B〜43nB,431C〜43nCが図2に示す適合判定部431〜43nと同様の機能である。
また、判定ブロックの各適合判定部は、他の判定ブロックの対応する適合判定部と直列に接続されている。
すなわち、適合判定部431Aの解析結果情報を入力する入力端子は、適合判定部選択部44の適合判定部431Aに対応する出力端子へ接続されている。この構成は、図2に示す適合判定部選択部44と適合判定部431〜43nとの接続と同様である。
適合判定部431Aの判定情報を出力する出力端子は、適合判定部431Bの適合検出処理の対象となる処理対象情報(図2における解析結果情報に対応)を入力する入力端子に接続されている。
同様に、適合判定部431Bの判定情報を出力する出力端子は、適合判定部431Cの適合検出処理の対象となる処理対象情報を入力する入力端子に接続されている。
また、適合判定部431Cの判定情報を出力する出力端子は、結合部45の適合判定部431Cに対応した入力端子に接続されている。この構成は、図2に示す適合判定部431〜43nと、結合部45との接続と同様である。
上述したように、第9の実施形態は、図2の検索テーブルを複数に分割、例えば、適合処理の分割したエントリ群を各ブロックの検索テーブルに分配し、直列に接続された適合判定部により、フレームヘッダの適合検出処理をパイプライン処理として行う。
ここで、判定ブロックの検索の組合せとしては、異なる種類の検索の組合せでも、また同一種類の検索の組合せのいずれでもかまわない。
異なる種類の検索の組合せとして、例えば、NAT/NAPT検索(エントリ番号1〜256)→経路検索(エントリ番号1〜256)→フィルタ・分類検索(エントリ番号1〜256)の組合せがある。
また、同一種類の検索の組合せとして、NAT/NAPT検索(エントリ番号1〜256)→経路検索(エントリ番号1〜256)→フィルタ・分類検索(エントリ番号1〜256)→フィルタ・分類検索(エントリ番号257〜612)の組合せも可能である。
すなわち、各判定ブロックにおいて、時間T以内で判定ブロックに対応する検索テーブルの全てのエントリに対する比較が完了する必要がある。時間T以内で完了しない判定ブロックがあると、その判定ブロックにおいて、適合判定部が検索処理中に次のフレームの入力が行われてしまい、検索できずに廃棄されるフレームが発生する。
これを回避するため、判定ブロックのなかで最も時間がかかる判定ブロックの検索の時間Tmaxを基準に各判定ブロックの並列度を設定する必要がある。
そのため、NAT/NAPT検索及び経路検索が256個のエントリであり、フィルタ・分類検索が512個のエントリとすると、NAT/NAPT検索(エントリ番号1〜256)→経路検索(エントリ番号1〜256)→フィルタ・分類検索(エントリ番号1〜512)のパイプライン構成となる。この場合、フィルタ・分類検索の判定ブロックによって並列度が決定されてしまうため、NAT/NAPT検索及び経路検索の判定ブロックは無駄に並列度を増加させることとなり、回路規模を増大させることとなる。
したがって、NAT/NAPT検索(エントリ番号1〜256)→経路検索(エントリ番号1〜256)→フィルタ・分類検索(エントリ番号1〜256)→フィルタ・分類検索(エントリ番号257〜512)と、各判定ブロックの比較するエントリ数を統一したパイプライン構成とすることで、各判定ブロックの検索の時間を同一とすることとなり、上述したような、回路規模を無駄に増大させることが無くなる。
以下の説明としては、異なる種類の検索処理を行う判定ブロックをパイプライン接続した構成例を説明する。
ここで、ブロックAにおいては、NAT/NAPTの適合検出(検索)処理が行われており、解析結果情報として、IPアドレス(WANの場合グローバルアドレス、LANの場合ローカルアドレス),プロトコル(NAPTのみ),ポート番号(WANの場合グローバルポート番号、LANの場合ローカルポート番号)、受信論理IF番号、受信物理IF番号(WANポート,LANポート,CPUI/F)、送信元MACアドレス、L3プロトコル,送信元IPv4/IPv6アドレス,宛先IPv4/IPv6アドレス,VLANタグ等が入力され、記憶部41Aに記憶されている検索テーブルの転送条件情報(入力される解析結果情報と判定情報との対応を示す)との適合判定処理の結果として、以下の判定情報が、次段のブロックBにおける処理対象情報として出力される。ブロックAにおける判定情報としては、NAT/NAPT方法(NAT,NAPT,また全てのルールに対して不適合の場合付け替えなし)、付け替え後(変更後)のIPv4アドレス及びポート番号及び適合が検出された転送条件情報のエントリ番号、検索ミスヒット有無情報(適合検出により適合したか否かを示す情報)、送信論理インターフェース番号等がある。
また、ブロックBにおいては、フレームを転送する宛先への経路の適合検出(検索)処理が行われており、処理対象情報(解析結果情報)として、前段の判定ブロックAの判定情報、及び受信論理I/F(ルールにおいて複数の受信論理I/Fを指定可),L3プロトコル(ルールにおいて、Pv4またはIPv6のいずれかを指定可),送信元IPv4/IPv6アドレス,宛先IPv4/IPv6アドレス等が入力され、記憶部41Bに記憶されている検索テーブルの転送条件情報(入力される解析結果情報と判定情報との対応を示す)との適合判定処理の結果として、以下の判定情報が、次段のブロックCにおける処理対象情報として出力される。ブロックBにおける判定情報(経路検索結果)としては、送信時のNAT/NAPTの有無,MTU値,宛先MACアドレス,送信論理I/F番号(I/F別のフラグ),検索ミスヒット有無情報(適合検出により適合したか否かを示す情報)等がある。
また、ブロックCにおいては、第1〜第8の実施形態で述べたようなフレームの転送の可否を判定する適合検出処理(フィルタ処理)と、通信制御を行う際の分類クラスへの振り分けである分類処理とが行われており、処理対象情報(解析結果情報)として、前段の判定ブロックA及び判定ブロックBにおける判定情報、及びCPU転送,受信論理I/F番号,送信論理I/F番号,L3プロトコル,送信元IPv4/IPv6アドレス,宛先IPv4/IPv6アドレス,送信元ポートアドレス,宛先ポートアドレス,VLANタグ等が入力され、記憶部41Bに記憶されている検索テーブルの転送条件情報(入力される解析結果情報と判定情報との対応を示す)との適合判定処理の結果として、破棄(判定として転送を否),通過(判定として転送を可)及びCPU転送の選択(判定として転送を可)のいずれかと、処理対象情報とにより判定された品質クラス(キューを決める値、Primary/Secondaryの両方),リマーク値(変更後のTOS/TC値、Primary/Secondaryの両方)及びエントリ番号とが判定情報として、次段の結合部45に出力される。
動作の例として、ブロックAの適合判定部431A,ブロックBの適合判定部431B及びブロックCの適合判定部431Cからなる直列接続におけるパイプライン処理を説明する。
パーサ部30は、フレームが入力されるごとに、クロックに同期して、解析結果情報を検索部に送信する。ここで、適合判定部431A,431B,431Cが直列に接続されたパイプライン処理に注目して説明されているが、他の適合判定部が直列に接続されたパイプライン処理も同様な動作を行う。
ここで、検索部40の動作が開始され、パーサ部30から解析結果情報が入力されたとする。
また、記憶部41A,41B,41Cの各検索テーブルには、第1エントリから第mエントリのm個の転送条件情報が設定されているとする。さらに、適合判定部431A〜43nA,431B〜43nB,431C〜43nCは記憶している優先度を「0」に初期化する。本実施形態では、エントリ番号が優先度となっており、1→2→…→mの順に優先度が高くなるとする。
検索部40の動作開始時において、適合判定部選択部44は、内部の適合判定部カウンタを「1」に初期設定する。上記適合判定カウンタは、第1の実施形態に記載してあるように、解析結果情報が入力される毎にインクリメントし、入力された解析結果情報の数を計数し、解析結果情報を出力する適合判定部を指定するものであり、例えば、「1」のとき適合判定部431A,「2」のとき適合判定部432A,…,「n」のとき適合判定部43nAを指定する。
適合判定部選択部44は、第1の実施形態と同様に、クロックの入力されたタイミングにて、パーサ部30から解析結果情報を入力し、上記適合判定カウンタが「1」であるため、この解析結果情報を適合判定部431へ出力する。このとき、適合判定部カウンタは、上記解析結果情報が入力されたことで計数値をインクリメントし、計数値「2」とする。
そして、適合判定部431Aは、入力される解析結果情報を保持し、一時的に優先度を保持する優先度変数を初期化し、解析結果情報に対して判定を終えたエントリ数を計数するエントリ数カウンタを「0」に初期化する。
このとき、適合判定部431A以外、すなわち適合判定部432A〜43nAは解析結果情報が入力されないため、ルール読出部42Aから供給される第1エントリの転送条件情報を入力する以外の動作を行わない。
また、ルール読出部42Aは、上記クロックのタイミングにて、記憶部41Aの検索テーブルから第1エントリの転送条件情報を読み出し、適合判定部431A〜43nAの全てに対し、エントリ番号とともに出力する。
これ以降、ブロックAは、第1の実施形態における検索部40の適合判定部431〜43n,ルール読出部42と、同様な処理を行うため、説明を省略する。
そして、適合判定処理を繰り返し行った結果、第1の実施形態における適合判定部431と同様に、適合判定部431Aは、エントリ数カウンタのルール計数値が「m」に達したか否か、すなわち、検索テーブル全てのエントリが終了したか否かの検出を行う。
このとき、適合判定部431Aは、ルール数計数値が「m」に達したことを検出した場合、入力された解析結果情報を検索テーブルの全てのエントリと比較したため、判定情報としてブロックAにおける最も高い優先度として記憶されているエントリ番号及び/または判定情報と、エントリ数カウンタの出力する判定完了信号と、解析結果情報とを、次段のブロックBにおける適合判定部431Bへ出力する。
次に、適合判定部431Bは、適合判定部431Aからの判定完了信号が出力された後のクロックにより、適合判定部431Aの出力する解析結果情報,エントリ番号及び/または判定情報を入力し、この判定情報及び解析結果情報の一部または全てを処理対象情報として用いる。
そして、検索テーブルのルール数がブロックAと同様に「m」であるとすると、適合判定部431Bは、適合判定部431Aと同様に、ルール読出部42Bが読み出すルールと、上記処理対象情報との適合検出処理を行い、エントリ数カウンタのルール計数値が「m」に達した(一致する)か否か、すなわち、検索テーブル全てのルールが終了したか否かの検出を行う。
そして、適合判定部431Bは、ルール数計数値が「m」に達したことを検出した場合、入力された処理対象情報を検索テーブルの全てのエントリと比較したため、判定情報としてブロックBにおける最も高い優先度として記憶されているエントリ番号及び/または判定情報と、エントリ数カウンタの出力する判定完了信号とに、ブロックAの判定結果を付加して、解析結果情報とともに、次段のブロックCにおける適合判定部431Cへ出力する。
次に、適合判定部431Cは、適合判定部431Bからの判定完了信号が出力された後のクロックにより、適合判定部431Bの出力する解析結果情報,ブロックA及びブロックBの双方のエントリ番号及び/または判定情報を入力し、解析結果情報及び判定情報(ブロックA及びB)の判定情報の一部または全てを、処理対象情報、すなわち新たな解析結果情報とする。
そして、検索テーブルのルール数がブロックBと同様に「m」であるとすると、適合判定部431Cは、適合判定部431Bと同様に、ルール読出部42Cが読み出す転送条件情報と、上記処理対象情報との適合検出処理を行い、エントリ数カウンタのルール計数値が「m」に達したか否か、すなわち、検索テーブル全てのエントリが終了したか否かの検出を行う。
そして、適合判定部431Cは、ルール数計数値が「m」に達したことを検出した場合、入力された処理対象情報を検索テーブルの全てのエントリと比較したため、判定情報としてブロックCにおける最も高い優先度として記憶されているエントリ番号及び/または判定情報と、エントリ数カウンタの出力する判定完了信号とに、ブロックA及びBにおける判定結果を付加して結合部45へ出力する。
同様に、適合判定部432A,432B,432C、適合判定部433A,433B,433C、…、適合判定部43nA,43nB,43nC各々の組合せは、パーサ部30のバッファにフレームデータが連続的に入力されているとすると、1クロックずつずれて、上述した適合判定部431A,431B,431Cの組合せと同様の動作を行う。
次に、結合部45は、ブロックCの各適合判定部から出力される判定結果(すなわちエントリ番号及び/または判定情報とブロックA及びBにおける判定結果との一部もしくは全て)を、第1の実施形態と同様に、判定完了信号が出力された適合判定部の信号をクロックに同期させて、次段のCPU転送判定部61へ出力する。
なお、図1における検索部40の適合判定部を動作させる機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより適合判定部による並列した適合判定処理の制御を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、ホームページ提供環境(あるいは表示環境)を備えたWWWシステムも含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
本発明の第1の実施形態による通信処理装置の構成例を示すブロック図である。 図1における検索部40の構成例を示すブロック図である。 第1の実施形態における検索部40の記憶部41に記憶されている検索テーブルの構成を示す概念図である。 検索テーブルに記載されたルールの構成を説明する概念図である。 第1の実施形態における検索部40の適合検出処理の動作例を説明するフローチャートである。 第2実施形態における記憶部41に記憶されている検索テーブルの構成例を示す概念図である。 第3実施形態における記憶部41に記憶されている検索テーブルの構成例を示す概念図である。 第3の実施形態における検索部40の各適合判定部の構成例を示すブロック図である。 第4の実施形態ににおける記憶部41に記憶されている検索テーブルの構成例を示す概念図である。 第4の実施形態における検索部40の適合検出処理の動作例を説明するフローチャートである。 第5の実施形態における検索部40の構成例を示すブロック図である。 第5の実施形態における検索テーブルに対するルール変更処理の説明を行う概念図である。 第6の実施形態におけるフレーム情報転送制御部200の構成例を示すブロック図である。 第7の実施形態における記憶部41の構成例を示す概念図である。 第8の実施形態における記憶部41の構成例を示す概念図である。 第9の実施形態における検索部40の構成例を示すブロック図である。
符号の説明
1…通信処理装置
2…通信処理回路
3…DDR−SDRAM
4…CPU
4a…ドライバ
11…WAN用MACI/F
12…LAN用MACI/F
13…IPsec部
14…書き込みスケジューラ部
15…CPUI/F
16…フレーム生成部
17…メモリコントローラ部
18…ハンドル管理部
19…DDR−SDRAMI/F
30…パーサ部
40…探索部
41,41A,41B,41C…記憶部
41a…記憶部(シングルポートメモリ)
41b…アクセス切替部
42,42A,42B,42C…ルール読出部
431,432,433,43n…適合判定部
431A,432A,433A,43nA…適合判定部
431B,432B,433B,43nB…適合判定部
431C,432C,433C,43nC…適合判定部
44…適合判定部選択部
45…結合部
46…検索テーブル管理部
61…CPU転送判定部
62…キュー選択部
70…QoS部
100,110…物理I/F
100A,100B…比較部
101A,101B…転送条件情報記憶部
102…解析結果情報記憶部
103…検出結果選択部
104…エントリ数カウンタ
201…フレーム情報FIFOバッファ
202…フレーム情報転送スイッチ

Claims (7)

  1. フレームを受信し、前記フレームから前記フレーム内の所定の位置に記述されている情報または前記情報及び前記フレームを入力したインタフェースの情報を含む解析結果情報を取得し、前記解析結果情報に応じて、前記フレームの加工または前記フレームの転送を行う、通信処理装置であり、
    解析結果情報に対する条件を示す転送条件情報と、フレームの加工または前記フレームの転送の処理方法を指定する判定情報を、テーブルのエントリとして記憶する記億部と、
    前記テーブルの各エントリの転送条件情報に基づいて、解析結果情報に対して適合の有無を判定し、適合と判定したエントリの判定情報を出力する、検索部と、
    を有し、
    検索部が、
    解析結果情報と転送条件情報を入力し、前記転送条件情報に基づいて前記解析結果情報に対して適合の有無を判定する複数の適合判定部と
    クロックに同期し、前記記憶部のテーブルに記憶されている順番に、前記エントリを読み出し、前記複数の適合判定部の各々に供給するルール読み出し部と、
    前記クロックに同期して入力される解析結果情報を、前記複数の適合判定部の1つに順番に出力する適合判定部選択部と、
    各適合判定部が、適合判定部毎に異なる解析結果情報を入力し、全適合判定部に同時に入力された同一の転送条件情報に基づいて、適合の有無を判定する、ことを特徴とする通信処理装置。
  2. 判定情報に、フレームの通過あるいは破棄を指定するフィルタ判定情報、フレームを品質クラス別に分類する分類判定情報、フレームがIPパケットを含むときの前記IPパケットに対するNAT/NAPT判定情報、前記IPパケットに対する経路判定情報、のうち少なくとも1種類の判定情報を含む、ことを特徴とする請求項1記載の通信処理装置。
  3. 適合判定部が、解析結果情報の入力を契機に、テーブルの各エントリについて、前記エントリの転送条件情報に基づいて前記解析結果情報に対する適合有無の判定を開始し、
    テーブルの全エントリについて前記判定を完了した後、前記判定により適合と判定されたエントリの判定結果及び/または前記エントリを識別するためのエントリ番号を出力する、ことを特徴とする請求項1または請求項2に記載の通信処理装置。
  4. エントリ毎に優先度が設定され、前記適合判定部が、解析結果情報の入力を契機に、テーブルの各エントリについて、前記エントリの転送条件情報に基づいて前記解析結果情報に対する適合の有無を判定し、適合と判定されたエントリが複数個検出された場合に、前記エントリのうち最も優先度が高いエントリの、判定情報及び/またはエントリ番号を出力する、ことを特徴とする請求項に記載の通信処理装置。
  5. 前記エントリ毎に、エントリが有効か否かを示す有効フラグが設定され、前記適合判定部が、有効フラグをチェックしてエントリが有効であれば、解析結果情報に対する適合検出処理を行う
    ことを特徴とする請求項1から請求項4のいずれかに記載の通信処理装置。
  6. フレームを受信し、前記フレームから前記フレーム内の所定の位置に記述されている情報または前記情報及び前記フレームを入力したインタフェースの情報を含む解析結果情報を取得し、前記解析結果情報に応じて、前記フレームの加工または前記フレームの転送処理を行う、通信処理方法であり、
    解析結果情報に対する条件を示す転送条件情報と、フレームの加工または前記フレームの転送の処理方法を指定する判定情報を、テーブルのエントリとして記憶部に記億させる記憶過程と、
    検索部が前記テーブルの各エントリの転送条件情報に基づいて、解析結果情報に対して適合の有無を判定し、適合と判定したエントリの判定情報を出力する検索過程と、
    を有し、
    前記検索過程において、
    複数の適合判定部が解析結果情報と転送条件情報を入力し、前記転送条件情報に基づいて前記解析結果情報に対して適合の有無を判定する適合判過程と
    ルール読み出し部がクロックに同期し、前記記憶部のテーブルに記憶されている順番に、前記エントリを読み出し、前記複数の適合判定部の各々に供給するルール読み出し過程と、
    適合判定部選択部が前記クロックに同期して入力される解析結果情報を、前記複数の適合判定部の1つに順番に出力する適合判定部選択過程と、
    前記適合判定過程において、各適合判定部が適合判定部毎に異なる解析結果情報を入力し、全適合判定部に同時に入力された同一の転送条件情報に基づいて、適合の有無を判定することを特徴とする通信処理方法。
  7. 前記検索過程において、適合判定部が、解析結果情報の入力を契機に、テーブルの各エントリについて、前記エントリの転送条件情報に基づいて前記解析結果情報に対する適合有無の判定を開始し、
    テーブルの全エントリについて前記判定を完了した後、前記判定により適合と判定されたエントリの判定結果及び/または前記エントリを識別するためのエントリ番号を出力する、ことを特徴とする請求項に記載の通信処理方法。
JP2005363510A 2005-12-16 2005-12-16 通信処理装置及び通信処理方法 Active JP4263718B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005363510A JP4263718B2 (ja) 2005-12-16 2005-12-16 通信処理装置及び通信処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005363510A JP4263718B2 (ja) 2005-12-16 2005-12-16 通信処理装置及び通信処理方法

Publications (2)

Publication Number Publication Date
JP2007166513A JP2007166513A (ja) 2007-06-28
JP4263718B2 true JP4263718B2 (ja) 2009-05-13

Family

ID=38248857

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005363510A Active JP4263718B2 (ja) 2005-12-16 2005-12-16 通信処理装置及び通信処理方法

Country Status (1)

Country Link
JP (1) JP4263718B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5165336B2 (ja) * 2007-10-23 2013-03-21 パナソニック デバイスSunx株式会社 接続通信機器
JP4971396B2 (ja) * 2009-09-03 2012-07-11 日本電信電話株式会社 通信処理回路及び通信処理方法
WO2012105677A1 (ja) * 2011-02-04 2012-08-09 日本電気株式会社 パケット処理装置、パケット処理方法およびプログラム
JP5639965B2 (ja) * 2011-06-20 2014-12-10 日本電信電話株式会社 非同期動作検索回路
JP5748286B2 (ja) * 2011-12-16 2015-07-15 日本電信電話株式会社 フレーム転送装置およびフレーム判定方法
JP5848185B2 (ja) * 2012-04-20 2016-01-27 日本電信電話株式会社 フレーム検索処理装置および方法

Also Published As

Publication number Publication date
JP2007166513A (ja) 2007-06-28

Similar Documents

Publication Publication Date Title
US10735221B2 (en) Flexible processor of a port extender device
US8782739B2 (en) Access list key compression
US7289498B2 (en) Classifying and distributing traffic at a network node
US6798788B1 (en) Arrangement determining policies for layer 3 frame fragments in a network switch
US8094659B1 (en) Policy-based virtual routing and forwarding (VRF) assignment
US8284664B1 (en) Redirecting data units to service modules based on service tags and a redirection table
JP3717836B2 (ja) ダイナミック・ロード・バランサ
US6674769B1 (en) Simultaneous searching of layer 3 policy filter and policy cache in a network switch port
US7760737B2 (en) Method for reordering and reassembling data packets in a network
US10701190B2 (en) Efficient parsing of optional header fields
JP2005522924A (ja) パケット処理方法およびパケット処理システム
JP4340653B2 (ja) 通信処理装置及び通信処理方法
EP2061190A1 (en) Method, apparatus and system for complex flow classification of fragmented datagrams
JP4263718B2 (ja) 通信処理装置及び通信処理方法
JP2007135035A (ja) 通信装置及びパケット処理方法
KR102337513B1 (ko) 패킷 컨텐츠로부터 해시 입력을 형성하는 방법 및 장치
US9473601B2 (en) Method of representing a generic format header using continuous bytes and an apparatus thereof
JP6678401B2 (ja) 変更のためにパケットを個々のレイヤに分割し、変更後のレイヤを情報処理で継合する方法およびその装置
US9497294B2 (en) Method of using a unique packet identifier to identify structure of a packet and an apparatus thereof
KR100864889B1 (ko) Tcp 상태 기반 패킷 필터 장치 및 그 방법
JP4340646B2 (ja) 通信処理回路、通信処理方法
JP4729389B2 (ja) パターン照合装置、パターン照合方法、パターン照合プログラム及び記録媒体
WO2006085374A1 (ja) 通信装置
US7240149B1 (en) Multiple branch operations in an associative memory
JP2008085886A (ja) パケット処理装置、パケット処理方法及びパケット処理プログラム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080424

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080507

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080707

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090203

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090212

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

Free format text: PAYMENT UNTIL: 20120220

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4263718

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20120220

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

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

Free format text: PAYMENT UNTIL: 20120220

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20130220

Year of fee payment: 4

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250