JP5682442B2 - パケット分類器、パケット分類方法、及びパケット分類プログラム - Google Patents
パケット分類器、パケット分類方法、及びパケット分類プログラム Download PDFInfo
- Publication number
- JP5682442B2 JP5682442B2 JP2011106914A JP2011106914A JP5682442B2 JP 5682442 B2 JP5682442 B2 JP 5682442B2 JP 2011106914 A JP2011106914 A JP 2011106914A JP 2011106914 A JP2011106914 A JP 2011106914A JP 5682442 B2 JP5682442 B2 JP 5682442B2
- Authority
- JP
- Japan
- Prior art keywords
- rule
- block
- command
- processing
- entry
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Description
1−1.概要
図4は、本発明の第1の実施の形態に係るパケット分類器1の構成を示すブロック図である。パケット分類器1は、パケット分類に用いられる複数のルールを管理する。各ルールは、パケットヘッダに含まれる1以上のフィールドの組み合わせにより定義される。更に、本実施の形態に係るパケット分類器1は、入力コマンドに応じて、エントリの動的更新(新規ルールの追加、既存ルールの削除)を自動的に行う。
ルール比較ブロック2は、検索コマンドに応じて、LOOKUP処理を実行する。具体的には、ルール比較ブロック2は、自身が管理するルール群に対して、検索キーがいずれかのルールにマッチするか否かを判定する。検索キーにマッチするルール(以下、マッチルールと呼ぶ)が存在する場合、当該ルール比較ブロック2は、当該マッチルールを結果出力ブロック5に通知する。検索キーが複数のルールにマッチする場合、当該ルール比較ブロック2は、複数のマッチルールのうち最も優先度の高いルールを結果出力ブロック5に通知する。一方、検索キーにマッチするルールが存在しない場合、当該ルール比較ブロック2は、マッチルールが存在しなかったことを結果出力ブロック5に通知する。結果出力ブロック5は、各ルール比較ブロック2から検索結果を受け取り、最も優先度の高いマッチルールを選択する。そして、結果出力ブロック5は、その選択結果を示す出力データ7を、LOOKUP処理の最終結果として出力する。
ルール比較ブロック2は、挿入コマンドに応じて、INSERT処理を実行する。具体的には、まず、各ルール比較ブロック2は、新規ルールを自身で管理すべきかを判定する。例えば、ルール比較ブロック2が決定木を用いて構成されている場合、自身の決定木に追加してもルールの複製が発生しないか、つまり、新規ルールが自身の決定木における単一の葉ノードによってのみ管理され得るかどうかを判定する。ルールの複製が発生してしまう場合、当該ルール比較ブロック2は、新規ルールの追加対象とはならない。一方、新規ルールを自身で管理しても良いと判定した場合、当該ルール比較ブロック2は「エントリ追加対象候補」となる。例えば、ルール比較ブロック2が決定木を用いて構成されている場合、新規ルールが自身の決定木における単一の葉ノードによってのみ管理され得ると判定された場合に、当該ルール比較ブロック2は「エントリ追加対象候補」となる。また、この際、当該単一の葉ノードは「追加対象葉ノード」となる。
ルール比較ブロック2は、削除コマンドに応じて、DELETE処理を実行する。具体的には、各ルール比較ブロック2は、削除対象である既存ルールが自身で管理されているか否かを判定する。当該既存ルールが自身で管理されている場合、当該ルール比較ブロック2は「エントリ削除対象」となる。また、ルール比較ブロック2が決定木を用いて構成されている場合、削除対象である既存ルールが管理されている葉ノードは「削除対象葉ノード」となる。エントリ削除対象であるルール比較ブロック2は、当該既存ルールを無効化する。
上述の通り、本実施の形態によれば、コマンド入力ブロック4は、入力コマンドを、複数のルール比較ブロック2−1〜2−Nのうち必要なもの(選択ルール比較ブロック)だけに入力する。図5を参照して、この処理について説明する。
次に、本実施の形態に係るパケット分類器1の構成例を更に詳しく説明する。上記のルールの管理ができれば、ルール比較ブロック2はどのようなルール管理機構、及び検索処理を実行しても良い。以下では、典型的な例として、各ルール比較ブロック2が決定木を用いて実現される場合の構成を説明する。
まず、LOOKUP処理を説明する。図15は、本実施の形態におけるLOOKUP処理を示すフローチャートである。
パケット分類器1に、入力データ6が入力される。その入力データ6は、LOOKUP処理を示す種別データと、被検索対象パケットから抽出された検索キーとを含む。コマンド入力ブロック4は、その入力データ6を受け取る。コマンド入力ブロック4は、その入力データ6に基づいて、上述したように選択ルール比較ブロック2を決定し、装置内コマンド(ここでは、検索コマンド)を生成する。そして、コマンド入力ブロック4は、生成した装置内コマンドを、選択ルール比較ブロック2に対して一斉に出力する。
コマンド入力ブロック4から検索コマンドを受け取ると、ルール比較ブロック2は、ルール一致比較処理を実行する。具体的に、ルール比較ブロック2が決定木で実現された決定木処理ブロック2の場合、図16に示すルール一致比較処理を行う。図16は、決定木処理ブロック2におけるステップA2の処理を示すフローチャートである。
決定木処理ブロック2は、ルール一致比較処理として、指定された検索キーを用いて、自身の決定木を辿る処理を実行する。図17は、ステップB1の処理を示すフローチャートである。
決定木を辿る処理は、決定木の根ノードから開始する。そのため、まず、現在の処理ノードが、決定木の根ノードに設定される。具体的には、挿入コマンドが、決定木パイプラインブロック20の初段の決定木ノード処理ブロック200−1に入力される。
子ノード決定ブロック2000は、処理種別がLOOKUPであることを確認した上で、ノード情報記憶ブロック2001からノード情報を読み出す。
子ノード決定ブロック2000は、読み出したノード情報、検索キーの各フィールドのビット列、及び有効ビット長に基づいて、次段の子ノードのノード情報が格納されている記憶領域のアドレス値を算出する。具体的には、次のようにして次段のアドレス値は算出される(図19も参照されたい)。
続いて、子ノード決定ブロック2000は、入力された有効ビット長から分割数kを減算することによって、有効ビット長を更新する。上記の例では、フィールドID=0001の有効ビット長が3−1=2に、フィールドID=0100の有効ビット長が4−3=1に更新される。尚、決定木ノード処理ブロック200−1には有効ビット長が入力されないが、その場合の有効ビット長は、予め各フィールドのフィールド長として設定されているものとする。それ以降の決定木ノード処理ブロック200に対しては、前段の決定木ノード処理ブロック200から有効ビット長が入力される。
次に、子ノードが葉ノードであるか否かが判定される。具体的には、決定木ノード処理ブロック200−Hが処理するノードの子ノードが葉ノードであるため(図7参照)、処理する決定木ノード処理ブロック200が自動的に判別すればよい。
ステップB1が終了すると、決定木ノード処理ブロック200−Hは、ルールパイプラインブロック22のルール処理ブロック220−1に、算出したアドレス値とコマンドを含む出力データ2003を出力する。
続いて、ルールパイプラインブロック22が、検索キーとルールリスト中の各ルールとの比較(マッチング処理)を行う。図20は、ステップB3の処理を示すフローチャートである。
マッチング処理は、ルールリスト中の1番目のルールから開始する。具体的には、初段のルール処理ブロック220−1から処理を開始する。
比較更新処理ブロック2200は、処理種別がLOOKUPであることを確認した上で、入力されたアドレス値を用いてエントリ記憶ブロック2201からエントリ情報を読み出す。そして、比較更新処理ブロック2200は、有効フラグを確認する。
ルールが有効である場合(ステップD3;Yes)、比較更新処理ブロック2200は、検索キーと読み出したルールとの比較を行う。この比較方法については、例えば、非特許文献2に開示されている。
検索キーがルールにマッチした場合(ステップD5;Yes)、比較更新処理ブロック2200は、当該ルールの優先度と現在のマッチルールの優先度を比較する。ここで、現在のマッチルールとは、前段のルール処理ブロック220までにマッチしたルールのうち、最も優先度が高いルールを意味する。一方、現在のルール処理ブロック220において比較に用いられたルールは、比較ルールと参照される。
比較ルールの優先度の方が大きかった場合(ステップD7;Yes)、比較更新処理ブロック2200は、比較ルールを新たな現在のマッチルールに設定する。その後、処理は、ステップD9に進む。
現在のルールが、ルールリスト中の最後のルールか否かが判定される。具体的には、ルール処理ブロック220−i(i=1、2、・・・、B−1)が処理を実行している場合、それは最後のルールではない(ステップD9;No)。この場合、そのルール処理ブロック220−iは、次段のルール処理ブロック220−(i+1)に、アドレス値とコマンドを含む出力データ2204を出力する(ステップD10)。そして、処理はステップD2に戻り、ルールリスト中の次のルールに対するマッチング処理が実行される。
結果出力ブロック5は、複数の決定木処理ブロック2−1〜2−Nから検索結果を受け取る。結果出力ブロック5は、マッチルールの優先度同士を比較し、最も優先度の高いマッチルールを選択する。そして、結果出力ブロック5は、その選択結果を示す出力データ7として、例えば、最高優先度であったマッチルールのルールIDを、LOOKUP処理の最終結果として出力する。このとき、マッチルールが存在しなかった場合には、上述した特値のルールIDを出力することで、マッチルールが存在しなかったことを示すことができる。
次に、INSERT処理を説明する。図22は、本実施の形態におけるINSERT処理を示すフローチャートである。
パケット分類器1に、入力データ6が入力される。その入力データ6は、INSERT処理を示す種別データと、追加される新規ルールとを含む。コマンド入力ブロック4は、その入力データ6を受け取る。コマンド入力ブロック4は、その入力データ6に基づいて、上述したように選択ルール比較ブロック2を決定し、装置内コマンド(ここでは、検索コマンド)を生成する。そして、コマンド入力ブロック4は、生成した装置内コマンドを、選択ルール比較ブロック2に対して一斉に出力する。
コマンド入力ブロック4から検索コマンドを受け取ると、ルール比較ブロック2は、当該ブロックにおいてルールの複製が発生するかを確認する。具体的には、ルール比較ブロック2が決定木で実現された決定木処理ブロック2の場合、図23に示すルールの複製有無確認処理を行う。図23は、決定木処理ブロック2におけるステップA4の処理を示すフローチャートである。
コマンド入力ブロック4から挿入コマンドを受け取ると、決定木処理ブロック2は、指定された新規ルールを用いて、自身の決定木を辿る処理を実行する。図24は、ステップB4の処理を示すフローチャートである。
まず、LOOKUP処理の場合と同様に、現在の処理ノードが、決定木の根ノードに設定される。
子ノード決定ブロック2000は、処理種別がINSERTであることを確認した上で、コマンド内の終了フラグを参照する。終了フラグが‘1’である場合(ステップC7;Yes)、処理はステップC5に進む。一方、終了フラグが‘0’である場合(ステップC7;No)、処理はステップC2に進む。
LOOKUP処理の場合と同様に、子ノード決定ブロック2000は、ノード情報記憶ブロック2001からノード情報を読み出す。
子ノード決定ブロック2000は、読み出したノード情報、新規ルールの各フィールドのビット列、及び有効ビット長に基づいて、ルールの複製が発生するか否か判定する。ルールの複製が発生するか否かは、アドレス値の算出を行う際に、ワイルドカードが含まれるか否かで判断することができる。
ルールの複製が発生する場合(ステップC9;Yes)、当該決定木処理ブロック2は、エントリ追加対象候補とはならない。この場合、子ノード決定ブロック2000は、コマンドの終了フラグを‘1’に設定する。その後、処理はステップC5に進む。
一方、ルールの複製が発生しない場合(ステップC9;No)、LOOKUP処理の場合と同様に、次段のアドレス値の算出(ステップC3)及び有効ビット長の更新(ステップC4)が行われる。その後、処理はステップC5に進む。
LOOKUP処理の場合と同様に、ステップC5、C6が実施される。つまり、次ノードが葉ノードではない場合(ステップC5;No)は、決定木ノード処理ブロック200−i(i=1、2、・・・、H−1)は、次段の決定木ノード処理ブロック200−(i+1)に出力データ2003を出力する(ステップC6)。そして、処理はステップC7に戻り、次段のノードが処理ノードとなる。一方、次ノードが葉ノードである場合(ステップC5;Yes)は、ステップB4が終了する。
ステップB4が終了すると、決定木ノード処理ブロック200−Hは、算出したアドレス値とコマンドを含む出力データ2004を、エントリ数カウントブロック21に出力する。
エントリ数カウントブロック21のカウント処理ブロック210は、決定木ノード処理ブロック200−Hから入力データ212(=上述の出力データ2004)を受け取る。カウント処理ブロック210は、処理種別がINSERTであることを確認した上で、終了フラグを参照する。終了フラグが‘0’の場合、当該決定木処理ブロック2は、エントリ追加対象候補である。この場合、カウント処理ブロック210は、入力されたアドレス値を用いて、エントリ数記憶ブロック211から追加対象葉ノードに関するエントリ数情報(有効エントリ数)を読み出す。そして、カウント処理ブロック210は、読み出した有効エントリ数を示す出力データ216を、エントリ追加対象決定ブロック3に出力する。
エントリ追加対象決定ブロック3は、決定木処理ブロック2から通知される情報に基づいて、エントリ追加対象候補を認識し、エントリ追加対象候補の中からエントリ追加対象を選択する。図25は、ステップA5の処理を示すフローチャートである。
エントリ追加対象決定ブロック3は、エントリ追加対象候補から有効エントリ数を示す情報を受け取る(ステップE1)。次に、エントリ追加対象決定ブロック3は、有効エントリ数がルールリストの最大数B(リストサイズ)を下回っているものがあるか否か確認する(ステップE2)。有効エントリ数がリストサイズを下回っているものが無い場合(ステップE2;No)、エントリ追加対象決定ブロック3は、エントリ追加対象は存在しないと判断する(ステップE3)。
一方、有効エントリ数がリストサイズを下回っているものがある場合(ステップE2;Yes)、エントリ追加対象決定ブロック3は、有効エントリ数が最小であるエントリ追加対象候補を、エントリ追加対象として選択する(ステップE4)。その後、エントリ追加対象決定ブロック3は、各決定木処理ブロック2にエントリ追加の可否を通知する(ステップE5)。例えば、エントリ追加対象決定ブロック3は、エントリ追加対象に対して新規ルールの追加を指示し、それ以外の決定木処理ブロック2に対してルール追加処理の不実行を指示する。なお、ここでは有効エントリ数が最小であるエントリ追加対象候補をエントリ追加対象として選択しているが、その他のポリシーに従ってエントリ追加対象を選択しても良い。
エントリ追加対象である決定木処理ブロック2のエントリ数カウントブロック21は、追加対象葉ノードに関する有効エントリ数に“1”を加算し、エントリ数記憶ブロック211に書き込む。これにより、エントリ数記憶ブロック211が最新状態に更新される。それ以外の決定木処理ブロック2のエントリ数カウントブロック21は、コマンドの終了フラグを‘1’に設定する。
続いて、ルールパイプラインブロック22は、ルールの追加処理を行う。図26は、ステップA7の処理を示すフローチャートである。
各決定木処理ブロック2のエントリ数カウントブロック21は、アドレス値と挿入コマンドを含む出力データ214を、ルールパイプラインブロック22のルール処理ブロック220−1に出力する。
ルールの追加処理は、ルールリスト中の1番目のルールから開始する。具体的には、初段のルール処理ブロック220−1から処理を開始する。
比較更新処理ブロック2200は、処理種別がINSERTであることを確認した上で、コマンド内の終了フラグを参照する。終了フラグが‘1’である場合(ステップD14;Yes)、処理はステップD9に進む。一方、終了フラグが‘0’である場合(ステップD14;No)、処理はステップD2に進む。
LOOKUP処理の場合と同様に、比較更新処理ブロック2200は、入力されたアドレス値を用いてエントリ記憶ブロック2201からエントリ情報を読み出す。そして、比較更新処理ブロック2200は、有効フラグを確認する。
ルールが有効ではない場合(ステップD3;No)、当該エントリ(すなわち、空きエントリ)に新規ルールを書き込むことができる。この場合、比較更新処理ブロック2200は、エントリ情報中のルール情報を新規ルールのものに書き換え、且つ、有効フラグを‘1’に設定し、エントリ記憶ブロック2201に書き込む。さらに、比較更新処理ブロック2200は、コマンド内の終了フラグを‘1’に設定し、結果フラグを‘1’(追加成功)に設定する。その後、処理はステップD9に進む。
ルールが有効である場合(ステップD3;Yes)、当該エントリに新規ルールを書き込むことは許されない。この場合、そのルール処理ブロック220−iは、次段のルール処理ブロック220−(i+1)に、アドレス値とコマンドを含む出力データ2204を出力する。そして、処理はステップD14に戻り、ルールリスト中の次のルールに対する処理が実行される。
LOOKUP処理の場合と同様に、現在のルールが、ルールリスト中の最後のルールか否かが判定される。現在のルールが最後のルールではない場合(ステップD9;No)、処理は上記ステップD16に進む。一方、最後のルールの場合(ステップD9;Yes)、ルール処理ブロック220−Bは、現在のコマンドを、結果出力ブロック5に出力する(ステップD17)。そして、ステップA7が終了する。
結果出力ブロック5は、複数の決定木処理ブロック2−1〜2−Nからコマンドを受け取る。結果出力ブロック5は、受け取ったコマンド内の結果フラグを参照して、新規ルールが追加されたか、又は追加されなかったかを確認する。そして、結果出力ブロック5は、その結果を示す出力データ7を、INSERT処理の最終結果として出力する。
次に、DELETE処理を説明する。図27は、本実施の形態におけるDELETE処理を示すフローチャートである。
パケット分類器1に、入力データ6が入力される。その入力データ6は、DELETE処理を示す種別データと、削除される既存ルールとを含む。コマンド入力ブロック4は、その入力データ6を受け取る。コマンド入力ブロック4は、その入力データ6に基づいて、上述したように選択ルール比較ブロック2を決定し、装置内コマンド(ここでは、検索コマンド)を生成する。そして、コマンド入力ブロック4は、生成した装置内コマンドを、選択ルール比較ブロック2に対して一斉に出力する。
コマンド入力ブロック4から削除コマンドを受け取ると、各ルール比較ブロック2は、当該ブロックにおいてルールの複製が発生するかを確認する。具体的には、ルール比較ブロック2が決定木で実現された決定木処理ブロック2の場合、図28に示すルールの複製有無確認処理を行う。図28は、決定木処理ブロック2におけるステップA9の処理を示すフローチャートである。
INSERT処理時と同様、コマンド入力ブロック4から削除コマンドを受け取ると、決定木処理ブロック2は、指定された削除ルールを用いて、自身の決定木を辿る処理を実行する。
ステップB4が終了すると、決定木ノード処理ブロック200−Hは、ルールパイプラインブロック22のルール処理ブロック220−1に、算出したアドレス値とコマンドを含む出力データ2003を出力し、ステップA9を終了する。
ルールパイプラインブロック22は、ルールの削除処理を行う。図29は、ステップA10の処理を示すフローチャートである。
ルールパイプラインブロック22は、ルールの削除処理として、対象エントリの削除を行う。図30は、ステップB8の処理を示すフローチャートである。
ステップB8は、ルールリスト中の1番目のルールから開始する。具体的には、初段のルール処理ブロック220−1から処理を開始する。
比較更新処理ブロック2200は、処理種別がDELETEであることを確認した上で、コマンド内の終了フラグを参照する。終了フラグが‘1’である場合(ステップD18;Yes)、処理はステップD9に進む。一方、終了フラグが‘0’である場合(ステップD18;No)、処理はステップD2に進む。
LOOKUP処理の場合と同様に、比較更新処理ブロック2200は、入力されたアドレス値を用いてエントリ記憶ブロック2201からエントリ情報を読み出す。そして、比較更新処理ブロック2200は、有効フラグを確認する。ルールが無効である場合(ステップD3:No)、当該エントリは削除対象ではない。この場合、処理はステップD9に進む。一方、ルールが有効である場合(ステップD3;Yes)、処理はステップD19に進む。
比較更新処理ブロック2200は、読み出したルールと、削除対象として指定されたルールとを比較する。つまり、比較更新処理ブロック2200は、削除対象として指定されているルールが、読み出したルールにマッチするか否かを判定する。ここでは、両者が完全に一致するか否かが判定される。不一致の場合(ステップD5;No)、処理はステップD9に進む。一方、完全一致の場合(ステップD5;Yes)、処理はステップD20に進む。
比較更新処理ブロック2200は、エントリ情報中の有効フラグを‘0’に設定し、エントリ記憶ブロック2201に書き込む。これにより、当該エントリ(ルール)は無効化される。この処理が既存ルールの削除に相当する。更に、比較更新処理ブロック2200は、コマンド内の終了フラグを‘1’に設定し、結果フラグを‘1’(削除成功)に設定する。その後、処理はステップD9に進む。
LOOKUP処理の場合と同様に、現在のルールが、ルールリスト中の最後のルールか否かが判定される。現在のルールが最後のルールではない場合(ステップD9;No)、ルール処理ブロック220−iは、次段のルール処理ブロック220−(i+1)に、アドレス値とコマンドを含む出力データ2204を出力する(ステップD16)。そして、処理はステップD18に戻り、ルールリスト中の次のルールに対する処理が実行される。一方、現在のルールがルールリスト中の最後のルールである場合(ステップD9;Yes)、ステップB8は終了する。
ステップB8が完了すると、ルール処理ブロック220−Bは、アドレス値とコマンドを含む出力データ2205を、エントリ数カウントブロック21に出力する。
エントリ数カウントブロック21のカウント処理ブロック210は、ルール処理ブロック220−Bから入力データ213(=上述の出力データ2005)を受け取る。カウント処理ブロック210は、処理種別がDELETEであることを確認した上で、終了フラグ及び結果フラグを参照する。終了フラグ及び結果フラグが共に‘1’である場合、カウント処理ブロック210は、入力されたアドレス値を用いて、エントリ数記憶ブロック211から削除対象葉ノードに関するエントリ数情報(有効エントリ数)を読み出す。そして、カウント処理ブロック210は、当該有効エントリ数から1を減算し、エントリ数記憶ブロック211に書き込む。これにより、エントリ数記憶ブロック211が最新状態に更新される。
最後に、カウント処理ブロック210は、コマンドを含む出力データ215を結果出力ブロック5に出力する。結果出力ブロック5は、決定木処理ブロック2−1〜2−Nのそれぞれから受け取ったコマンド内の結果フラグを参照して、ルールが削除されたか、又は削除されなかったかを確認する。そして、結果出力ブロック5は、その結果を示す出力データ7を、DELETE処理の最終結果として出力する。
次に、本実施の形態に係るパケット分類器1の第2の構成例を説明する。第2の構成例では、各ルール比較ブロック2が、決定木ではなく、リスト形式でルールを管理する。それ以外の構成は第1の構成例と同じであり、重複する説明は適宜省略される。
まず、LOOKUP処理を説明する。図32は、第2の構成例におけるLOOKUP処理を示すフローチャートである。図32を参照すると、第2の構成例におけるLOOKUP処理は、第1の構成例の動作におけるステップA2がステップA12に置き換わったものである。その他の動作は全て第1の構成例における動作と変わりないため、詳細な説明を省略する。
コマンド入力ブロック4から検索コマンドを受け取るとルール比較ブロック2は、ルール一致比較処理を実行する。図33は、リニアサーチブロック2におけるステップA12の処理を示すフローチャートである。
次に、INSERT処理を説明する。図34は、第2の構成例におけるINSERT処理を示すフローチャートである。図34を参照すると、第2の構成例におけるINSERT処理は、第1の構成例の動作におけるステップA4がステップA13に置き換わったものである。その他の動作は全て第1の構成例における動作と変わりないため、詳細な説明を省略する。
コマンド入力ブロック4からINSERTコマンドを受け取ると、ルール比較ブロック2は、当該ブロックにおいてルールの複製が発生するかを確認する。本構成例の場合、ルール比較ブロックは決定木で構成されていないため、ルールの複製は発生しない。このため、図35に示すルールの複製有無確認処理を行う。図35は、リニアサーチブロック2におけるステップA13の処理を示すフローチャートである。
エントリ数カウントブロック21のカウント処理ブロック210は、コマンド入力ブロック4からコマンドを受け取る。カウント処理ブロック210は、エントリ数記憶ブロック211から当該リニアサーチブロック2の有効エントリ数を読み出す。そして、カウント処理ブロック210は、読み出した有効エントリ数を示す出力データ216を、エントリ追加対象決定ブロック3に出力する。
次に、DELETE処理を説明する。図36は、第2の構成例におけるDELETE処理を示すフローチャートである。図36を参照すると、第2の構成例におけるDELETE処理は、第1の構成例の動作におけるステップA9が除かれたものである。その他の動作は全て第1の構成例における動作と変わりないため、詳細な説明を省略する。
次に、本実施の形態に係るパケット分類器1の第3の構成例について説明する。第3の構成例では、第1の構成例におけるルール比較ブロック2(決定木処理ブロック2)と、第2の構成例におけるルール比較ブロック2(リニアサーチブロック2)が混在する。この場合、ルール比較ブロック2−1〜2−NにおけるM個が第1の構成例におけるルール比較ブロック2(決定木処理ブロック2)であり、残りN−M個が第2の構成例におけるルール比較ブロック2(リニアサーチブロック2)である。
第3の構成例におけるINSERT処理は、第1及び第2の構成例の動作とほぼ同様である。ルール比較ブロック2、エントリ追加対象決定ブロック3以外のブロックについては、全く変わりはないため、詳細な説明を省略する。
エントリ追加対象決定ブロック3は、ルール比較ブロック2から通知される情報に基づいて、エントリ追加対象候補を認識し、エントリ追加対象候補の中からエントリ追加対象を選択する。図37は、ステップA14の処理を示すフローチャートである。
エントリ追加対象決定ブロック3は、エントリ追加対象候補から有効エントリ数を示す情報を受け取る(ステップE1)。次に、エントリ追加対象決定ブロック3は、第1の構成例のルール比較ブロック2のうち、有効エントリ数がルールリストの最大数B(リストサイズ)を下回っているものがあるか否か確認する(ステップE6)。有効エントリ数がリストサイズを下回っているものが無い場合(ステップE6;No)、処理はステップE8に進む。一方、有効エントリ数がリストサイズを下回っているものが有る場合(ステップE6;Yes)、処理はステップE7に進む。
エントリ追加対象決定ブロック3は、第1の構成例のルール比較ブロック2のうち、有効エントリ数が最小であるエントリ追加対象候補を、エントリ追加対象として選択する。その後、処理は、ステップE5に進む。
エントリ追加対象決定ブロック3は、第2の構成例を用いているルール比較ブロック2のうち、有効エントリ数がルールリストの最大数H+B(リストサイズ)を下回っているものがあるか否か確認する。有効エントリ数がリストサイズを下回っているものが無い場合(ステップE8;No)、処理はステップE3に進む。一方、有効エントリ数がリストサイズを下回っているものが有る場合(ステップE8;Yes)、処理はステップE9に進む。
エントリ追加対象決定ブロック3は、エントリを追加できるルール比較ブロック2は存在しないと判断する。その後、処理は、ステップE5に進む。
エントリ追加対象決定ブロック3は、第2の構成例のルール比較ブロック2のうち、有効エントリ数が最小であるエントリ追加対象候補を、エントリ追加対象として選択する。その後、処理は、ステップE5に進む。
エントリ追加対象決定ブロック3は、各ルール比較ブロック2にエントリ追加の可否を通知する。例えば、エントリ追加対象決定ブロック3は、エントリ追加対象に対して新規ルールの追加を指示し、それ以外のルール比較ブロック2に対してルール追加処理の不実行を指示する。なお、ここでは有効エントリ数が最小であるエントリ追加対象候補をエントリ追加対象として選択しているが、その他のポリシーに従ってエントリ追加対象を選択しても良い。
図38は、本発明の第2の実施の形態に係るパケット分類器8の構成を示すブロック図である。図38を参照すると、第2の実施の形態におけるパケット分類器8は、第1の実施の形態におけるパケット分類器1におけるコマンド入力ブロック4をコマンド入力ブロック9に、入力データ6を入力データ10に置き換えたものである。その他の構成は、第1の実施の形態におけるパケット分類器1と同様であるため、詳細な説明は省略する。
図41は、本発明の第3の実施の形態に係るパケット分類器11の構成を示すブロック図である。図41を参照すると、第3の実施の形態におけるパケット分類器11は、第1の実施の形態におけるパケット分類器1におけるエントリ追加対象決定ブロック3をエントリ追加対象ブロック12、結果出力ブロック5を結果出力ブロック13に置き換え、さらにエントリ追加対象ブロック12から結果出力ブロック13へ出力信号を加えたものである。その他の構成は、第1の実施の形態におけるパケット分類器1と同様であるため、詳細な説明は省略する。
エントリ追加対象決定ブロック12は、ルール処理ブロック2から通知される情報に基づいて、エントリ追加対象候補を認識し、エントリ追加対象候補の中からエントリ追加対象を選択する。図43は、ステップA15の処理を示すフローチャートである。
エントリ追加対象決定ブロック12は、エントリ追加対象候補から有効エントリ数を示す情報を受け取る(ステップE1)。次に、エントリ追加対象決定ブロック12は、各エントリ追加対象候補のうち、有効エントリ数がルールリストの最大数B(リストサイズ)を下回っているものがあるか否か確認する(ステップE2)。有効エントリ数がリストサイズを下回っているものが無い場合(ステップE2;No)、処理はステップE3に進む。一方、有効エントリ数がリストサイズを下回っているものが有る場合(ステップE2;Yes)、処理はステップE4に進む。
エントリ追加対象決定ブロック12は、エントリを追加できるルール比較ブロック2は存在しないと判断する(ステップE3)。この場合、エントリ追加対象決定ブロック12は、エントリ追加対象のルール比較ブロック2が存在しなかったことを意味する信号を、結果出力ブロック13に通知する(ステップE10)。そして、ステップA15の処理は終了する。
エントリ追加対象決定ブロック12は、有効エントリ数がリストサイズを下回っているものの中で、有効エントリ数が最小のものをエントリ追加対象ルール比較ブロックとして決定する(ステップE4)。その後、エントリ追加対象決定ブロック12は、エントリ追加対象ルール比較ブロックにのみ、エントリ追加許可を出力する(ステップE11)。この時、エントリ追加対象以外のルール比較ブロック2には、何ら信号は出力されない。そして、ステップA15の処理は終了する。
ステップA15において、エントリ追加対象のルール比較ブロック2が存在したかによって以降の処理が異なる。エントリ追加対象のルール比較ブロック2が存在した場合(ステップA16;Yes)、エントリ追加許可を受け取ったエントリ追加対象のルール比較ブロック2は、第1の実施の形態におけるINSERT時の動作と同様に、ステップA6、ステップA7の処理を実行する。その後、処理はステップA17に進む。一方、エントリ追加対象のルール比較ブロック2が存在しなかった場合(ステップA16;No)、処理はそのままステップA17に進む。
結果出力ブロック13がエントリ追加対象のルール比較ブロック2からコマンドを受け取った場合、結果出力ブロック13は、受け取ったコマンド内の結果フラグを参照して、新規ルールが追加されたか、又は追加されなかったかを確認する。そして、結果出力ブロック13は、その結果を示す出力データ7を、INSERT処理の最終結果として出力する。
次に、本発明の第4の発明を実施するための最良の形態について図面を参照して詳細に説明する。
パケット分類に用いられるルールを管理するパケット分類器であって、
各ルールは、パケットヘッダに含まれる1以上のフィールドの組み合わせにより定義され、
前記パケット分類器は、
検索キーにマッチするルールの検索を指示する検索コマンド、新規ルールの追加を指示する挿入コマンド、あるいは既存ルールの削除を指示する削除コマンドを入力コマンドとして作成するコマンド入力ブロックと、
各々が1以上のルールを管理し、前記入力コマンドに応じた処理を実行するように構成された複数のルール比較ブロックと
を備え、
前記複数のルール比較ブロックは、管理下のルールにおける前記1以上のフィールドの組み合わせの種類に着目して、複数のグループにグループ分けされ、
前記複数のグループのうち、前記検索キーにマッチするルール、前記新規ルール、あるいは前記既存ルールを管理する可能性があるグループは、選択グループであり、
前記選択グループに属するルール比較ブロックは、選択ルール比較ブロックであり、
前記コマンド入力ブロックは、前記検索キー、前記新規ルール、あるいは前記既存ルールを参照することによって、前記選択ルール比較ブロックにだけ前記入力コマンドを入力する
パケット分類器。
付記1に記載のパケット分類器であって、
前記選択グループは、前記検索キー及びルールから抽出される識別情報に基づいて識別可能であり、
前記コマンド入力ブロックは、前記識別情報と前記選択ルール比較ブロックとの対応関係を示すコマンド出力情報を保持し、
前記コマンド入力ブロックは、前記検索キー、前記新規ルール、あるいは前記既存ルールから前記識別情報を抽出し、前記抽出された識別情報と前記コマンド出力情報を参照することによって、前記選択ルール比較ブロックを識別する
パケット分類器。
付記2に記載のパケット分類器であって、
前記識別情報は、前記検索キー及びルールに含まれる所定のフィールドの値である
パケット分類器。
付記2に記載のパケット分類器であって、
前記検索キー及びルールは、複数のフィールドを含み、
前記識別情報は、前記複数のフィールドのそれぞれがワイルドカードを含んでいるか否かを示す情報である
パケット分類器。
付記1乃至4のいずれか一項に記載のパケット分類器であって、
前記複数のルール比較ブロックに接続されたエントリ追加対象決定ブロックを更に備え、
単一のルールは、複製が発生しないように、前記複数のルール比較ブロックのうちいずれか1つによって管理され、
前記入力コマンドが前記挿入コマンドである場合、前記選択ルール比較ブロックの各々は、前記新規ルールが自身によって管理され得るかどうかを判定し、
前記新規ルールが自身によって管理され得る場合、当該選択ルール比較ブロックはエントリ追加対象候補であり、
前記エントリ追加対象決定ブロックは、前記新規ルールを追加する対象であるエントリ追加対象を、前記エントリ追加対象候補の中から選択し、
前記選択されたエントリ追加対象は、前記新規ルールを、自身が管理するルールリストに追加する
パケット分類器。
付記5に記載のパケット分類器であって、
前記複数のルール比較ブロックは、パケット分類に用いられる複数の決定木のそれぞれを構成し、
単一のルールは、前記複数の決定木のうちいずれか1つの決定木における単一の葉ノードによって管理され、
前記入力コマンドが前記挿入コマンドである場合、前記選択ルール比較ブロックの各々は、前記新規ルールが自身の決定木における単一の葉ノードによって管理され得るかどうかを判定し、
前記新規ルールが単一の葉ノードによって管理され得る場合、当該選択ルール比較ブロックは前記エントリ追加対象候補であり、当該単一の葉ノードは追加対象葉ノードであり、
前記エントリ追加対象は、前記新規ルールを、自身の決定木における前記追加対象葉ノードが管理するルールリストに追加する
パケット分類器。
付記6に記載のパケット分類器であって、
前記エントリ追加対象候補は、前記追加対象葉ノードが管理している有効なルールのエントリ数を、前記エントリ追加対象決定ブロックに通知し、
前記エントリ追加対象決定ブロックは、前記エントリ数に基づいて、前記エントリ追加対象を選択する
パケット分類器。
付記5に記載のパケット分類器であって、
前記複数のルール比較ブロックの各々は、リスト形式でルールを管理する
パケット分類器。
パケット分類に用いられるルールを管理するパケット分類器によるパケット分類方法であって、
各ルールは、パケットヘッダに含まれる1以上のフィールドの組み合わせにより定義され、
前記パケット分類方法は、
(A)前記パケット分類器が、複数のルール比較ブロックを提供するステップと、
ここで、
前記複数のルール比較ブロックの各々は、1以上のルールを管理し、入力コマンドに応じた処理を実行するように構成され、
前記入力コマンドは、検索キーにマッチするルールの検索を指示する検索コマンド、新規ルールの追加を指示する挿入コマンド、あるいは既存ルールの削除を指示する削除コマンドであり、
前記複数のルール比較ブロックは、管理下のルールにおける前記1以上のフィールドの組み合わせの種類に着目して、複数のグループにグループ分けされ、
前記複数のグループのうち、前記検索キーにマッチするルール、前記新規ルール、あるいは前記既存ルールを管理する可能性があるグループは、選択グループであり、
前記選択グループに属するルール比較ブロックは、選択ルール比較ブロックであり、
(B)前記検索キー、前記新規ルール、あるいは前記既存ルールを参照することによって、前記選択ルール比較ブロックにだけ前記入力コマンドを出力するステップと、
(C)前記選択ルール比較ブロックにおいて、前記入力コマンドに応じた処理を実行するステップと
を含む
パケット分類方法。
コンピュータによって実行され、前記コンピュータを、パケット分類に用いられるルールを管理するパケット分類器として機能させるパケット分類プログラムであって、
各ルールは、パケットヘッダに含まれる1以上のフィールドの組み合わせにより定義され、
前記パケット分類器は、
検索キーにマッチするルールの検索を指示する検索コマンド、新規ルールの追加を指示する挿入コマンド、あるいは既存ルールの削除を指示する削除コマンドを入力コマンドとして作成するコマンド入力ブロックと、
各々が1以上のルールを管理し、前記入力コマンドに応じた処理を実行するように構成された複数のルール比較ブロックと
を備え、
前記複数のルール比較ブロックは、管理下のルールにおける前記1以上のフィールドの組み合わせの種類に着目して、複数のグループにグループ分けされ、
前記複数のグループのうち、前記検索キーにマッチするルール、前記新規ルール、あるいは前記既存ルールを管理する可能性があるグループは、選択グループであり、
前記選択グループに属するルール比較ブロックは、選択ルール比較ブロックであり、
前記コマンド入力ブロックは、前記検索キー、前記新規ルール、あるいは前記既存ルールを参照することによって、前記選択ルール比較ブロックにだけ前記入力コマンドを入力する
パケット分類プログラム。
2 ルール比較ブロック
3 エントリ追加対象決定ブロック
4 コマンド入力ブロック
5 結果出力ブロック
8 パケット分類器
9 コマンド入力ブロック
11 パケット分類器
12 エントリ追加対象決定ブロック
13 結果出力ブロック
14 プログラム処理装置
15 パケット分類プログラム
20 決定木パイプラインブロック
21 エントリ数カウントブロック
22 ルールパイプラインブロック
40 出力先分析ブロック
41 コマンド出力情報記憶ブロック
42 コマンド出力ブロック
44 出力先分析ブロック
45 コマンド出力情報記憶ブロック
200 決定木ノード処理ブロック
210 カウント処理ブロック
211 エントリ数記憶ブロック
220 ルール処理ブロック
2000 子ノード決定ブロック
2001 ノード情報記憶ブロック
2200 比較更新処理ブロック
2201 エントリ記憶ブロック
Claims (10)
- パケット分類に用いられるルールを管理するパケット分類器であって、
各ルールは、パケットヘッダに含まれる1以上のフィールドの組み合わせにより定義され、
前記パケット分類器は、
検索キーにマッチするルールの検索を指示する検索コマンド、新規ルールの追加を指示する挿入コマンド、あるいは既存ルールの削除を指示する削除コマンドを入力コマンドとして作成するコマンド入力ブロックと、
各々が1以上のルールを管理し、前記入力コマンドに応じた処理を実行するように構成された複数のルール比較ブロックと
を備え、
前記複数のルール比較ブロックは、管理下のルールにおける前記1以上のフィールドの組み合わせの種類に着目して、複数のグループにグループ分けされ、
前記複数のグループのうち、前記検索キーにマッチするルール、前記新規ルール、あるいは前記既存ルールを管理する可能性があるグループは、選択グループであり、
前記選択グループに属するルール比較ブロックは、選択ルール比較ブロックであり、
前記コマンド入力ブロックは、前記検索キー、前記新規ルール、あるいは前記既存ルールを参照することによって、前記選択ルール比較ブロックにだけ前記入力コマンドを入力する
パケット分類器。 - 請求項1に記載のパケット分類器であって、
前記選択グループは、前記検索キー及びルールから抽出される識別情報に基づいて識別可能であり、
前記コマンド入力ブロックは、前記識別情報と前記選択ルール比較ブロックとの対応関係を示すコマンド出力情報を保持し、
前記コマンド入力ブロックは、前記検索キー、前記新規ルール、あるいは前記既存ルールから前記識別情報を抽出し、前記抽出された識別情報と前記コマンド出力情報を参照することによって、前記選択ルール比較ブロックを識別する
パケット分類器。 - 請求項2に記載のパケット分類器であって、
前記識別情報は、前記検索キー及びルールに含まれる所定のフィールドの値である
パケット分類器。 - 請求項2に記載のパケット分類器であって、
前記検索キー及びルールは、複数のフィールドを含み、
前記識別情報は、前記複数のフィールドのそれぞれがワイルドカードを含んでいるか否かを示す情報である
パケット分類器。 - 請求項1乃至4のいずれか一項に記載のパケット分類器であって、
前記複数のルール比較ブロックに接続されたエントリ追加対象決定ブロックを更に備え、
単一のルールは、複製が発生しないように、前記複数のルール比較ブロックのうちいずれか1つによって管理され、
前記入力コマンドが前記挿入コマンドである場合、前記選択ルール比較ブロックの各々は、前記新規ルールが自身によって管理され得るかどうかを判定し、
前記新規ルールが自身によって管理され得る場合、当該選択ルール比較ブロックはエントリ追加対象候補であり、
前記エントリ追加対象決定ブロックは、前記新規ルールを追加する対象であるエントリ追加対象を、前記エントリ追加対象候補の中から選択し、
前記選択されたエントリ追加対象は、前記新規ルールを、自身が管理するルールリストに追加する
パケット分類器。 - 請求項5に記載のパケット分類器であって、
前記複数のルール比較ブロックは、パケット分類に用いられる複数の決定木のそれぞれを構成し、
単一のルールは、前記複数の決定木のうちいずれか1つの決定木における単一の葉ノードによって管理され、
前記入力コマンドが前記挿入コマンドである場合、前記選択ルール比較ブロックの各々は、前記新規ルールが自身の決定木における単一の葉ノードによって管理され得るかどうかを判定し、
前記新規ルールが単一の葉ノードによって管理され得る場合、当該選択ルール比較ブロックは前記エントリ追加対象候補であり、当該単一の葉ノードは追加対象葉ノードであり、
前記エントリ追加対象は、前記新規ルールを、自身の決定木における前記追加対象葉ノードが管理するルールリストに追加する
パケット分類器。 - 請求項6に記載のパケット分類器であって、
前記エントリ追加対象候補は、前記追加対象葉ノードが管理している有効なルールのエントリ数を、前記エントリ追加対象決定ブロックに通知し、
前記エントリ追加対象決定ブロックは、前記エントリ数に基づいて、前記エントリ追加対象を選択する
パケット分類器。 - 請求項5に記載のパケット分類器であって、
前記複数のルール比較ブロックの各々は、リスト形式でルールを管理する
パケット分類器。 - パケット分類に用いられるルールを管理するパケット分類器によるパケット分類方法であって、
各ルールは、パケットヘッダに含まれる1以上のフィールドの組み合わせにより定義され、
前記パケット分類方法は、
(A)前記パケット分類器が、複数のルール比較ブロックを提供するステップと、
ここで、
前記複数のルール比較ブロックの各々は、1以上のルールを管理し、入力コマンドに応じた処理を実行するように構成され、
前記入力コマンドは、検索キーにマッチするルールの検索を指示する検索コマンド、新規ルールの追加を指示する挿入コマンド、あるいは既存ルールの削除を指示する削除コマンドであり、
前記複数のルール比較ブロックは、管理下のルールにおける前記1以上のフィールドの組み合わせの種類に着目して、複数のグループにグループ分けされ、
前記複数のグループのうち、前記検索キーにマッチするルール、前記新規ルール、あるいは前記既存ルールを管理する可能性があるグループは、選択グループであり、
前記選択グループに属するルール比較ブロックは、選択ルール比較ブロックであり、
(B)前記検索キー、前記新規ルール、あるいは前記既存ルールを参照することによって、前記選択ルール比較ブロックにだけ前記入力コマンドを出力するステップと、
(C)前記選択ルール比較ブロックにおいて、前記入力コマンドに応じた処理を実行するステップと
を含む
パケット分類方法。 - コンピュータによって実行され、前記コンピュータを、パケット分類に用いられるルールを管理するパケット分類器として機能させるパケット分類プログラムであって、
各ルールは、パケットヘッダに含まれる1以上のフィールドの組み合わせにより定義され、
前記パケット分類器は、
検索キーにマッチするルールの検索を指示する検索コマンド、新規ルールの追加を指示する挿入コマンド、あるいは既存ルールの削除を指示する削除コマンドを入力コマンドとして作成するコマンド入力ブロックと、
各々が1以上のルールを管理し、前記入力コマンドに応じた処理を実行するように構成された複数のルール比較ブロックと
を備え、
前記複数のルール比較ブロックは、管理下のルールにおける前記1以上のフィールドの組み合わせの種類に着目して、複数のグループにグループ分けされ、
前記複数のグループのうち、前記検索キーにマッチするルール、前記新規ルール、あるいは前記既存ルールを管理する可能性があるグループは、選択グループであり、
前記選択グループに属するルール比較ブロックは、選択ルール比較ブロックであり、
前記コマンド入力ブロックは、前記検索キー、前記新規ルール、あるいは前記既存ルールを参照することによって、前記選択ルール比較ブロックにだけ前記入力コマンドを入力する
パケット分類プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011106914A JP5682442B2 (ja) | 2011-05-12 | 2011-05-12 | パケット分類器、パケット分類方法、及びパケット分類プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011106914A JP5682442B2 (ja) | 2011-05-12 | 2011-05-12 | パケット分類器、パケット分類方法、及びパケット分類プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012239048A JP2012239048A (ja) | 2012-12-06 |
JP5682442B2 true JP5682442B2 (ja) | 2015-03-11 |
Family
ID=47461556
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011106914A Expired - Fee Related JP5682442B2 (ja) | 2011-05-12 | 2011-05-12 | パケット分類器、パケット分類方法、及びパケット分類プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5682442B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6143367B2 (ja) * | 2014-06-27 | 2017-06-07 | 日本電信電話株式会社 | パケット転送経路設定回路、パケット転送スイッチ、パケット転送経路設定方法及びパケット転送方法 |
JP6438375B2 (ja) * | 2015-11-02 | 2018-12-12 | 日本電信電話株式会社 | 通信システム、通信装置、制御装置、トラフィック観測方法及びプログラム |
US11636220B2 (en) * | 2019-02-01 | 2023-04-25 | Intertrust Technologies Corporation | Data management systems and methods |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3228249B2 (ja) * | 1998-12-04 | 2001-11-12 | 日本電気株式会社 | ルータ装置 |
JP2005051648A (ja) * | 2003-07-31 | 2005-02-24 | Nippon Telegr & Teleph Corp <Ntt> | Vpn用テーブル検索装置 |
JP2009239401A (ja) * | 2008-03-26 | 2009-10-15 | Alaxala Networks Corp | パケット転送装置 |
SE532426C2 (sv) * | 2008-05-26 | 2010-01-19 | Oricane Ab | Metod för datapaketklassificering i ett datakommunikationsnät |
JP5807676B2 (ja) * | 2010-12-15 | 2015-11-10 | 日本電気株式会社 | パケット分類器、パケット分類方法、及びパケット分類プログラム |
-
2011
- 2011-05-12 JP JP2011106914A patent/JP5682442B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2012239048A (ja) | 2012-12-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5807676B2 (ja) | パケット分類器、パケット分類方法、及びパケット分類プログラム | |
US7089240B2 (en) | Longest prefix match lookup using hash function | |
JP6383578B2 (ja) | 構文解析木において経路を一意的に列挙する装置および方法 | |
KR100477391B1 (ko) | 네트워크 프로세서용 완전 정합(fm) 검색 알고리즘 구현 | |
Becchi et al. | An improved algorithm to accelerate regular expression evaluation | |
US7782868B2 (en) | Two-stage computer network packet classification method and system | |
KR100429142B1 (ko) | 네트워크 프로세서용 소프트웨어 관리 트리 구현 | |
US10230639B1 (en) | Enhanced prefix matching | |
CN102945249B (zh) | 一种策略规则匹配查询树生成方法、匹配方法及装置 | |
US20080192754A1 (en) | Routing system and method for managing rule entries of ternary content addressable memory in the same | |
US20100076919A1 (en) | Method and apparatus for pattern matching | |
Luo et al. | Practical flow table aggregation in SDN | |
US11652744B1 (en) | Multi-stage prefix matching enhancements | |
CN106487769B (zh) | 一种访问控制列表acl的实现方法及装置 | |
CN108134739A (zh) | 一种基于索引特里树的路由查找方法及装置 | |
CN107276916B (zh) | 基于协议无感知转发技术的交换机流表管理方法 | |
JP5682442B2 (ja) | パケット分類器、パケット分類方法、及びパケット分類プログラム | |
JP5673667B2 (ja) | パケット分類器、パケット分類方法、パケット分類プログラム | |
Chuprikov et al. | General ternary bit strings on commodity longest-prefix-match infrastructures | |
Norige et al. | A ternary unification framework for optimizing TCAM-based packet classification systems | |
CN115834340A (zh) | 一种规则存储方法、装置、电子设备及存储介质 | |
JPWO2002082750A1 (ja) | ビットストリングの検索装置および方法 | |
CN110868388B (zh) | 用于操作联网设备的系统和方法 | |
CN101989946A (zh) | 一种通信设备路由转发表的压缩方法 | |
Markoborodov et al. | An approach to the translation of software-defined network switch flow table into network processing unit assembly language |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140411 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20141208 |
|
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: 20141216 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20141229 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5682442 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |