(57)【特許請求の範囲】
【請求項１】
スイッチ処理方法であって、前記方法は、コントローラおよび論理Switchによって実行され、前記論理Switchは、少なくとも2つの物理Switchを含み、前記方法は、
前記コントローラが、前記論理Switchの複数のフローテーブル内のフローテーブルを各物理Switchに割り当てるステップであって、前記複数のフローテーブルは前記論理Switchのパイプラインである、ステップと、
各物理Switchがマッピング情報を取得するように、前記コントローラが、前記マッピング情報を送信するステップであって、前記マッピング情報は、前記物理Switchと前記複数のフローテーブル内の各フローテーブルとの間のマッピング関係を含む、ステップと、
各物理Switchが各物理Switchに対応するフローエントリを取得し、前記フローエントリにしたがって、または前記フローエントリおよび前記マッピング情報にしたがって、受信したデータパケットを処理するために、前記コントローラが、フローエントリを前記論理Switchに送信するステップであって、前記フローエントリは、各物理Switchに前記コントローラによって割り当てられたフローテーブルセット内の各フローテーブルのコンテンツ情報である、ステップ
を含む、方法。
【請求項２】
前記少なくとも2つの物理Switchは、主Switchおよび第1の拡張Switchを含み、前記コントローラは、少なくとも前記主Switchに接続され、前記第1の拡張Switchは、少なくとも前記主Switchに接続され、
前記コントローラが、マッピング情報を送信する前記ステップは、
前記主Switchが前記マッピング情報を受信し、前記第1の拡張Switchによって受信された前記マッピング情報が、前記コントローラおよび／または前記主Switchによって送信された前記マッピング情報を含むように、前記コントローラが前記マッピング情報を少なくとも前記主Switchに送信するステップ
を含み、
前記コントローラが、フローエントリを前記論理Switchに送信する前記ステップは、
前記主Switchによって受信された前記フローエントリが前記主Switchに対応するフローエントリまたは各物理Switchに対応する前記フローエントリを含み、かつ、前記第1の拡張Switchによって受信されたフローエントリが前記コントローラおよび／または前記主Switchによって送信されたフローエントリを含むように、前記コントローラが、前記論理Switchの前記フローエントリを少なくとも前記主Switchに送信するステップ
を含む、請求項1に記載の方法。
【請求項３】
前記物理Switchは、第2の拡張Switchをさらに含み、前記第2の拡張Switchは、少なくとも前記第1の拡張Switchに接続され、
前記コントローラが、マッピング情報を送信する前記ステップは、
前記主Switchが前記マッピング情報を受信するように、前記コントローラが、前記マッピング情報を少なくとも前記主Switchに送信するステップを含み、前記第1の拡張Switchによって受信された前記マッピング情報は、前記コントローラおよび／または前記主Switchによって送信された前記マッピング情報を含み、前記第2の拡張Switchによって受信された前記マッピング情報は、前記コントローラおよび／または前記主Switchおよび／または前記第1の拡張Switchによって送信された前記マッピング情報を含み、
前記コントローラが、フローエントリを前記論理Switchに送信する前記ステップは、
前記コントローラが、少なくとも前記主Switchへの前記論理Switchの前記フローエントリを送信し、これにより、前記主Switchによって受信された前記フローエントリは、前記主Switchに対応するフローエントリ、または前記主Switchに対応するフローエントリならびに前記第1の拡張Switchおよび／もしくは前記第2の拡張Switchに対応するフローエントリを含み、前記第1の拡張Switchによって受信されたフローエントリは、前記第1の拡張Switchに対応し、かつ前記コントローラおよび／または前記主Switchによって送信されたフローエントリを含み、前記第2の拡張Switchによって受信されたフローエントリは、前記第2の拡張Switchに対応し、かつ前記コントローラおよび／または前記主Switchおよび／または前記第1の拡張Switchによって送信されたフローエントリを含む、ステップを含む、請求項2に記載の方法。
【請求項４】
前記コントローラによって前記主Switchに割り当てられたフローテーブルは、少なくとも、前記論理Switchの前記複数のフローテーブル内の第1のフローテーブル(table0)を含み、前記主Switchが前記データパケットを受信した場合に、前記主Switchが前記table0を用いて前記データパケットを処理する、請求項2または3に記載の方法。
【請求項５】
前記コントローラが、フローエントリを前記論理Switchに送信する前記ステップは、
前記コントローラが、前記フローエントリを前記論理Switchに送信し、これにより、現在の物理Switchが前記データパケットを受信した場合に、前記現在の物理Switchは、現在のフローテーブルを使用して前記データパケットを処理し、前記マッピング情報にしたがって次のフローテーブルの位置を判断し、前記判断された次のフローテーブルが前記現在の物理Switchにある場合には、前記データパケットを前記次のフローテーブルに導いて処理を続行するか、または、前記判断された次のフローテーブルが別の物理Switchにある場合には、カプセル化パケットを生成するためにパイプライン環境保護を開始し、前記カプセル化パケットを前記次のフローテーブルに対応する前記物理Switchに送信する、ステップを含む、請求項1から4のいずれか1項に記載の方法。
【請求項６】
前記コントローラが、フローエントリを前記論理Switchに送信する前記ステップは、
送信対象のフローエントリがフローテーブルジャンプ命令を含む場合には、前記コントローラが、次のフローテーブルが現在の物理Switchにあるかどうかを判断するステップと、
前記次のフローテーブルが前記現在の物理Switchにあると判断した場合には、前記コントローラが、前記フローテーブルジャンプ命令を含む前記フローエントリを前記現在の物理Switchに送信して、前記現在の物理Switchが前記データパケットを前記次のフローテーブルに導いて、処理を続行するステップ、または
前記次のフローテーブルが別の物理Switchにあると判断した場合には、前記コントローラが、前記送信対象のフローエントリ内の前記フローテーブルジャンプ命令をSwitch転送命令で置き換えるステップと、前記現在の物理Switchがカプセル化パケットを生成するためにパイプライン環境保護を開始し、かつ前記カプセル化パケットを前記次のフローテーブルに対応する前記物理Switchに送信するように、前記Switch転送命令を含む前記フローエントリを前記現在の物理Switchに送信するステップと
を含む、請求項1から4のいずれか1項に記載の方法。
【請求項７】
前記パイプライン環境保護は、前記現在の物理Switchが前記データパケットと前記データパケットを処理するための関連情報を前記カプセル化パケットにカプセル化することであり、前記データパケットを処理するための前記関連情報は、少なくとも前記次のフローテーブルの識別子を含むとともに、任意の次の情報、すなわち、入力ポート（Ingress port）、前記データパケットに現在対応するアクションセット（Action set）、およびメタデータ（Metadata）をさらに含む、請求項5または6に記載の方法。
【請求項８】
前記パイプライン環境保護は前記次のフローテーブルに対応する前記物理Switchが前記物理Switchによって受信された前記カプセル化パケットを解析し、解析された情報を取得することを可能にするために使用され、それによって、前記解析された情報にしたがってパイプライン環境回復を実行し、前記データパケットを前記次のフローテーブルに導いて処理を続行し、前記解析された情報は、前記データパケットおよび前記データパケットを処理するための関連情報を含む、請求項5から7のいずれか1項に記載の方法。
【請求項９】
拡張Switchに対応し、かつ前記コントローラによって送信された前記フローエントリは、パイプライン回復を実行するために使用されるフローエントリを含み、前記方法は、
前記コントローラによって、パイプライン回復を実行するために用いられる前記フローエントリを前記拡張Switchに送信し、これにより、前記拡張Switchが、前記拡張Switchの第1のフローテーブルtable0’に前記フローエントリを追加し、前記カプセル化パケットが受信された場合に、前記table0’に追加された前記フローエントリを使用してパイプライン環境回復を実行する、ステップをさらに含む、請求項5から7のいずれか1項に記載の方法。
【請求項１０】
前記カプセル化パケットは、前記次のフローテーブルのIDを含み、パイプライン回復を実行するために使用される前記フローエントリは、マッチング部分および実行可能命令を含み、前記マッチング部分は、前記フローエントリに対応するマッチングオブジェクトとして前記次のフローテーブルの前記IDを取得するために前記拡張Switchによって使用され、前記実行可能命令は、フローテーブル回復命令および／またはフローテーブルジャンプ命令を含み、
前記パイプライン環境回復は、前記拡張Switchが、前記拡張Switchによって受信された前記カプセル化パケットを前記table0’の前記フローエントリを使用してマッチングすることであり、前記次のフローテーブルの前記IDが前記table0’の前記フローエントリとマッチングする場合には、マッチング結果にしたがって前記マッチングしたフローエントリの前記フローテーブル回復命令および／または前記フローテーブルジャンプ命令を順番に実行することである、請求項9に記載の方法。
【請求項１１】
スイッチ処理装置であって、前記装置は、論理Switchに接続されたコントローラに配置され、前記論理Switchは、少なくとも2つの物理Switchを含み、前記装置は、
前記論理Switchの複数のフローテーブル内の各フローテーブルを各物理Switchに割り当てるように構成された割り当てモジュールであって、前記複数のフローテーブルは前記論理Switchのパイプラインである、割り当てモジュールと、
各物理Switchがマッピング情報を取得するように、前記マッピング情報を送信するように構成された送信モジュールであって、前記マッピング情報は、前記物理Switchと前記複数のフローテーブル内の各フローテーブルとの間のマッピング関係を含む、送信モジュールと
を含み、
前記送信モジュールは、各物理Switchが各物理Switchに対応するフローエントリを取得し、前記フローエントリにしたがって、または前記フローエントリおよび前記マッピング情報にしたがって、受信したデータパケットを処理するために、フローエントリを前記論理Switchに送信するようにさらに構成され、前記フローエントリは、各物理Switchに前記コントローラによって割り当てられたフローテーブルセット内の各フローテーブルのコンテンツ情報である、装置。
【請求項１２】
前記少なくとも2つの物理Switchは、主Switchおよび第1の拡張Switchを含み、前記コントローラは、少なくとも前記主Switchに接続され、前記第1の拡張Switchは、少なくとも前記主Switchに接続され、
前記送信モジュールがマッピング情報を送信するように構成されるということは、具体的には、前記主Switchが前記マッピング情報を受信し、前記第1の拡張Switchによって受信された前記マッピング情報が、前記コントローラおよび／または前記主Switchによって送信された前記マッピング情報を含むように、前記マッピング情報を少なくとも前記主Switchに送信することを含み、
前記送信モジュールが、前記論理Switchにフローエントリを送信するようにさらに構成されるということは、具体的には、前記主Switchによって受信された前記フローエントリが前記主Switchに対応するフローエントリまたは各物理Switchに対応する前記フローエントリを含み、かつ、前記第1の拡張Switchによって受信されたフローエントリが前記コントローラおよび／または前記主Switchによって送信されたフローエントリを含むように、前記論理Switchの前記フローエントリを少なくとも前記主Switchに送信することを含む、請求項11に記載の装置。
【請求項１３】
前記物理Switchは、第2の拡張Switchをさらに含み、前記第2の拡張Switchは、少なくとも前記第1の拡張Switchに接続され、
前記送信モジュールがマッピング情報を送信するように構成されるということは、具体的には、前記主Switchが前記マッピング情報を受信するように、前記マッピング情報を少なくとも前記主Switchに送信することを含み、前記第1の拡張Switchによって受信された前記マッピング情報は、前記コントローラおよび／または前記主Switchによって送信された前記マッピング情報を含み、前記第2の拡張Switchによって受信された前記マッピング情報は、前記コントローラおよび／または前記主Switchおよび／または前記第1の拡張Switchによって送信された前記マッピング情報を含み、
前記送信モジュールが、前記論理Switchにフローエントリを送信するようにさらに構成されるということは、具体的には、少なくとも前記主Switchへの前記論理Switchの前記フローエントリを送信し、これにより、前記主Switchによって受信された前記フローエントリは、前記主Switchに対応するフローエントリ、または前記主Switchに対応するフローエントリならびに前記第1の拡張Switchおよび／もしくは前記第2の拡張Switchに対応するフローエントリを含み、前記第1の拡張Switchによって受信されたフローエントリは、前記第1の拡張Switchに対応し、かつ前記コントローラおよび／または前記主Switchによって送信されたフローエントリを含み、前記第2の拡張Switchによって受信されたフローエントリは、前記第2の拡張Switchに対応し、かつ前記コントローラおよび／または前記主Switchおよび／または前記第1の拡張Switchによって送信されたフローエントリを含む、ことを含む、請求項12に記載の装置。
【請求項１４】
前記割り当てモジュールによって前記主Switchに割り当てられたフローテーブルは、少なくとも、前記論理Switchの前記複数のフローテーブル内の第1のフローテーブルtable0を含み、前記主Switchが前記データパケットを受信した場合に、前記主Switchが前記table0を用いて前記データパケットを処理する、請求項12または13に記載の装置。
【請求項１５】
前記送信モジュールが前記論理Switchにフローエントリを送信するようにさらに構成されるということは、具体的には、前記フローエントリを前記論理Switchに送信し、これにより、現在の物理Switchが前記データパケットを受信した場合に、前記現在の物理Switchは、現在のフローテーブルを使用して前記データパケットを処理し、前記送信モジュールによって送信された前記マッピング情報にしたがって次のフローテーブルの位置を判断し、前記判断された次のフローテーブルが前記現在の物理Switchにある場合には、前記データパケットを前記次のフローテーブルに導いて処理を続行するか、または、前記判断された次のフローテーブルが別の物理Switchにある場合には、カプセル化パケットを生成するためにパイプライン環境保護を開始し、前記カプセル化パケットを前記次のフローテーブルに対応する前記物理Switchに送信する、ことを含む、請求項11から14のいずれか1項に記載の装置。
【請求項１６】
前記送信モジュールは、送信対象のフローエントリがフローテーブルジャンプ命令を含む場合に、次のフローテーブルが現在の物理Switchにあるかどうかを判断するように構成される判断部と、
実行部と、を含み、前記実行部は、前記判断部が、前記次のフローテーブルが前記現在の物理Switchにあると判断した場合には、前記フローテーブルジャンプ命令を含む前記フローエントリを前記現在の物理Switchに送信して、前記現在の物理Switchが前記データパケットを前記次のフローテーブルに導いて、処理を続行するように構成されるか、または、
前記実行部は、前記判断部が、前記次のフローテーブルが別の物理Switchにあると判断した場合には、前記送信対象のフローエントリ内の前記フローテーブルジャンプ命令をSwitch転送命令で置き換えて、前記現在の物理Switchがカプセル化パケットを生成するためにパイプライン環境保護を開始し、かつ前記カプセル化パケットを前記次のフローテーブルに対応する前記物理Switchに送信するように、前記Switch転送命令を含む前記フローエントリを前記現在の物理Switchに送信するように構成される、請求項11から14のいずれか1項に記載の装置。
【請求項１７】
前記パイプライン環境保護は、前記現在の物理Switchが前記データパケットおよび前記データパケットを処理するための関連情報を、前記カプセル化パケット内にカプセル化することであり、前記データパケットを処理するための前記関連情報は、少なくとも前記次のフローテーブルの番号IDを含むとともに、任意の次の情報、すなわち、入力ポート（Ingress port）、前記データパケットに現在対応するアクションセット（Action set）、およびメタデータ（Metadata）をさらに含む、請求項15または16に記載の装置。
【請求項１８】
前記パイプライン環境保護は、前記次のフローテーブルに対応する前記物理Switchが前記物理Switchによって受信された前記カプセル化パケットを解析し、解析された情報を取得することを可能にするために使用され、それによって、前記解析された情報にしたがってパイプライン環境回復を実行し、前記データパケットを前記次のフローテーブルに導いて処理を続行し、前記解析された情報は、前記データパケットおよび前記データパケットを処理するための関連情報を含む、請求項15から17いずれか1項に記載の装置。
【請求項１９】
拡張Switchに対応し、かつ前記送信モジュールによって送信された前記フローエントリは、パイプライン回復を実行するために使用されるフローエントリを含み、前記送信モジュールは、パイプライン回復を実行するために用いられる前記フローエントリを前記拡張Switchに送信するようにさらに構成され、これにより、前記拡張Switchが、前記拡張Switchの第1のフローテーブルtable0’に前記フローエントリを追加し、前記カプセル化パケットが受信された場合に、前記table0’に追加された前記フローエントリを使用してパイプライン環境回復を実行する、請求項15から18のいずれか1項に記載の装置。
【請求項２０】
前記カプセル化パケットは、前記次のフローテーブルのIDを含み、パイプライン回復を実行するために使用され、かつ前記送信モジュールによって送信された前記フローエントリは、マッチング部分および実行可能命令を含み、前記マッチング部分は、前記フローエントリに対応するマッチングオブジェクトとして前記次のフローテーブルの前記IDを取得するために前記拡張Switchによって使用され、前記実行可能命令は、フローテーブル回復命令および／またはフローテーブルジャンプ命令を含み、
前記パイプライン環境回復は、前記拡張Switchが、前記拡張Switchによって受信された前記カプセル化パケットを前記table0’の前記フローエントリを使用してマッチングし、前記次のフローテーブルの前記IDが前記table0’の前記フローエントリとマッチングする場合には、マッチング結果にしたがって前記マッチングしたフローエントリの前記フローテーブル回復命令および／または前記フローテーブルジャンプ命令を順番に実行する、請求項19に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、通信技術に関し、特に、スイッチ処理方法、コントローラ、スイッチ、およびスイッチ処理システムに関する。
【背景技術】
【０００２】
ソフトウェア定義されたネットワーキング（SDN）は、制御を転送から切り離すためのネットワークアーキテクチャであり、集中制御およびオープンプログラマブルインターフェースの機能を有し、すなわち、制御プレーン上のコントローラは、ネットワーク通信プロトコルを使用することによって、たとえば、転送される新しいネットワークスイッチモデル、すなわち、オープンフロープロトコルを使用することによって、転送プレーン上のスイッチを制御することができる。
【０００３】
従来技術では、コントローラは、Openflowプロトコルを使用して転送プレーン上のスイッチの動作を制御することができる。Switchは、具体的にはサービスロジックの複数のフローテーブルを保持しており、すなわち、Switchはフローテーブルに基づいたパイプラインを使用してデータパケットを処理する。具体的には、各フローテーブルは、複数のフローエントリを含むことができ、フローエントリは、Openflowプロトコルの基本的な処理ロジックを担うために使用される。データパケットを受信すると、Switchは、フローエントリ内のマッチングフィールドを使用して予め設定された優先順位にしたがってフローエントリを1つずつマッチングさせ、フローエントリが正常にマッチングされた後に、フローエントリ内の実行可能命令を実行し、この命令は、たとえば、動作（Action）リスト、メタデータの変更、および後続のフローテーブルへの指示を含む。データパケットは、一般に、複数のフローテーブルのマッチング処理を必要とするので、入力データパケットがフローテーブル内のフローエントリに正常にマッチングした後に、フローエントリ内の実行可能命令が実行され、次にSwitchはデータパケットに対して次のフローテーブルへ処理を続行するように指示する。
【０００４】
しかし、Switchのパイプラインによってサポートされるフローテーブルの量と、Switchによって処理され得るフローエントリのスケールは、従来技術では制限されている。したがって、オペレータがネットワークノードに配置されたSwitchの機能または性能による容量拡張を行う必要がある場合には、Switchのハードウェア能力の限界により、オペレータは、既存のネットワーク内のSwitchを容量の大きいSwitchまたはより多くのフローテーブルをサポートするSwitchと交換することしかできない。したがって、ネットワーク容量拡張のコストが増大する。
【発明の概要】
【０００５】
本発明の実施形態は、オペレータがネットワークノードに配置されたSwitchの機能または性能について容量拡張を必要とする場合に、Switchのハードウェア能力の限界のために、オペレータは既存のネットワーク内のSwitchを交換することしかできないという、従来技術の問題点を解決するためのスイッチ処理方法、コントローラ、スイッチ、およびスイッチ処理方法を提供し、それによってネットワーク容量拡張のコストを削減する。
【課題を解決するための手段】
【０００６】
第1の態様によれば、本発明の一実施形態はスイッチ処理方法を提供し、方法は、コントローラおよび論理Switchによって実行され、論理Switchは、少なくとも2つの物理Switchを含み、方法は、
コントローラによって、論理Switchの複数のフローテーブル内の各フローテーブルを各物理Switchに割り当てるステップであって、複数のフローテーブルは論理Switchのパイプラインである、ステップと、
各物理Switchがマッピング情報を取得するように、コントローラによって、マッピング情報を送信するステップであって、マッピング情報は、物理Switchと複数のフローテーブル内の各フローテーブルとの間のマッピング関係を含む、ステップと、
各物理Switchが各物理Switchに対応するフローエントリを取得し、フローエントリにしたがって、またはフローエントリおよびマッピング情報にしたがって、受信したデータパケットを処理するために、コントローラによって、フローエントリを論理Switchに送信するステップであって、フローエントリは、各物理Switchにコントローラによって割り当てられたフローテーブルセット内の各フローテーブルのコンテンツ情報である、ステップ
を含む。
【０００７】
第1の態様の第1の可能な実施態様では、少なくとも2つの物理Switchは、主Switchおよび第1の拡張Switchを含み、コントローラは、少なくとも主Switchに接続され、第1の拡張Switchは、少なくとも主Switchに接続され、
コントローラによって、マッピング情報を送信するステップは、
主Switchがマッピング情報を受信し、第1の拡張Switchによって受信されたマッピング情報が、コントローラおよび／または主Switchによって送信されたマッピング情報を含むように、コントローラによってマッピング情報を少なくとも主Switchに送信するステップ
を含み、
コントローラによって、フローエントリを論理Switchに送信するステップは、
主Switchによって受信されたフローエントリが主Switchに対応するフローエントリまたは各物理Switchに対応するフローエントリを含み、かつ、第1の拡張Switchによって受信されたフローエントリがコントローラおよび／または主Switchによって送信されたフローエントリを含むように、コントローラによって、論理Switchのフローエントリを少なくとも主Switchに送信するステップ
を含む。
【０００８】
第1の態様の第1の可能な実施態様によれば、第2の可能な実施態様では、物理Switchは、第2の拡張Switchをさらに含み、第2の拡張Switchは、少なくとも第1の拡張Switchに接続され、
コントローラによって、マッピング情報を送信するステップは、
主Switchがマッピング情報を受信するように、コントローラによって、マッピング情報を少なくとも主Switchに送信するステップを含み、第1の拡張Switchによって受信されたマッピング情報は、コントローラおよび／または主Switchによって送信されたマッピング情報を含み、第2の拡張Switchによって受信されたマッピング情報は、コントローラおよび／または主Switchおよび／または第1の拡張Switchによって送信されたマッピング情報
を含み、
コントローラによって、フローエントリを論理Switchに送信するステップは、
コントローラによって、少なくとも主Switchへの論理Switchのフローエントリを送信し、これにより、主Switchによって受信されたフローエントリは、主Switchに対応するフローエントリ、または主Switchに対応するフローエントリならびに第1の拡張Switchおよび／もしくは第2の拡張Switchに対応するフローエントリを含み、第1の拡張Switchによって受信されたフローエントリは、第1の拡張Switchに対応し、かつコントローラおよび／または主Switchによって送信されたフローエントリを含み、第2の拡張Switchによって受信されたフローエントリは、第2の拡張Switchに対応し、かつコントローラおよび／または主Switchおよび／または第1の拡張Switchによって送信されたフローエントリを含む、ステップを含む。
【０００９】
第1の態様の第1または第2の可能な実施態様によれば、第3の可能な実施態様では、コントローラによって主Switchに割り当てられたフローテーブルは、少なくとも、論理Switchの複数のフローテーブル内の第1のフローテーブルtable0を含み、主Switchがデータパケットを受信した場合に、主Switchがtable0を用いてデータパケットを処理する。
【００１０】
第1の態様のいずれか1つ、または第1の態様の第1もしくは第2の可能な実施態様によれば、第4の可能な実施態様では、コントローラによって、フローエントリを論理Switchに送信するステップは、
コントローラによって、フローエントリを論理Switchに送信し、これにより、現在の物理Switchがデータパケットを受信した場合に、現在の物理Switchは、現在のフローテーブルを使用してデータパケットを処理し、マッピング情報にしたがって次のフローテーブルの位置を判断し、判断された次のフローテーブルが現在の物理Switchにある場合には、データパケットを次のフローテーブルに導いて処理を続行するか、または、判断された次のフローテーブルが別の物理Switchにある場合には、カプセル化パケットを生成するためにパイプライン環境保護を開始し、カプセル化パケットを次のフローテーブルに対応する物理Switchに送信する、ステップを含む。
【００１１】
第1の態様のいずれか1つ、または第1の態様の第1もしくは第2の可能な実施態様によれば、第5の可能な実施態様では、コントローラによって、フローエントリを論理Switchに送信するステップは、
送信対象のフローエントリがフローテーブルジャンプ命令を含む場合には、コントローラによって、次のフローテーブルが現在の物理Switchにあるかどうかを判断するステップと、
次のフローテーブルが現在の物理Switchにあると判断した場合には、コントローラによって、フローテーブルジャンプ命令を含むフローエントリを現在の物理Switchに送信して、現在の物理Switchがデータパケットを次のフローテーブルに導いて、処理を続行するステップ、あるいは、
次のフローテーブルが別の物理Switchにあると判断した場合には、コントローラによって、送信対象のフローエントリ内のフローテーブルジャンプ命令をSwitch転送命令で置き換えるステップと、現在の物理Switchがカプセル化パケットを生成するためにパイプライン環境保護を開始し、かつカプセル化パケットを次のフローテーブルに対応する物理Switchに送信するように、Switch転送命令を含むフローエントリを現在の物理Switchに送信するステップと、
を含む。
【００１２】
第1の態様の第4または第5の可能な実施態様によれば、第6の可能な実施態様では、パイプライン環境保護は、現在の物理Switchがデータパケットとデータパケットを処理するための関連情報をカプセル化パケットにカプセル化することであり、データパケットを処理するための関連情報は、少なくとも次のフローテーブルの番号IDを含むとともに、任意の次の情報、すなわち、入力ポート（Ingress port）、データパケットに現在対応するアクションセット（Action set）、およびメタデータ（Metadata）をさらに含む。
【００１３】
第1の態様の第4から第6の可能な実施態様のいずれか1つによれば、第7の可能な実施態様では、パイプライン環境保護は、次のフローテーブルに対応する物理Switchが物理Switchによって受信されたカプセル化パケットを解析し、解析された情報を取得することを可能にするために使用され、それによって、解析された情報にしたがってパイプライン環境回復を実行し、データパケットを次のフローテーブルに導いて処理を続行し、解析された情報は、データパケットおよびデータパケットを処理するための関連情報を含む。
【００１４】
第1の態様の第4から第6の可能な実施態様のいずれか1つによれば、第8の可能な実施態様では、拡張Switchに対応し、かつコントローラによって送信されたフローエントリは、パイプライン回復を実行するために使用されるフローエントリを含み、方法は、
コントローラによって、パイプライン回復を実行するために用いられるフローエントリを拡張Switchに送信するステップをさらに含み、これにより、拡張Switchが、拡張Switchの第1のフローテーブルtable0’にフローエントリを追加し、カプセル化パケットが受信された場合に、table0’に追加されたフローエントリを使用してパイプライン環境回復を実行する。
【００１５】
第1の態様の第8の可能な実施態様によれば、第9の可能な実施態様では、カプセル化パケットは、次のフローテーブルのIDを含み、パイプライン回復を実行するために使用されるフローエントリは、マッチング部分および実行可能命令を含み、マッチング部分は、フローエントリに対応するマッチングオブジェクトとして次のフローテーブルのIDを取得するために拡張Switchによって使用され、実行可能命令は、フローテーブル回復命令および／またはフローテーブルジャンプ命令を含み、
パイプライン環境回復は、拡張Switchが、拡張Switchによって受信されたカプセル化パケットをtable0’のフローエントリを使用してマッチングすることであり、次のフローテーブルのIDがtable0’のフローエントリとマッチングする場合には、マッチング結果にしたがってマッチングしたフローエントリのフローテーブル回復命令および／またはフローテーブルジャンプ命令を順番に実行する。
【００１６】
第2の態様によれば、本発明の一実施形態はスイッチ処理方法を提供し、方法は、コントローラおよび論理Switchによって実行され、論理Switchは、少なくとも2つの物理Switchを含み、少なくとも2つの物理Switchは、主Switchおよび拡張Switchを含み、コントローラは、少なくとも主Switchに接続され、方法は、
主Switchによって、コントローラによって送信されたマッピング情報を受信するステップであって、マッピング情報は、物理Switchと論理Switchの複数のフローテーブルの各フローテーブルとの間のマッピング関係を含む、ステップと、
主Switchによって、コントローラによって送信されたフローエントリを受信するステップであって、主Switchによって受信されたフローエントリは、コントローラによって主Switchに割り当てられた、またはコントローラによって主Switchおよび拡張Switchに割り当てられたフローテーブルセット内の各フローテーブルのコンテンツ情報である、ステップと、
主Switchによって、フローエントリにしたがって、あるいはフローエントリおよびマッピング情報にしたがって、受信したデータパケットを処理するステップと、
を含む。
【００１７】
第2の態様の第1の可能な実施態様では、主Switchによって、コントローラによって送信されたマッピング関係を受信するステップの後に、方法は、
主Switchによって、主Switchに接続された拡張Switchにマッピング情報を送信するステップ
をさらに含み、
主Switchによって、コントローラによって送信されたフローエントリを受信するステップの後に、方法は、
主Switchによって、主Switchに接続された拡張Switchに、コントローラによって割り当てられたフローエントリを送信するステップ
をさらに含む。
【００１８】
第2の態様または第2の態様の第1の可能な実施態様によれば、第2の可能な実施態様では、拡張Switchは、第1の拡張Switchおよび第2の拡張Switchを含み、主Switchは、少なくとも第1の拡張Switchに接続され、第2の拡張Switchは、少なくとも第1の拡張Switchに接続され、
主Switchによって、コントローラによって送信されたマッピング情報を受信するステップの後に、方法は、
主Switchによって、第1の拡張Switchおよび／または第2の拡張Switchにマッピング情報を送信するステップ
をさらに含み、
主Switchによって、コントローラによって送信されたフローエントリを受信するステップの後に、方法は、
主Switchによって、第1の拡張Switchおよび／または第2の拡張Switchに、コントローラによって割り当てられたフローエントリを送信するステップをさらに含み、拡張Switchは、拡張Switchに対応するマッピング情報およびフローエントリにしたがって受信したデータパケットを処理する。
【００１９】
第2の態様のいずれか1つ、または第2の態様の第1もしくは第2の可能な実施態様によれば、第3の可能な実施態様では、主Switchによって受信されたマッピング情報は、コントローラによって主Switchに割り当てられたフローテーブルを含み、フローテーブルは、論理Switchの複数のフローテーブル内の少なくとも第1のフローテーブルtable0を含み、主Switchによって、フローエントリにしたがって、あるいはフローエントリおよびマッピング情報にしたがって、受信したデータパケットを処理するステップは、
主Switchによって、table0を用いて、フローエントリにしたがって、あるいはフローエントリおよびマッピング情報にしたがって、受信したデータパケットを処理するステップ
を含む。
【００２０】
第2の態様のいずれか1つ、または第2の態様の第1から第3の可能な実施態様によれば、第4の可能な実施態様では、主Switchによって、フローエントリにしたがって、あるいはフローエントリおよびマッピング情報にしたがって、受信したデータパケットを処理するステップは、
データパケットを受信した場合に、主Switchによって、データパケットを処理し、マッピング情報にしたがって次のフローテーブルの位置を判断するステップと、
次のフローテーブルが主Switchにある場合に、主Switchによって、データパケットを次のフローテーブルに導いて処理を続行するステップ、あるいは、
次のフローテーブルが拡張Switchにある場合には、主Switchによって、カプセル化パケットを生成するためのパイプライン環境保護を開始し、カプセル化パケットを次のフローテーブルに対応する拡張Switchに送信するステップと、
を含む。
【００２１】
第2の態様のいずれか1つ、または第2の態様の第1から第3の可能な実施態様によれば、第5の可能な実施態様では、主Switchによって、コントローラによって送信されたフローエントリを受信するステップは、
フローテーブルジャンプ命令またはSwitch転送命令を含み、かつコントローラによって送信されたフローエントリを、主Switchによって、受信するステップであって、フローエントリ内の次のフローテーブルが主Switchにあるかどうかにしたがって、フローエントリ内のフローテーブルジャンプ命令またはSwitch転送命令がコントローラによって判断され、そうである場合には、フローエントリはフローテーブルジャンプ命令を含み、そうでない場合には、フローエントリは、Switch転送命令を含む、ステップ
を含み、
主Switchによって、フローエントリにしたがって、あるいはフローエントリおよびマッピング情報にしたがって、受信したデータパケットを処理するステップは、
主Switchによって、データパケットを受信し、データパケットにマッチングするフローエントリがフローテーブルジャンプ命令を含む場合には、データパケットを次のフローテーブルに導いて処理を続行するステップ、あるいは、
主Switchによって、データパケットを受信し、データパケットにマッチングするフローエントリがSwitch転送命令を含む場合には、カプセル化パケットを生成するためにパイプライン環境保護を開始し、カプセル化パケットを次のフローテーブルに対応する拡張Switchに送信するステップ
を含む。
【００２２】
第2の態様の第4または第5の可能な実施態様によれば、第6の可能な実施態様では、主Switchによって、パイプライン環境保護を開始するステップは、
データパケットおよびデータパケットを処理するための関連情報を、カプセル化パケット内に、主Switchによって、カプセル化するステップであって、データパケットを処理するための関連情報は、少なくとも次のフローテーブルの番号IDを含むとともに、任意の次の情報、すなわち、入力ポート（Ingress port）、データパケットに現在対応するアクションセット（Action set）、およびメタデータ（Metadata）をさらに含む、ステップ
を含む。
【００２３】
第2の態様の第4から第6の可能な実施態様のいずれか1つによれば、第7の可能な実施態様では、パイプライン環境保護は、次のフローテーブルに対応する拡張Switchが拡張Switchによって受信されたカプセル化パケットを解析し、解析された情報を取得することを可能にするために使用され、それによって、解析された情報にしたがってパイプライン環境回復を実行し、データパケットを次のフローテーブルに導いて処理を続行し、解析された情報は、データパケットおよびデータパケットを処理するための関連情報を含む。
【００２４】
第3の態様によれば、本発明の一実施形態はスイッチ処理方法を提供し、方法は、コントローラおよび論理Switchによって実行され、論理Switchは複数の物理Switchを含み、複数の物理Switchは主Switchおよび拡張Switchを含み、拡張Switchは第1の拡張Switchおよび第2の拡張Switchを含み、コントローラは少なくとも主Switchに接続され、主Switchは少なくとも第1の拡張Switchに接続され、第2の拡張Switchは、少なくとも第1の拡張Switchに接続され、方法は、
現在の拡張Switchによって、コントローラおよび／または主Switchおよび／または別の拡張Switchによって送信されたマッピング情報を受信するステップであって、マッピング情報は、物理Switchと論理Switchの複数のフローテーブル内の各フローテーブルとの間のマッピング関係を含む、ステップと、
現在の拡張Switchによって、現在の拡張Switchに対応し、かつコントローラおよび／または主Switchおよび／または別の拡張Switchによって送信されたフローエントリを受信するステップであって、現在の拡張Switchによって受信されたフローエントリは、コントローラによって現在の拡張Switchに割り当てられたフローテーブルセット内の各フローテーブルのコンテンツ情報である、ステップと、
フローエントリにしたがって、あるいはフローエントリおよびマッピング情報にしたがって、受信した第1のカプセル化データパケットを、現在の拡張Switchによって、処理するステップであって、第1のカプセル化パケットは、物理Switchによって受信されたデータパケットおよびデータパケットを処理するための関連情報をカプセル化することによって、前のフローテーブルがある物理Switchによって生成される、ステップと
を含む。
【００２５】
第3の態様の第1の可能な実施態様では、現在の拡張Switchによって受信されたマッピング情報において、論理Switchの複数のフローテーブル内の第1のフローテーブルtable0は、主Switchに対応する。
【００２６】
第3の態様または第3の態様の第1の可能な実施態様によれば、第2の可能な実施態様では、現在の拡張Switchに対応し、かつコントローラおよび／または主Switchおよび／または別の拡張Switchによって送信されたフローエントリを、現在の拡張Switchによって、受信するステップの後に、方法は、
現在の拡張Switchによって、第1のカプセル化パケットを受信するステップと、
現在の拡張Switchによって、第1のカプセル化パケット内の次のフローテーブルの番号IDが別の物理Switchにあることを判断するステップと、
マッピング情報にしたがって現在の拡張Switchによって、第1のカプセル化パケットを次のフローテーブルのIDに対応する物理Switchに転送するステップと
をさらに含む。
【００２７】
第3の態様または第3の態様の第1の可能な実施態様によれば、第3の可能な実施態様では、現在の拡張Switchに対応し、かつコントローラおよび／または主Switchおよび／または別の拡張Switchによって送信されたフローエントリを、現在の拡張Switchによって、受信するステップの後に、方法は、
現在の拡張Switchによって、第1のカプセル化パケットを受信するステップと、
現在の拡張Switchによって、第1のカプセル化パケット内の次のフローテーブルの番号IDが現在の拡張Switchにあることを判断するステップと、
データパケットを取得するために、現在の拡張Switchによって、第1のカプセル化パケットに対してパイプライン環境回復を実行するステップと
をさらに含む。
【００２８】
第3の態様の第3の可能な実施態様によれば、第4の可能な実施態様では、現在の拡張Switchによって、第1のカプセル化パケットに対してパイプライン環境回復を実行するステップは、
解析された情報を取得するために、現在の拡張Switchによって、受信した第1のカプセル化パケットを解析するステップであって、解析された情報は、データパケットおよびデータパケットを処理するための関連情報を含み、データパケットを処理するための関連情報は、少なくとも次のフローテーブルのIDを含み、任意の次の情報、すなわち、入力ポート（Ingress port）、データパケットに現在対応するアクションセット（Action set）、およびメタデータ（Metadata）をさらに含む、ステップと、
解析された情報にしたがって、現在の拡張Switchによってパイプライン環境回復を実行し、データパケットを次のフローテーブルに導いて処理を続行するステップと
を含む。
【００２９】
第3の態様の第3の可能な実施態様によれば、第5の可能な実施態様では、現在の拡張Switchによって受信されたフローエントリは、パイプライン回復を実行するために使用され、かつコントローラによって送信されたフローエントリを含み、現在の拡張Switchによって、第1のカプセル化パケットに対してパイプライン環境回復を実行するステップは、
パイプライン回復を実行するために使用されるフローエントリを、現在の拡張Switchの第1のフローテーブルtable0’に、現在の拡張Switchによって追加するステップと、
現在の拡張Switchによって、table0’に追加されたフローエントリを用いて第1のカプセル化パケットに対してパイプライン環境回復を実行するステップと
を含む。
【００３０】
第3の態様の第5の可能な実施態様によれば、第6の可能な実施態様では、第1のカプセル化パケットは、次のフローテーブルのIDを含み、パイプライン回復を実行するために使用されるフローエントリは、マッチング部分および実行可能命令を含み、実行可能命令は、フローテーブル回復命令および／またはフローテーブルジャンプ命令を含み、現在の拡張Switchによって、table0’に追加されたフローエントリを用いて第1のカプセル化パケットに対してパイプライン環境回復を実行するステップは、
現在の拡張Switchによって、table0’内のフローエントリを使用して第1のカプセル化パケットをマッチングするステップと、
table0’内のフローエントリが正常にマッチングされた場合には、マッチング結果にしたがってマッチングされたフローエントリのフローテーブル回復命令および／またはフローテーブルジャンプ命令を、現在の拡張Switchによって、順番に実行するステップと
を含む。
【００３１】
第3の態様の第3から第6の可能な実施態様のいずれか1つによれば、第4の可能な実施態様では、データパケットを取得するために、現在の拡張Switchによって、第1のカプセル化パケットに対してパイプライン環境回復を実行するステップの後に、方法は、
データパケットを取得する場合に、現在の拡張Switchによって、現在のフローテーブルを用いてデータパケットを処理し、マッピング情報にしたがって次のフローテーブルの位置を判断するステップと、
次のフローテーブルが現在の拡張Switchにある場合には、現在の拡張Switchによって、データパケットを次のフローテーブルに導いて処理を続行するステップ、あるいは、
次のフローテーブルが別の拡張Switchにある場合には、現在の拡張Switchによって、第2のカプセル化パケットを生成するためのパイプライン環境保護を開始し、第2のカプセル化パケットを次のフローテーブルに対応する拡張Switchに送信するステップと
を含む。
【００３２】
第3の態様の第3から第6の可能な実施態様のいずれか1つによれば、第8の可能な実施態様では、方法は、
フローテーブルジャンプ命令またはSwitch転送命令を含み、かつコントローラによって送信されたフローエントリを、現在の拡張Switchによって、受信するステップであって、フローエントリ内の次のフローテーブルが現在の拡張Switchにあるかどうかにしたがって、フローエントリ内のフローテーブルジャンプ命令またはSwitch転送命令がコントローラによって判断され、そうである場合には、フローエントリはフローテーブルジャンプ命令を含み、そうでない場合には、フローエントリは、Switch転送命令を含む、ステップ
をさらに含み、
現在の拡張Switchによって、第1のカプセル化パケットに対してパイプライン環境回復を実行するステップの後に、方法は、
現在の拡張Switchによって、第1のカプセル化パケット内のデータパケットを取得し、データパケットにマッチングするフローエントリがフローテーブルジャンプ命令を含む場合には、データパケットを次のフローテーブルに導いて処理を続行するステップ、あるいは、
現在の拡張Switchによって、第1のカプセル化パケット内のデータパケットを取得し、データパケットにマッチングするフローエントリがSwitch転送命令を含む場合には、第2のカプセル化パケットを生成するためにパイプライン環境保護を開始し、第2のカプセル化パケットを次のフローテーブルに対応する拡張Switchに送信するステップ
をさらに含む。
【００３３】
第3の態様の第7または第8の可能な実施態様によれば、第9の可能な実施態様では、現在の拡張Switchによって、パイプライン環境保護を開始するステップは、
データパケットおよびデータパケットを処理するための関連情報を、第2のカプセル化パケット内に、現在の拡張Switchによって、カプセル化するステップであって、データパケットを処理するための関連情報は、少なくとも次のフローテーブルのIDを含み、任意の次の情報、すなわち、入力ポート（Ingress port）、データパケットに現在対応するアクションセット（Action set）、およびメタデータ（Metadata）をさらに含む、ステップ
を含む。
【００３４】
第4の態様によれば、本発明の一実施形態はスイッチ処理装置を提供し、装置は、論理Switchに接続されたコントローラに配置され、論理Switchは、少なくとも2つの物理Switchを含み、装置は、
論理Switchの複数のフローテーブル内の各フローテーブルを各物理Switchに割り当てるように構成された割り当てモジュールであって、複数のフローテーブルは論理Switchのパイプラインである、割り当てモジュールと、
各物理Switchがマッピング情報を取得するように、マッピング情報を送信するように構成された送信モジュールであって、マッピング情報は、物理Switchと複数のフローテーブル内の各フローテーブルとの間のマッピング関係を含む、送信モジュールと
を含み、
送信モジュールは、各物理Switchが各物理Switchに対応するフローエントリを取得し、フローエントリにしたがって、またはフローエントリおよびマッピング情報にしたがって、受信したデータパケットを処理するために、フローエントリを論理Switchに送信するようにさらに構成され、フローエントリは、各物理Switchにコントローラによって割り当てられたフローテーブルセット内の各フローテーブルのコンテンツ情報である。
【００３５】
第4の態様の第1の可能な実施態様では、少なくとも2つの物理Switchは、主Switchおよび第1の拡張Switchを含み、コントローラは、少なくとも主Switchに接続され、第1の拡張Switchは、少なくとも主Switchに接続され、
送信モジュールがマッピング情報を送信するように構成されるということは、具体的には、主Switchがマッピング情報を受信し、第1の拡張Switchによって受信されたマッピング情報が、コントローラおよび／または主Switchによって送信されたマッピング情報を含むように、マッピング情報を少なくとも主Switchに送信することを含み、
送信モジュールが、論理Switchにフローエントリを送信するようにさらに構成されるということは、具体的には、主Switchによって受信されたフローエントリが主Switchに対応するフローエントリまたは各物理Switchに対応するフローエントリを含み、かつ、第1の拡張Switchによって受信されたフローエントリがコントローラおよび／または主Switchによって送信されたフローエントリを含むように、論理Switchのフローエントリを少なくとも主Switchに送信することを含む。
【００３６】
第4の態様の第1の可能な実施態様によれば、第2の可能な実施態様では、物理Switchは、第2の拡張Switchをさらに含み、第2の拡張Switchは、少なくとも第1の拡張Switchに接続され、
送信モジュールがマッピング情報を送信するように構成されるということは、具体的には、主Switchがマッピング情報を受信するように、マッピング情報を少なくとも主Switchに送信することを含み、第1の拡張Switchによって受信されたマッピング情報は、コントローラおよび／または主Switchによって送信されたマッピング情報を含み、第2の拡張Switchによって受信されたマッピング情報は、コントローラおよび／または主Switchおよび／または第1の拡張Switchによって送信されたマッピング情報を含み、
送信モジュールが、論理Switchにフローエントリを送信するようにさらに構成されるということは、具体的には、少なくとも主Switchへの論理Switchのフローエントリを送信し、これにより、主Switchによって受信されたフローエントリは、主Switchに対応するフローエントリ、あるいは主Switchに対応するフローエントリならびに第1の拡張Switchおよび／または第2の拡張Switchに対応するフローエントリを含み、第1の拡張Switchによって受信されたフローエントリは、第1の拡張Switchに対応し、かつコントローラおよび／または主Switchによって送信されたフローエントリを含み、第2の拡張Switchによって受信されたフローエントリは、第2の拡張Switchに対応し、かつコントローラおよび／または主Switchおよび／または第1の拡張Switchによって送信されたフローエントリを含む、ことを含む。
【００３７】
第4の態様の第1または第2の可能な実施態様によれば、第3の可能な実施態様では、割り当てモジュールによって主Switchに割り当てられたフローテーブルは、少なくとも、論理Switchの複数のフローテーブル内の第1のフローテーブルtable0を含み、主Switchがデータパケットを受信した場合に、主Switchがtable0を用いてデータパケットを処理する。
【００３８】
第4の態様のいずれか1つ、または第4の態様の第1もしくは第2の可能な実施態様によれば、第4の可能な実施態様では、送信モジュールが論理Switchにフローエントリを送信するようにさらに構成されるということは、具体的には、フローエントリを論理Switchに送信し、これにより、現在の物理Switchがデータパケットを受信した場合に、現在の物理Switchは、現在のフローテーブルを使用してデータパケットを処理し、送信モジュールによって送信されたマッピング情報にしたがって次のフローテーブルの位置を判断し、判断された次のフローテーブルが現在の物理Switchにある場合には、データパケットを次のフローテーブルに導いて処理を続行するか、あるいは、判断された次のフローテーブルが別の物理Switchにある場合には、カプセル化パケットを生成するためにパイプライン環境保護を開始し、カプセル化パケットを次のフローテーブルに対応する物理Switchに送信する、ことを含む。
【００３９】
第4の態様のいずれか1つ、または第4の態様の第1もしくは第2の可能な実施態様によれば、第5の可能な実施態様では、送信モジュールは、送信対象のフローエントリがフローテーブルジャンプ命令を含む場合に、次のフローテーブルが現在の物理Switchにあるかどうかを判断するように構成される判断部と、
実行部と、を含み、実行部は、判断部が、次のフローテーブルが現在の物理Switchにあると判断した場合には、フローテーブルジャンプ命令を含むフローエントリを現在の物理Switchに送信して、現在の物理Switchがデータパケットを次のフローテーブルに導いて、処理を続行するように構成され、あるいは、
実行部は、判断部が、次のフローテーブルが別の物理Switchにあると判断した場合には、送信対象のフローエントリ内のフローテーブルジャンプ命令をSwitch転送命令で置き換えて、現在の物理Switchがカプセル化パケットを生成するためにパイプライン環境保護を開始し、かつカプセル化パケットを次のフローテーブルに対応する物理Switchに送信するように、Switch転送命令を含むフローエントリを現在の物理Switchに送信するように構成される。
【００４０】
第4の態様の第4または第5の可能な実施態様によれば、第6の可能な実施態様では、パイプライン環境保護は、現在の物理Switchがデータパケットをカプセル化し、データパケットを処理するための関連情報をカプセル化パケットにカプセル化することであり、データパケットを処理するための関連情報は、少なくとも次のフローテーブルの番号IDを含むとともに、任意の次の情報、すなわち、入力ポート（Ingress port）、データパケットに現在対応するアクションセット（Action set）、およびメタデータ（Metadata）をさらに含む。
【００４１】
第4の態様の第4から第6の可能な実施態様のいずれか1つによれば、第7の可能な実施態様では、パイプライン環境保護は、次のフローテーブルに対応する物理Switchが物理Switchによって受信されたカプセル化パケットを解析し、解析された情報を取得することを可能にするために使用され、それによって、解析された情報にしたがってパイプライン環境回復を実行し、データパケットを次のフローテーブルに導いて処理を続行し、解析された情報は、データパケットおよびデータパケットを処理するための関連情報を含む。
【００４２】
第4の態様の第4から第6の可能な実施態様のいずれか1つによれば、第8の可能な実施態様では、拡張Switchに対応し、かつ送信モジュールによって送信されたフローエントリは、パイプライン回復を実行するために使用されるフローエントリを含み、送信モジュールは、パイプライン回復を実行するために用いられるフローエントリを拡張Switchに送信するようにさらに構成され、これにより、拡張Switchが、拡張Switchの第1のフローテーブルtable0’にフローエントリを追加し、カプセル化パケットが受信された場合に、table0’に追加されたフローエントリを使用してパイプライン環境回復を実行する。
【００４３】
第4の態様の第8の可能な実施態様によれば、第9の可能な実施態様では、カプセル化パケットは、次のフローテーブルのIDを含み、パイプライン回復を実行するために使用され、かつ送信モジュールによって送信されたフローエントリは、マッチング部分および実行可能命令を含み、マッチング部分は、フローエントリに対応するマッチングオブジェクトとして次のフローテーブルのIDを取得するために拡張Switchによって使用され、実行可能命令は、フローテーブル回復命令および／またはフローテーブルジャンプ命令を含み、
パイプライン環境回復は、拡張Switchが、拡張Switchによって受信されたカプセル化パケットをtable0’のフローエントリを使用してマッチングし、次のフローテーブルのIDがtable0’のフローエントリとマッチングする場合には、マッチング結果にしたがってマッチングしたフローエントリのフローテーブル回復命令および／またはフローテーブルジャンプ命令を順番に実行する。
【００４４】
第5の態様によれば、本発明の一実施形態はスイッチ処理装置を提供し、装置は、コントローラに接続された論理Switchの物理Switchに配置され、論理Switchは、少なくとも2つの物理Switchを含み、少なくとも2つの物理Switchは、主Switchおよび拡張Switchを含み、コントローラは、少なくとも主Switchに接続され、スイッチ処理装置は、具体的には主Switchに配置され、装置は、
コントローラによって送信されたマッピング情報を受信するように構成された受信モジュールであって、マッピング情報は、物理Switchと論理Switchの複数のフローテーブルの各フローテーブルとの間のマッピング関係を含み、
受信モジュールは、コントローラによって送信されたフローエントリを受信するようにさらに構成され、受信モジュールによって受信されたフローエントリは、コントローラによって主Switchに割り当てられた、またはコントローラによって主Switchおよび拡張Switchに割り当てられたフローテーブルセット内の各フローテーブルのコンテンツ情報である、受信モジュールと、
受信モジュールによって受信されたフローエントリにしたがって、あるいは受信モジュールによって受信されたフローエントリおよびマッピング情報にしたがって、主Switchによって受信されたデータパケットを処理するように構成された処理モジュールと
を含む。
【００４５】
第5の態様の第1の可能な実施態様では、装置は、受信モジュールがコントローラによって送信されたマッピング関係を受信した後に、マッピング情報を装置に接続された拡張Switchに送信するように構成された送信モジュールをさらに含み、
送信モジュールは、受信モジュールがコントローラによって送信されたフローエントリを受信した後に、コントローラに割り当てられたフローエントリを装置に接続された拡張Switchに送信するようにさらに構成される。
【００４６】
第5の態様または第5の態様の第1の可能な実施態様によれば、第2の可能な実施態様では、主Switchが属する論理Switchにおいて、拡張Switchは、第1の拡張Switchおよび第2の拡張Switchを含み、主Switchは、少なくとも第1の拡張Switchに接続され、第2の拡張Switchは、少なくとも第1の拡張Switchに接続され、
送信モジュールが、装置に接続された拡張Switchにマッピング情報を送信するように構成されるということは、具体的には、第1の拡張Switchおよび／または第2の拡張Switchにマッピング情報を送信することを含み、
送信モジュールは、コントローラによって割り当てられたフローエントリを、装置に接続された拡張Switchに送信するようにさらに構成されるというころは、具体的には、第1の拡張Switchおよび／または第2の拡張Switchに、コントローラによって割り当てられたフローエントリを送信することを含み、拡張Switchは、拡張Switchに対応するマッピング情報およびフローエントリにしたがって受信したデータパケットを処理する。
【００４７】
第5の態様のいずれか1つ、または第5の態様の第1もしくは第2の可能な実施態様によれば、第3の可能な実施態様では、受信モジュールによって受信されたマッピング情報は、コントローラによって主Switchに割り当てられたフローテーブルを含み、フローテーブルは、論理Switchの複数のフローテーブル内の少なくとも第1のフローテーブルtable0を含み、処理モジュールは、具体的には、table0を用いて、受信モジュールによって受信されたフローエントリにしたがって、あるいは受信モジュールによって受信されたフローエントリおよびマッピング情報にしたがって、受信されたデータパケットを処理するように構成される。
【００４８】
第5の態様のいずれか1つ、または第5の態様の第1から第3の可能な実施態様によれば、第4の可能な実施態様では、処理モジュールは、データパケットが受信された場合にデータパケットを処理するように構成された処理部と、
受信モジュールによって受信されたマッピング情報にしたがって次のフローテーブルの位置を判断するように構成された判断部と、を含み、
処理部は、判断部が、次のフローテーブルが主Switchにあると判断した場合には、データパケットを次のフローテーブルに導いて処理を続行させるようにさらに構成され、あるいは、処理部は、判断部が、次のフローテーブルが拡張Switchにあると判断した場合には、カプセル化パケットを生成するためにパイプライン環境保護を開始し、次のフローテーブルに対応する拡張Switchにカプセル化パケットを送信するようにさらに構成される。
【００４９】
第5の態様のいずれか1つ、または第5の態様の第1から第3の可能な実施態様によれば、第5の可能な実施態様では、受信モジュールがコントローラによって送信されたフローエントリを受信するようにさらに構成されるということは、フローテーブルジャンプ命令またはSwitch転送命令を含み、かつコントローラによって送信されたフローエントリを受信することを含み、フローエントリ内の次のフローテーブルが主Switchにあるかどうかにしたがって、フローエントリ内のフローテーブルジャンプ命令またはSwitch転送命令がコントローラによって判断され、そうである場合には、フローエントリはフローテーブルジャンプ命令を含み、そうでない場合には、フローエントリは、Switch転送命令を含み、
処理モジュールは、具体的には、受信したデータパケットにマッチングするフローエントリがフローテーブルジャンプ命令を含む場合には、データパケットを次のフローテーブルに導いて処理を続行するように構成され、あるいは、
処理モジュールは、具体的には、受信したデータパケットにマッチングするフローエントリがSwitch転送命令を含む場合には、カプセル化パケットを生成するためにパイプライン環境保護を開始し、カプセル化パケットを次のフローテーブルに対応する拡張Switchに送信するように構成される。
【００５０】
第5の態様の第4または第5の可能な実施態様によれば、第6の可能な実施態様では、処理モジュールがパイプライン環境保護を開始するということは、データパケットおよびデータパケットを処理するための関連情報を、カプセル化パケット内に、カプセル化することを含み、データパケットを処理するための関連情報は、少なくとも次のフローテーブルの番号IDを含むとともに、任意の次の情報、すなわち、入力ポート（Ingress port）、データパケットに現在対応するアクションセット（Action set）、およびメタデータ（Metadata）をさらに含む。
【００５１】
第5の態様の第4から第6の可能な実施態様のいずれか1つによれば、第7の可能な実施態様では、パイプライン環境保護は、次のフローテーブルに対応する拡張Switchが拡張Switchによって受信されたカプセル化パケットを解析し、解析された情報を取得することを可能にするために使用され、それによって、解析された情報にしたがってパイプライン環境回復を実行し、データパケットを次のフローテーブルに導いて処理を続行し、解析された情報は、データパケットおよびデータパケットを処理するための関連情報を含む。
【００５２】
第6の態様によれば、本発明の一実施形態はスイッチ処理装置を提供し、装置は、コントローラに接続された論理Switchの物理Switchに配置され、論理Switchは複数の物理Switchを含み、複数の物理Switchは主Switchおよび拡張Switchを含み、拡張Switchは第1の拡張Switchおよび第2の拡張Switchを含み、コントローラは少なくとも主Switchに接続され、主Switchは少なくとも第1の拡張Switchに接続され、第2の拡張Switchは、少なくとも第1の拡張Switchに接続され、スイッチ処理装置は、具体的には、拡張Switchに配置され、装置は、
コントローラおよび／または主Switchおよび／または別の拡張Switchによって送信されたマッピング情報を受信するように構成された受信モジュールであって、マッピング情報は、物理Switchと論理Switchの複数のフローテーブル内の各フローテーブルとの間のマッピング関係を含み、
受信モジュールは、現在の拡張Switchによって、現在の拡張Switchに対応し、かつコントローラおよび／または主Switchおよび／または別の拡張Switchによって送信されたフローエントリを受信するようにさらに構成され、受信モジュールによって受信されたフローエントリは、コントローラによって現在の拡張Switchに割り当てられたフローテーブルセット内の各フローテーブルのコンテンツ情報である、受信モジュールと、
受信モジュールによって受信されたフローエントリにしたがって、あるいは受信モジュールによって受信されたフローエントリおよびマッピング情報にしたがって、現在の拡張Switchによって受信された第1のカプセル化パケットを処理するように構成された処理モジュールとであって、第1のカプセル化パケットは、物理Switchによって受信されたデータパケットおよびデータパケットを処理するための関連情報をカプセル化することによって、前のフローテーブルがある物理Switchによって生成される、処理モジュール
を含む。
【００５３】
第6の態様の第1の可能な実施態様では、受信モジュールによって受信されたマッピング情報において、論理Switchの複数のフローテーブル内の第1のフローテーブルtable0は、主Switchに対応する。
【００５４】
第6の態様または第6の態様の第1の可能な実施態様によれば、第2の可能な実施態様では、受信モジュールは、現在の拡張Switchに対応するフローエントリを受信した後に、第1のカプセル化パケットを受信するようにさらに構成され、処理モジュールは、具体的には、受信モジュールによって受信された第1のカプセル化パケット内の次のフローテーブルの番号IDが別の物理Switchにあると判断した場合に、受信モジュールによって受信されたマッピング情報にしたがって、受信モジュールによって受信された第1のカプセル化パケットを次のフローテーブルのIDに対応する物理Switchに転送するように構成される。
【００５５】
第6の態様または第6の態様の第1の可能な実施態様によれば、第3の可能な実施態様では、受信モジュールは、現在の拡張Switchに対応するフローエントリを受信した後に、第1のカプセル化パケットを受信するようにさらに構成され、
処理モジュールは、具体的には、受信モジュールによって受信された第1のカプセル化パケットの次のフローテーブルの番号IDが現在の拡張Switchにあると判断した場合に、前記データパケットを取得するために、受信モジュールによって受信された第1のカプセル化パケットに対してパイプライン環境回復を実行するように構成される。
【００５６】
第6の態様の第3の可能な実施態様によれば、第4の可能な実施態様では、処理モジュールは、解析された情報を取得するために、受信モジュールによって受信された第1のカプセル化パケットを解析するように構成された解析部であって、解析された情報は、データパケットおよびデータパケットを処理するための関連情報を含み、データパケットを処理するための関連情報は、少なくとも次のフローテーブルのIDを含み、任意の次の情報、すなわち、入力ポート（Ingress port）、データパケットに現在対応するアクションセット（Action set）、およびメタデータ（Metadata）をさらに含む、解析部と、
解析部によって取得された解析された情報にしたがってパイプライン環境回復を実行し、データパケットを次のフローテーブルに導いて処理を続行するように構成された処理部と、を含む。
【００５７】
第6の態様の第3の可能な実施態様によれば、第5の可能な実施態様では、受信モジュールによって受信されたフローエントリは、パイプライン回復を実行するために使用され、かつコントローラによって送信されるフローエントリを含み、処理モジュールは、現在の拡張Switchの第1のフローテーブルtable0’にパイプライン回復を実行するために使用されるフローエントリを追加するように構成された追加部と、table0’に追加されたフローエントリを使用して、受信モジュールによって受信された第1のカプセル化パケットに対してパイプライン環境回復を実行するように構成された処理部と、を含む。
【００５８】
第6の態様の第5の可能な実施態様によれば、第6の可能な実施態様では、受信モジュールによって受信された第1のカプセル化パケットは、次のフローテーブルのIDを含み、パイプライン回復を実行するために使用され、かつ受信モジュールによって受信されたフローエントリは、マッチング部分および実行可能命令を含み、実行可能命令は、フローテーブルリカバリ命令および／またはフローテーブルジャンプ命令を含み、処理部は、具体的には、受信モジュールによって受信された第1のカプセル化パケットを、table0’内のフローエントリを使用してマッチングし、table0’内のフローエントリが正常にマッチングした場合には、マッチング結果にしたがってマッチングしたフローエントリのフローテーブル回復命令および／またはフローテーブルジャンプ命令を順番に実行するように構成される。
【００５９】
第6の態様の第3から第6の可能な実施態様のいずれか1つによれば、第7の可能な実施態様では、処理モジュールは、受信モジュールによって受信された第1のカプセル化パケットに対してパイプライン環境回復を実行した後に、データパケットを取得する際に、現在のフローテーブルを用いてデータパケットを処理するようにさらに構成され、装置は、マッピング情報にしたがって次のフローテーブルの位置を判断するように構成された判断モジュールをさらに含み、
処理モジュールは、判断モジュールが、次のフローテーブルが現在の拡張Switchにあると判断した場合には、データパケットを次のフローテーブルに導いて処理を続行させるようにさらに構成され、あるいは、
処理モジュールは、判断モジュールが、次のフローテーブルが別の拡張Switchにあると判断した場合には、第2のカプセル化パケットを生成するためにパイプライン環境保護を開始し、次のフローテーブルに対応する拡張Switchに第2のカプセル化パケットを送信するようにさらに構成される。
【００６０】
第6の態様の第3から第6の可能な実施態様のいずれか1つによれば、第8の可能な実施態様では、受信モジュールは、フローテーブルジャンプ命令またはSwitch転送命令を含み、かつコントローラによって送信されたフローエントリを受信するようにさらに構成され、フローエントリ内の次のフローテーブルが現在の拡張Switchにあるかどうかにしたがって、フローエントリ内のフローテーブルジャンプ命令またはSwitch転送命令がコントローラによって判断され、そうである場合には、フローエントリはフローテーブルジャンプ命令を含み、そうでない場合には、フローエントリは、Switch転送命令を含み、
処理モジュールは、受信モジュールによって受信された第1のカプセル化パケットに対してパイプライン環境回復を実行した後に、第1のカプセル化パケット内のデータパケットを取得し、データパケットにマッチングするフローエントリがフローテーブルジャンプ命令を含む場合には、データパケットを次のフローテーブルに導いて処理を続行し、あるいは、第1のカプセル化パケット内のデータパケットを取得し、データパケットにマッチングするフローエントリがSwitch転送命令を含む場合には、第2のカプセル化パケットを生成するためにパイプライン環境保護を開始し、第2のカプセル化パケットを次のフローテーブルに対応する拡張Switchに送信するようにさらに構成される。
【００６１】
第6の態様の第7または第8の可能な実施態様によれば、第9の可能な実施態様では、処理モジュールがパイプライン環境保護を開始するように構成されるということは、具体的には、データパケットおよびデータパケットを処理するための関連情報を、第2のカプセル化パケット内にカプセル化することを含み、データパケットを処理するための関連情報は、少なくとも次のフローテーブルのIDを含み、任意の次の情報、すなわち、入力ポート（Ingress port）、データパケットに現在対応するアクションセット（Action set）、およびメタデータ（Metadata）をさらに含む。
【００６２】
第7の態様によれば、本発明の一実施形態は、論理Switchに接続されたコントローラを提供し、論理Switchは、少なくとも2つの物理Switchを含み、コントローラは、
論理Switchの複数のフローテーブル内のフローテーブルを各物理Switchに割り当てるように構成されたプロセッサであって、複数のフローテーブルは論理Switchのパイプラインである、プロセッサと、
各物理Switchがマッピング情報を取得するように、マッピング情報を送信するように構成された送信器であって、マッピング情報は、物理Switchと複数のフローテーブル内の各フローテーブルとの間のマッピング関係を含む、送信器と、
を含み、
送信器は、各物理Switchが各物理Switchに対応するフローエントリを取得し、フローエントリにしたがって、またはフローエントリおよびマッピング情報にしたがって、受信したデータパケットを処理するために、フローエントリを論理Switchに送信するようにさらに構成され、フローエントリは、各物理Switchにコントローラによって割り当てられたフローテーブルセット内の各フローテーブルのコンテンツ情報である。
【００６３】
第7の態様の第1の可能な実施態様では、少なくとも2つの物理Switchは、主Switchおよび第1の拡張Switchを含み、コントローラは、少なくとも主Switchに接続され、第1の拡張Switchは、少なくとも主Switchに接続され、
送信器がマッピング情報を送信するように構成されるということは、具体的には、主Switchがマッピング情報を受信し、第1の拡張Switchによって受信されたマッピング情報が、コントローラおよび／または主Switchによって送信されたマッピング情報を含むように、マッピング情報を少なくとも主Switchに送信することを含み、
送信器が論理Switchにフローエントリを送信するようにさらに構成されるということは、具体的には、主Switchによって受信されたフローエントリが主Switchに対応するフローエントリまたは各物理Switchに対応するフローエントリを含み、かつ、第1の拡張Switchによって受信されたフローエントリがコントローラおよび／または主Switchによって送信されたフローエントリを含むように、論理Switchのフローエントリを少なくとも主Switchに送信することを含む。
【００６４】
第7の態様の第1の可能な実施態様によれば、第2の可能な実施態様では、物理Switchは、第2の拡張Switchをさらに含み、第2の拡張Switchは、少なくとも第1の拡張Switchに接続され、
送信器がマッピング情報を送信するように構成されるということは、具体的には、主Switchがマッピング情報を受信するように、マッピング情報を少なくとも主Switchに送信することを含み、第1の拡張Switchによって受信されたマッピング情報は、コントローラおよび／または主Switchによって送信されたマッピング情報を含み、第2の拡張Switchによって受信されたマッピング情報は、コントローラおよび／または主Switchおよび／または第1の拡張Switchによって送信されたマッピング情報を含み、
送信器が、論理Switchにフローエントリを送信するようにさらに構成されるということは、具体的には、少なくとも主Switchへの論理Switchのフローエントリを送信し、これにより、主Switchによって受信されたフローエントリは、主Switchに対応するフローエントリ、あるいは主Switchに対応するフローエントリならびに第1の拡張Switchおよび／または第2の拡張Switchに対応するフローエントリを含み、第1の拡張Switchによって受信されたフローエントリは、第1の拡張Switchに対応し、かつコントローラおよび／または主Switchによって送信されたフローエントリを含み、第2の拡張Switchによって受信されたフローエントリは、第2の拡張Switchに対応し、かつコントローラおよび／または主Switchおよび／または第1の拡張Switchによって送信されたフローエントリを含む、ことを含む。
【００６５】
第7の態様の第1または第2の可能な実施態様によれば、第3の可能な実施態様では、プロセッサによって主Switchに割り当てられたフローテーブルは、少なくとも、論理Switchの複数のフローテーブル内の第1のフローテーブルtable0を含み、主Switchがデータパケットを受信した場合に、主Switchがtable0を用いてデータパケットを処理する。
【００６６】
第7の態様のいずれか1つ、または第7の態様の第1もしくは第2の可能な実施態様によれば、第4の可能な実施態様では、送信器が論理Switchにフローエントリを送信するようにさらに構成されるということは、具体的には、フローエントリを論理Switchに送信し、これにより、現在の物理Switchがデータパケットを受信した場合に、現在の物理Switchは、現在のフローテーブルを使用してデータパケットを処理し、送信器によって送信されたマッピング情報にしたがって、次のフローテーブルが現在の物理Switchにあるかどうかを判断し、そうである場合には、データパケットを次のフローテーブルに導いて処理を続行し、または、そうでない場合には、カプセル化パケットを生成するためにパイプライン環境保護を開始し、カプセル化パケットを次のフローテーブルに対応する物理Switchに送信する、ことを含む。
【００６７】
第7の態様のいずれか1つ、または第7の態様の第1もしくは第2の可能な実施態様によれば、第5の可能な実施態様では、送信器が論理Switchにフローエントリを送信するようにさらに構成されるということは、具体的には、送信対象のフローエントリがフローテーブルジャンプ命令を含む場合には、次のフローテーブルが現在の物理Switchにあるかどうかを判断することと、そうである場合には、フローテーブルジャンプ命令を含むフローエントリを現在の物理Switchに送信して、現在の物理Switchがデータパケットを次のフローテーブルに導いて、処理を続行することと、あるいは、そうでない場合には、送信対象のフローエントリ内のフローテーブルジャンプ命令をSwitch転送命令で置き換えて、現在の物理Switchがカプセル化パケットを生成するためにパイプライン環境保護を開始し、かつカプセル化パケットを次のフローテーブルに対応する物理Switchに送信するように、Switch転送命令を含むフローエントリを現在の物理Switchに送信することと、を含む。
【００６８】
第7の態様の第4または第5の可能な実施態様によれば、第6の可能な実施態様では、パイプライン環境保護は、現在の物理Switchがデータパケットをカプセル化し、データパケットを処理するための関連情報をカプセル化パケットにカプセル化することであり、データパケットを処理するための関連情報は、少なくとも次のフローテーブルの番号IDを含むとともに、任意の次の情報、すなわち、入力ポート（Ingress port）、データパケットに現在対応するアクションセット（Action set）、およびメタデータ（Metadata）をさらに含む。
【００６９】
第7の態様の第4から第6の可能な実施態様のいずれか1つによれば、第7の可能な実施態様では、パイプライン環境保護は、次のフローテーブルに対応する物理Switchが物理Switchによって受信されたカプセル化パケットを解析し、解析された情報を取得することを可能にするために使用され、それによって、解析された情報にしたがってパイプライン環境回復を実行し、データパケットを次のフローテーブルに導いて処理を続行し、解析された情報は、データパケットおよびデータパケットを処理するための関連情報を含む。
【００７０】
第7の態様の第4から第6の可能な実施態様のいずれか1つによれば、第8の可能な実施態様では、拡張Switchに対応し、かつ送信器によって送信されたフローエントリは、パイプライン回復を実行するために使用されるフローエントリを含み、送信器は、パイプライン回復を実行するために用いられるフローエントリを拡張Switchに送信するようにさらに構成され、これにより、拡張Switchが、拡張Switchの第1のフローテーブルtable0’にフローエントリを追加し、カプセル化パケットが受信された場合に、table0’に追加されたフローエントリを使用してパイプライン環境回復を実行する。
【００７１】
第7の態様の第8の可能な実施態様によれば、第9の可能な実施態様では、カプセル化パケットは、次のフローテーブルのIDを含み、パイプライン回復を実行するために使用され、かつ送信器によって送信されたフローエントリは、マッチング部分および実行可能命令を含み、マッチング部分は、フローエントリに対応するマッチングオブジェクトとして次のフローテーブルのIDを取得するために拡張Switchによって使用され、実行可能命令は、フローテーブル回復命令および／またはフローテーブルジャンプ命令を含み、
パイプライン環境回復は、拡張Switchが、拡張Switchによって受信されたカプセル化パケットをtable0’のフローエントリを使用してマッチングし、次のフローテーブルのIDがtable0’のフローエントリとマッチングする場合には、マッチング結果にしたがってマッチングしたフローエントリのフローテーブル回復命令および／またはフローテーブルジャンプ命令を順番に実行する。
【００７２】
第8の態様によれば、本発明の一実施形態は、主Switchを提供し、主Switchは、コントローラに接続された論理Switchの物理Switchであり、論理Switchは、少なくとも2つの物理Switchを含み、少なくとも2つの物理Switchは、主Switchおよび拡張Switchを含み、コントローラは、少なくとも主Switchに接続され、主Switchは、
コントローラによって送信されたマッピング情報を受信するように構成された受信器であって、マッピング情報は、物理Switchと論理Switchの複数のフローテーブルの各フローテーブルとの間のマッピング関係を含み、
受信器は、コントローラによって送信されたフローエントリを受信するようにさらに構成され、受信器によって受信されたフローエントリは、コントローラによって主Switchに割り当てられた、またはコントローラによって主Switchおよび拡張Switchに割り当てられたフローテーブルセット内の各フローテーブルのコンテンツ情報である、受信器と、
受信器によって受信されたフローエントリにしたがって、あるいは受信器によって受信されたフローエントリおよびマッピング情報にしたがって、主Switchによって受信されたデータパケットを処理するように構成されたプロセッサと、
を含む。
【００７３】
第8の態様の第1の可能な実施態様では、主Switchは、受信器がコントローラによって送信されたマッピング関係を受信した後に、マッピング情報を主Switchに接続された拡張Switchに送信するようにさらに構成された送信器をさらに含み、
送信器は、受信器がコントローラによって送信されたフローエントリを受信した後に、コントローラに割り当てられたフローエントリを主Switchに接続された拡張Switchに送信するようにさらに構成される。
【００７４】
第8の態様または第8の態様の第1の可能な実施態様によれば、第2の可能な実施態様では、主Switchが属する論理Switchにおいて、拡張Switchは、第1の拡張Switchおよび第2の拡張Switchを含み、主Switchは、少なくとも第1の拡張Switchに接続され、第2の拡張Switchは、少なくとも第1の拡張Switchに接続され、
送信器が、主Switchに接続された拡張Switchにマッピング情報を送信するように構成されるということは、具体的には、第1の拡張Switchおよび／または第2の拡張Switchにマッピング情報を送信することを含み、
送信器は、コントローラによって割り当てられたフローエントリを、主Switchに接続された拡張Switchに送信するようにさらに構成されるというころは、具体的には、第1の拡張Switchおよび／または第2の拡張Switchに、コントローラによって割り当てられたフローエントリを送信することを含み、拡張Switchは、拡張Switchに対応するマッピング情報およびフローエントリにしたがって受信したデータパケットを処理する。
【００７５】
第8の態様のいずれか1つ、または第8の態様の第1もしくは第2の可能な実施態様によれば、第3の可能な実施態様では、受信器によって受信されたマッピング情報は、コントローラによって主Switchに割り当てられたフローテーブルを含み、フローテーブルは、論理Switchの複数のフローテーブル内の少なくとも第1のフローテーブルtable0を含み、プロセッサは、具体的にはtable0を用いて、受信器によって受信されたフローエントリにしたがって、あるいは受信器によって受信されたフローエントリおよびマッピング情報にしたがって、受信されたデータパケットを処理するように構成される。
【００７６】
第8の態様のいずれか1つ、または第8の態様の第1から第3の可能な実施態様によれば、第4の可能な実施態様では、プロセッサは、具体的には、データパケットが受信された場合にデータパケットを処理し、受信器によって受信されたマッピング情報にしたがって、次のフローテーブルが主Switchにあるかどうかを判断し、そうである場合には、データパケットを次のフローテーブルに導いて処理を続行し、あるいは、そうでない場合には、カプセル化パケットを生成するためにパイプライン環境保護を開始し、カプセル化パケットを次のフローテーブルに対応する拡張Switchに送信するように構成される。
【００７７】
第8の態様のいずれか1つ、または第8の態様の第1から第3の可能な実施態様によれば、第5の可能な実施態様では、受信器がコントローラによって送信されたフローエントリを受信するようにさらに構成されるということは、具体的には、フローテーブルジャンプ命令またはSwitch転送命令を含み、かつコントローラによって送信されたフローエントリを受信することを含み、フローエントリ内の次のフローテーブルが主Switchにあるかどうかにしたがって、フローエントリ内のフローテーブルジャンプ命令またはSwitch転送命令がコントローラによって判断され、そうである場合には、フローエントリはフローテーブルジャンプ命令を含み、そうでない場合には、フローエントリは、Switch転送命令を含み、
プロセッサは、具体的には、受信したデータパケットにマッチングするフローエントリがフローテーブルジャンプ命令を含む場合には、データパケットを次のフローテーブルに導いて処理を続行するように構成され、あるいは、
プロセッサは、具体的には、受信したデータパケットにマッチングするフローエントリがSwitch転送命令を含む場合には、カプセル化パケットを生成するためにパイプライン環境保護を開始し、カプセル化パケットを次のフローテーブルに対応する拡張Switchに送信するように構成される。
【００７８】
第8の態様の第4または第5の可能な実施態様によれば、第6の可能な実施態様では、プロセッサがパイプライン環境保護を開始するということは、データパケットおよびデータパケットを処理するための関連情報を、カプセル化パケット内に、カプセル化することを含み、データパケットを処理するための関連情報は、少なくとも次のフローテーブルの番号IDを含むとともに、任意の次の情報、すなわち、入力ポート（Ingress port）、データパケットに現在対応するアクションセット（Action set）、およびメタデータ（Metadata）をさらに含む。
【００７９】
第8の態様の第4から第6の可能な実施態様のいずれか1つによれば、第7の可能な実施態様では、パイプライン環境保護は、次のフローテーブルに対応する拡張Switchが拡張Switchによって受信されたカプセル化パケットを解析し、解析された情報を取得することを可能にするために使用され、それによって、解析された情報にしたがってパイプライン環境回復を実行し、データパケットを次のフローテーブルに導いて処理を続行し、解析された情報は、データパケットおよびデータパケットを処理するための関連情報を含む。
【００８０】
第9の態様によれば、本発明の一実施形態は、拡張Switchを提供し、拡張Switchは、コントローラに接続された論理Switchの物理Switchであり、論理Switchは複数の物理Switchを含み、複数の物理Switchは主Switchおよび拡張Switchを含み、拡張Switchは第1の拡張Switchおよび第2の拡張Switchを含み、コントローラは少なくとも主Switchに接続され、主Switchは少なくとも第1の拡張Switchに接続され、第2の拡張Switchは、少なくとも第1の拡張Switchに接続され、拡張Switchは、
コントローラおよび／または主Switchおよび／または別の拡張Switchによって送信されたマッピング情報を受信するように構成された受信器であって、マッピング情報は、物理Switchと論理Switchの複数のフローテーブル内の各フローテーブルとの間のマッピング関係を含み、
受信器は、現在の拡張Switchによって、現在の拡張Switchに対応し、かつコントローラおよび／または主Switchおよび／または別の拡張Switchによって送信されたフローエントリを受信するようにさらに構成され、受信器によって受信されたフローエントリは、コントローラによって現在の拡張Switchに割り当てられたフローテーブルセット内の各フローテーブルのコンテンツ情報である、受信器と、
受信器によって受信されたフローエントリにしたがって、あるいは受信器によって受信されたフローエントリおよびマッピング情報にしたがって、現在の拡張Switchによって受信された第1のカプセル化パケットを処理するように構成されたプロセッサであって、第1のカプセル化パケットは、物理Switchによって受信されたデータパケットおよびデータパケットを処理するための関連情報をカプセル化することによって、前のフローテーブルがある物理Switchによって生成される、プロセッサと
を含む。
【００８１】
第9の態様の第1の可能な実施態様では、受信器によって受信されたマッピング情報において、論理Switchの複数のフローテーブル内の第1のフローテーブルtable0は、主Switchに対応する。
【００８２】
第9の態様または第9の態様の第1の可能な実施態様によれば、第2の可能な実施態様では、受信器は、現在の拡張Switchに対応するフローエントリを受信した後に、第1のカプセル化パケットを受信するようにさらに構成され、
プロセッサは、具体的には、受信器によって受信された第1のカプセル化パケット内の次のフローテーブルの番号IDが別の物理Switchにあると判断した場合に、受信器によって受信されたマッピング情報にしたがって、受信器によって受信された第1のカプセル化パケットを次のフローテーブルのIDに対応する物理Switchに転送するように構成される。
【００８３】
第9の態様または第9の態様の第1の可能な実施態様によれば、第3の可能な実施態様では、受信器は、現在の拡張Switchに対応するフローエントリを受信した後に、第1のカプセル化パケットを受信するようにさらに構成され、
プロセッサは、具体的には、受信器によって受信された第1のカプセル化パケットの次のフローテーブルの番号IDが現在の拡張Switchにあると判断した場合に、前記データパケットを取得するために、受信器によって受信された第1のカプセル化パケットに対してパイプライン環境回復を実行するように構成される。
【００８４】
第9の態様の第3の可能な実施態様によれば、第4の可能な実施態様では、プロセッサは、具体的には、解析された情報を取得するために、受信器によって受信された第1のカプセル化パケットを解析し、解析された情報は、データパケットおよびデータパケットを処理するための関連情報を含み、データパケットを処理するための関連情報は、少なくとも次のフローテーブルのIDを含み、任意の次の情報、すなわち、入力ポート（Ingress port）、データパケットに現在対応するアクションセット（Action set）、およびメタデータ（Metadata）をさらに含み、解析された情報にしたがってパイプライン環境回復を実行し、データパケットを次のフローテーブルに導いて処理を続行するように構成される。
【００８５】
第9の態様の第3の可能な実施態様によれば、第5の可能な実施態様では、受信器によって受信されたフローエントリは、パイプライン回復を実行するために使用され、かつコントローラによって送信されるフローエントリを含み、プロセッサは、具体的には、現在の拡張Switchの第1のフローテーブルtable0’にパイプライン回復を実行するために使用されるフローエントリを追加し、table0’に追加されたフローエントリを使用して、受信器によって受信された第1のカプセル化パケットに対してパイプライン環境回復を実行するように構成される。
【００８６】
第9の態様の第5の可能な実施態様によれば、第6の可能な実施態様では、受信器によって受信された第1のカプセル化パケットは、次のフローテーブルのIDを含み、パイプライン回復を実行するために使用され、かつ受信器によって受信されたフローエントリは、マッチング部分および実行可能命令を含み、実行可能命令は、フローテーブルリカバリ命令および／またはフローテーブルジャンプ命令を含み、
プロセッサが、table0’に追加されたフローエントリを使用して、受信器によって受信された第1のカプセル化パケットに対してパイプライン環境回復を実行するように構成されるということは、具体的には、受信器によって受信された第1のカプセル化パケットを、table0’内のフローエントリを使用してマッチングすること、および、table0’内のフローエントリが正常にマッチングした場合には、マッチング結果にしたがってマッチングしたフローエントリのフローテーブル回復命令および／またはフローテーブルジャンプ命令を順番に実行することを含む。
【００８７】
第9の態様の第3から第6の可能な実施態様のいずれか1つによれば、第7の可能な実施態様では、プロセッサは、受信器によって受信された第1のカプセル化パケットに対してパイプライン環境回復を実行した後に、データパケットを取得する場合に、現在のフローテーブルを用いてデータパケットを処理するようにさらに構成され、
プロセッサは、マッピング情報にしたがって、次のフローテーブルが現在の拡張Switchにあるかどうかを判断し、そうである場合には、データパケットを次のフローテーブルに導いて処理を続行し、あるいは、そうでない場合には、第2のカプセル化パケットを生成するためにパイプライン環境保護を開始し、第2のカプセル化パケットを次のフローテーブルに対応する拡張Switchに送信するようにさらに構成される。
【００８８】
第9の態様の第3から第6の可能な実施態様のいずれか1つによれば、第8の可能な実施態様では、受信器は、フローテーブルジャンプ命令またはSwitch転送命令を含み、かつコントローラによって送信されたフローエントリを受信するようにさらに構成され、フローエントリ内の次のフローテーブルが現在の拡張Switchにあるかどうかにしたがって、フローエントリ内のフローテーブルジャンプ命令またはSwitch転送命令がコントローラによって判断され、そうである場合には、フローエントリはフローテーブルジャンプ命令を含み、そうでない場合には、フローエントリは、Switch転送命令を含み、
プロセッサは、受信器によって受信された第1のカプセル化パケットに対してパイプライン環境回復を実行した後に、第1のカプセル化パケット内のデータパケットを取得し、データパケットにマッチングするフローエントリがフローテーブルジャンプ命令を含む場合には、データパケットを次のフローテーブルに導いて処理を続行し、あるいは、第1のカプセル化パケット内のデータパケットを取得し、データパケットにマッチングするフローエントリがSwitch転送命令を含む場合には、第2のカプセル化パケットを生成するためにパイプライン環境保護を開始し、第2のカプセル化パケットを次のフローテーブルに対応する拡張Switchに送信するようにさらに構成される。
【００８９】
第9の態様の第7または第8の可能な実施態様によれば、第9の可能な実施態様では、プロセッサがパイプライン環境保護を開始するように構成されるということは、具体的には、データパケットおよびデータパケットを処理するための関連情報を、第2のカプセル化パケット内にカプセル化することを含み、データパケットを処理するための関連情報は、少なくとも次のフローテーブルのIDを含み、任意の次の情報、すなわち、入力ポート（Ingress port）、データパケットに現在対応するアクションセット（Action set）、およびメタデータ（Metadata）をさらに含む。
【００９０】
第10の態様によれば、本発明の一実施形態は、コントローラおよび論理Switchを含むスイッチ処理システムを提供し、論理Switchは、少なくとも2つの物理Switchを含み、システムは、
コントローラは、論理Switchの複数のフローテーブル内のフローテーブルを各物理Switchに割り当てるように構成され、複数のフローテーブルは論理Switchのパイプラインであり、
コントローラは、マッピング情報を受信するようにさらに構成され、マッピング情報は、物理Switchと論理Switchの複数のフローテーブルの各フローテーブルとの間のマッピング関係を含み、
各物理Switchは、コントローラマッピング情報を受信するように構成され、
コントローラは、論理Switchにフローエントリを送信するようにさらに構成され、
各物理Switchは、フローエントリを受信するようにさらに構成され、フローエントリは、コントローラによって各物理Switchに割り当てられたフローテーブルセット内の各フローテーブルのコンテンツ情報であり、
各物理Switchは、フローエントリにしたがって、あるいはフローエントリおよびマッピング情報にしたがって、物理Switchによって受信されたデータパケットを処理するようにさらに構成される。
【００９１】
第10の態様の第1の可能な実施態様では、少なくとも2つの物理Switchは、主Switchおよび拡張Switchを含み、コントローラは、少なくとも主Switchに接続され、拡張Switchは、少なくとも主Switchに接続され、
コントローラがマッピング情報を送信するように構成されるということは、具体的には、マッピング情報を少なくとも主Switchに送信することを含み、
主Switchは、コントローラによって送信されたマッピング関係を受信した後に、主Switchに接続された拡張Switchにマッピング情報を送信するようにさらに構成され、
コントローラが論理Switchにフローエントリを送信するようにさらに構成されるということは、具体的には、論理Switchのフローエントリを少なくとも主Switchに送信することを含み、主Switchによって受信されたフローエントリが主Switchに対応するフローエントリまたは各物理Switchに対応するフローエントリを含み、
主Switchは、コントローラによって送信されたフローエントリを受信した後に、コントローラに割り当てられたフローエントリを主Switchに接続された拡張Switchに送信するようにさらに構成される。
【００９２】
第10の態様または第10の態様の第1の可能な実施態様によれば、第2の可能な実施態様では、拡張Switchは、第1の拡張Switchおよび第2の拡張Switchを含み、主Switchは、少なくとも第1の拡張Switchに接続され、第2の拡張Switchは、少なくとも第1の拡張Switchに接続され、
主Switchが、主Switchに接続された拡張Switchにマッピング情報を送信するように構成されるということは、具体的には、第1の拡張Switchおよび／または第2の拡張Switchにマッピング情報を送信することを含み、
主Switchが、主Switchに接続された拡張Switchに、コントローラによって割り当てられたフローエントリを送信するように構成されるということは、具体的には、コントローラによって割り当てられたフローエントリを第1の拡張Switchおよび／または第2の拡張Switchに送信することを含む。
【００９３】
第10の態様の第2の可能な実施態様によれば、第3の可能な実施態様では、各拡張Switchがマッピング情報を受信するように構成されるということは、具体的には、第1の拡張Switchが、コントローラおよび／または主Switchによって送信されたマッピング情報を受信するように構成され、第2の拡張Switchが、コントローラおよび／または主Switchおよび／または第1の拡張Switchによって送信されたマッピング情報を受信するように構成されることを含み、
各拡張Switchがフローエントリを受信するように構成されるということは、具体的には、第1の拡張Switchが、コントローラおよび／または主Switchによって送信されたフローエントリを受信するように構成され、第2の拡張Switchが、コントローラおよび／または主Switchおよび／または第1の拡張Switchによって送信されたフローエントリを受信するように構成されることを含む。
【００９４】
第10の態様のいずれか1つ、または第10の態様の第1から第3の可能な実施態様によれば、第4の可能な実施態様では、コントローラによって主Switchに割り当てられたフローテーブルは、論理Switchの複数のフローテーブル内の少なくとも第1のフローテーブルtable0を含み、
主Switchが主Switchによって受信されたデータパケットを処理するように構成されるということは、具体的には、table0を用いて、フローエントリにしたがって、あるいはフローエントリおよびマッピング情報にしたがって、受信したデータパケットを処理することを含む。
【００９５】
第10の態様のいずれか1つ、または第10の態様の第1から第4の可能な実施態様によれば、第5の可能な実施態様では、主Switchが主Switchによって受信されたデータパケットを処理するということは、具体的には、データパケットを受信する場合にデータパケットを処理することと、マッピング情報にしたがって、次のフローテーブルが主Switchにあるかどうかを判断し、そうである場合には、データパケットを次のフローテーブルに導いて処理を続行し、あるいは、そうでない場合には、第1のカプセル化パケットを生成するためにパイプライン環境保護を開始し、第1のカプセル化パケットを次のフローテーブルに対応する拡張Switchに送信することと、を含む。
【００９６】
第10の態様のいずれか1つ、または第10の態様の第1から第4の可能な実施態様によれば、第6の可能な実施態様では、コントローラがフローエントリを主Switchに送信するように構成されるということは、具体的には、送信対象のフローエントリがフローテーブルジャンプ命令を含む場合には、次のフローテーブルが主Switchにあるかどうかを判断することと、そうである場合には、フローテーブルジャンプ命令を含むフローエントリを主Switchに送信し、あるいは、そうでない場合には、送信対象のフローエントリ内のフローテーブルジャンプ命令をSwitch転送命令に置き換えて、Switch転送命令を含むフローエントリを主Switchに送信することと、を含み、
これに対応して、主Switchがフローエントリを受信するように構成されるということは、具体的には、フローテーブルジャンプ命令またはSwitch転送命令を含み、かつコントローラによって送信されるフローエントリを受信することを含み、
主Switchが主Switchによって受信されたデータパケットを処理するように構成されるということは、具体的には、受信したデータパケットにマッチングするフローエントリがフローテーブルジャンプ命令を含む場合には、データパケットを次のフローテーブルに導いて処理を続行し、あるいは、受信したデータパケットにマッチングするフローエントリがSwitch転送命令を含む場合には、第1のカプセル化パケットを生成するためにパイプライン環境保護を開始し、第1のカプセル化パケットを次のフローテーブルに対応する拡張Switchに送信することを含む。
【００９７】
第10の態様の第5または第6の可能な実施態様によれば、第7の可能な実施態様では、主Switchがパイプライン環境保護を開始するように構成されるということは、具体的には、主Switchがデータパケットおよびデータパケットを処理するための関連情報を第1のカプセル化パケット内にカプセル化することを含み、データパケットを処理するための関連情報は、少なくとも次のフローテーブルの番号IDを含むとともに、任意の次の情報、すなわち、入力ポート（Ingress port）、データパケットに現在対応するアクションセット（Action set）、およびメタデータ（Metadata）をさらに含む。
【００９８】
第10の態様のいずれか1つ、または第10の態様の第1から第7の可能な実施態様によれば、第8の可能な実施態様では、現在の拡張Switchは、現在の拡張Switchに対応するフローエントリを受信した後に、第1のカプセル化パケットを受信するようにさらに構成され、
現在の拡張Switchは、さらに、第1のカプセル化パケット内の次のフローテーブルの番号IDが現在の拡張Switch内にあるかどうかを判断し、そうでない場合には、マッピング情報にしたがって、第1のカプセル化パケットを次のフローテーブルのIDに対応する物理Switchに転送し、そうである場合には、第1のカプセル化パケットに対してパイプライン環境回復を実行して、データパケットを取得するようにさらに構成される。
【００９９】
第10の態様の第8の可能な実施態様によれば、第9の可能な実施態様では、現在の拡張Switchが第1のカプセル化パケットに対してパイプライン環境回復を実行するように構成されるということは、具体的には、解析された情報を取得するために第1のカプセル化パケットを解析し、解析された情報は、データパケットおよびデータパケットを処理するための関連情報を含み、解析された情報にしたがってパイプライン環境回復を実行し、データパケットを次のフローテーブルに導いて処理を続行することを含む。
【０１００】
第10の態様の第8の可能な実施態様によれば、第10の可能な実施態様では、現在の拡張Switchによって受信されたフローエントリは、パイプライン回復を実行するために使用され、かつコントローラによって送信されるフローエントリを含み、現在の拡張Switchは、現在の拡張Switchの第1のフローテーブルtable0’にパイプライン回復を実行するために使用されるフローエントリを追加し、table0’に追加されたフローエントリを使用して、第1のカプセル化パケットに対してパイプライン環境回復を実行するようにさらに構成される。
【０１０１】
第10の態様の第10の可能な実施態様によれば、第11の可能な実施態様では、現在の拡張Switchによって受信された第1のカプセル化パケットは、次のフローテーブルのIDを含み、パイプライン回復を実行するために使用され、かつ現在の拡張Switchによって受信されたフローエントリは、マッチング部分および実行可能命令を含み、実行可能命令は、フローテーブルリカバリ命令および／またはフローテーブルジャンプ命令を含み、
現在の拡張Switchが、table0’に追加されたフローエントリを使用して、第1のカプセル化パケットに対してパイプライン環境回復を実行するように構成されるということは、具体的には、受信器によって受信された第1のカプセル化パケットを、table0’内のフローエントリを使用してマッチングすること、および、table0’内のフローエントリが正常にマッチングした場合には、マッチング結果にしたがってマッチングしたフローエントリのフローテーブル回復命令および／またはフローテーブルジャンプ命令を順番に実行することを含む。
【０１０２】
第10の態様の第8から第11の可能な実施態様のいずれか1つによれば、第12の可能な実施態様では、現在の拡張Switchは、第1のカプセル化パケットに対してパイプライン環境回復を実行した後に、データパケットを取得する場合に、現在のフローテーブルを用いてデータパケットを処理するようにさらに構成され、
現在の拡張Switchは、マッピング情報にしたがって、次のフローテーブルが現在の拡張Switchにあるかどうかを判断し、そうである場合には、データパケットを次のフローテーブルに導いて処理を続行し、あるいは、そうでない場合には、第2のカプセル化パケットを生成するためにパイプライン環境保護を開始し、第2のカプセル化パケットを次のフローテーブルに対応する拡張Switchに送信するようにさらに構成される。
【０１０３】
第10の態様の第8から第11の可能な実施態様のいずれか1つによれば、第13の可能な実施態様では、コントローラがフローエントリを現在の拡張Switchに送信するように構成されるということは、具体的には、送信対象のフローエントリがフローテーブルジャンプ命令を含む場合には、次のフローテーブルが現在の拡張Switchにあるかどうかを判断することと、そうである場合には、フローテーブルジャンプ命令を含むフローエントリを現在の拡張Switchに送信し、あるいは、そうでない場合には、送信対象のフローエントリ内のフローテーブルジャンプ命令をSwitch転送命令に置き換えて、Switch転送命令を含むフローエントリを現在の拡張Switchに送信することと、を含み、
これに対応して、現在の拡張Switchがフローエントリを受信するように構成されるということは、具体的には、フローテーブルジャンプ命令またはSwitch転送命令を含み、かつコントローラによって送信されるフローエントリを受信することを含み、
現在の拡張Switchは、第1のカプセル化パケットに対してパイプライン環境回復を実行した後に、第1のカプセル化パケット内のデータパケットを取得し、現在のフローテーブルを用いて取得したデータパケットを処理するようにさらに構成される。
【０１０４】
第10の態様の第13の可能な実施態様によれば、第14の可能な実施態様では、現在の拡張Switchが取得したデータパケットを処理するように構成されるということは、具体的には、取得したデータパケットにマッチングするフローエントリがフローテーブルジャンプ命令を含む場合には、データパケットを次のフローテーブルに導いて処理を続行し、あるいは、取得したデータパケットにマッチングするフローエントリがSwitch転送命令を含む場合には、第2のカプセル化パケットを生成するためにパイプライン環境保護を開始し、第2のカプセル化パケットを次のフローテーブルに対応する拡張Switchに送信することを含む。
【０１０５】
第10の態様の第12から第14の可能な実施態様のいずれか1つによれば、第15の可能な実施態様では、現在の拡張Switchがパイプライン環境保護を開始するように構成されるということは、具体的には、データパケットおよびデータパケットを処理するための関連情報を、第2のカプセル化パケット内にカプセル化することを含み、データパケットを処理するための関連情報は、少なくとも次のフローテーブルのIDを含み、任意の次の情報、すなわち、入力ポート（Ingress port）、データパケットに現在対応するアクションセット（Action set）、およびメタデータ（Metadata）をさらに含む。
【０１０６】
本発明が提供するスイッチ処理方法、コントローラ、スイッチ、およびスイッチ処理システムでは、スイッチ処理方法は、コントローラおよび論理Switchによって実行され、論理Switchは少なくとも2つの物理Switchを含む。コントローラは、論理Switchの複数のフローテーブル内の各フローテーブルを各物理Switchに割り当て、マッピング情報およびフローエントリを送信して、各物理Switchが物理Switchに対応するマッピング情報およびフローエントリを取得する。さらに、各物理Switchは、取得したフローエントリおよびマッピング関係にしたがって、またはフローエントリにしたがって、受信したデータパケットを処理することができる。本発明が提供するスイッチ処理方法を実行するためのスイッチ処理システムでは、論理Switchの物理構造に基づいて新たな物理Switchをスタックすることができる。これは、既存のネットワークトポロジの安定性を維持するのを助け、論理Switchの処理能力を向上させ、ネットワークの稼動への影響および容量拡張のコストを削減する。
【０１０７】
本発明の実施形態において、または従来技術において、技術的解決策をより明確に説明するために、実施形態または従来技術の説明に必要な図面を以下に簡単に説明する。明らかに、以下の説明における添付の図面は、本発明のいくつかの実施形態を示すものであり、当業者であれば、創造的努力なしに、これらの添付図面から他の図面をさらに導出することができる。
【図面の簡単な説明】
【０１０８】
【図１】本発明の実施形態1によるスイッチ処理方法のフローチャートである。
【図２】図1に示す実施形態によるアプリケーションシナリオの概略図である。
【図３】図1に示す実施形態による別のアプリケーションシナリオの概略図である。
【図４】図1に示す実施形態によるさらに別のアプリケーションシナリオの概略図である。
【図５】本発明の実施形態2によるスイッチ処理方法のフローチャートである。
【図６】本発明の一実施形態による別のスイッチ処理方法のフローチャートである。
【図７】本発明の実施形態3によるスイッチ処理方法のフローチャートである。
【図８】本発明の実施形態4によるスイッチ処理方法のフローチャートである。
【図９】本発明の実施形態5によるスイッチ処理方法のフローチャートである。
【図１０】本発明の一実施形態によるさらに別のスイッチ処理方法のフローチャートである。
【図１１Ａ】本発明の実施形態6によるスイッチ処理方法のフローチャートである。
【図１１Ｂ】本発明の実施形態6によるスイッチ処理方法のフローチャートである。
【図１１Ｃ】本発明の実施形態6によるスイッチ処理方法のフローチャートである。
【図１２】本発明の実施形態7によるスイッチ処理装置の概略構成図である。
【図１３】本発明の一実施形態による別のスイッチ処理装置の概略構成図である。
【図１４】本発明の実施形態8によるスイッチ処理装置の概略構成図である。
【図１５】本発明の一実施形態によるさらに別のスイッチ処理装置の概略構成図である。
【図１６】本発明の実施形態9によるスイッチ処理装置の概略構成図である。
【図１７】本発明の一実施形態によるさらに別のスイッチ処理装置の概略構成図である。
【図１８】本発明の一実施形態によるコントローラの概略構成図である。
【図１９】本発明の一実施形態による主Switchの概略構成図である。
【図２０】本発明の一実施形態による拡張Switchの概略構成図である。
【発明を実施するための形態】
【０１０９】
本発明の実施形態の目的、技術的解決策、および利点をより明確にするために、以下、本発明の実施形態における図面を参照して本発明の実施形態の技術的解決策について明確かつ完全に説明する。明らかに、記載された実施形態は、本発明の実施形態の一部であって、そのすべてではない。創造的努力なしに本発明の実施形態に基づいて当業者によって得られたすべての他の実施形態は、本発明の保護範囲内に含まれるものとする。
【０１１０】
本発明の一実施形態が提供するスイッチ処理方法は、具体的には、ネットワーク内の論理Switchがサポートするフローテーブルの数量と、論理Switchが処理可能なフローエントリの規模と、を拡張する必要がある場合に適用される。具体的には、本発明のこの実施形態が提供するスイッチ処理方法では、コントローラは、複数のフローテーブルの各フローテーブルを複数の物理Switchに割り当てることができ、複数の物理Switchは1つの論理Switchとみなすべきである。したがって、論理Switchのパイプラインは、大量のフローテーブルをサポートすることができ、かつ／または大量のフローエントリを処理することができる。この実施形態が提供するスイッチ処理方法は、具体的には、スイッチ処理システムによって実行することができる。スイッチ処理システムは、コントローラおよび複数の物理Switchを含む。データ処理装置は、コントローラおよび各物理Switchに統合することができ、データ処理装置は、ソフトウェアおよび／またはハードウェアを用いて実現することができる。以下、この実施形態のスイッチ処理方法について詳細に説明する。
【０１１１】
実施形態1
図1は、本発明の実施形態1によるスイッチ処理方法のフローチャートである。この実施形態が提供するスイッチ処理方法は、コントローラおよび論理Switchによって実行され、論理Switchは、少なくとも2つの物理Switchを含む。図1に示すように、この実施形態の方法は、具体的には、以下のステップを含む。
S110．コントローラは、論理Switchの複数のフローテーブルの各フローテーブルを各物理Switchに割り当て、ここで複数のフローテーブルは論理Switchのパイプラインである。
【０１１２】
S120．各物理Switchがマッピング情報を取得するように、コントローラはマッピング情報を送信し、マッピング情報は各物理Switchと複数のフローテーブル内の各フローテーブルとの間のマッピング関係を含む。
【０１１３】
この実施形態では、論理Switchは、少なくとも2つの物理Switchを含む。したがって、コントローラは、複数のフローテーブル内の各フローテーブルを、共有するために異なる物理Switchに割り当てる必要があり、さらに、各物理Switchと各フローテーブルとの間のマッピング関係を、処理に参加する物理Switchに配信する必要があり、各物理Switchは、割り当てられた現在のフローテーブルを使用して受信したデータパケットを処理した後に、後続のフローテーブルまたは別の物理Switchにデータパケットを転送して処理を続けることができる。
【０１１４】
S130．各物理Switchが各物理Switchに対応するフローエントリを取得し、フローエントリにしたがって、またはフローエントリおよびマッピング情報にしたがって、受信したデータパケットを処理するために、コントローラはフローエントリを論理Switchに送信し、フローエントリは、各物理Switchにコントローラによって割り当てられたフローテーブルセット内の各フローテーブルのコンテンツ情報である。
【０１１５】
この実施形態では、コントローラは、複数のフローテーブル内の各フローテーブルを各物理Switchに割り当て、マッピング関係を配信した後に、物理Switchに割り当てられたフローテーブルのフローエントリを各物理Switchに配信する必要がある。各物理Switchが受信したフローエントリは、具体的には、コントローラによって各物理Switchに割り当てられたフローテーブルセット内の各フローテーブルのコンテンツ情報であり、それは、たとえば、マッチング部分（Match Fields）、優先度（Priority）、統計データ（Counters）、命令（Instructions）、タイムアウト（Timeouts）、およびフローテーブル関連値（Cookie）を含む。したがって、各物理Switchは、物理Switchに対応するフローテーブル内の受信したフローエントリを満たし、物理Switchが各フローテーブル内の割り当てられたフローテーブル、マッピング関係、およびフローエントリを知った後に、受信したデータパケットを処理することができる。
【０１１６】
たとえば、図2は、図1に示す実施形態によるアプリケーションシナリオの概略図である。図2に示すシナリオでは、論理Switchは2つの物理Switchを含み、物理Switchは、具体的には、主Switchおよび第1の拡張Switchを含む。コントローラは、少なくとも主Switchに接続され、第1の拡張Switchは、少なくとも主Switchに接続される。図2に示すアーキテクチャでは、コントローラによってマッピング情報およびフローエントリを送信する方法は以下のようにすることができる。（1）コントローラが、各物理Switchに対応するマッピング情報およびフローエントリを対応する物理Switchに直接送信する。すなわち、コントローラは図2の実線で示す接続関係に対応する各物理Switchに接続される必要がある。（2）コントローラは、マッピング情報およびすべてのフローエントリを主Switchに送信するので、主Switchによって受信されたフローエントリは、主Switchに対応するフローエントリだけでなく、第1の拡張Switchに対応するフローエントリも含み、主Switchは、第1の拡張Switchに対応するマッピング情報およびフローエントリを第1の拡張Switchに送信する。この送信方法では、第1の拡張Switchを、図2の破線で示す接続関係に対応する主Switchのみに接続することができる。一般に、コントローラによるマッピング情報およびフローエントリの送信方法は、上記の2つの場合を含むことができ、すなわち、各物理Switchとコントローラとの間の接続関係が上記の条件のいずれか1つを満たす。
【０１１７】
別の例として、図3は、図1に示す実施形態による別のアプリケーションシナリオの概略図である。図3に示すシナリオでは、論理Switchは3つの物理Switchを含み、物理Switchは主Switch、第1の拡張Switch、および第2の拡張Switchを含む。第1のスイッチと第1の拡張Switchとの間の接続方法は、図2に示したシナリオと同様であり、第2の拡張Switchは、少なくとも第1の拡張Switchに接続される。図3に示すアーキテクチャでは、コントローラによってマッピング情報およびフローエントリを送信する方法は以下のようにすることができる。（1）コントローラが、各物理Switchに対応するマッピング情報およびフローエントリを対応する物理Switchに直接送信する。すなわち、コントローラは図3の実線「1」で示す接続関係に対応する各物理Switchに接続される必要がある。（2）コントローラは、マッピング情報およびすべてのフローエントリを主Switchに送信する、すなわち、主Switchによって受信されたフローエントリは、主Switchに対応するフローエントリだけでなく、他の拡張Switchに対応するフローエントリも含み、さらに、主Switchは、他の物理Switchに対応するマッピング情報およびフローエントリを対応する物理Switchに送信する。この送信方法では、図3の実線「2」で示す接続関係に対応して、コントローラは主Switchのみに接続され、第1の拡張Switchと第2の拡張Switchの両方は、主Switchに接続される。（3）コントローラはマッピング情報とすべてのフローエントリを主Switchに送信し、主Switchは他の物理Switchに対応するマッピング情報とフローエントリを第1の拡張Switchだけに送信し、第1の拡張Switchが受信したフローエントリは、第1の拡張Switchに対応するフローエントリを含むだけでなく、第2の拡張Switchに対応するフローエントリも含み、さらに、第1の拡張Switchは、第2の拡張Switchに対応するマッピング情報およびフローエントリを、対応する第2の拡張Switchに送信する。この送信方法では、第2の拡張Switchは、図3の実線「3」で示す接続関係に対応して、コントローラと第1の拡張Switchとが主Switchに接続され、第1の拡張Switchのみに接続される。（4）コントローラはまた、主Switchに対応するマッピング情報およびフローエントリを主Switchに送信し、両方の拡張Switchに対応するマッピング情報およびフローエントリを第1の拡張Switchに送信することができ、さらに、第1の拡張Switchは、第2の拡張Switchに対応するマッピング情報およびフローエントリを第2の拡張Switchに送信する。この送信方法では、図3の実線「4」で示す接続関係に対応して、第1の拡張Switchと主Switchの両方はコントローラに接続され、第2の拡張Switchは第1の拡張Switchのみに接続される。さらに、コントローラは、最初に、マッピング情報およびフローエントリを拡張Switchに送信することもできる。たとえば、コントローラは、具体的には、マッピング情報とフローエントリを第1の拡張Switchに送信し、フローエントリは、主Switchに対応するフローエントリと、拡張Switchに対応するフローエントリとを含み、第1の拡張Switchは、主Switchに対応するマッピング情報とフローエントリを主Switchに転送し、第2の拡張Switchが受信したマッピング情報は、コントローラおよび／または第1の拡張Switchによって送信されてもよい。この送信方法では、第1の拡張Switchはコントローラおよび主Switchに接続され、第2の拡張Switchは第1の拡���Switchおよび／またはコントローラに接続される。一般に、コントローラによるマッピング情報およびフローエントリの送信方法は、複数の上記の場合を含み、すなわち、各物理Switchとコントローラとの間の接続関係が上記の条件のいずれか1つを満たす。本発明が提供するスイッチ処理方法では、コントローラによりマッピング情報およびフローエントリを送信する特定のプロセスは限定されない。各物理Switchが各物理Switchに対応するマッピング情報およびフローエントリを受信することを可能にする任意の送信方法は、本発明のこの実施形態によって提供されるスイッチ処理方法に適用可能であり得る。
【０１１８】
図2および図3もまた、本発明のこの実施形態によって提供されるスイッチ処理システムの概略構成図であることに留意されたい。このシステムでは、主Switchはネットワーク内で判断され、コントローラに接続されたスイッチである。さらに、コントローラによって主Switchに割り当てられたフローテーブルは、少なくとも、論理Switchの複数のフローテーブル内の第1のフローテーブル（table0）を含み、主Switchがデータパケットを受信した場合に、主Switchがtable0を用いてデータパケットを最初に処理する。他の物理Switchは、主Switchとの接続関係、および上位レベルと下位レベルの物理Switch間の接続関係に基づいて、マッピング情報とフローエントリを受信して転送する。
【０１１９】
従来技術では、オペレータがネットワークノードに配置されたSwitchの機能または性能による容量拡張を行う必要がある場合には、Switchのハードウェア能力の限界により、オペレータは、既存のネットワーク内の非スケーラブルなSwitchを交換することしかできない。したがって、ネットワーク容量拡張のコストは比較的高い。比較すると、この実施形態では、論理Switchは非スケーラブルな物理Switchではなく、スタック去れた複数の物理Switchを含む。したがって、ネットワーク容量が拡張されたり、サービストラフィックが増加したり、論理Switchがより複雑な論理処理機能を完了する必要がある場合に、オペレータは現在の既存の物理Switchを引き続き使用することができ、容量拡張の目的を達成するために複数の既存の物理Switchをスタックすることによって新しい論理Switchが形成される。したがって、古いデバイスを置き換えるための大容量のデバイスを購入する必要がない。これにより、オペレータの既存デバイスへの投資が完全に保証され、容量拡張のコストが削減される。具体的な実施では、元のデバイスおよび拡張されたデバイスの全体が、ネットワークトポロジ内の元のデバイスと完全に同等な論理エンティティであると考えられるので、この方法を使用するおとによって、アップグレード前後でネットワークトポロジを安定させることができる。したがって、ノードレベルでの円滑なアップグレードが、低い複雑性と高い信頼性を伴ってSDNドメインにおいて実現される。具体的には、この実施形態が提供する方法では、まず論理Switch内の物理Switchの数量を増やすことができるので、論理Switchの処理能力が向上する。既存の論理Switchでサポートできるフローテーブルの数量が制限されているために複雑なロジックを処理できない場合には、容量拡張時に追加された物理Switchおよび既存の物理Switchを併用して、新しい論理Switchを構成することができ、すなわち、容量拡張後に論理Switchを形成することができる。さらに、容量拡張後の論理Switchによる複雑な論理を処理する能力が向上する。既存の論理Switchの演算処理能力が不足している場合には、容量拡張後の論理Switchを用いてこの実施形態が提供するスイッチ処理方法を実行することで、既存のネットワークトポロジを維持して円滑なアップグレードを実現しつつ、演算処理能力を向上させる。したがって、容量拡張を実現することが容易になり、ネットワークの稼動に与える影響が低減される。
【０１２０】
たとえば、元の論理Switchがサポートするフローテーブルの数量が新しいサービスロジックを処理するには不十分である場合、あるいは搬送されるサービストラフィックが大幅に増加して元の論理Switchの計算リソースが不十分である場合には、新しい物理Switchを追加することによって論理機能のアップグレードを実現することができ、論理Switchの処理能力を向上させて、論理Switchの性能アップグレードを実現することができる。図4は、図1に示す実施形態によるさらに別のアプリケーションシナリオの概略図である。図4に示すように、元の論理Switchは、Switch1、Switch2、Switch3、およびSwitch4を含み、ここでSwitch1は主Switchであり、Switch2およびSwitch3は第1の拡張Switchであり、Switch4は第2の拡張Switchである。元の論理Switchは、n個のフローテーブルのみをサポートすることができる。より複雑な論理を処理する必要がある場合には、Switch1とSwitch2との間に新しいSwitch5をスタック方式で追加し、元の論理Switchと併せて、n＋mフローテーブルをサポートすることができる新しい論理Switch、すなわちSwitch1〜Switch5を形成し、ネットワークトポロジ内の元の論理Switchを置き換えて、論理Switchの機能をアップグレードする効果を実現する。図4では、Switch間の実線は、アップグレード前のデータ接続であり、破線は、アップグレード後に追加されたデータ接続であり、コントローラと拡張Switchとの間の接続関係は破線で示している。ネットワークトポロジは、アップグレードの前後で安定に保たれていることが分かる。これは、アップグレード処理が非常に円滑で、実行中のネットワークへの影響がほとんどなく、したがって、ネットワークの信頼性も保証されていることを意味している。同様に、元の論理Switch、すなわちSwitch1〜Switch4によってサポートされるフローテーブルの数量nがサービス論理の複雑さの要件を満たすことができるが、元の論理Switchによって運ばれるトラフィックが増加してより高い処理能力が要求される場合には、Switch1とSwitch2との間に新しいSwitch5をスタク方式で追加することができ、元の論理Switchをネットワークトポロジ内のSwitch1〜Switch5に置き換える。アップグレード後の論理Switchはn個のフローテーブルをサポートしているが、物理Switchの増加により高い演算能力が実現されるので、論理Switchの性能をアップグレードする効果が実現される。図4に示すアプリケーションシナリオでは、たとえば、元の論理SwitchはまたSwitch1のみを含み、Switch2がSwitch1上にスタックされて、新しい論理Switchを形成することに留意されたい。
【０１２１】
この実施形態が提供するスイッチ処理方法は、コントローラおよび論理Switchによって実行され、論理Switchは、少なくとも2つの物理Switchを含む。コントローラは、論理Switchの複数のフローテーブル内の各フローテーブルを各物理Switchに割り当て、マッピング情報およびフローエントリを送信して、各物理Switchが物理Switchに対応するマッピング情報およびフローエントリを取得する。さらに、各物理Switchは、取得したフローエントリおよびマッピング関係にしたがって、またはフローエントリにしたがって、受信したデータパケットを処理することができる。この実施形態が提供するスイッチ処理方法を実行するための論理Switchでは、論理Switchの物理構造に基づいて新たな物理Switchをスタックすることができる。これは、既存のネットワークトポロジの安定性を維持するのを助け、論理Switchの処理能力を向上させ、ネットワークの稼動への影響および容量拡張のコストを削減する。
【０１２２】
実施形態2
図5は、本発明の実施形態2によるスイッチ処理方法のフローチャートである。この実施形態が提供するスイッチ処理方法は、コントローラおよび論理Switchによって実行され、論理Switchは、少なくとも2つの物理Switchを含む。図5に示すように、この実施形態の方法は、具体的には、以下のステップを含む。
S210．コントローラは、論理Switchの複数のフローテーブルの各フローテーブルを各物理Switchに割り当て、ここで複数のフローテーブルは論理Switchのパイプラインである。
【０１２３】
S220．各物理Switchがマッピング情報を取得するように、コントローラはマッピング情報を送信し、マッピング情報は物理Switchと複数のフローテーブル内の各フローテーブルとの間のマッピング関係を含む。
【０１２４】
具体的には、ステップS210〜ステップS220の実施態様については、実施形態1のステップS110〜S120を参照することができる。
【０１２５】
S230．コントローラは、フローエントリを論理Switchに送信して、現在の物理Switchがデータパケットを受信した場合に、現在の物理Switchは、現在のフローテーブルを使用してデータパケットを処理し、マッピング情報にしたがって次のフローテーブルの位置を判断し、判断された次のフローテーブルが現在の物理Switchにある場合には、データパケットを次のフローテーブルに導いて処理を続行するか、あるいは、判断された次のフローテーブルが別の物理Switchにある場合には、カプセル化パケットを生成するためにパイプライン環境保護を開始し、カプセル化パケットを次のフローテーブルに対応する物理Switchに送信する。
【０１２６】
この実施形態では、データパケットを受信し処理する場合に、現在の物理Switchは、受信したマッピング情報を参照して、データパケットを処理するための次のフローテーブルの位置を判断する。一方では、現在の物理Switchのフローテーブルを使用することによって依然として処理を実行することができ、すなわち、現在の物理Switchは、現在の物理Switchの次のフローテーブルにデータパケットを直接導いて、処理を続行することができる。他方では、現在の物理Switchが、別の物理Switchがデータパケットを処理し続ける必要があることを見いだした場合には、現在の物理Switchは複数のフローテーブルに対してパイプライン環境保護を実行する必要がある。この実施形態によって提供される方法は、具体的には、スイッチによって制御され、スイッチによって判断され、開始され、実行されるパイプライン環境保護である。フローエントリを配信する場合に、コントローラは、各フローテーブルが同じ物理Switchに配置されているかどうかを考慮する必要はない。具体的には、現在の物理Switchは、次のフローテーブルの位置を判断する。具体的には、次のフローテーブルが別の物理Switchにある場合には、現在の物理Switchは、カプセル化パケットを生成するためにパイプライン環境保護を開始し、生成されたカプセル化パケットを次のフローテーブルに対応する物理Switchに送信する。
【０１２７】
任意選択的に、この実施形態の別の可能な実施態様では、図6に示すように、図6は、本発明の一実施形態による別のスイッチ処理方法のフローチャートである。具体的には、パイプライン環境保護はコントローラによって制御され、コントローラによって判断され、スイッチは対応する命令を直接実行するだけでよい。図5に示す上記の方法に基づいて、ステップS220の後に、方法は具体的には以下のステップを含む。
S230．送信対象のフローエントリがフローテーブルジャンプ命令を含む場合には、コントローラは、現在の物理Switchに次のフローテーブルがあるかどうかを判断し、そうである場合には、ステップS240を実行し、そうでない場合には、ステップS250を実行する。
【０１２８】
S240．コントローラは、フローテーブルジャンプ命令を含むフローエントリを現在の物理Switchに送信して、現在の物理Switchは、データパケットを次のフローテーブルに導いて処理を続行する。
【０１２９】
S250．コントローラは、送信対象のフローエントリ内のフローテーブルジャンプ命令をSwitch転送命令で置き換えて、現在の物理Switchがカプセル化パケットを生成するためにパイプライン環境保護を開始し、かつカプセル化パケットを次のフローテーブルに対応する物理Switchに送信するために、フローテーブルジャンプ命令を含むフローエントリを現在の物理Switchに送信する。
【０１３０】
コントローラは、通常、Flow＿Modメッセージを使用して、Switchにフローエントリを送信する。この実施形態では、フローテーブルジャンプ命令は、たとえば、「Goto＿table」タイプの命令であってもよく、Switch転送命令は、たとえば、「後続のSwitchへの転送」タイプの命令であってもよい。具体的には、コントローラは、送信対象のフローエントリの実行可能命令に「Goto＿table」が含まれていることを見いだした場合に、次のフローテーブルの位置を判断し、具体的には現在の物理Switchに次のフローテーブルがあるかどうかを判断し、そうである場合には、コントローラが「Goto＿table」命令を使用する、すなわち、コントローラが「Goto＿table」を含むフローエントリを現在の物理Switchに直接送信し、そうでない場合には、コントローラが「後続のスイッチへの転送」命令を使用する、すなわち、コントローラがフローエントリ内の「Goto＿table」を「後続のスイッチへの転送」に置き換えて、置き換えられた命令によりフローエントリを現在の物理Switchに送信し、現在の物理Switchが、フローエントリ内の「後続のスイッチへの転送」命令タイプにしたがってパイプライン環境保護を開始する。
【０１３１】
この実施形態が提供する方法は、少なくとも2つの物理Switchによって実行されるので、データパケットが処理されて、次のフローテーブルに導かれる場合に、データパケットの機密性のために、データパケットが異なる物理Switch間で転送される際にパイプライン環境保護が開始される必要があることに留意されたい。これは、従来技術における固定された物理Switchのみによる実行の方法とは異なる。図5および図6に示す実施形態における制御方法は異なるが、現在の物理Switchによるパイプライン環境保護の方法は同じである。具体的には、現在の物理Switchがデータパケットをカプセル化し、データパケットを処理するための関連情報をカプセル化パケットにカプセル化し、データパケットを処理するための関連情報は、少なくとも次のフローテーブルの番号（Identity、略してID）を含み、任意選択的に、任意の次の情報、すなわち、入力ポート（Ingress port）、データパケットに現在対応するアクションセット（Action set）、およびメタデータ（Metadata）をさらに含む。
【０１３２】
さらに、現在の物理Switchは、パイプライン環境保護を実行した後に、パイプライン環境保護を実行して生成したカプセル化パケットを次のフローテーブルに対応する物理Switchに送信する。これに対応して、次のフローテーブルに対応する物理Switchは、データパケットを取得するためにパイプライン環境回復を実行する必要がある。この実施形態が提供する方法では、パイプライン環境回復は、次のフローテーブルに対応する物理Switchによって制御される。具体的には、物理スイッチは、受信したカプセル化パケットを解析して、解析された情報を取得し、解析された情報は、データパケットおよびデータパケットを処理するための関連情報を含む。データパケットを処理するための関連情報はまた、次のフローテーブルのIDを含み、さらに任意選択的に任意の次の情報、すなわち、Ingress port、Action set、およびMetadataを含み、そのようにして、物理Switchは、解析された情報にしたがってパイプライン環境の回復を実行し、解析して得られたデータパケットを次のフローテーブルに導いて処理を続行する。次のフローテーブルへ導く方法は、上記の実施形態と同様なので、ここではさらなる説明を省略する。
【０１３３】
任意選択的に、この実施形態の別の可能な実施態様では、パイプライン環境回復は、コントローラによって制御されてもよい。パイプライン環境回復は、図5または図6に示す上記の実施形態に基づいて実行することができ、この実施形態では図6に基づいて示される。図6に示すように、ステップS250の後に、方法はさらにS260を含む。コントローラは、パイプライン回復を実行するために用いられるフローエントリを拡張Switchに送信し、そのようにして、拡張Switchが、拡張Switchの第1のフローテーブルtable0’にフローエントリを追加し、カプセル化パケットが受信された場合に、table0’に追加されたフローエントリを使用してパイプライン環境回復を実行する。一般に、コントローラは事前にフローエントリを送信することに留意されたい。この実施形態では、ステップS250とS260との間に明確なシーケンスは存在しない。たとえば、図6ではステップS260の前にステップS250が示されている。
【０１３４】
この実施形態では、拡張Switchは、パイプライン回復を行うために使用され、かつコントローラによって送信された受信したフローエントリを使用してパイプライン環境回復を実行し、パイプライン回復を実行するために使用されるフローエントリは、マッチング部分および実行可能命令を含むことができる。カプセル化パケット内の次のフローテーブルのIDは、具体的には、フローエントリのマッチング部分のマッチングオブジェクトとして使用され、実行可能命令は、フローテーブル回復命令および／またはフローテーブルジャンプ命令を含むことができる。パイプライン環境回復の特定のプロセスは、拡張Switchが、拡張Switchによって受信されたカプセル化パケットをtable0’のフローエントリを使用してマッチングし、次のフローテーブルのIDがtable0’のフローエントリとマッチングする場合には、マッチング結果にしたがってマッチングしたフローエントリのフローテーブル回復命令および／またはフローテーブルジャンプ命令を順番に実行する。たとえば、拡張Switchによって受信されたカプセル化パケットの次のフローテーブルのIDは、論理フローテーブル3に等しい。必然的に、論理フローテーブル3のフローエントリは、正常にマッチングされ得る。Openflowプロトコルの基本的な運用方法によれば、マッチングが成功した後に、拡張Switchは、マッチングしたフローエントリの実行可能命令を実行する。
【０１３５】
この実施形態が提供するスイッチ処理方法は、コントローラと、少なくとも2つの物理Switchを含む論理Switchとによって実行される。データパケットが異なる物理Switch間で転送される場合に、データパケットのシームレスなパイプライン処理が、パイプライン環境保護および回復を通じて同じ論理Switchの物理Switch間で実施される。この実施形態が提供するスイッチ処理方法は、前述した実施形態と同じ効果を有するので、ここでのさらなる説明は省略する。
【０１３６】
実施形態3
図7は、本発明の実施形態3によるスイッチ処理方法のフローチャートである。この実施形態が提供するスイッチ処理方法は、コントローラおよび論理Switchによって実行される。前述の実施形態と同様に、論理Switchは少なくとも2つの物理Switchを含み、少なくとも2つの物理Switchは、主Switchと拡張Switchとを含み、コントローラは少なくとも主Switchに接続される。図7に示すように、この実施形態の方法は、具体的には、以下のステップを含む。
S310．主Switchは、コントローラによって送信されたマッピング情報を受信し、マッピング情報は、物理Switchと論理Switchの複数のフローテーブルの各フローテーブルとの間のマッピング関係を含む。
【０１３７】
S320．主Switchは、コントローラによって送信されたフローエントリを受信し、主Switchによって受信されたフローエントリは、コントローラによって主Switchに割り当てられた、あるいはコントローラによって主Switchおよび拡張Switchに割り当てられたフローテーブルセット内の各フローテーブルのコンテンツ情報である。
【０１３８】
この実施形態では、コントローラが複数のフローテーブル内の各フローテーブルを共有するための異なる物理Switchに割り当てる場合に、論理Switchの複数のフローテーブル内の第1のフローテーブルtable0が必ず主Switchに割り当てられる。拡張Switchが主Switchのみに接続されている場合には、マッピング情報を受信した後に、主Switchは、主Switchに接続されている拡張Switchにマッピング情報をさらに送信することができる。同様に、コントローラによって送信されたフローエントリを受信した後に、主Switchは、コントローラによって割り当てられたフローエントリを、主Switchに接続された拡張Switchにさらに送信することができる。上述した実施形態と同様に、この実施形態の拡張Switchはまた、第1の拡張Switchおよび第2の拡張Switchを含むことができる。主Switchは少なくとも第1の拡張Switchに接続され、第2の拡張Switchは少なくとも第1の拡張Switchに接続される。マッピング情報およびフローエントリの配信方法は、前述の実施形態と同様であり、各物理Switchとコントローラとの間の接続関係に関係する。この実施形態における各物理Switchとコントローラとの間の接続関係については、図2および図3を参照することができるので、ここでは詳細な説明は省略する。
【０１３９】
S330．主Switchは、フローエントリにしたがって、あるいはフローエントリおよびマッピング情報にしたがって、受信したデータパケットを処理する。
【０１４０】
この実施形態では、主Switchがコントローラから送信されたマッピング情報を取得すると、主Switchは、主Switchに割り当てられたフローテーブルを知り、また他の物理Switchに割り当てられたフローテーブルも知って、対応するフローテーブル内の受信したフローエントリを満たす。フローエントリのコンテンツは、前述の実施形態と同様である。さらに、主Switchは、受信したフローエントリにしたがって、あるいはフローエントリおよびマッピング情報にしたがって、データパケットを処理する。主Switchは論理Switchの複数のフローテーブルにtable0を含むので、データパケットの処理は具体的にはtable0から開始する。この実施形態では、主Switchによって受信されたデータパケットは、外部ノード（Host）、たとえば、主Switchとの相互アクセスを行うことができるコンピュータによって一般に送信されてもよいことに留意されたい。
【０１４１】
この実施形態が提供するスイッチ処理方法は、コントローラおよび論理Switchによって実行される。論理Switchを形成する物理Switchは、少なくとも主Switchと拡張Switchを含む。主Switchは、コントローラによって送信されたマッピング情報とフローエントリを使用して、受信したデータパケットを処理し、主Switchが受信したフローエントリは、コントローラによって主Switchに割り当てられたフローエントリであってもよいし、あるいはコントローラによって主Switchおよび拡張Switchに割り当てられたフローエントリであってもよい。この配信方法では、主Switchは、拡張Switchに対応するマッピング情報およびフローエントリを拡張Switchにさらに送信することができる。したがって、最終的に、各物理Switchは、コントローラによって送信された物理Switchに対応するマッピング情報およびフローエントリを取得し、さらに、拡張Switchはまた、取得されたフローエントリおよびマッピング情報にしたがって、あるいはフローエントリにしたがって、受信したデータパケットを処理することができる。この実施形態が提供するスイッチ処理方法を実行するための論理Switchでは、論理Switchの物理構造に基づいて新たな物理Switchをスタックすることができる。これは、既存のネットワークトポロジの安定性を維持するのを助け、論理Switchの処理能力を向上させ、ネットワークの稼動への影響および容量拡張のコストを削減する。
【０１４２】
実施形態4
図8は、本発明の実施形態4によるスイッチ処理方法のフローチャートである。この実施形態が提供するスイッチ処理方法は、コントローラおよび論理Switchによって実行される。前述の実施形態と同様に、論理Switchは、少なくとも主Switchと拡張Switchを含む。図8に示すように、この実施形態の方法は、具体的には、以下のステップを含む。
S410．主Switchは、コントローラによって送信されたマッピング情報を受信し、マッピング情報は、物理Switchと論理Switchの複数のフローテーブルの各フローテーブルとの間のマッピング関係を含む。
【０１４３】
S420．主Switchは、コントローラによって送信されたフローエントリを受信し、主Switchによって受信されたフローエントリは、コントローラによって主Switchに割り当てられた、あるいはコントローラによって主Switchおよび拡張Switchに割り当てられたフローテーブルセット内の各フローテーブルのコンテンツ情報である。
【０１４４】
具体的には、ステップS410〜ステップS420の実施態様については、実施形態3のステップS310〜S320を参照することができる。
【０１４５】
S430．主Switchは、データパケットを受信すると、table0を使用してデータパケットを処理する。前述の実施形態で説明したように、主Switchは、論理Switchの複数のフローテーブルに第1のフローテーブルtable0を含むので、主Switchによるデータパケットの処理は、具体的にはtable0から開始する。
【０１４６】
S440．主Switchは、マッピング情報にしたがって、次のフローテーブルが主Switchにあるかどうかを判断し、そうである場合には、ステップS450を実行し、そうでない場合には、ステップS460を実行する。
【０１４７】
S450．主Switchは、データパケットを次のフローテーブルに導いて処理を続行する。
【０１４８】
S460．主Switchは、カプセル化パケットを生成するためにパイプライン環境保護を開始し、カプセル化パケットを次のフローテーブルに対応する拡張Switchに送信する。
【０１４９】
この実施形態では、データパケットを受信し処理する場合に、主Switchは、受信したマッピング情報を参照して、データパケットを処理するための次のフローテーブルの位置を判断する。一方で、次のフローテーブルが主Switchにある場合には、主Switchのフローテーブルを使用することによって依然として処理を実行することができ、すなわち、主Switchは、主Switchの次のフローテーブルにデータパケットを直接導いて、処理を続行することができる。他方で、主Switchが、拡張Switchがデータパケットを処理し続ける必要があると判断した場合、つまり次のフローテーブルが拡張Switchにあると主Switchが判断した場合には、主Switchは、カプセル化パケットを生成するために複数のフローテーブルに対してパイプライン環境保護を実行する必要があり、生成したカプセル化パケットを次のフローテーブルに対応する物理Switchに送信する。この実施形態によって提供される方法は、主Switchによって制御されるパイプライン環境保護であり、具体的には、主Switchによって判断され、開始され、実行される。フローエントリを配信する場合に、コントローラは、各フローテーブルが同じ物理Switchに配置されているかどうかを考慮する必要はない。
【０１５０】
任意選択的に、この実施形態の別の可能な実施態様では、パイプライン環境保護は、コントローラによって制御され、コントローラによって判断され、主Switchは、対応する命令を直接実行するだけでよい。図8に示す前述の実施形態に基づいて、ステップS420は次のように置き換えられる。主Switchは、フローテーブルジャンプ命令またはSwitch転送命令を含み、かつコントローラによって送信されたフローエントリを受信し、フローエントリ内の次のフローテーブルが主Switchにあるかどうかにしたがって、フローエントリ内のフローテーブルジャンプ命令またはSwitch転送命令がコントローラによって判断され、そうである場合には、フローエントリはフローテーブルジャンプ命令を含み、そうでない場合には、フローエントリは、Switch転送命令を含む。これに対応して、ステップS430は次のように置き換えられる。主Switchはデータパケットを受信し、データパケットとマッチングするフローエントリがフローテーブルジャンプ命令を含む場合には、データパケットを次のフローテーブルに導いて処理を続行し、あるいは、主Switchがデータパケットを受信し、データパケットとマッチングするフローエントリがSwitch転送命令を含む場合には、カプセル化パケットを生成するためにパイプライン環境保護を開始し、カプセル化パケットを次のフローテーブルに対応する拡張Switchに送信する。この実施形態では、コントローラがフローエントリを送信し、次のフローテーブルの位置を判断する方法、およびコントローラがたとえば「Goto＿table」タイプの命令をフローエントリに追加する場合の後続の処理方法は、前述の実施形態と同様なので、ここではこれ以上説明しない。
【０１５１】
この実施形態が提供する方法は、主Switchと拡張Switchを含む論理Switchによって実行されるので、主Switchが処理パケットを拡張Switchに転送する場合に、データパケットの機密性を確保するために、主Switchは、データパケットを拡張Switchに転送する前に、パイプライン環境保護を開始する必要があることに留意されたい。これは、従来技術における固定された物理Switchによる実行方法とは異なる。具体的な実施では、主Switchは、データパケットおよびデータパケットを処理するための関連情報をカプセル化パケットにカプセル化し、データパケットを処理するための関連情報は、少なくとも次のフローテーブルのIDを含み、さらに任意選択的に任意の次の情報、すなわち、Ingress port、Action set、およびMetadataを含む。
【０１５２】
さらに、主Switchは、パイプライン環境保護を実行した後に、パイプライン環境保護を実行して生成したカプセル化パケットを次のフローテーブルに対応する拡張Switchに送信する。これに対応して、拡張Switchは、データパケットを取得するためにパイプライン環境回復を実行する必要がある。この実施形態が提供する方法では、パイプライン環境回復は、拡張Switchによって制御される。具体的には、拡張Switchは、受信したカプセル化パケットを解析して、解析された情報を取得し、解析された情報は、データパケットおよびデータパケットを処理するための関連情報を含む。データパケットを処理するための関連情報はまた、次のフローテーブルのIDを含み、さらに任意選択的に任意の次の情報、すなわち、Ingress port、Action set、およびMetadataを含み、そのようにして、拡張Switchは、解析された情報にしたがってパイプライン環境の回復を実行し、解析して得られたデータパケットを次のフローテーブルに導いて処理を続行する。データパケットを次のフローテーブルへ導く方法は、上記の実施形態と同様なので、ここではさらなる説明を省略する。同様に、パイプライン環境回復は、コントローラの制御下でさらに実施することができる。具体的な実施態様は、前述の実施形態と同様である。この実施形態は、主Switchが実行主体であり、主Switchによる処理がパイプライン環境回復を伴わない実施態様であるから、ここでの詳細な説明は省略する。
【０１５３】
この実施形態が提供するスイッチ処理方法は、コントローラと、主Switchおよび拡張Switchを含む論理Switchと、により実行される。主Switchがデータパケットを拡張Switchに転送する場合に、主Switchによるパイプライン環境保護および拡張Switchによるパイプライン環境回復により、同じ論理Switchの物理Switch間でシームレスなパイプライン処理が実現される。この実施形態が提供するスイッチ処理方法は、前述した実施形態と同じ効果を有するので、ここでのさらなる説明は省略する。
【０１５４】
実施形態5
図9は、本発明の実施形態5によるスイッチ処理方法のフローチャートである。この実施形態が提供するスイッチ処理方法は、コントローラおよび論理Switchによって実行される。同様に、論理Switchは複数の物理Switchを含み、複数の物理Switchは主Switchおよび拡張Switchを含み、拡張Switchは第1の拡張Switchおよび第2の拡張Switchを含み、コントローラは少なくとも主Switchに接続され、主Switchは少なくとも第1の拡張Switchに接続され、第2の拡張Switchは、少なくとも第1の拡張Switchに接続される。図9に示すように、この実施形態の方法は、具体的には、以下のステップを含む。
S510．現在の拡張Switchは、コントローラおよび／または主Switchおよび／または別の拡張Switchによって送信されたマッピング情報を受信し、マッピング情報は、物理Switchと論理Switchの複数のフローテーブル内の各フローテーブルとの間のマッピング関係を含む。
【０１５５】
S520．現在の拡張Switchは、現在の拡張Switchに対応し、かつコントローラおよび／または主Switchおよび／または別の拡張Switchによって送信されたフローエントリを受信し、現在の拡張Switchによって受信されたフローエントリは、コントローラによって現在の拡張Switchに割り当てられたフローテーブルセット内の各フローテーブルのコンテンツ情報である。
【０１５６】
この実施形態は、第1の拡張Switchまたは第2の拡張Switchによって実行することができる。拡張Switchがコントローラによって送信されたマッピング情報およびフローエントリを受信する方法は、前述の実施形態と同様である。すなわち、現在の拡張Switchによって受信されたマッピング情報および／またはフローエントリは、コントローラによって直接送信されてもよいし、あるいは主Switchによって転送されてもよいし、あるいは別の拡張Switchによって転送されてもよいし、あるいは前述の複数の方法の組み合わせが使用されてもよい。コントローラが複数のフローテーブル内の各フローテーブルを共有するための異なる物理Switchに割り当てる場合に、論理Switchの複数のフローテーブル内の第1のフローテーブルtable0が必ず主Switchに割り当てられることに留意されたい。したがって、拡張Switchが受信したマッピング情報では、論理Switchの複数のフローテーブルのtable0は、具体的には主Switchに対応する。この実施形態では、マッピング情報およびフローエントリの配信方法は、前述の実施形態と同様であり、各物理Switchとコントローラとの間の接続関係に関係する。この実施形態における各物理Switchとコントローラとの間の接続関係については、図3を参照することができるので、ここでは詳細な説明は省略する。
【０１５７】
S530．現在の拡張Switchは、フローエントリにしたがって、あるいはフローエントリおよびマッピング情報にしたがって、受信した第1のカプセル化データパケットを処理し、第1のカプセル化パケットは、物理Switchによって受信されたデータパケットおよびデータパケットを処理するための関連情報をカプセル化することによって、前のフローテーブルがある物理Switchによって生成される。
【０１５８】
この実施形態では、コントローラによって送信されたマッピング情報およびフローエントリを取得した後に、現在の拡張Switchは、具体的には、受信した第1のカプセル化パケットを処理する。現在の拡張Switchが受信した第1のカプセル化パケットは、具体的には、前のフローテーブルがある物理Switchがパイプライン環境保護を実行した後に生成されるので、現在の拡張Switchが第1のカプセル化パケットを受信した後の処理方法は、一般的には、そのパケットをカプセル化パケット内の次のフローテーブルのIDに対応する物理Switchに直接転送すること、または第1のカプセル化パケットに対してパイプライン環境回復を実行してデータパケットを取得することを含む。これは、図7および図8に示す実施形態における主Switchによるデータパケットの処理方法とは異なる。この実施形態の具体的な実施態様を図10に示す。図10は、本発明の実施形態によるさらに別のスイッチ処理方法のフローチャートである。図9に示す実施形態に基づいて、ステップS520の後に、方法は具体的には以下のステップを含む。
S530．現在の拡張Switchは、第1のカプセル化パケットを受信する。
【０１５９】
S540．現在の拡張Switchは、第1のカプセル化パケット内の次のフローテーブルのIDが現在の拡張Switchにあるかどうかを判断し、そうでない場合にはステップS550を実行し、そうである場合にはステップS560を実行する。
【０１６０】
S550．現在の拡張Switchは、マッピング情報にしたがって、第1のカプセル化パケットを次のフローテーブルのIDに対応する物理Switchに転送する。
【０１６１】
S560．現在の拡張Switchは、データパケットを取得するために、第1のカプセル化パケットに対してパイプライン環境回復を実行する。
【０１６２】
この実施形態では、現在の拡張Switchは、第1のカプセル化パケットを受信して処理する場合に、第1のカプセル化パケット内の次のフローテーブルのIDにしたがって、第1のカプセル化パケットを処理する方法を判断する。現在の拡張Switchがパイプライン環境回復を実行する場合に、現在の拡張Switchによってパイプライン環境回復を制御することができる。すなわち、ステップS560は、具体的には、現在の拡張Switchは、解析された情報を取得するために、受信した第1のカプセル化パケットを解析し、解析された情報は、データパケットおよびデータパケットを処理するための関連情報を含み、データパケットを処理するための関連情報は、少なくとも次のフローテーブルのIDを含み、さらに任意選択的に任意の次の情報、すなわち、Ingress port、Action set、およびMetadataを含む。さらに、現在の拡張Switchは、解析された情報にしたがって、パイプライン環境回復を実行し、データパケットを次のフローテーブルに導いて処理を続行する。データパケットを次のフローテーブルへ導く方法は、上記の実施形態と同様なので、ここではさらなる説明を省略する。
【０１６３】
任意選択的に、この実施形態の別の可能な実施態様では、パイプライン環境回復はまた、コントローラによって制御され、コントローラによって具体的に判断され、スイッチは対応する命令を直接実行するだけでよい。特定の実施では、現在の拡張Switchによって受信されたフローエントリは、パイプライン回復を実行するために使用され、かつコントローラによって送信されるフローエントリを含む。これに対応して、図10に示す前述の方法に基づいて、ステップS560は以下を含む。
S561．現在の拡張Switchは、パイプライン回復を実行するために使用されるフローエントリを、現在の拡張Switchの第1のフローテーブルtable0’に追加する。
【０１６４】
S562．現在の拡張Switchは、table0’に追加されたフローエントリを用いて第1のカプセル化パケットに対してパイプライン環境回復を実行する。
【０１６５】
この実施形態では、第1のカプセル化パケットは、次のフローテーブルのIDを含み、パイプライン回復を実行するために使用されるフローエントリは、マッチング部分および実行可能命令を含み、実行可能命令は、フローテーブル回復命令および／またはテーブルジャンプ命令を含み、ステップS562は、具体的には以下を含む。現在の拡張Switchは、table0’のフローエントリを使用して第1のカプセル化パケットとマッチングし、table0’のフローエントリが正常にマッチングした場合には、マッチング結果にしたがってマッチングしたフローエントリのフローテーブルリカバリ命令および／またはフローテーブルジャンプ命令を順番に実行する。
【０１６６】
さらに、パイプライン環境回復を実行した後に、現在の拡張Switchは取得したデータパケットを処理し続けることができる。データパケットを処理する方法は、前述の実施形態と同様である。同様に、マッピング情報を参照して、データパケットを処理するための次のフローテーブルの位置を判断することができ、処理方法が判断される。具体的には、図10に示す前述の実施形態に基づいて、方法は、現在の拡張Switchがデータパケットを取得した場合に、現在の拡張Switchが、現在のフローテーブルを用いてデータパケットを処理し、次のフローテーブルの位置を判断することをさらに含む。一方で、次のフローテーブルが現在の拡張Switchにある場合には、現在の拡張Switchのフローテーブルを使用することによって依然として処理が実行される。すなわち、現在の拡張Switchは、データパケットを次のフローテーブルに直接導いて処理を続行することができる。他方で、現在の拡張Switchが、別の拡張Switchがデータパケットを処理し続ける必要があると判断した場合には、現在の拡張Switchは、第2のカプセル化パケットを生成するために複数のフローテーブルに対してパイプライン環境保護を実行する必要があり、生成した第2のカプセル化パケットを次のフローテーブルに対応する拡張Switchに送信する。この実施形態によって提供される方法は、具体的には、現在の拡張Switchによって制御されるパイプライン環境保護であり、具体的には、現在の拡張Switchによって判断され、開始され、実行される。フローエントリを配信する場合に、コントローラは、各フローテーブルが同じ物理Switchに配置されているかどうかを考慮する必要はない。
【０１６７】
任意選択的に、前述の実施形態と同様に、任意選択的に、この実施形態の別の可能な実施態様では、パイプライン環境保護は、コントローラによって制御され、コントローラによって判断され、現在の拡張Switchは、対応する命令を直接実行するだけでよい。図10に示す前述の方法に基づいて、方法は、現在の拡張Switchが、フローテーブルジャンプ命令またはSwitch転送命令を含み、かつコントローラによって送信されたフローエントリを受信することをさらに含み、フローエントリ内の次のフローテーブルが現在の拡張Switchにあるかどうかにしたがって、フローエントリ内のフローテーブルジャンプ命令またはSwitch転送命令がコントローラによって判断され、そうである場合には、フローエントリはフローテーブルジャンプ命令を含み、そうでない場合には、フローエントリは、Switch転送命令を含む。これに対応して、ステップS560の後に、方法はさらに以下を含む。現在の拡張Switchが第1のカプセル化パケット内のデータパケットを取得し、データパケットにマッチングするフローエントリがフローテーブルジャンプ命令を含む場合には、データパケットを次のフローテーブルに導いて処理を続行し、あるいは、現在の拡張Switchが第1のカプセル化パケット内のデータパケットを取得し、データパケットにマッチングするフローエントリがSwitch転送命令を含む場合には、第2のカプセル化パケットを生成するためにパイプライン環境保護を開始し、第2のカプセル化パケットを次のフローテーブルに対応する拡張Switchに送信する。この実施形態では、コントローラがフローエントリを送信し、次のフローテーブルの位置を判断する方法、およびコントローラがたとえば「Goto＿table」タイプの命令をフローエントリに追加する場合の後続の処理方法は、前述の実施形態と同様なので、ここではこれ以上説明しない。
【０１６８】
なお、この実施形態が提供する方法は、現在の拡張Switchを含む論理Switchとコントローラによって実行されるので、現在の拡張Switchがカプセル化パケットを受信する場合、あるいは取得したデータパケットを別の拡張Switchに転送する場合には、現在の拡張Switchは、同じ論理Switchの物理Switch間でデータパケットのシームレスなパイプライン処理を実現するために、パイプライン環境保護と回復を開始する必要がある。これは、従来技術における固定された物理Switchのみによる実行方法とは異なる。この実施形態が提供するスイッチ処理方法は、前述した実施形態と同じ効果を有するので、ここでのさらなる説明は省略する。
【０１６９】
実施形態6
図11A、図11B、および図11Cは、本発明の実施形態6によるスイッチ処理方法のフローチャートである。この実施形態が提供するスイッチ処理方法は、コントローラおよび論理Switchによって実行される。前述の実施形態と同様に、論理Switchは、少なくとも複数の物理Switchを含み、複数の物理Switchは、主Switchおよび拡張Switchを含む。たとえば、第1の拡張Switchおよび第2の拡張Switchを含む複数のこのような拡張Switchが存在してもよい。コントローラは少なくとも主Switchに接続され、主Switchは少なくとも第1の拡張Switchに接続され、第2の拡張Switchは少なくとも第1の拡張Switchに接続される。図11A、図11Bおよび図11Cに示すように、この実施形態の方法は、具体的には、以下のステップを含む。
S601．コントローラは、論理Switchの複数のフローテーブルの各フローテーブルを各物理Switchに割り当て、ここで複数のフローテーブルは論理Switchのパイプラインである。
【０１７０】
S602．コントローラは、マッピング情報およびフローエントリを送信し、マッピング情報は、複数のフローテーブル内の各物理Switchと各フローテーブルとの間のマッピング関係を含み、フローエントリは、コントローラによって各物理Switchに割り当てられたフローテーブルセット内の各フローテーブルのコンテンツ情報である。
【０１７１】
この実施形態では、主Switchによって受信されたフローエントリは、主Switchに対応するフローエントリのみを含、各物理Switchに対応するフローエントリをさらに含むことができる。この場合には、この実施形態によって提供される方法は、次のS603をさらに含む。主Switchは、主Switchに接続された拡張Switchに、コントローラによって割り当てられたマッピング情報とフローエントリを転送する。このステップは任意であり、具体的には、各物理Switchとコントローラとの間の接続方法に関連することに留意されたい。
【０１７２】
この実施形態では、現在の拡張Switchによってマッピング情報およびフローエントリを受信する方法は、前述の送信方法に対応する。現在の拡張Switchによって受信されたマッピング情報およびフローエントリは、コントローラによって直接送信されてもよいし、あるいは主Switchによって転送されてもよいし、あるいは別の拡張Switchによって転送されてもよいし、あるいは前述の複数の方法の組み合わせが使用されてもよい。
【０１７３】
コントローラが複数のフローテーブル内の各フローテーブルを共有するための異なる物理Switchに割り当てる場合に、論理Switchの複数のフローテーブル内の第1のフローテーブルtable0が必ず主Switchに割り当てられることに留意されたい。この実施形態では、マッピング情報およびフローエントリの配信方法は、前述の実施形態と同様であり、各物理Switchとコントローラとの間の接続関係に関係する。この実施形態における各物理Switchとコントローラとの間の接続関係については、図3を参照することができるので、ここでは詳細な説明は省略する。さらに、コントローラによってマッピング情報およびフローエントリを送信すること、および各物理Switchによってマッピング情報とフローエントリを受信することは、一般的に別個に実行されることに留意されたい。図11A、図11B、および図11Cに示す実施形態のステップでは、マッピング情報およびフローエントリを送信し受信する実行主体のみが示されている。これは、マッピング情報とフローエントリが同時に送信または受信されることを意味しない。
この実施形態では、データパケットが受信された後の主Switchの処理方法は、具体的にはS604であってもよい。主Switchはデータパケットを受信し、主Switchが受信したデータパケットは、一般的に、Host、たとえば主Switchと相互にアクセスできるコンピュータによって送信される。
【０１７４】
S605．主Switchは、table0を使用してデータパケットを処理する。
【０１７５】
S606．主Switchは、マッピング情報にしたがって、次のフローテーブルが主Switchにあるかどうかを判断し、そうである場合には、ステップS607を実行し、そうでない場合には、ステップS608を実行する。
【０１７６】
S607．主Switchは、データパケットを次のフローテーブルに導いて処理を続行する。
【０１７７】
S608．主Switchは、第1のカプセル化パケットを生成するためにパイプライン環境保護を開始し、第1のカプセル化パケットを次のフローテーブルに対応する拡張Switchに送信する。
【０１７８】
ステップS605〜S608に記載された方法は、主Switchによって制御されるパイプライン環境保護である。
【０１７９】
この実施形態の別の可能な実施態様では、パイプライン環境保護はコントローラによって制御される。具体的には、主Switchによって受信されるフローエントリは、フローテーブルジャンプ命令またはSwitch転送命令を含む。これに対応して、前述のステップS605〜S608を以下のように置き換える。
【０１８０】
S609．主Switchに送信されるフローエントリにフローテーブルジャンプ命令が含まれている場合には、コントローラは、次のフローテーブルが主Switchにあるかどうかを判断し、そうである場合にはステップS610を実行し、そうでない場合にはステップS612を実行する。
【０１８１】
S610．コントローラは、フローテーブルジャンプ命令を含むフローエントリを主Switchに送信する。
【０１８２】
S611．これに対応して、主Switchは、データパケットを次のフローテーブルに導いて処理を続行する。
【０１８３】
S612．コントローラは、送信対象のフローエントリ内のフローテーブルジャンプ命令をSwitch転送命令に置き換える。
【０１８４】
S613．Switch転送命令を含むフローエントリを主Switchに送信する。
【０１８５】
S614．これに対応して、主Switchは、第1のカプセル化パケットを生成するためにパイプライン環境保護を開始する。
【０１８６】
S615．主Switchは、第1のカプセル化パケットを次のフローテーブルに対応する拡張Switchに送信する。
【０１８７】
この実施形態では、パイプライン環境保護を行った後に生成された第1のカプセル化パケットを主Switchが現在の拡張Switchに送信した後に、現在の拡張Switchが第1のカプセル化パケットを処理する。具体的には、この処理は以下のステップを含む。
【０１８８】
S616．現在の拡張Switchは、第1のカプセル化パケット内の次のフローテーブルのIDが現在の拡張Switchにあるかどうかを判断し、そうでない場合にはステップS617を実行し、そうである場合にはステップS618を実行する。
【０１８９】
S617．現在の拡張Switchは、マッピング情報にしたがって、第1のカプセル化パケットを次のフローテーブルのIDに対応する別の拡張Switchに転送する。
【０１９０】
S618．現在の拡張Switchは、データパケットを取得するために、第1のカプセル化パケットに対してパイプライン環境回復を実行する。
【０１９１】
この実施形態では、現在の拡張Switchは、第1のカプセル化パケットを受信して処理する場合に、第1のカプセル化パケット内の次のフローテーブルのIDにしたがって、第1のカプセル化パケットを処理する方法を判断する。現在の拡張Switchがパイプライン環境回復を実行する場合に、現在の拡張Switchによってパイプライン環境回復を制御することができる。すなわち、ステップS618は、次のように置き換えられる。現在の拡張Switchは、解析された情報を取得するために、受信した第1のカプセル化パケットを解析し、解析された情報は、データパケットおよびデータパケットを処理するための関連情報を含み、データパケットを処理するための関連情報は、少なくとも次のフローテーブルのIDを含み、さらに任意選択的に任意の次の情報、すなわち、Ingress port、Action set、およびMetadataを含む。
【０１９２】
任意選択的に、この実施形態の別の可能な実施態様では、パイプライン環境回復もコントローラによって制御されてもよい。特定の実施形態では、方法は、さらに、次のステップを含む。
S619．現在の拡張Switchは、パイプライン回復を実行するために使用され、かつコントローラによって送信されるフローエントリを受信する。S620．現在の拡張Switchは、パイプライン回復を実行するために使用されるフローエントリを、現在の拡張Switchの第1のフローテーブルtable0’に追加する。S621．現在の拡張Switchは、table0’に追加されたフローエントリを用いて第1のカプセル化パケットに対してパイプライン環境回復を実行する。
【０１９３】
この実施形態では、第1のカプセル化パケットは、次のフローテーブルのIDを含み、パイプライン回復を実行するために使用されるフローエントリは、マッチング部分および実行可能命令を含み、実行可能命令は、フローテーブル回復命令および／またはテーブルジャンプ命令を含み、ステップS621は、具体的には以下を含む。現在の拡張Switchは、table0’のフローエントリを使用して第1のカプセル化パケットとマッチングし、table0’のフローエントリが正常にマッチングした場合には、マッチング結果にしたがってマッチングしたフローエントリのフローテーブルリカバリ命令および／またはフローテーブルジャンプ命令を順番に実行する。
【０１９４】
さらに、パイプライン環境回復を実行した後に、現在の拡張Switchは取得したデータパケットを処理し続けることができる。データパケットを処理する方法は、前述の実施形態と同様である。同様に、マッピング情報を参照して、データパケットを処理するための次のフローテーブルの位置を判断することができ、処理方法が判断される。具体的には、この実施形態によって提供される方法は、さらに次のステップを含む。
S622．現在の拡張Switchは、データパケットを取得し、現在のフローテーブルを使用してデータパケットを処理する。
【０１９５】
S623．現在の拡張Switchは、マッピング情報にしたがって、データパケットを処理するための次のフローテーブルが現在の拡張Switchにあるかどうかを判断し、そうである場合にはステップS624を実行し、そうでない場合にはステップS625を実行する。
【０１９６】
S624．現在の拡張Switchは、データパケットを次のフローテーブルに導いて処理を続行する。
【０１９７】
S625．現在の拡張Switchは、第2のカプセル化パケットを生成するためにパイプライン環境保護を開始する。
【０１９８】
ステップS623〜S625に記載した方法は、現在の拡張Switchによって制御されるパイプライン環境保護の方法である。
【０１９９】
任意選択的に、前述の実施形態と同様に、この実施形態の別の可能な実施態様では、パイプライン環境保護はコントローラによって制御され、現在の拡張Switchによって受信されるフローエントリは、フローテーブルジャンプ命令またはSwitch転送命令を含む。特定の実施形態では、前述のステップS623〜S625を次のように置き換える。S626．送信対象のフローエントリがフローテーブルジャンプ命令を含む場合には、コントローラは、現在の物理Switchに次のフローテーブルがあるかどうかを判断し、そうである場合には、ステップS627を実行し、そうでない場合には、ステップS629を実行する。
【０２００】
S627．コントローラは、フローテーブルジャンプ命令を含むフローエントリを現在の拡張Switchに送信する。
【０２０１】
S628．これに対応して、現在の拡張Switchは、データパケットを次のフローテーブルに導いて処理を続行する。
【０２０２】
S629．コントローラは、送信対象のフローエントリ内のフローテーブルジャンプ命令をSwitch転送命令に置き換える。
【０２０３】
S630．コントローラは、Switch転送命令を含むフローエントリを現在の拡張Switchに送信する。
【０２０４】
これに対応して、この実施形態によって提供される方法は、さらに次のステップを含む。
S631．現在の拡張Switchは、第2のカプセル化パケットを生成するためにパイプライン環境保護を開始する。
【０２０５】
S632．現在の拡張Switchは、次のフローテーブルに対応する拡張Switchに第2のカプセル化パケットを送信して処理を続行する。
【０２０６】
この実施形態が提供する方法は、コントローラと、主Switchおよび拡張Switchを含む論理Switchとによって実行されるので、データパケットを処理して次のフローテーブルに導く場合に、データパケットの機密性のために、主Switchまたは現在の拡張Switchは、データパケットを別の物理Switchに転送する前にパイプライン環境保護を開始する必要があることに留意されたい。これは、従来技術における固定された物理Switchによる実行方法とは異なる。パイプライン環境保護を受けるカプセル化パケットを受信した後に、現在の拡張Switchは、データパケットを取得するためにパイプライン環境回復を開始する必要がある。同様に、現在の拡張Switchはまた、処理されたデータパケットを別の拡張Switchに転送する場合に、パイプライン環境保護を開始する必要がある。この実施形態が提供するスイッチ処理方法は、前述の実施形態のいずれか1つに記載の方法を含む。具体的な実施態様およびその有利な効果は、前述の実施形態と同様なので、ここではこれ以上説明しない。
【０２０７】
実施形態7
図12は、本発明の実施形態7によるスイッチ処理装置の概略構成図である。スイッチ処理装置は、図2または図3に示すスイッチ処理システムに適用され、具体的には、論理Switchに接続されたコントローラに配置される。図2または図3に示すように、論理Switchは、少なくとも2つの物理Switchを含む。コントローラに配置される装置は、具体的には、割り当てモジュール11および送信モジュール12を含む。
【０２０８】
割り当てモジュール11は、論理Switchの複数のフローテーブル内のフローテーブルを各物理Switchに割り当てるように構成され、複数のフローテーブルは論理Switchのパイプラインである。
【０２０９】
送信モジュール12は、各物理Switchがマッピング情報を取得するように、マッピング情報を送信するように構成され、マッピング情報は、物理Switchと複数のフローテーブル内の各フローテーブルとの間のマッピング関係を含む。
【０２１０】
送信モジュール12は、各物理Switchが各物理Switchに対応するフローエントリを取得し、フローエントリにしたがって、またはフローエントリおよびマッピング情報にしたがって、受信したデータパケットを処理するために、フローエントリを論理Switchに送信するようにさらに構成され、フローエントリは、各物理Switchにコントローラによって割り当てられたフローテーブルセット内の各フローテーブルのコンテンツ情報である。
【０２１１】
この実施形態では、コントローラに接続された論理Switchの物理Switchに主Switchと第1の拡張Switchが含まれている場合には、コントローラと論理Switch内の各物理Switchとの間の接続関係を図2に示す。この実施形態では、コントローラに接続された論理Switchの物理Switchに第2の拡張Switchがさらに含まれている場合には、コントローラと論理Switch内の各物理Switchとの間の接続関係を図3に示す。コントローラによるマッピング情報およびフローエントリの送信方法は、複数の送信方法および使用される様々な送信方法の組み合わせを含み、前述の実施形態と同じである。
【０２１２】
図2および図3に示すスイッチ処理システムでは、主Switchは、ネットワーク上で判断され、コントローラに接続されたスイッチであることに留意されたい。さらに、割り当てモジュール11によって主Switchに割り当てられたフローテーブルは、少なくとも、論理Switchの複数のフローテーブル内の第1のフローテーブルtable0を含み、主Switchがデータパケットを受信した場合に、主Switchがtable0を用いてデータパケットを最初に処理する。他の物理Switchは、主Switchとの接続関係、および上位レベルと下位レベルの物理Switch間の接続関係に基づいて、マッピング情報とフローエントリを受信して転送する。
【０２１３】
本発明のこの実施形態が提供するスイッチ処理装置は、本発明の図1に示す実施形態が提供するスイッチ処理方法を実行するために用いられ、対応する機能モジュールを有する。実施原理およびその技術的効果は同様であり、ここではこれ以上説明しない。
【０２１４】
任意選択的に、送信モジュール12が論理Switchにフローエントリを送信するようにさらに構成されるということは、具体的には、フローエントリを論理Switchに送信し、これにより、現在の物理Switchがデータパケットを受信した場合に、現在の物理Switchは、現在のフローテーブルを使用してデータパケットを処理し、送信モジュール12によって送信されたマッピング情報にしたがって次のフローテーブルの位置を判断し、判断された次のフローテーブルが現在の物理Switchにある場合には、データパケットを次のフローテーブルに導いて処理を続行するか、または、判断された次のフローテーブルが別の物理Switchにある場合には、カプセル化パケットを生成するためにパイプライン環境保護を開始し、カプセル化パケットを次のフローテーブルに対応する物理Switchに送信する、ことを含む。この実施形態が提供するスイッチ処理装置がパイプライン環境保護を実行する場合には、パイプライン環境保護はスイッチによって判断され、開始され、実行される。フローエントリを配信する場合に、コントローラは、各フローテーブルが同じ物理Switchに配置されているかどうかを考慮する必要はない。
【０２１５】
本発明のこの実施形態が提供するスイッチ処理装置は、本発明の図5に示す実施形態が提供するスイッチ処理方法を実行するために用いられ、対応する機能モジュールを有する。実施原理およびその技術的効果は同様であり、ここではこれ以上説明しない。
【０２１６】
図13に示すように、この実施形態の別の可能な実施態様では、図13は、本発明の一実施形態による別のスイッチ処理装置の構成フローチャートである。具体的には、パイプライン環境保護はコントローラによって制御され、コントローラによって判断され、スイッチは対応する命令を直接実行するだけでよい。図12に示す前述の装置の構成に基づいて、送信モジュール12は、送信対象のフローエントリがフローテーブルジャンプ命令を含む場合に、次のフローテーブルが現在の物理Switchにあるかどうかを判断するように構成される判断部13と、
実行部14と、を含み、実行部14は、判断部13が、次のフローテーブルが現在の物理Switchにあると判断した場合には、フローテーブルジャンプ命令を含むフローエントリを現在の物理Switchに送信して、現在の物理Switchがデータパケットを次のフローテーブルに導いて、処理を続行するように構成され、あるいは、
実行部14は、判断部が、次のフローテーブルが別の物理Switchにあると判断した場合には、送信対象のフローエントリ内のフローテーブルジャンプ命令をSwitch転送命令で置き換えて、現在の物理Switchがカプセル化パケットを生成するためにパイプライン環境保護を開始し、かつカプセル化パケットを次のフローテーブルに対応する物理Switchに送信するように、Switch転送命令を含むフローエントリを現在の物理Switchに送信するように構成される。
【０２１７】
前述の実施形態では、パイプライン環境保護を開始する際の制御方法は異なるが、現在の物理Switchによるパイプライン環境保護の方法は同じである。具体的には、現在の物理Switchは、データパケットおよびデータパケットを処理するための関連情報をカプセル化パケットにカプセル化し、データパケットを処理するための関連情報は、少なくとも次のフローテーブルのIDを含み、さらに任意選択的に任意の次の情報、すなわち、Ingress port、Action set、およびMetadataを含む。
【０２１８】
さらに、現在の物理Switchは、パイプライン環境保護を実行した後に、パイプライン環境保護を実行して生成したカプセル化パケットを次のフローテーブルに対応する物理Switchに送信する。これに対応して、次のフローテーブルに対応する物理Switchは、データパケットを取得するためにパイプライン環境回復を実行する必要がある。この実施形態が提供する装置では、パイプライン環境回復は、次のフローテーブルに対応する物理Switchによって制御される。具体的には、物理Switchは、受信したカプセル化パケットを解析して、解析した情報を取得し、解析した情報はデータパケットおよびデータパケットを処理するための関連情報を含み、そのようにして、物理Switchは、解析した情報にしたがってパイプライン環境回復を実行し、解析によって取得したデータパケットを次のフローテーブルに導いて処理を続行する。次のフローテーブルへ導く方法は、上記の実施形態と同様なので、ここではさらなる説明を省略する。
【０２１９】
任意選択的に、この実施形態の別の可能な実施態様では、パイプライン環境回復は、コントローラによって制御されてもよい。具体的には、拡張Switchに対応し、かつ送信モジュール12によって送信されたフローエントリは、パイプライン回復を実行するために使用されるフローエントリを含み、送信モジュール12は、パイプライン回復を実行するために用いられるフローエントリを拡張Switchに送信するようにさらに構成され、これにより、拡張Switchが、拡張Switchの第1のフローテーブルtable0’にフローエントリを追加し、カプセル化パケットが受信された場合に、table0’に追加されたフローエントリを使用してパイプライン環境回復を実行する。一般に、送信モジュール12は、事前にフローエントリを送信することに留意されたい。この実施形態は、送信モジュール12が、Switch転送命令を含むフローエントリおよびパイプライン回復を実行するために使用されるフローエントリを送信するシーケンスを限定するものではない。
【０２２０】
この実施形態では、拡張Switchは、パイプライン環境回復を行うために使用され、かつコントローラによって送信された受信したフローエントリを使用してパイプライン環境回復を実行し、パイプライン回復を実行するために使用され、かつ送信モジュール12によって送信されるフローエントリは、マッチング部分および実行可能命令を含むことができる。カプセル化パケット内の次のフローテーブルのIDは、具体的には、フローエントリのマッチング部分のマッチングオブジェクトとして使用され、実行可能命令は、フローテーブル回復命令および／またはフローテーブルジャンプ命令を含むことができる。パイプライン環境回復の特定のプロセスは、拡張Switchが、拡張Switchによって受信されたカプセル化パケットをtable0’のフローエントリを使用してマッチングし、次のフローテーブルのIDがtable0’のフローエントリとマッチングする場合には、マッチング結果にしたがってマッチングしたフローエントリのフローテーブル回復命令および／またはフローテーブルジャンプ命令を順番に実行する。
【０２２１】
本発明のこの実施形態が提供するスイッチ処理装置は、本発明の図6に示す実施形態が提供するスイッチ処理方法を実行するために用いられ、対応する機能モジュールを有する。実施原理およびその技術的効果は同様であり、ここではこれ以上説明しない。
【０２２２】
実施形態8
図14は、本発明の実施形態8によるスイッチ処理装置の概略構成図である。スイッチ処理装置は、図2または図3に示すスイッチ処理システムに適用され、具体的には、コントローラに接続された論理Switchの物理Switchに配置される。図2または図3に示すように、論理Switchは、少なくとも2つの物理Switchを含み、少なくとも2つの物理Switchは、主Switchおよび拡張Switchを含む。コントローラは、少なくとも主Switchに接続され、スイッチ処理装置は、具体的には、主Switchに配置される。主Switchに配置される装置は、具体的には、受信モジュール21および処理モジュール22を含む。
【０２２３】
受信モジュール21は、コントローラによって送信されたマッピング情報を受信するように構成され、マッピング情報は、物理Switchと論理Switchの複数のフローテーブルの各フローテーブルとの間のマッピング関係を含む。
【０２２４】
受信モジュール21は、コントローラによって送信されたフローエントリを受信するようにさらに構成され、受信モジュール21によって受信されたフローエントリは、コントローラによって主Switchに割り当てられた、またはコントローラによって主Switchおよび拡張Switchに割り当てられたフローテーブルセット内の各フローテーブルのコンテンツ情報である。
【０２２５】
処理モジュール22は、受信モジュール21によって受信されたフローエントリにしたがって、あるいは受信モジュール21によって受信されたフローエントリおよびマッピング情報にしたがって、主Switchによって受信されたデータパケットを処理するように構成される。
【０２２６】
この実施形態では、コントローラが複数のフローテーブル内の各フローテーブルを共有するための異なる物理Switchに割り当てる場合に、論理Switchの複数のフローテーブル内の第1のフローテーブルtable0が必ず主Switchに割り当てられる。処理モジュール22は、具体的には、受信モジュール21によって受信されたフローエントリにしたがって、あるいは受信モジュール21によって受信されたフローエントリおよびマッピング情報にしたがって、受信したデータパケットをtable0を用いて処理するように構成される。上述した実施形態と同様に、この実施形態の拡張Switchはまた、第1の拡張Switchおよび第2の拡張Switchを含むことができる。主Switchは少なくとも第1の拡張Switchに接続され、第2の拡張Switchは少なくとも第1の拡張Switchに接続される。マッピング情報およびフローエントリの配信方法は、前述の実施形態と同様であり、各物理Switchとコントローラとの間の接続関係に関係する。この実施形態における各物理Switchとコントローラとの間の接続関係については、図2および図3を参照することができるので、ここでは詳細な説明は省略する。この実施形態では、主Switchによって受信されたデータパケットは、外部ノード、たとえば、主Switchとの相互アクセスを行うことができるコンピュータによって一般に送信されてもよいことに留意されたい。
【０２２７】
本発明のこの実施形態が提供するスイッチ処理装置は、本発明の図7に示す実施形態が提供するスイッチ処理方法を実行するために用いられ、対応する機能モジュールを有する。実施原理およびその技術的効果は同様であり、ここではこれ以上説明しない。
【０２２８】
図15は、本発明の実施形態によるさらに別のスイッチ処理装置の概略構成図である。処理モジュール22は、図14に示すスイッチ処理装置の構成に基づいて、データパケットを受信した場合にデータパケットを処理するように構成された処理部23と、受信モジュール21によって受信されたマッピング情報にしたがって次のフローテーブルの位置を判断するように構成された判断部24と、を含む。処理部23は、次のフローテーブルが主Switchにあると判断部24が判断した場合には、データパケットを次のフローテーブルに導いて処理を続行するようにさらに構成されるか、あるいは、処理部23は、次のフローテーブルが拡張Switchにあると判断部24が判断した場合には、カプセル化パケットを生成するためにパイプライン環境保護を開始し、カプセル化パケットを、次のフローテーブルに対応する拡張Switchに送信するようにさらに構成される。図15に示す実施形態は、主Switchによって制御されるパイプライン環境保護であり、具体的には、主Switchによって判断され、開始され、実行される。フローエントリを配信する場合に、コントローラは、各フローテーブルが同じ物理Switchに配置されているかどうかを考慮する必要はない。
【０２２９】
本発明のこの実施形態が提供するスイッチ処理装置は、本発明の図8に示す実施形態が提供するスイッチ処理方法を実行するために用いられ、対応する機能モジュールを有する。実施原理およびその技術的効果は同様であり、ここではこれ以上説明しない。
【０２３０】
任意選択的に、本発明の別の可能な実施態様では、パイプライン環境保護は、コントローラによって制御され、コントローラによって具体的に判断されてもよい。主Switchは、対応する命令を直接実行すればよく、図14に示す装置がその命令を実行することができる。受信モジュール21がコントローラによって送信されたフローエントリを受信するようにさらに構成されるということは、フローテーブルジャンプ命令またはSwitch転送命令を含み、かつコントローラによって送信されたフローエントリを受信することを含み、フローエントリ内の次のフローテーブルが主Switchにあるかどうかにしたがって、フローエントリ内のフローテーブルジャンプ命令またはSwitch転送命令がコントローラによって判断され、そうである場合には、フローエントリはフローテーブルジャンプ命令を含み、そうでない場合には、フローエントリは、Switch転送命令を含み、処理モジュール22は、具体的には、受信したデータパケットにマッチングするフローエントリがフローテーブルジャンプ命令を含む場合には、データパケットを次のフローテーブルに導いて処理を続行するように構成され、あるいは、処理モジュール22は、具体的には、受信したデータパケットにマッチングするフローエントリがSwitch転送命令を含む場合には、カプセル化パケットを生成するためにパイプライン環境保護を開始し、カプセル化パケットを次のフローテーブルに対応する拡張Switchに送信するように構成される。
【０２３１】
この実施形態の特定の実施では、処理モジュール22がパイプライン環境保護を開始するということは、データパケットおよびデータパケットを処理するための関連情報を、カプセル化パケット内に、カプセル化することを含み、データパケットを処理するための関連情報は、少なくとも次のフローテーブルのIDを含み、任意選択的に、任意の次の情報、すなわち、Ingress port、Action set、およびMetadataをさらに含む。
【０２３２】
さらに、処理モジュール22は、パイプライン環境保護を実行した後に、パイプライン環境保護を実行して生成したカプセル化パケットを次のフローテーブルに対応する拡張Switchに送信する。これに対応して、拡張Switchは、データパケットを取得するためにパイプライン環境回復を実行する必要がある。この実施形態が提供するスイッチ処理装置がパイプライン環境回復を実行する場合には、パイプライン環境回復は拡張Switchによって制御される。具体的には、拡張Switchは、受信したカプセル化パケットを解析して、解析された情報を取得し、解析された情報は、データパケットおよびデータパケットを処理するための関連情報を含む。データパケットを処理するための関連情報はまた、次のフローテーブルのIDを含み、さらに任意選択的に任意の次の情報、すなわち、Ingress port、Action set、およびMetadataを含み、そのようにして、拡張Switchは、解析された情報にしたがってパイプライン環境の回復を実行し、解析して得られたデータパケットを次のフローテーブルに導いて処理を続行する。データパケットを次のフローテーブルへ導く方法は、上記の実施形態と同様なので、ここではさらなる説明を省略する。同様に、パイプライン環境回復は、コントローラの制御下でさらに実施することができる。具体的な実施態様は、前述の実施形態と同様である。この実施形態が提供するスイッチ処理装置は、具体的には主Switchに配置され、主Switchによる処理は、パイプライン環境回復を伴わないので、ここでは詳細な説明は省略する。
【０２３３】
実施形態9
図16は、本発明の実施形態9によるスイッチ処理装置の概略構成図である。スイッチ処理装置は、図3に示すスイッチ処理システムに適用され、具体的には、コントローラに接続された論理Switchの物理Switchに配置される。図2および図3に示すように、論理Switchは複数の物理Switchを含み、複数の物理Switchは主Switchおよび拡張Switchを含み、拡張Switchは第1の拡張Switchおよび第2の拡張Switchを含む。コントローラは少なくとも主Switchに接続され、主Switchは少なくとも第1の拡張Switchに接続され、第2の拡張Switchは少なくとも第1の拡張Switchに接続される。スイッチ処理装置は、具体的には、拡張Switchに配置される。拡張Switchに配置される装置は、具体的には、受信モジュール31および処理モジュール32を含む。
【０２３４】
受信モジュール31は、コントローラおよび／または主Switchおよび／または別の拡張Switchによって送信されたマッピング情報を受信するように構成され、マッピング情報は、物理Switchと論理Switchの複数のフローテーブル内の各フローテーブルとの間のマッピング関係を含む。
【０２３５】
受信モジュール31は、現在の拡張Switchによって、現在の拡張Switchに対応し、かつコントローラおよび／または主Switchおよび／または別の拡張Switchによって送信されたフローエントリを受信するようにさらに構成され、受信モジュール31によって受信されたフローエントリは、コントローラによって現在の拡張Switchに割り当てられたフローテーブルセット内の各フローテーブルのコンテンツ情報である。
【０２３６】
処理モジュール32は、受信モジュール31によって受信されたフローエントリにしたがって、あるいは受信モジュール31によって受信されたフローエントリおよびマッピング情報にしたがって、現在の拡張Switchによって受信された第1のカプセル化パケットを処理するように構成され、第1のカプセル化パケットは、物理Switchによって受信されたデータパケットおよびデータパケットを処理するための関連情報をカプセル化することによって、前のフローテーブルがある物理Switchによって生成される。
【０２３７】
この実施形態は、第1の拡張Switchまたは第2の拡張Switchによって実行することができる。拡張Switchがコントローラによって送信されたマッピング情報およびフローエントリを受信する方法は、前述の実施形態と同様である。すなわち、現在の拡張Switchによって受信されたマッピング情報および／またはフローエントリは、コントローラによって直接送信されてもよいし、あるいは主Switchによって転送されてもよいし、あるいは別の拡張Switchによって転送されてもよいし、あるいは前述の複数の方法の組み合わせが使用されてもよい。コントローラが複数のフローテーブル内の各フローテーブルを共有するための異なる物理Switchに割り当てる場合に、論理Switchの複数のフローテーブル内の第1のフローテーブルtable0が必ず主Switchに割り当てられることに留意されたい。したがって、受信モジュール31が受信したマッピング情報では、論理Switchの複数のフローテーブルのtable0は、具体的には主Switchに対応する。この実施形態では、マッピング情報およびフローエントリの配信方法は、前述の実施形態と同様であり、各物理Switchとコントローラとの間の接続関係に関係する。この実施形態における各物理Switchとコントローラとの間の接続関係については、図3を参照することができるので、ここでは詳細な説明は省略する。
【０２３８】
本発明のこの実施形態が提供するスイッチ処理装置は、本発明の図9に示す実施形態が提供するスイッチ処理方法を実行するために用いられ、対応する機能モジュールを有する。実施原理およびその技術的効果は同様であり、ここではこれ以上説明しない。
【０２３９】
この実施形態では、受信モジュール31は、現在の拡張Switchに対応するフローエントリを受信した後に、第1のカプセル化パケットを受信するようにさらに構成され、処理モジュール32は、具体的には、受信モジュール31によって受信された第1のカプセル化パケット内の次のフローテーブルの番号IDが別の物理Switchにあると判断した場合に、受信モジュール31によって受信されたマッピング情報にしたがって、受信モジュール31によって受信された第1のカプセル化パケットを次のフローテーブルのIDに対応する物理Switchに転送するように構成され、あるいは、処理モジュール32は、具体的には、受信モジュール31によって受信された第1のカプセル化パケットの次のフローテーブルのIDが現在の拡張Switchにあると判断した場合に、受信モジュール31によって受信された第1のカプセル化パケットに対してパイプライン環境回復を実行するように構成される。
【０２４０】
図17は、本発明の一実施形態によるさらに別のスイッチ処理装置の概略構成図である。この実施形態の特定の実施では、現在の拡張Switchの処理モジュール32がパイプライン環境回復を実行する場合には、パイプライン環境回復は、現在の拡張Switchによって制御され得る。この場合には、処理モジュール32は、解析された情報を取得するために、受信モジュール31によって受信された第1のカプセル化パケットを解析するように構成された解析部33であって、解析された情報は、データパケットおよびデータパケットを処理するための関連情報を含み、データパケットを処理するための関連情報は、少なくとも次のフローテーブルのIDを含み、任意選択的に、任意の次の情報、すなわち、Ingress port、Action set、Metadataをさらに含む、解析部33と、解析部33によって取得された解析された情報にしたがってパイプライン環境回復を実行し、データパケットを次のフローテーブルに導いて処理を続行するように構成された処理部34と、を含む。データパケットを次のフローテーブルへ導く方法は、上記の実施形態と同様なので、ここではさらなる説明を省略する。
【０２４１】
任意選択的に、この実施形態の別の可能な実施態様では、パイプライン環境回復はまた、コントローラによって制御され、コントローラによって具体的に判断され、スイッチは対応する命令を直接実行するだけでよい。特定の実施形態では、現在の拡張Switchによって受信されたフローエントリは、パイプライン回復を実行するために使用され、かつコントローラによって送信されるフローエントリを含み、それに対応して、受信モジュール31によって受信されたフローエントリは、パイプライン回復を実行するために使用され、かつコントローラによって送信されるフローエントリを含む。この場合には、処理モジュール32は、現在の拡張Switchの第1のフローテーブルtable0’にパイプライン回復を実行するために使用されるフローエントリを追加するように構成された追加部と、table0’に追加されたフローエントリを使用して、受信モジュールによって受信された第1のカプセル化パケットに対してパイプライン環境回復を実行するように構成された処理部と、を含む。特定の実施形態では、受信モジュール31によって受信された第1のカプセル化パケットは、次のフローテーブルのIDを含み、パイプライン回復を実行するために使用され、かつ受信モジュール31によって受信されたフローエントリは、マッチング部分および実行可能命令を含み、実行可能命令は、フローテーブルリカバリ命令および／またはフローテーブルジャンプ命令を含み、処理部は、具体的には、受信モジュール31によって受信された第1のカプセル化パケットを、table0’内のフローエントリを使用してマッチングし、table0’内のフローエントリが正常にマッチングした場合には、マッチング結果にしたがってマッチングしたフローエントリのフローテーブル回復命令および／またはフローテーブルジャンプ命令を順番に実行するように構成される。
【０２４２】
さらに、パイプライン環境回復を実行した後に、現在の拡張Switchの処理モジュール32は、取得したデータパケットを処理し続けることができる。データパケットを処理する方法は、前述の実施形態と同様である。同様に、マッピング情報を参照して、データパケットを処理するための次のフローテーブルの位置を判断することができ、処理方法が判断される。具体的には、処理モジュール32は、図17に示す前述の実施形態に基づいて、受信モジュール31によって受信された第1のカプセル化パケットに対してパイプライン環境回復を実行した後に、データパケットを取得する場合に、現在のフローテーブルを用いてデータパケットを処理するようにさらに構成される。この場合には、装置は、マッピング情報にしたがって次のフローテーブルの位置を判断するように構成された判断モジュール35をさらに含み、処理モジュール32は、判断モジュール35が、次のフローテーブルが現在の拡張Switchにあると判断した場合には、データパケットを次のフローテーブルに導いて処理を続行するようにさらに構成されるか、あるいは、処理モジュール32は、判断モジュールが、次のフローテーブルが別の拡張Switchにあると判断した場合には、第2のカプセル化パケットを生成するためにパイプライン環境保護を開始し、第2のカプセル化パケットを次のフローテーブルに対応する拡張Switchに送信するようにさらに構成される。この実施形態によって提供される方法は、具体的には、現在の拡張Switchによって制御されるパイプライン環境保護であり、具体的には、現在の拡張Switchによって判断され、開始され、実行される。フローエントリを配信する場合に、コントローラは、各フローテーブルが同じ物理Switchに配置されているかどうかを考慮する必要はない。
【０２４３】
任意選択的に、前述の実施形態と同様に、任意選択的に、この実施形態の別の可能な実施態様では、パイプライン環境保護は、コントローラによって制御され、コントローラによって判断され、現在の拡張Switchは、対応する命令を直接実行するだけでよい。特定の実施態様は次の通りである。受信モジュール31は、フローテーブルジャンプ命令またはSwitch転送命令を含み、かつコントローラによって送信されたフローエントリを受信するようにさらに構成され、フローエントリ内の次のフローテーブルが現在の拡張Switchにあるかどうかにしたがって、フローエントリ内のフローテーブルジャンプ命令またはSwitch転送命令がコントローラによって判断され、そうである場合には、フローエントリはフローテーブルジャンプ命令を含み、そうでない場合には、フローエントリは、Switch転送命令を含む。この場合には、処理モジュール32は、受信モジュール31によって受信された第1のカプセル化パケットに対してパイプライン環境回復を実行した後に、第1のカプセル化パケット内のデータパケットを取得し、データパケットにマッチングするフローエントリがフローテーブルジャンプ命令を含む場合には、データパケットを次のフローテーブルに導いて処理を続行し、あるいは、第1のカプセル化パケット内のデータパケットを取得し、データパケットにマッチングするフローエントリがSwitch転送命令を含む場合には、第2のカプセル化パケットを生成するためにパイプライン環境保護を開始し、第2のカプセル化パケットを次のフローテーブルに対応する拡張Switchに送信するようにさらに構成される。
【０２４４】
前述の実施形態では、処理モジュール32によるパイプライン環境回復を開始する方法は同じであり、具体的には、データパケットおよびデータパケットを処理するための関連情報を第2のカプセル化パケットにカプセル化することを含み、データパケットを処理するための関連情報は、少なくとも次のフローテーブルのIDを含み、任意の次の情報、すなわち、Ingress port、an Action set、およびMetadataをさらに含む。
【０２４５】
本発明のこの実施形態が提供するスイッチ処理装置は、本発明の図10に示す実施形態が提供するスイッチ処理方法を実行するために用いられ、対応する機能モジュールを有する。実施原理およびその技術的効果は同様であり、ここではこれ以上説明しない。
【０２４６】
図18は、本発明の一実施形態によるコントローラの概略構成図である。コントローラは、図2または図3に示すスイッチ処理システムに適用され、具体的には、論理Switchに接続される。図2および図3に示すように、論理Switchは少なくとも2つの物理Switchを含み、物理Switchは主Switchおよび第1の拡張Switchを含む。コントローラは少なくとも第1の拡張Switchに接続され、第1の拡張Switchは少なくとも主Switchに接続される。図3に示すように、物理Switchは第2の拡張Switchをさらに含み、第2の拡張Switchは少なくとも第1の拡張Switchに接続される。図18に示すように、この実施形態のコントローラは、具体的には、プロセッサ41および送信器42を含む。この実施形態により提供されるコントローラによるマッピング情報およびフローエントリの送信方法、ならびに論理Switch内の各物理Switchとの接続方法は、前述の実施形態におけるものと同じであり、ここではこれ以上説明しない。
【０２４７】
この実施形態が提供するコントローラでは、プロセッサ41は、図12〜図13に示す実施形態におけるスイッチ処理装置の割り当てモジュール11の機能を実現するように構成され、送信器42は、図12〜図13に示す実施形態におけるスイッチ処理装置の送信モジュール12の機能を実現するように構成される。この実施形態が提供するコントローラは、図1、図5、および図6に示す実施形態が提供するスイッチ処理方法を実行するように構成され、対応する物理装置を有する。実施原理およびその技術的効果は同様であり、ここではこれ以上説明しない。
【０２４８】
図19は、本発明の一実施形態による主Switchの概略構成図である。主Switchは、図2または図3に示すスイッチ処理システムに適用され、コントローラに接続された論理Switchの物理Switchである。図2に示すように、論理Switchは少なくとも2つの物理Switchを含み、物理Switchは主Switchおよび第1の拡張Switchを含む。コントローラは少なくとも第1の拡張Switchに接続され、第1の拡張Switchは少なくとも主Switchに接続される。図3に示すように、物理Switchは第2の拡張Switchをさらに含み、第2の拡張Switchは少なくとも第1の拡張Switchに接続される。図19に示すように、この実施形態が提供する主Switchは、具体的には、受信器51およびプロセッサ52を含む。この実施形態が提供する主Switchによるマッピング情報およびフローエントリの受信および転送の方法、ならびに論理Switchの各拡張Switchおよびコントローラとの接続方法は、前述の実施形態と同じであり、ここではこれ以上説明しない。
【０２４９】
この実施形態が提供するコントローラでは、受信器51は、図14〜図15に示す実施形態におけるスイッチ処理装置の受信モジュール21の機能を実現するように構成され、プロセッサ52は、図14〜図15に示す実施形態におけるスイッチ処理装置の処理モジュール22の機能を実現するように構成される。この実施形態が提供する主Switchは、図7〜図8に示す実施形態が提供するスイッチ処理方法を実行するように構成され、対応する物理装置を有する。実施原理およびその技術的効果は同様であり、ここではこれ以上説明しない。
【０２５０】
図20は、本発明の一実施形態による拡張Switchの概略構成図である。拡張Switchは、図2または図3に示すスイッチ処理システムに適用され、コントローラに接続された論理Switchの物理Switchである。図2に示すように、論理Switchは少なくとも2つの物理Switchを含み、物理Switchは主Switchおよび第1の拡張Switchを含む。コントローラは少なくとも第1の拡張Switchに接続され、第1の拡張Switchは少なくとも主Switchに接続される。図3に示すように、物理Switchは第2の拡張Switchをさらに含み、第2の拡張Switchは少なくとも第1の拡張Switchに接続される。図20に示すように、この実施形態が提供する拡張Switchは、具体的には、受信器61およびプロセッサ62を含む。この実施形態が提供する拡張Switchによるマッピング情報およびフローエントリの受信および転送の方法、ならびに論理Switchの別の物理Switchおよびコントローラとの接続方法は、前述の実施形態と同じであり、ここではこれ以上説明しない。
【０２５１】
この実施形態が提供するコントローラでは、受信器61は、図16〜図17に示す実施形態におけるスイッチ処理装置の受信モジュール31の機能を実現するように構成され、プロセッサ62は、図16〜図17に示す実施形態におけるスイッチ処理装置の処理モジュール32の機能を実現するように構成される。この実施形態が提供する拡張Switchは、図9〜図10に示す実施形態が提供するスイッチ処理方法を実行するように構成され、対応する物理装置を有する。実施原理およびその技術的効果は同様であり、ここではこれ以上説明しない。
【０２５２】
図2および図3もまた、本発明の一実施形態によるスイッチ処理システムの概略構成図である。図2および図3に示すように、この実施形態が提供するスイッチ処理システムは、図18に示すコントローラと、図19に示す主Switchと、図20に示す拡張Switchと、を含む。この実施形態では、コントローラと主Switchと拡張Switchとの間の接続関係を図2および図3に示す。コントローラによるマッピング情報およびフローエントリを送信する方法、ならびに各物理Switchによるマッピング情報およびフローエントリを受信し転送する方法は、前述の実施形態と同じであり、ここではこれ以上説明しない。この実施形態が提供するスイッチ処理システムにおけるコントローラ、主Switch、および拡張Switchは、図1、および図5〜図11に示すスイッチ処理方法を実現するように構成され、対応する物理的構成要素を有する。実施原理およびその技術的効果は同様であり、ここではこれ以上説明しない。
【０２５３】
当業者であれば、簡潔かつ簡単な説明のために、前述の機能モジュールの分割は例示のための一例として示してあることは明らかである。実際の応用では、前述の機能は異なる機能モジュールに割り当てられ、必要に応じて実現することができる。すなわち、装置の内部構成は、上述した機能のすべてまたは一部を実現するために異なる機能モジュールに分割される。前述の装置の詳細な作動プロセスについては、前述の方法の実施形態における対応するプロセスを参照することができ、詳細はここでは説明しない。
【０２５４】
最後に、上記の実施形態は、本発明を限定するものではなく、本発明の技術的解決策を説明するためのものに過ぎないことに留意されたい。本発明について上記の実施形態を参照して詳細に説明したが、当業者であれば、本発明の実施形態の技術的解決策の範囲から逸脱することなく、上記の実施形態に記載された技術的解決策に改変を行い、あるいはその複数またはすべての技術的特徴に等価な置換を行うことができることを理解すべきである。
【符号の説明】
【０２５５】
11  割り当てモジュール
12  送信モジュール
13  判断部
14  実行部
21  受信モジュール
22  処理モジュール
23  処理部
24  判断部
31  受信モジュール
32  処理モジュール
33  解析部
34  処理部
35  判断モジュール
41  プロセッサ
42  送信器
51  受信器
52  プロセッサ
61  受信器
62  プロセッサ
【図１】
0006448785.tif 000002
【図２】
0006448785.tif 000003
【図３】
0006448785.tif 000004
【図４】
0006448785.tif 000005
【図５】
0006448785.tif 000006
【図６】
0006448785.tif 000007
【図７】
0006448785.tif 000008
【図８】
0006448785.tif 000009
【図９】
0006448785.tif 000010
【図１０】
0006448785.tif 000011
【図１１Ａ】
0006448785.tif 000012
【図１１Ｂ】
0006448785.tif 000013
【図１１Ｃ】
0006448785.tif 000014
【図１２】
0006448785.tif 000015
【図１３】
0006448785.tif 000016
【図１４】
0006448785.tif 000017
【図１５】
0006448785.tif 000018
【図１６】
0006448785.tif 000019
【図１７】
0006448785.tif 000020
【図１８】
0006448785.tif 000021
【図１９】
0006448785.tif 000022
【図２０】
0006448785.tif 000023