(57)【特許請求の範囲】
【請求項１】
制御装置から設定される制御情報を格納する１以上のフローテーブルと、
前記１以上のフローテーブルから、受信パケットに適合するマッチ条件を持つ制御情報を検索し、該制御情報に従ってパケットを処理するパケット処理部とを備え、
前記パケット処理部は、前記受信パケットに適合するマッチ条件を持つ制御情報に、所定のループ命令が付加されている場合、前記フローテーブルにおける他の制御情報の検索と、検索した制御情報の実行とを所定回数実行すること、
を特徴とする通信ノード。
【請求項２】
前記通信ノードは、所定の検索順序が定められた複数のフローテーブルを有し、
前記パケット処理部は、前記受信パケットに適合するマッチ条件を持つ制御情報に、所定のループ命令が付加されている場合、前記ループ命令に示されたフローテーブルを起点として、前記所定の検索順序による他の制御情報の周回検索を所定回数実行する請求項１の通信ノード。
【請求項３】
前記他の制御情報の検索と検索した制御情報の実行とを実行する回数、又は、前記周回検索の実行回数は、前記所定のループ命令のパラメータにて指定される請求項１又は２の通信ノード。
【請求項４】
前記パケット処理部は、前記受信パケットのメタ情報フィールドに、前記フローテーブルの検索実行回数を書き込むことにより、前記他の制御情報の検索と検索した制御情報の実行とを実行した回数、又は、前記周回検索の実行回数を管理する請求項１から３いずれか一の通信ノード。
【請求項５】
前記所定のフローテーブルの検索実行回数が書き込まれた受信パケットのメタ情報フィールドを、前記マッチ条件として用いる請求項４の通信ノード。
【請求項６】
前記パケット処理部が所定のループバック用インタフェースに受信パケットを転送し、前記ループバック用インタフェースから前記パケット処理部にパケットが入力されることにより、前記他の制御情報の検索が繰り返される請求項１から５いずれか一の通信ノード。
【請求項７】
前記マッチ条件として、前記ループバック用インタフェースとして割り当てられたポートから入力されたパケットである否かを設定可能である請求項６の通信ノード。
【請求項８】
制御情報を格納する複数のフローテーブルと、前記複数のフローテーブルを所定の順序で選択し、受信パケットに適合するマッチ条件を持つ制御情報を検索し、該制御情報に従ってパケットを処理するパケット処理部とを備え、前記受信パケットに適合するマッチ条件を持つ制御情報に、所定のループ命令が付加されている場合、前記フローテーブルにおける他の制御情報の検索と、検索した制御情報の実行とを所定回数実行する通信ノードと、
前記通信ノードの同一のフローテーブルに、前記所定のループ命令を付加した制御情報を含む複数の制御情報を設定する制御装置と、
を含む通信システム。
【請求項９】
制御装置から設定される制御情報を格納する１以上のフローテーブルと、
前記１以上のフローテーブルから、受信パケットに適合するマッチ条件を持つ制御情報を検索し、該制御情報に従ってパケットを処理するパケット処理部とを備える通信ノードにおいて、
前記受信パケットに適合するマッチ条件を持つ制御情報に、所定のループ命令が付加されているか否かを確認するステップと、
前記受信パケットに適合するマッチ条件を持つ制御情報に、所定のループ命令が付加されている場合、前記フローテーブルにおける他の制御情報の検索と、検索した制御情報の実行とを所定回数実行するステップと、を含むパケット処理方法。
【請求項１０】
制御装置から設定される制御情報を格納する１以上のフローテーブルと、
前記１以上のフローテーブルから、受信パケットに適合するマッチ条件を持つ制御情報を検索し、該制御情報に従ってパケットを処理するパケット処理部とを備える通信ノードに搭載されたコンピュータに、
前記受信パケットに適合するマッチ条件を持つ制御情報に、所定のループ命令が付加されているか否かを確認する処理と、
前記受信パケットに適合するマッチ条件を持つ制御情報に、所定のループ命令が付加されている場合、前記フローテーブルにおける他の制御情報の検索と、検索した制御情報の実行とを所定回数実行する処理ループと、を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願についての記載］
本発明は、日本国特許出願：特願２０１２−０６２２２１号（２０１２年３月１９日出願）に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、通信ノード、パケット処理方法及びプログラムに関し、特に、制御装置から設定された制御情報により動作する通信ノード、パケット処理方法及びプログラムに関する。
【背景技術】
【０００２】
近年、オープンフロー（ＯｐｅｎＦｌｏｗ）という技術が提案されている（特許文献１、非特許文献１、２参照）。オープンフローは、通信をエンドツーエンドのフローとして捉え、フロー単位で経路制御、障害回復、負荷分散、最適化を行うものである。中継装置として機能するオープンフロースイッチは、制御装置と位置付けられるオープンフローコントローラとの通信用のセキュアチャネルを備え、オープンフローコントローラから適宜追加または書き換え指示されるフローテーブルに従って動作する。フローテーブルには、フロー毎に、パケットヘッダと照合するマッチングルール（ヘッダフィールド）と、フロー統計情報（Ｃｏｕｎｔｅｒｓ）と、マッチングルール（ヘッダフィールド）に適合するパケットに適用する処理内容を定義したインストラクション（Ｉｎｓｔｒｕｃｔｉｏｎｓ）と、の組が定義される（非特許文献２の「４．１  Ｆｌｏｗ  Ｔａｂｌｅ」以下参照）。【０００３】
例えば、オープンフロースイッチは、パケットを受信すると、フローテーブルから、受信パケットのヘッダ情報に適合するマッチングルールを持つエントリを検索する。検索の結果、受信パケットに適合するエントリが見つかった場合、オープンフロースイッチは、フロー統計情報（カウンタ）を更新するとともに、受信パケットに対して、当該エントリのアクションフィールドに記述された処理内容（指定ポートからのパケット送信、フラッディング、廃棄等）を実施する。一方、前記検索の結果、受信パケットに適合するエントリが見つからなかった場合、オープンフロースイッチは、セキュアチャネルを介して、オープンフローコントローラに対して受信パケットを転送し、受信パケットの送信元・送信先に基づいたパケットの経路の決定を依頼し、これを実現するフローエントリを受け取ってフローテーブルを更新する。このように、オープンフロースイッチは、フローテーブルに格納されたエントリを処理規則として用いてパケット転送を行っている。【０００４】
また、非特許文献２の「４．１．１  Ｐｉｐｅｌｉｎｅ  Ｐｒｏｃｅｓｓｉｎｇ」（以下、「パイプライン処理」）の項には、オープンフロースイッチが複数のフローテーブルを用いた多段検索処理をサポートすべきことが記載されている。上記非特許文献２によると、このパイプライン処理では、（１）ｉ番目（ｉ＝０〜ｎ）のテーブルから受信パケットに適合するエントリのうち、最も優先度の高いエントリを検索する、（２）当該エントリのインストラクション（パケットの変更、マッチフィールドの更新、アクションセットの更新（非特許文献２の「４．７  Ａｃｔｉｏｎ  Ｓｅｔ」参照）、メタデータの更新）を適用する、（３）マッチデータとアクションセットを次のテーブルに送る、といった処理が繰り返され、最後に、アクションセットの内容が実行される（非特許文献２のＦｉｇｕｒｅ２参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】国際公開第２００８／０９５０１０号
【非特許文献】
【０００６】
【非特許文献１】Ｎｉｃｋ  ＭｃＫｅｏｗｎほか７名、“ＯｐｅｎＦｌｏｗ：  Ｅｎａｂｌｉｎｇ  Ｉｎｎｏｖａｔｉｏｎ  ｉｎ  Ｃａｍｐｕｓ  Ｎｅｔｗｏｒｋｓ”、［ｏｎｌｉｎｅ］、［平成２４（２０１２）年２月１４日検索］、インターネット〈URL: http://www.openflow.org/documents/openflow-wp-latest.pdf〉
【非特許文献２】“ＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ”  Ｖｅｒｓｉｏｎ  １．１．０  Ｉｍｐｌｅｍｅｎｔｅｄ  （Ｗｉｒｅ  Ｐｒｏｔｏｃｏｌ  ０ｘ０２）、［ｏｎｌｉｎｅ］、［平成２４（２０１２）年２月１４日検索］、インターネット〈URL:http://www.openflow.org/documents/openflow-spec-v1.1.0.pdf〉
【発明の概要】
【発明が解決しようとする課題】
【０００７】
以下の分析は、本発明によって与えられたものである。上述したパイプライン処理を用いることにより、受信パケットをそのまま出力するとともに、そのパケットヘッダを書き換えた上で再度フローテーブルを検索し、異なる処理を適用するというような、１つの受信パケットに対して複数の異なる処理を適用することができる。【０００８】
しかしながら、非特許文献２のパイプライン処理では、「４．６  Ｉｎｓｔｒｕｃｔｉｏｎｓ」の「Ｇｏｔｏ−Ｔａｂｌｅ」の項に記載されているとおり、検索先のテーブルを変える場合、現在参照しているフローテーブルよりも後のフローテーブルを指定しなければならない（図５参照）。このため、一つの受信パケットに対して異なる処理を適用したい場合、個々のオープンフロースイッチに保持させるフローテーブルの数が増大してしまうという問題点がある。【０００９】
本発明は、上記したオープンフローに代表される制御装置から設定された制御情報により動作する通信ノード、パケット処理方法及びプログラムにおいて、少ないフローテーブル数で異なる操作をできるようにした通信ノード、パケット処理方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の第１の視点によれば、制御装置から設定される制御情報を格納する１以上のフローテーブルと、前記１以上のフローテーブルから、受信パケットに適合するマッチ条件を持つ制御情報を検索し、該制御情報に従ってパケットを処理するパケット処理部とを備え、前記パケット処理部は、前記受信パケットに適合するマッチ条件を持つ制御情報に、所定のループ命令が付加されている場合、前記フローテーブルにおける他の制御情報の検索と、検索した制御情報の実行とを所定回数実行する通信ノードが提供される。【００１１】
本発明の第２の視点によれば、制御情報を格納する複数のフローテーブルと、前記複数のフローテーブルを所定の順序で選択し、受信パケットに適合するマッチ条件を持つ制御情報を検索し、該制御情報に従ってパケットを処理するパケット処理部とを備え、前記受信パケットに適合するマッチ条件を持つ制御情報に、所定のループ命令が付加されている場合、前記フローテーブルにおける他の制御情報の検索と、検索した制御情報の実行とを所定回数実行する通信ノードと、前記通信ノードの同一のフローテーブルに、前記所定のループ命令を付加した制御情報を含む複数の制御情報を設定する制御装置と、を含む通信システムが提供される。【００１２】
本発明の第３の視点によれば、制御装置から設定される制御情報を格納する１以上のフローテーブルと、前記１以上のフローテーブルから、受信パケットに適合するマッチ条件を持つ制御情報を検索し、該制御情報に従ってパケットを処理するパケット処理部とを備える通信ノードにおいて、前記受信パケットに適合するマッチ条件を持つ制御情報に、所定のループ命令が付加されているか否かを確認するステップと、前記受信パケットに適合するマッチ条件を持つ制御情報に、所定のループ命令が付加されている場合、前記フローテーブルにおける他の制御情報の検索と、検索した制御情報の実行とを所定回数実行するステップと、を含むパケット処理方法が提供される。本方法は、制御装置から設定された制御情報により動作する通信ノードという、特定の機械に結びつけられている。【００１３】
本発明の第４の視点によれば、制御装置から設定される制御情報を格納する１以上のフローテーブルと、前記１以上のフローテーブルから、受信パケットに適合するマッチ条件を持つ制御情報を検索し、該制御情報に従ってパケットを処理するパケット処理部とを備える通信ノードに搭載されたコンピュータに、前記受信パケットに適合するマッチ条件を持つ制御情報に、所定のループ命令が付加されているか否かを確認する処理と、前記受信パケットに適合するマッチ条件を持つ制御情報に、所定のループ命令が付加されている場合、前記フローテーブルにおける他の制御情報の検索と、検索した制御情報の実行とを所定回数実行する処理ループと、を実行させるプログラムが提供される。なお、このプログラムは、コンピュータが読み取り可能な（非トランジエントな）記憶媒体に記録することができる。即ち、本発明は、コンピュータプログラム製品として具現することも可能である。
【発明の効果】
【００１４】
本発明によれば、制御装置から設定された制御情報により動作する通信ノードに、少ないフローテーブル数で異なる処理を行わせることが可能となる。
【図面の簡単な説明】
【００１５】
【図１】本発明の一実施形態の構成を示す図である。
【図２】本発明の第１の実施形態のオープンフロースイッチの構成を示す図である。
【図３】本発明の第１の実施形態のオープンフロースイッチに設定されるフローエントリとその処理内容を説明するための図である。
【図４】本発明の第１の実施形態のオープンフロースイッチにおけるパケット受信時の処理の流れを表した流れ図である。
【図５】非特許文献１、２のオープンフロースイッチにおけるフローテーブルの検索処理を説明するための図である。
【発明を実施するための形態】
【００１６】
はじめに本発明の一実施形態の概要について図面を参照して説明する。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、本発明を図示の態様に限定することを意図するものではない。
【００１７】
本発明は、その一実施形態において、図１に示すように、制御装置３０Ａから設定される制御情報を格納する１以上のフローテーブル２１と、前記１以上のフローテーブルから、受信パケットに適合するマッチ条件を持つ制御情報を検索し、該制御情報に従ってパケットを処理するパケット処理部１１とを備える通信ノード１０Ａにて実現できる。
【００１８】
より具体的には、この通信ノード１０Ａは、受信パケットに適合するマッチ条件を持つ制御情報に、所定のループ命令が付加されている場合、フローテーブル２１における他の制御情報の検索と、検索した制御情報の実行とを所定回数実行する。例えば、通信ノード１０Ａは、図１のフローテーブル２１の上段のフローエントリにマッチするパケットを受信すると、その処理内容を実行するとともに、他の制御情報の検索と、検索した制御情報の実行とを実行する。これにより、図１のフローテーブル２１の下段のフローエントリが検索され、その処理内容が実行されることとなる。
【００１９】
以上により、少なくとも１つのフローテーブルで、複数の異なる処理を実行することが可能となる。なお、他の制御情報の検索と、検索した制御情報の実行とを実行する回数（ループ回数）は、予め定めた回数であってもよいし、前記所定のループ命令のパラメータにて指定できるようにしてもよい。
【００２０】
［第１の実施形態］
続いて、本発明の第１の実施形態について図面を参照して詳細に説明する。図２は、本発明の第１の実施形態のオープンフロースイッチ（以下、「ＯＦＳ」とも記す。）の構成を示す図である。図２を参照すると、パケット処理部１１と、制御メッセージ処理部１２と、複数（Ｎ＋１個）のフローテーブル２０〜２Ｎと出力インタフェース１３と、ループバックインタフェースＬＢとを備えた構成が示されている。
【００２１】
フローテーブル２０〜２Ｎは、検索順序として使用される０からＮまでのテーブルＩＤが付与されている。
【００２２】
パケット処理部１１は、パケットを受信すると、前記フローテーブル２０〜２ＮのそのテーブルＩＤの順にテーブルを選択し、受信パケットに適合するマッチ条件を持つフローエントリを検索する。あるフローテーブル（フローテーブル２Ｎを除く）の検索の結果、受信パケットに適合するマッチ条件を持つフローエントリが見つからなかった場合、パケット処理部１１は、次にテーブルＩＤが大きいフローテーブルを選択して、受信パケットに適合するマッチ条件を持つフローエントリを検索する。最後のフローテーブル２Ｎの検索の結果、受信パケットに適合するマッチ条件を持つフローエントリが見つからなかった場合、パケット処理部１１は、予め定められた処理（Ｎｏ  ｍａｔｃｈアクション）を行う。予め定められた処理（Ｎｏ  ｍａｔｃｈアクション）としては、受信パケットの廃棄（Ｄｒｏｐ）、制御メッセージ処理部１２を介したオープンフローコントローラ３０へのパケット受信通知（Ｐａｃｋｅｔ−Ｉｎ）などが挙げられる。
【００２３】
一方、フローテーブル２１〜２Ｎの検索の過程で、受信パケットに適合するマッチ条件を持つフローエントリが見つかった場合、パケット処理部１１は、そのフローエントリのインストラクションフィールドの内容に従って受信パケットを処理する。さらに、インストラクションフィールドの処理内容に、Ｇｏｔｏ−Ｔａｂｌｅアクションが付加されている場合、パケット処理部１１は、Ｇｏｔｏ−Ｔａｂｌｅアクションにて指定されたフローテーブルを選択して、受信パケットに適合するマッチ条件を持つフローエントリの検索を続行する。
【００２４】
制御メッセージ処理部１２は、上記した制御装置３０Ａに相当するオープンフローコントローラ３０から、フローテーブル２１〜２Ｎのフローエントリの設定、変更、削除操作等を受け付ける。また、制御メッセージ処理部１２は、パケット処理部１１からの要求に応じて、オープンフローコントローラ３０へのパケット受信通知（Ｐａｃｋｅｔ−Ｉｎ）等を行う。これらＯＦＳ１０−オープンフローコントローラ３０間の通信は、非特許文献２のオープンフロープロトコルを用いて行うことができる。
【００２５】
出力インタフェース１３は、他のＯＦＳ１０や端末と接続された物理ポート等によって構成される。例えば、フローエントリのインストラクションフィールドの内容が転送（Ｏｕｔｐｕｔ）であった場合、出力インタフェース１３からパケットが転送されることになる。なお、図２の例では、１つの出力インタフェース１３を示しているが、出力インタフェース１３は複数あってもよい。
【００２６】
ループバックインタフェースＬＢは、インストラクションフィールドの処理内容に、Ｇｏｔｏ−Ｔａｂｌｅアクションが付加されており、かつ、Ｇｏｔｏ−Ｔａｂｌｅアクションの指定フローテーブルがテーブルＩＤ＝０のフローテーブルである場合に、転送先として使用されるインタフェースである。このループバックインタフェースＬＢの出力端からパケットが出力されると、パケット処理部１１は、パケット受信時と同様にフローテーブル２０の検索処理を開始する。
【００２７】
なお、図２に示したＯＦＳ１０の各部（処理手段）は、ＯＦＳ１０を構成するコンピュータに、そのハードウェアを用いて、上記した各処理を実行させるコンピュータプログラムにより実現することもできる。
【００２８】
図３は、フローテーブルに設定されるフローエントリとその処理内容を説明するための図である。図３の例では、フローＡ（例えば、特定のホスト間の通信をフローとして捉え、パケットヘッダの送信元、宛先ホストのアドレスの組み合わせを指定する。）に属し、かつ、メタ情報フィールド（非特許文献２の「４．３  Ｍａｔｃｈ  Ｆｉｅｌｄｓ」、Ｔａｂｌｅ  ３「Ｍｅｔａｄａｔａ」参照）の値が０であるパケットを受信した場合、「フローＡ＆Ｍｅｔａ＝０」のフローエントリにヒットすることになる。この場合、当該受信パケットを出力インタフェース１３から出力する処理（Ｏｕｔｐｕｔ  Ｐｏｒｔ＃Ａ）が行われる。さらに、このフローエントリには、テーブルＩＤ＝０のフローテーブルを指定したＧｏｔｏ−Ｔａｂｌｅアクション（Ｇｏｔｏ−Ｔａｂｌｅ＃０）が付加されているので、テーブルＩＤ＝０のフローテーブルに戻って受信パケットに適合するフローエントリを再度検索する処理が行われる。また、そのときに、パケット処理部１１は、受信パケットのメタ情報フィールドの値を１つ増加させる。
【００２９】
そして、２回目のフローテーブルの検索では、フローＡに属し、かつ、メタ情報フィールドの値が１であるパケットに適合するフローエントリが検索される。この結果、「フローＡ＆Ｍｅｔａ＝１」のフローエントリがヒットすることになる。この場合、当該受信パケットのＶＬＡＮ  ＩＤ（Ｖｉｒｔｕａｌ  Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｏｗｏｒｋ  ＩＤ）を書き換えるとともに、出力インタフェース１３から出力する処理（Ｏｕｔｐｕｔ  Ｐｏｒｔ＃Ｂ）が行われる。また、Ｇｏｔｏ−Ｔａｂｌｅアクション（Ｇｏｔｏ−Ｔａｂｌｅ＃０）が付加されているので、テーブルＩＤ＝０のフローテーブルに戻って受信パケットに適合するフローエントリを再度検索する処理が行われる。ここでも、パケット処理部１１は、受信パケットのメタ情報フィールドの値を１つ増加させる。
【００３０】
さらに、再度のテーブル検索の結果、ヒットするフローエントリがあれば、そのインストラクションフィールドの内容に従って処理（パケット転送、ヘッダ書き換え等、さらに、これらに加えて必要ならば、指定したフローテーブルの検索）が行われる。
【００３１】
続いて、本実施形態の動作について図面を参照して詳細に説明する。図４は、本発明の第１の実施形態のオープンフロースイッチにおけるパケット受信時の処理の流れを表した流れ図である。
【００３２】
図４を参照すると、まず、ＯＦＳ１０は、パケットを受信すると、最も小さいテーブルＩＤを持つフローテーブルを選択して、受信したパケットに適合するマッチ条件を持つフローエントリを検索する（ステップＳ００１〜Ｓ００３）。
【００３３】
前記検索の結果、受信パケットに適合するフローエントリが見つからなかった場合（ステップＳ００３のＮｏ）、ＯＦＳ１０は、変数ｉを１加算し、次のテーブルＩＤのフローテーブルの検索を実施する（ステップＳ００４〜Ｓ００５のＹｅｓ）。すべてのフローテーブルを検索しても受信パケットに適合するフローエントリが見つからなかった場合（ステップＳ００５のＮｏ）、ＯＦＳ１０は、所定のＮｏ  ｍａｔｃｈアクションを実行する（ステップＳ００６）。
【００３４】
一方、上記ステップＳ００３で、受信パケットに適合するフローエントリが見つかった場合（ステップＳ００３のＹｅｓ）、以下の処理が行われる。
【００３５】
まず、ＯＦＳ１０は、ステップＳ００３の検索処理でヒットしたフローエントリのインストラクションフィールドのアクションに従って処理を行う（ステップＳ００７；非特許文献２の「４．６  Ｉｎｓｔｒｕｃｔｉｏｎｓ」参照）。
【００３６】
インストラクションフィールドのアクション中に、Ｇｏｔｏ−Ｔａｂｌｅアクションが含まれていない場合（ステップＳ００８のＮｏ）、ＯＦＳ１０は、その受信パケットに対する処理を終了する。
【００３７】
一方、インストラクションフィールドのアクション中に、Ｇｏｔｏ−Ｔａｂｌｅアクションが含まれている場合（ステップＳ００８のＹｅｓ）、ＯＦＳ１０は、Ｇｏｔｏ−Ｔａｂｌｅアクションにて指定されたテーブルＩＤが０であるか否かを確認する（ステップＳ００９〜Ｓ０１０）。ここで、Ｇｏｔｏ−Ｔａｂｌｅアクションにて指定されたテーブルＩＤが０である場合（即ち、ループ命令が付加されている場合）、ＯＦＳ１０は、受信パケットのメタ情報フィールドの値（周回回数）を１増加した上で（ステップＳ０１１）、ループバックインタフェースへ送信する（ステップＳ０１２〜端子ＬＢ）。
【００３８】
一方、ステップＳ０１０にて確認したＧｏｔｏ−Ｔａｂｌｅアクションの指定テーブルＩＤが０でない場合、ＯＦＳ１０は、受信パケットのメタ情報フィールドの値（周回回数）が所定のしきい値ｍとなっているか否かを確認する（ステップＳ０１３）。ここで、メタ情報フィールドの値（周回回数）が所定のしきい値ｍとなっている場合（ステップＳ０１３のＹｅｓ）、当該受信パケットに対する処理を終了する。なお、所定のしきい値ｍは、予め定めた値であってもよいし、前記Ｇｏｔｏ−Ｔａｂｌｅアクションの付加パラメータにて指定できるようにしてもよい。
【００３９】
上記ステップＳ０１３で、メタ情報フィールドの値（周回回数）が所定のしきい値ｍ未満である場合（ステップＳ０１３のＮｏ）、ＯＦＳ１０は、Ｇｏｔｏ−Ｔａｂｌｅアクションにて指定されたテーブルＩＤのフローテーブルを選択して、受信したパケットに適合するマッチ条件を持つフローエントリの検索を続行する。
【００４０】
以上のように本実施形態によれば、同一フローテーブルに対する繰り返し検索処理が可能となる。これにより、少ないフローテーブル数で異なる操作を行うことができるようになる。また本実施形態では、受信パケットのメタ情報フィールドに周回回数を書き込むことで、検索回数を管理するとともに、これをマッチ条件としても用いているので、単に、同一のフローエントリを繰り返し実行することを回避するに止まらず、検索回数によってパケットに適用する処理内容を切り替えることが可能となっている。
【００４１】
以上、本発明の実施形態を説明したが、本発明は、上記した実施形態に限定されるものではなく、本発明の基本的技術的思想を逸脱しない範囲で、更なる変形・置換・調整を加えることができる。例えば、上記した実施形態では、非特許文献１、２のオープンフローをベースとした構成を用いるものとして説明したが、その他同様の仕組みを持つ集中制御型の通信システムにも適用することが可能である。
【００４２】
また上記した実施形態では、Ｇｏｔｏ−Ｔａｂｌｅアクションの指定テーブルＩＤが０である場合にループ処理を行うものとして説明したが、Ｇｏｔｏ−Ｔａｂｌｅアクションの指定テーブルＩＤがその他のテーブルＩＤである場合にも同様の処理を行うようにしてもよい。
【００４３】
上記した実施形態では、受信パケットのメタ情報フィールドに周回回数を書き込むことにより、フローテーブルの検索回数を管理するものとして説明したが、パケット処理部１１内部で検索回数（ループ回数）を管理してもよい。さらにその場合に、任意のフローエントリとの照合処理において、前記検索回数を加算するようにすれば、上記した第１の実施形態と同様に、検索回数によるパケットに適用する処理内容を切り替えることもできる。
【００４４】
上記した実施形態では、フロー情報のほか、受信パケットのメタ情報フィールドをマッチ条件として用いるものとして説明したが、上記したループバックインタフェースに対応するポート情報（Ｉｎ−ｐｏｒｔ）をマッチ条件に追加することもできる。
【００４５】
また、上記した実施形態では、通信ノードの例として、非特許文献２のＯＦＳを用いた例を挙げて説明したが、１以上のフローテーブルから、受信パケットや搭載アプリケーションからのパケットに適合するフローエントリを検索して処理する機能を有するものであれば、ＯＦＳ以外の機器でもよい。例えば、搭載アプリケーションとのパケット授受を担うスイッチ機能を内蔵した携帯電話端末、スマートフォン、タブレット端末、パーソナルコンピュータ、ゲーム機器、モバイルルータなどが挙げられる。
【００４６】
なお、上記の特許文献および非特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素（各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む）の多様な組み合わせ、ないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【符号の説明】
【００４７】
１０  オープンフロースイッチ（ＯＦＳ）
１０Ａ  通信ノード
１１  パケット処理部
１２  制御メッセージ処理部  
１３  出力インタフェース
２０〜２Ｎ  フローテーブル
３０  オープンフローコントローラ
３０Ａ  制御装置
ＬＢ  ループバックインタフェース
【図１】
0006007972.tif 000002
【図２】
0006007972.tif 000003
【図３】
0006007972.tif 000004
【図４】
0006007972.tif 000005
【図５】
0006007972.tif 000006