(58)【調査した分野】(Int.Cl.,DB名)
前記第2レベルの優先度によって決定される位置に空きが無い場合、前記エントリ管理部は、前記第2レベルの優先度によって決定される位置を起点として、同一優先度のグループの最寄の空き領域の方向に、前記新規フローエントリと同一の優先度グループに属するフローエントリをずらして前記新規フローエントリを格納する請求項1のパケット処理装置。
前記エントリ管理部は、前記フローテーブルのエントリと1対1に対応する管理用エントリを持つエントリ管理テーブルを用いて、前記フローテーブルに設定したフローエントリを管理する請求項1又は2のパケット処理装置。
前記エントリ管理部は、新規フローエントリを受信した際に、前記フローテーブルに、前記新規フローエントリが属する優先度グループの空き領域が無い場合、前記新規フローエントリが属する優先度グループよりも下位の優先度グループの空き領域に前記新規フローエントリを格納する請求項1から4いずれか一のパケット処理装置。
前記第2のレベルの優先度に対応する前記新規フローエントリが属する優先度グループのグループ内の位置の空き領域が無い場合、前記新規フローエントリを格納する優先度グループとして、空き領域を有する優先度グループのうち優先度が最も下位の優先度グループの空き領域に前記新規フローエントリを格納する請求項5のパケット処理装置。
優先度グループの順に割り当てられた領域にフローエントリを格納可能なフローテーブルと、前記フローテーブルの先頭から走査して、受信パケットに適合するマッチ条件を持つエントリを検索して、前記受信パケットに適用する処理を決定するエントリ検索部と、を備えてパケット処理装置における新規フローエントリの配置方法であって、
所定の制御装置から新規フローエントリを受信した場合、前記新規フローエントリに含まれる優先度情報に基づいて、前記新規フローエントリが属する優先度グループを判別するステップと、
前記新規フローエントリに含まれる優先度情報に基づいて、前記判別した優先度グループ内の位置を決定する第2レベルの優先度を判別するステップと、
前記フローテーブルの、前記優先度グループと前記第2レベルの優先度に対応する領域に前記新規フローエントリを格納するステップと、を含むフローエントリの配置方法。
優先度グループの順に割り当てられた領域にフローエントリを格納可能なフローテーブルと、前記フローテーブルの先頭から走査して、受信パケットに適合するマッチ条件を持つエントリを検索して、前記受信パケットに適用する処理を決定するエントリ検索部と、を備えてパケット処理装置に搭載されたコンピュータに、
所定の制御装置から新規フローエントリを受信した場合、前記新規フローエントリに含まれる優先度情報に基づいて、前記新規フローエントリが属する優先度グループを判別する処理と、
前記新規フローエントリに含まれる優先度情報に基づいて、前記判別した優先度グループ内の位置を決定する第2レベルの優先度を判別する処理と、
前記フローテーブルの、前記優先度グループと前記第2レベルの優先度に対応する領域に前記新規フローエントリを格納する処理と、を実行させるプログラム。
【背景技術】
【0002】
非特許文献1、2に、オープンフローという技術が提案されている。オープンフローは、通信をエンドツーエンドのフローとして捉え、フロー単位で経路制御、障害回復、負荷分散、最適化を行うものである。非特許文献2に仕様化されているオープンフロースイッチは、オープンフローコントローラとの通信用のセキュアチャネルを備え、オープンフローコントローラから適宜追加または書き換え指示されるフローテーブルに従って動作する。フローテーブルには、フロー毎に、パケットヘッダと照合するマッチ条件(Match Fields)と、フロー統計情報(Counters)と、処理内容を定義したインストラクション(Instructions)と、の組が定義される(非特許文献2の「5.2 Flow Table」の項参照)。
【0003】
例えば、オープンフロースイッチは、パケットを受信すると、フローテーブルから、受信パケットのヘッダ情報に適合するマッチ条件(非特許文献2の「5.3 Matching」参照)を持つエントリを検索する。検索の結果、受信パケットに適合するエントリが見つかった場合、オープンフロースイッチは、フロー統計情報(カウンタ)を更新するとともに、受信パケットに対して、当該エントリのインストラクションフィールドに記述された処理内容(指定ポートからのパケット送信、フラッディング、廃棄等)を実施する。一方、検索の結果、受信パケットに適合するエントリが見つからなかった場合、オープンフロースイッチは、セキュアチャネルを介して、オープンフローコントローラに対してエントリ設定の要求、即ち、受信パケットを処理するための制御情報の送信要求(Packet−Inメッセージ)を送信する。オープンフロースイッチは、処理内容が定められたフローエントリを受け取ってフローテーブルを更新する。このように、オープンフロースイッチは、フローテーブルに格納されたエントリを制御情報として用いてパケット転送を行う。
【0004】
また、特許文献1には、ネットワークから情報を収集する情報蓄積手段と、情報の優先度を判定する優先度判定手段と、情報に対してユーザの興味に応じた重要度を判定する重要度判定手段と、ユーザの興味を示す情報を管理する興味情報管理手段と、優先度に応じて情報の出力・蓄積を判定する優先度比較手段と、情報を重要度の高い順に並び替える並び替え手段と、前記情報を重要度に応じた詳細度に変換する詳細度決定手段と、簡約化した情報を生成する簡約手段と、蓄積された情報の整理を行う履歴管理手段と、収集された情報の蓄積をする情報蓄積手段と、出力している情報の優先度を記録する優先度監視手段と、端末に蓄積された情報の出力およびネットワークからの情報の収集のタイミングを制御する提示タイミング制御手段とを備え、ネットワークから収集した情報を適切なタイミングと分量で提示するという情報提示装置が開示されている。
【0005】
また、特許文献2には、ATMスイッチング装置に記憶されているATMセルをそのセルが持っているデッドラインによって管理しつつ送信させるためのバッファ制御用シフトレジスタ(優先処理機能を有するシフトレジスタ)が開示されている。
【発明の概要】
【発明が解決しようとする課題】
【0008】
以下の分析は、本発明によって与えられたものである。非特許文献1、2のオープンフロースイッチにおいて、フローエントリを優先度順に並べて保持し、フローエントリの検索を高速化するものが知られている。
【0009】
上記機能を持つオープンフロースイッチは、オープンフローコントローラから、新しいフローエントリを受け取ると、次のように、フローテーブルに格納する。オープンフロースイッチは、まず、既存のフローエントリの優先度と、新規フローエントリの優先度とを比較する。前記比較の結果、オープンフロースイッチは、新規フローエントリと優先度が最も近い高優先度側のフローエントリと、低優先度側のフローエントリと、を検出する。そして、オープンフロースイッチは、これら2つのフローエントリの登録場所を算出し、新規フローエントリをその中間位置に格納する。
【0010】
このとき、フローテーブルの前記2つのフローエントリが連続して格納されていて、中間位置に空き領域が無い場合がある。この場合、オープンフロースイッチは、前記格納位置に最も近い空き領域を探し、所定エントリ数分既存フローエントリの格納位置をシフトさせる処理を行っている。このときのシフト量は、例えば、シフト先の空き領域のサイズに応じて決定している。
【0011】
このため、新規フローエントリの優先度が特定の値に偏った場合、フローテーブル内のフローエントリの並び替えの頻度が多くなるという問題点がある。また、新規フローエントリの優先度によっては、1回のフローエントリ登録に伴うフローエントリのシフトによる並び替えが多量になり、並び替えのための処理時間が大きくなり、新規フローエントリの登録に要する時間が長くなるという問題点もある。
【0012】
本発明は、上記したオープンフロースイッチに代表されるフローエントリを優先度順に並べて保持するパケット処理装置における新規フローエントリの登録時の並び替えコストの低減に貢献できるパケット処理装置、フローエントリの配置方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0013】
第1の視点によれば、優先度グループの順に割り当てられた領域にフローエントリを格納可能なフローテーブルと、所定の制御装置から新規フローエントリを受信した場合、前記新規フローエントリが、前記複数の優先度グループのうちのどの優先度グループに属するかと、前記優先度グループ内の位置を決定する第2レベルの優先度と、により前記フローテーブルへの格納位置を決定するエントリ管理部と、前記フローテーブルの先頭から走査して、受信パケットに適合するマッチ条件を持つエントリを検索して、前記受信パケットに適用する処理を決定するエントリ検索部と、を備えたパケット処理装置が提供される。
【0014】
第2の視点によれば、優先度グループの順に割り当てられた領域にフローエントリを格納可能なフローテーブルと、前記フローテーブルの先頭から走査して、受信パケットに適合するマッチ条件を持つエントリを検索して、前記受信パケットに適用する処理を決定するエントリ検索部と、を備えてパケット処理装置における新規フローエントリの配置方法であって、所定の制御装置から新規フローエントリを受信した場合、前記新規フローエントリに含まれる優先度情報に基づいて、前記新規フローエントリが属する優先度グループを判別するステップと、前記新規フローエントリに含まれる優先度情報に基づいて、前記判別した優先度グループ内の位置を決定する第2レベルの優先度を判別するステップと、前記フローテーブルの、前記優先度グループと前記第2レベルの優先度に対応する領域に前記新規フローエントリを格納するステップと、を含むフローエントリの配置方法が提供される。本方法は、フローエントリを優先度順に並べて保持してパケットを処理するパケット処理装置という、特定の機械に結びつけられている。
【0015】
第3の視点によれば、優先度グループの順に割り当てられた領域にフローエントリを格納可能なフローテーブルと、前記フローテーブルの先頭から走査して、受信パケットに適合するマッチ条件を持つエントリを検索して、前記受信パケットに適用する処理を決定するエントリ検索部と、を備えてパケット処理装置に搭載されたコンピュータに、所定の制御装置から新規フローエントリを受信した場合、前記新規フローエントリに含まれる優先度情報に基づいて、前記新規フローエントリが属する優先度グループを判別する処理と、前記新規フローエントリに含まれる優先度情報に基づいて、前記判別した優先度グループ内の位置を決定する第2レベルの優先度を判別する処理と、前記フローテーブルの、前記優先度グループと前記第2レベルの優先度に対応する領域に前記新規フローエントリを格納する処理と、を実行させるプログラムが提供される。なお、このプログラムは、コンピュータが読み取り可能な(非トランジエントな)記憶媒体に記録することができる。即ち、本発明は、コンピュータプログラム製品として具現することも可能である。
【発明の効果】
【0016】
本発明によれば、フローエントリを優先度順に並べて保持するパケット処理装置における新規フローエントリの登録時の並び替えコストを低減することが可能となる。
【発明を実施するための形態】
【0018】
はじめに本発明の一実施形態の概要について図面を参照して説明する。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、本発明を図示の態様に限定することを意図するものではない。
【0019】
本発明は、その一実施形態において、エントリ管理部(
図1の22)と、フローテーブル(
図1の211)を先頭から走査して、受信パケットに適合するマッチ条件を持つエントリを検索し、前記受信パケットに適用する処理を決定するエントリ検索部(
図1の21)と、を備えたパケット処理装置にて実現できる。
【0020】
より具体的には、フローテーブル(
図1の211)は、優先度グループの順に割り当てられた領域にフローエントリを格納可能となっている。そして、エントリ管理部(
図1の22)は、所定の制御装置(
図1の10)から新規フローエントリを受信した場合、新規フローエントリが、前記複数の優先度グループのうちのどの優先度グループに属するかと、前記優先度グループ内の位置を決定する第2レベルの優先度により前記フローテーブルへの格納位置を決定する。
【0021】
前述のように、フローテーブル(
図1の211)は、優先度グループの順に領域が割り当てられているため、新規フローエントリが属する優先度の領域に空き領域が存在すれば、優先度に基づく並び替えは不要となる。また、新規フローエントリが属する優先度グループの該当位置に空き領域が存在しない場合であっても、最寄りの空き領域を探してフローエントリをずらす(シフトさせる)処理を行えばよく、新規フローエントリの登録時の並び替えコストを低減することができる。
【0022】
[第1の実施形態]
図1は、本発明の第1の実施形態のパケット処理装置の構成を示す図である。
図1を参照すると、パケット処理装置20に対してフローテーブル211へのフローエントリの設定を指示するフローエントリ設定メッセージを送信する制御装置10と、前記制御装置10から受信したフローエントリを参照して、他のパケット処理装置、端末、サーバ等から受信したパケットを処理するパケット処理装置20とを含む構成が示されている。
【0023】
制御装置10は、パケット処理装置20からフローエントリの設定要求や予め定めた通信ポリシに従って、パケット処理装置20に設定するフローエントリを作成し、パケット処理装置20に対してフローエントリ設定メッセージを送信する。なお、フローエントリとしては、パケットヘッダと照合するマッチ条件(Match Fields)と、処理内容を定義したインストラクション(Instructions)と、を対応付けたものを用いることができる。なお、このような制御装置10としては、非特許文献1、2のオープンフローコントローラを用いることができる。
【0024】
パケット処理装置20は、フローテーブル211から受信パケットに適合するマッチ条件を持つフローエントリを検索するエントリ検索部21と、フローテーブル211におけるフローエントリの配置等を管理するエントリ管理部22とを備えている。このような制御装置10としては、非特許文献1、2のオープンスイッチと同等の機能を有する物理スイッチのほか、仮想化サーバ上で動作する仮想スイッチ、あるいは、ユーザ端末上で動作して上位アプリケーションからのパケットを処理するソフトウェアスイッチ等が挙げられる。
【0025】
図2は、上記パケット処理装置の詳細構成を示す図である。
図2の例では、フローテーブル211は、優先度が高い順に、N個のフローエントリを格納可能となっている。エントリ検索部21は、他のパケット処理装置、端末、サーバ等からパケットを受信すると、フローテーブル211のうち優先度の最も高いエントリ1から順番に、受信パケットのヘッダ等と、フローエントリのマッチ条件とを照合してゆく。前記照合の結果、
図2のエントリXで受信パケットとマッチ条件が一致した場合、エントリ検索部21は、前記マッチ条件が一致したフローエントリのインストラクション(Instructions)に記述された処理内容(受信パケットの転送、ヘッダ書換え等)を実行する。また、前記のように受信パケットに適合するフローエントリが見つかった場合(
図2の「条件一致」)、エントリ検索部21は、エントリX以降のフローエントリとの照合を省略する(
図2の「検索省略」)。
【0026】
図3は、フローテーブル211の一例を示す図である。本実施形態のフローテーブル211には、優先度グループの順に複数の領域が割り当てられ、優先度グループ順にフローエントリを格納可能となっている。また、同一の優先度グループ内に属するフローエントリ同士のグループ内優先度(第2レベルの優先度)の高低は、個々の優先度グループに割り当てられた領域内での格納位置(本実施形態の場合、優先度が高いほど上位に格納される)にて表される。例えば、
図3のエントリ1、エントリ2は、共に既存フローエントリの中では最も優先順位の高い優先度グループ=2に属しており、エントリ1の方がエントリ2よりもグループ内優先度(第2レベルの優先度)が高いため、エントリ1、エントリ2の順にフローエントリが設定されている。同様に、
図3のエントリ(N−1)、エントリNは、共に既存フローエントリの中では最も優先順位の低い優先度グループ=8に属しており、エントリ(N−1)の方がエントリNよりもグループ内優先度(第2レベルの優先度)が高いため、エントリ(N−1)、エントリNの順にフローエントリが設定されている。なお、
図3において「:」が記されている領域は空きエントリであるものとする。
【0027】
また、フローテーブル211の各優先度グループに割り当てるフローエントリ格納用の領域の数は、事前に決めていてもよいし、運用中に動的に変更してもよい。これにより、フローテーブル211の各優先度グループの空きエントリの数が容易に把握できるようになる。
【0028】
エントリ管理部22は、フローテーブル211に設定されているフローエントリの内容や位置を管理するエントリ管理テーブル222と、前記エントリ管理テーブル222に基づいて、フローテーブル211への書込み要求等の操作を行うエントリ設定部221とを備えている。
【0029】
図4は、エントリ管理テーブル222の一例を示す図である。
図4を参照すると、フローテーブル211に格納された個々のフローエントリについて、優先度グループ、グループ内優先度(第2レベルの優先度)、フローエントリの内容と、エントリ番号とを対応付けたエントリが示されている。例えば、エントリ管理テーブル222のNo.1のエントリは、
図3のフローテーブル211のエントリ(N−1)の格納位置(優先度)とフローエントリの内容とを対応付けた内容となっている。
【0030】
図5は、
図3のフローテーブル211と
図4のエントリ管理テーブル222との対応関係を示す図である。エントリ設定部221は、制御装置10から新規フローエントリ設定メッセージを受信すると、その内容から優先度グループ及びグループ内優先度を求め、エントリ管理テーブル222に登録し、フローテーブル211の優先度グループ及びグループ内優先度によって特定される位置に、フローエントリを登録する。また、エントリ設定部221は、制御装置10からフローエントリ削除指示メッセージを受信すると、エントリ管理テーブル222を参照して、フローテーブル211の該当フローエントリを削除した後、エントリ管理テーブル222の前記削除したフローエントリに対応するエントリを削除する。
【0031】
なお、新規フローエントリを登録する場合において、例えば
図3のエントリ1とエントリ2の間、エントリ(N−1)とエントリNとの間のように、フローテーブル211において、優先度グループ及びグループ内優先度によって特定される位置に空きが無い場合が起こりうる。この場合、エントリ設定部221は、最寄りの空き領域を探してフローエントリをシフトさせて、当該新規フローエントリを格納する領域を確保する。例えば、制御装置10から、
図3のエントリ1とエントリ2の間に格納すべきフローエントリを受け取った場合、エントリ設定部221は、エントリ2を一段下にずらし、これまでエントリ2が格納されていた場所に、新規フローエントリを格納する。
【0032】
なお、
図1、2に示したパケット処理装置20のエントリ検索部22は、パケット処理装置20を構成するコンピュータに、そのハードウェアを用いて、上記したエントリ管理テーブル222と連動したフローテーブル211の操作処理を実行させるコンピュータプログラムにより実現することもできる。
【0033】
続いて、本実施形態の動作について図面を参照して詳細に説明する。
図6は、本発明の第1の実施形態の動作を表したシーケンス図である。制御装置10が、パケット処理装置20からフローエントリの設定要求や予め定めた通信ポリシに従って、パケット処理装置20に設定するフローエントリを作成し、パケット処理装置20に対してフローエントリ設定メッセージを送信する(ステップS001)。
【0034】
新規フローエントリ設定メッセージを受信すると、パケット処理装置20は、新規フローエントリが属する優先度グループと、グループ内の優先度(第2レベルの優先度)を特定する(ステップS002)。優先度グループ及びグループ内の優先度の特定方法としては種々の方法が考えられるが、例えば、制御装置10からの新規フローエントリ設定メッセージにて指定された優先度情報の上位ビットを優先度グループの特定に用い、下位ビットをグループ内の優先度の特定に用いることができる。
【0035】
次に、パケット処理装置20は、前記特定した優先度グループとグループ内の優先度に対応するフローテーブル211の位置に空きがあるか否か、即ち、既存エントリのシフト操作が必要か否かを確認する(ステップS003)。
【0036】
前記確認の結果、前記特定した優先度グループとグループ内の優先度に対応するフローテーブル211の位置に空きがある、即ち、既存エントリのシフト操作を行わなくとも、新規フローエントリを格納可能である場合(ステップS003のNo)、パケット処理装置20は、フローテーブル211の該当位置に新規フローエントリを登録し(ステップS004、S005)、エントリ管理テーブル222の該当エントリのエントリ番号欄にフローテーブル211上の位置(エントリ番号)を記録する(ステップS006)。
【0037】
図7は、
図5に示す状態において、新たにグループ優先度“4”、グループ内優先度“2”を持つ新規フローエントリFを受信した場合の各テーブルの変化を表した図である。パケット処理装置20は、フローテーブル211のグループ優先度“4”、グループ内優先度“2”に対応する位置に空き領域があるか否かを確認する。
図5の時点では、フローテーブル211のグループ優先度“4”、グループ内優先度“2”に対応する位置は空いているので、パケット処理装置20は、フローテーブル211の上から(X−1)番目の領域にフローエントリFを登録する。また、パケット処理装置20は、エントリ管理テーブル222のフローエントリFのエントリ番号として(X−1)を登録する。
【0038】
図8は、
図6のステップS003の確認の結果、特定した優先度グループとグループ内の優先度に対応するフローテーブル211の位置に空きがない、即ち、既存エントリのシフト操作が必要であると判定した場合(ステップS003のYes)の動作を示すシーケンス図である。この場合、パケット処理装置20は、フローテーブル211の該当位置に最も近い同一優先度グループの空き領域を検索する(ステップS101)。前記検索の結果、同一優先度グループの空き領域が見つからなかった場合、パケット処理装置20は、フローエントリ設定メッセージを破棄し、制御装置10に対し、エラーを返す(ステップS103)。制御装置10は、前記エラー応答を受けて、フローテーブル211からの不要なフローエントリの削除等を検討することになる。
【0039】
一方、前記検索の結果、同一優先度グループの空き領域が見つかった場合、パケット処理装置20は、前記特定した優先度グループとグループ内の優先度に対応する位置を起点として、前記空き領域の方向に、同一の優先度グループに属するフローエントリをずらして空き領域を作成する(ステップS104)。その後、パケット処理装置20は、
図6のステップS004以下に戻って、フローテーブル211への新規フローエントリの登録、エントリ管理テーブル222の更新を実行する。
【0040】
図9は、
図7に示す状態において、新たにグループ優先度“2”、グループ内優先度“4”を持つ新規フローエントリGを受信した場合の各テーブルの変化を表した図である。パケット処理装置20は、フローテーブル211のグループ優先度“2”、グループ内優先度“4”に対応する位置に空き領域があるか否かを確認する。
図7の時点では、グループ優先度“2”に属するエントリ1(グループ内優先度“2”)、 エントリ2(グループ内優先度“6”)が連続して格納されており、グループ内優先度“4”フローテーブル211のグループ優先度“2”、グループ内優先度“4”に対応する位置は空いていない。
【0041】
そこで、パケット処理装置20は、
図10に示すように、フローテーブル211のエントリ2の後に空き領域があることを検出し、エントリ2の格納位置を一つ下にずらすシフト処理を実行する。また、これに併せて、パケット処理装置20は、エントリ管理テーブル222の従来エントリ番号2であったエントリのエントリ番号を「3」に修正する。なお、ここでのシフト操作としては、新規フローエントリの分だけ、即ち1つだけシフトさせてもよいし、将来の利用を見越して複数の領域を空けるようシフトさせてもよい。
【0042】
前記シフト処理によって空き領域が確保できると、パケット処理装置20は、
図11に示すように、フローテーブル211のエントリ番号2として、新規フローエントリG(新エントリ2)を登録する。また、パケット処理装置20は、エントリ管理テーブル222の新規フローエントリGのエントリ番号欄に「2」に記録する。
【0043】
以上の説明から明らかなように、本実施形態によれば、優先度順にフローエントリを並べることによるマッチング処理の高速性と、新規フローエントリの登録時の並び替えコストの低減とを両立することができる。
【0044】
以上、本発明の各実施形態を説明したが、本発明は、上記した実施形態に限定されるものではなく、本発明の基本的技術的思想を逸脱しない範囲で、更なる変形・置換・調整を加えることができる。例えば、各図面に示したネットワーク構成や要素の構成は、本発明の理解を助けるための一例であり、これらの図面に示した構成に限定されるものではない。
【0045】
例えば、上記した実施形態では、制御装置10からの新規フローエントリ設定メッセージにて指定された優先度情報の下位ビットをグループ内の優先度として用いるものとして説明したが、制御装置10からのフローエントリ設定メッセージの到着順序をグループ内優先度(第2レベルの優先度)として用いることもできる。このようにすることで、フローエントリのシフト処理の発生頻度をより抑えることが可能になる。
【0046】
また、上記した実施形態では、新規フローエントリを格納する同一優先度グループの空き領域が見つからなかった場合、パケット処理装置20は、フローエントリ設定メッセージを破棄し、制御装置10に対し、エラーを返すものとして説明したが、以下のような変形実施を行うこともできる。
【0047】
(1)フローテーブル211の他の優先度グループに空きが有る場合は、当該空き領域に新規フローエントリを登録する。併せてフローテーブル211の該当優先度グループに割り当てられた領域に、前記新規フローエントリを登録した領域を追加する(空き領域のあった他の優先度グループに割り当てられた領域から、前記前記新規フローエントリを登録した領域を削除する)。また、この場合において、空き領域のある優先度グループが複数ある場合、最も優先度の低い優先度グループや最も優先度の近い優先度グループを選択することができる。なお、この場合において、特定の優先度グループへの領域の割り当てが集中しないよう、該当優先度グループのフローエントリを削除したタイミングで、空き領域の割り当てを元の優先度グループに戻してもよい。
【0048】
(2)フローテーブル211のすべての優先度グループに空きがない場合は、所定の基準で選択したフローエントリを削除し、制御装置10に対して報告する。なお、前記所定の基準としては、優先度グループ及びグループ内優先度が低いもの、最も最近使われなかったもの(Least Recently Used)等の基準により削除対象のフローエントリを選択することができる。
【0049】
(3)また、フローエントリ211のいくつかの領域を、初期状態においていずれの優先度グループにも属さない共用領域として確保しておいてもよい。このようにすれば、フローテーブル211の領域をより効率よく利用できる。
【0050】
最後に、本発明の好ましい形態を要約する。
[第1の形態]
(上記第1の視点によるパケット処理装置参照)
[第2の形態]
第1の形態のパケット処理装置において、
前記第2レベルの優先度によって決定される位置に空きが無い場合、前記エントリ管理部は、前記第2レベルの優先度によって決定される位置を起点として、同一優先度のグループの最寄の空き領域の方向に、前記新規フローエントリと同一の優先度グループに属するフローエントリをずらして前記新規フローエントリを格納するパケット処理装置。
[第3の形態]
第1又は第2の形態のパケット処理装置において、
前記エントリ管理部は、前記フローテーブルのエントリと1対1に対応する管理用エントリを持つエントリ管理テーブルを用いて、前記フローテーブルに設定したフローエントリを管理するパケット処理装置。
[第4の形態]
第1の形態のパケット処理装置において、
前記第2のレベルの優先度として、前記所定の制御装置から新規フローエントリを受信した順序を用いるパケット処理装置。
[第5の形態]
第1から第4いずれか一の形態のパケット処理装置において、
前記エントリ管理部は、新規フローエントリを受信した際に、前記フローテーブルに、前記新規フローエントリが属する優先度グループの空き領域が無い場合、前記新規フローエントリが属する優先度グループよりも下位の優先度グループの空き領域に前記新規フローエントリを格納するパケット処理装置。
[第6の形態]
第5の形態のパケット処理装置において、
前記第2のレベルの優先度に対応する前記新規フローエントリが属する優先度グループのグループ内の位置の空き領域が無い場合、前記新規フローエントリを格納する優先度グループとして、空き領域を有する優先度グループのうち優先度が最も下位の優先度グループの空き領域に前記新規フローエントリを格納するパケット処理装置。
[第7の形態]
(上記第2の視点によるフローエントリの配置方法参照)
[第8の形態]
(上記第3の視点によるプログラム参照)
なお、上記第7、第8の形態は、第1の形態と同様に、第2〜第6の形態に展開することが可能である。
【0051】
なお、上記の特許文献および非特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素(各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む)の多様な組み合わせ、ないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。