(57)【要約】  本発明は、一般にネットワーキングおよびコンピュータアーキテクチャの技術分野に関し、より詳細には、ソフトウェア定義ネットワーク(SDN)ボックスと、少なくとも1つの上流ノードと、複数の下流ノードとを含むシステムを構成する手法に関するものである。ノードはいくつかのグループに分割され得る。各グループに、単一の上流ノードと、少なくとも1つの下流ノードとがある。上流ノードと下流ノードの間のすべてのパケットはSDNボックスによって転送される。SDNボックスは「PCI-Eスイッチ」として働き、上流ノードを各下流ノードと相互接続して、カプセル化されたパケット(内部はPCI-Eパケットである)を転送する。全体の通信プロセスを通じて、上流ノードは下流ノードを通常のローカルPCI-Eデバイスとして扱う。
2017511532.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも1つの上流ノード、少なくとも1つの下流ノードおよびSDNボックスを含んでいるネットワークにわたる周辺装置相互接続エクスプレス(PCI-E)スイッチとしてソフトウェア定義ネットワーク(SDN)ボックスを用いる方法であって、
前記SDNボックスによって、前記ネットワークを介して、前記上流ノードと前記下流ノードを相互に接続するステップと、
前記上流ノードと前記下流ノードの一方の側においてPCI-Eパケットを送信するステップと、
前記PCI-Eパケットを特定のパケットヘッダとともにカプセル化するステップと、
前記SDNボックスによって、内部PCI-Eパケットとともに搬送されたトランザクションレイヤパケット(TLP)ルーティング識別子(ID)に基づいて、前記カプセル化されたパケットを前記ネットワークへ送信するステップと、
前記上流ノードと前記下流ノードの他方の側において、前記カプセル化されたパケットを受信するステップと、
受信したパケットから前記特定のパケットヘッダを除去するステップと、
前記受信したパケットを前記PCI-Eパケットへとデカプセル化するステップとを含む方法。
【請求項２】
前記上流ノードが、演算装置(CPU)、ネットワークインターフェースカード(NIC)およびカプセル化/デカプセル化モジュールを含み、
前記下流ノードが、I/Oデバイス、ネットワークインターフェースカード(NIC)およびカプセル化/デカプセル化モジュールを含む請求項1に記載の方法。
【請求項３】
前記上流ノードおよび前記下流ノードが、単一上流ノードおよび少なくとも1つの下流ノードを含む少なくとも1つのグループに属する請求項1に記載の方法。
【請求項４】
前記TLPルーティングIDが、アドレスルーティング、IDルーティングおよび暗示的ルーティングを含む、前記PCI-EにおけるTLPルーティング方法の前記識別子である請求項1に記載の方法。
【請求項５】
前記SDNボックスが、ソフトウェア定義(SD)スイッチおよび前記SDスイッチに対応するソフトウェア定義スイッチ(SDSW)コントローラのフォーマットとして実施され、前記SDスイッチがスレーブTLPルーティング表を含み、前記SDSWコントローラがマスタTLPルーティング表を含む請求項1に記載の方法。
【請求項６】
SDスイッチを用いて、前記上流ノードと前記下流ノードの一方からの前記受信したパケットをデカプセル化し、前記TLPルーティングIDを抽出し、前記TLPルーティングIDに基づいて前記スレーブTLPルーティング表を回復するステップであって、
前記TLPルーティング表の中に送付先アドレスが見つかった場合、前記パケットをパケットヘッダとともにカプセル化し、前記送付先アドレスを満たして送出し、
前記TLPルーティング表の中に送付先アドレスが見つからない場合、前記パケットをバッファリングして、前記SDSWコントローラに対してクエリを送出するステップと、
前記SDSWコントローラを用いて、前記SDスイッチからの前記クエリ要求を解析し、TLPルーティング情報を抽出し、前記TLPルーティング情報を新規の表項目として前記マスタTLPルーティング表に追加して、前記SDスイッチに、前記スレーブTLPルーティング表を更新するように通知するステップとを含む請求項5に記載の方法。
【請求項７】
前記SDスイッチと、前記SDスイッチに対応する前記SDSWコントローラとが、通信チャネルを用いて接続されており、それによってクエリおよび通知メッセージが転送され、前記通信チャネルが、イーサネットを含む遠隔通信チャネルまたはUNIXドメインソケットを含むローカル通信チャネルのいずれかである請求項5に記載の方法。
【請求項８】
PCI-Eパケットをカプセル化するステップにおいて、前記送付先アドレスが、前記SDNボックスによって認識され得る所定のフォーマットに保たれる請求項1において定義された方法。
【請求項９】
障害が生じたとき、前記SDNボックスのビルトイン通知が、前記SDスイッチおよび前記SDSWコントローラにおいてTLPルーティング表の変更を起動し、このことが前記下流ノードのハンドオーバを達成する請求項5に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にネットワーキングおよびコンピュータアーキテクチャの技術分野に関し、より詳細には、ソフトウェア定義ネットワーク(SDN)ボックス、上流ノードおよび下流ノードから成るシステムを構成する手法に関するものである。
【背景技術】
【０００２】
PCI-E(周辺装置相互接続エクスプレス)は、コンピュータシステムにおいて周辺デバイスを相互接続するのに用いられる第3世代の高性能I/Oバスである。PCI-Eは、PCIと称される前世代のI/Oバスと同一の用法モデルを採用する。PCI-Eは、メモリのリード/ライト、I/Oのリード/ライトおよびコンフィギュレーションのリード/ライトのトランザクションなどのよく知られているトランザクションをサポートする。既存のOSおよびデバイスドライバは、PCI-Eシステムにおいて変更なしで動作することができる(PCI-Eに関する詳細は、Ravi Budruk、Don Anderson、Tom Shanleyによる、Addison- Wesley Professional、2004年の「PCI Express system architecture」を参照されたい)。
【０００３】
サーバの中にそれほどスペースがないので、PCI-Eスロットの数は通常制限されている。上記の問題に取り組むためにExpEther(Express Ethernet、http://www.expether.org/を参照されたい)が提案されている。ExpEtherは、PCI-Eをイーサネットにわたって拡張する。PCI-Eパケットは、PCI-Eパケットの送り手側においてPCI-E-over-Ethernetパケットにカプセル化され、次いで、イーサネットスイッチによって転送されて、送付先へ転送されたときPCI-Eパケットへとデカプセル化（カプセル開放）される(特開(Japanese Unexamined Patent Application)公開公報(First Publication)第2007-219873A号を参照されたい)。
【０００４】
特定のタイプのパケットが、ExpEtherにおけるキープアライブメッセージとして働くようにブロードキャストされる。それに関連したタイムアウト値がある。タイムアウトが期限切れになり、依然として、そのような受信したキープアライブパケットがなければ、上流のノードが既に運転停止していると推断される。一旦、障害が検知されると、接続されている下流のノードは、できるだけ早く別の利用可能な上流のノードに移管されるべきである。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開2007-219873号公報
【非特許文献】
【０００６】
【非特許文献１】「PCI Express system architecture」、by Ravi Budruk、Don Anderson、Tom Shanley、Addison- Wesley Professional、2004年
【非特許文献２】Express Ethernet、http://www.expether.org/
【非特許文献３】OpenFlow、https://www.opennetworking.org/sdn-resources/onf-specifications/openflow
【発明の概要】
【発明が解決しようとする課題】
【０００７】
現在のExpEtherでは、高速の故障検知を達成するのは困難である。故障検知がより高速になればキープアライブパケットのタイムアウト値がより短くなるので、ブロードキャストのトラフィックがより多くなる。ブロードキャストのトラフィックがより多くなれば、ネットワークデバイスの処理量が増加する。
【０００８】
本発明は、上記の高速の障害検知およびExpEtherのハンドオーバの問題を解決するために提案されるものである。本発明は、PCI-E、イーサネットおよびSDNに基づくシステムを構成する方法を提供する。提案されるシステムは、上流ノード、下流ノードおよびSDNボックスから成るものである。
【課題を解決するための手段】
【０００９】
提案される本発明のシステムでは、上流ノードと下流ノードの両方にカプセル化/デカプセル化モジュールがある。上流ノード(CPU、メモリ、ハードディスクおよび様々なI/Oデバイスから成り得る)はコンピュータシステムとして作用し、下流ノードはPCI-Eデバイスとして作用し、これらはSDNボックスによって接続されている。上流ノードはPCI-Eパケットによって下流ノードにアクセスする。上流ノードと下流ノードの両方にとって、通信プロセスは以下の通りである。PCI-Eパケットを送信するときは、PCI-Eパケットを特定のパケットヘッダとともにカプセル化して、ネットワーク(たとえば、それだけではないがイーサネット)によって送信する。カプセル化されたパケットを受信するときは、特定のパケットヘッダを除去し、それをPCI-Eパケットへとデカプセル化する。SDNボックスは「PCI-Eスイッチ」として働き、特定のネットワークを介して上流ノードと下流ノードを相互接続して、カプセル化されたパケットを転送する。
【００１０】
提案される本発明のシステムでは、上流ノードが運転停止したとき、SDNボックスに対して通知が配送されることになる(SDNボックスはOpenFlow(https://www.opennetworking.org/sdn-resources/onf-specifications/openflowを参照されたい)によって実施され得るが、それだけではない。OpenFlowが用いられると、上流ノードが運転停止したとき、OFPPS_LINK_DOWNメッセージがOpenFlowスイッチからOpenFlowコントローラへ送信されることになる)。その上、SDNボックス上にPCI-Eのルーティング表が維持され、接続されている下流ノードのグループIDを変更することにより、ハンドオーバも達成され得る。
【００１１】
前述の、また他の、例示の目的、態様、および利点を説明するために、図面を参照しながら本発明の例示的実施形態の以下の詳細な説明を用いることにする。
【図面の簡単な説明】
【００１２】
【図１】SDNボックス、少なくとも1つの上流ノードおよび少なくとも1つの下流ノードを有するコンピュータシステムのシステムアーキテクチャの一実施形態を示すブロック図である。
【図２Ａ】少なくとも1つのソフトウェア定義スイッチ(SDスイッチ)と少なくとも1つのソフトウェア定義スイッチのコントローラ(SDSWコントローラ)とから成るSDNボックスに基づく、可能な実装形態のうちの1つのシステムアーキテクチャの一実施形態を示すブロック図である。
【図２Ｂ】少なくとも1つのソフトウェア定義スイッチ(SDスイッチ)と少なくとも1つのソフトウェア定義スイッチのコントローラ(SDSWコントローラ)とから成るSDNボックスに基づく、可能な実装形態のうちの1つのシステムアーキテクチャの一実施形態を示すブロック図である。
【図３】上流ノードのシステムアーキテクチャの一実施形態を示すブロック図である。
【図４】下流ノードのシステムアーキテクチャの一実施形態を示すブロック図である。
【図５】ソフトウェア定義(SD)スイッチのシステムアーキテクチャの一実施形態を示すブロック図である。
【図６】ソフトウェア定義スイッチのコントローラ(SDSWコントローラ)のシステムアーキテクチャの一実施形態を示すブロック図である。
【図７】DEVINFOパケットの可能なパケットフォーマットの一実施形態を示す表である。
【図８】上流ノード、SDNボックスおよび下流ノードの間のメモリのリード/ライトのシーケンス図である。
【図９】上流ノードまたは下流ノードがPCI-Eパケットを送出するやり方の一実施形態を示す流れ図である。
【図１０】上流ノードまたは下流ノードがPCI-Eパケットを受信するやり方の一実施形態を示す流れ図である。
【図１１】SDスイッチがイーサネットパケットを処理するやり方の一実施形態を示す流れ図である。
【図１２】SDSWコントローラが、システムの起動中にマスタトランザクションレイヤパケット(TLP)のルーティング表をセットアップするやり方、およびパケット転送のプロセス中にSDスイッチと通信するやり方の一実施形態を示す流れ図である。
【図１３】基礎をなすネットワークがイーサネットであるとき、SDスイッチに対するスレーブTLPルーティング表およびSDSWコントローラに対するマスタTLPルーティング表として用いられるTLPルーティング表の可能なデータ構造の一実施形態を示す表である。
【図１４】上流ノード、SDNボックスおよび下流ノードの間の障害検知およびハンドオーバのシーケンス図である。
【発明を実施するための形態】
【００１３】
以下の説明では、本発明の好ましい一実施形態が、好ましい処理ステップおよびデータ構造に関して説明される。
【００１４】
<システムの構成要素>
図1は、ソフトウェア定義ネットワーク(SDN)ボックス106、上流ノード101および104ならびに下流ノード102、103および105を有するコンピュータシステムのシステムアーキテクチャの一実施形態を示すブロック図である。各構成要素は、ネットワーク(それだけではないが、たとえばイーサネット)によって接続されている。一般に、システムには少なくとも1つのグループがある。図1には2つのグループがある。1つのグループは、上流ノード101および下流ノード102および下流ノード103から成る。他のグループは上流ノード104および下流ノード105から成る。各グループに、単一の上流ノードと、少なくとも1つの下流ノードとがある。上流ノードと下流ノードの間のすべてのパケットはSDNボックスによって転送される。
【００１５】
<可能な実装形態のシステムアーキテクチャ>
図2Aおよび図2Bは、SDNボックスが少なくとも1つのソフトウェア定義スイッチ(SDスイッチ)と少なくとも1つのソフトウェア定義スイッチのコントローラ(SDSWコントローラ)とから成る、1つの可能な実装形態のシステムアーキテクチャの一実施形態を示すブロック図である。
【００１６】
図2Aにおいて、SDNボックス206はSDスイッチ208およびSDSWコントローラ207から成る。SDスイッチ208とSDSWコントローラ207の間に通信チャネルがある。上流ノードと下流ノードは2つのグループに分割され得て、各グループは単一の上流ノードおよび少なくとも1つの下流ノードから成る。上流ノード201ならびに2つの下流ノード202および203は、それぞれSDスイッチ208の第1のポート(#1)、第2のポート(#2)および第3のポート(#3)に接続されている。上流ノード204および下流ノード205は、それぞれSDスイッチ208の第4のポート(#4)および第5のポート(#5)に接続されている。
【００１７】
図2Bにおいて、SDNボックス206は、SDスイッチ208、209、211および212、ならびにSDSWコントローラ207および210から成る。SDSWコントローラ207とSDスイッチ208の間、およびSDSWコントローラ207とSDスイッチ209の間にそれぞれ通信チャネルがある。さらに、SDSWコントローラ210とSDスイッチ211の間、およびSDSWコントローラ210とSDスイッチ212の間にもそれぞれ通信チャネルがある。上流ノードと下流ノードは2つのグループに分割され得て、各グループは単一の上流ノードおよび少なくとも1つの下流ノードから成る。上流ノード201ならびに2つの下流ノード202および203が1つのグループに属し、上流ノード204および下流ノード205が別のグループに属する。
【００１８】
図2Aおよび図2Bにおいて、すべてのSDスイッチが、(それだけではないが)たとえばイーサネットといった特定のネットワークによって接続されている。SDSWコントローラとSDスイッチの間の通信は、(それだけではないが)たとえばOpenFlowといった特定のプロトコルにおけるものである。
【００１９】
図3は、上流ノードのシステムアーキテクチャの一実施形態を示すブロック図である。一般に、コンピュータシステムは、CPU、メモリ、ハードディスクおよび様々なI/Oデバイスから成る。システムアーキテクチャについてより明瞭に説明するために、ここではその他の構成要素が省略されている。上流ノード301は、少なくとも中央処理装置(CPU)302、カプセル化/デカプセル化(ENCAP/DECAP)モジュール303およびネットワークインターフェースカード(NIC)304から成る。CPU 302は、基本的動作、算術演算、論理演算、およびシステムの入出力動作を遂行することにより、コンピュータプログラムの命令を実行するハードウェア構成要素である。NIC 304は、上流ノード301を、SDNボックスが配置されているネットワークに接続するハードウェア構成要素である。カプセル化/デカプセル化モジュール303は、通信プロセス中の、PCI-Eパケットのカプセル化と、受信したカプセル化されたパケットのデカプセル化とを担当している。CPU 302とカプセル化/デカプセル化モジュール303は論理的に接続されており、カプセル化/デカプセル化モジュール303とNIC 304はそれぞれ接続されている。言い換えれば、接続するやり方は制限されず、(それだけではないが)たとえばPCI-Eバスプロトコルといったハードウェアのやり方、または任意のソフトウェアのやり方のいずれかでよい。
【００２０】
図4は、下流ノードのシステムアーキテクチャの一実施形態を示すブロック図である。下流ノードはCPU、メモリ、ハードディスクおよび様々なデバイスから成り得る。システムアーキテクチャについてより明瞭に説明するために、ここではその他の構成要素が省略されている。下流ノード401は、少なくともメモリ402、カプセル化/デカプセル化(ENCAP/DECAP)モジュール403およびネットワークインターフェースカード(NIC)404から成る。NIC 404は、下流ノード401を、SDNボックスが配置されているネットワークに接続するハードウェア構成要素である。カプセル化/デカプセル化モジュール403は、通信プロセス中の、PCI-Eパケットのカプセル化と、受信したカプセル化されたパケットのデカプセル化とを担当している。メモリ402とカプセル化/デカプセル化モジュール403は接続されており、カプセル化/デカプセル化モジュール403とNIC 404は、それぞれ論理的に接続されている。言い換えれば、接続するやり方は制限されず、(それだけではないが)たとえばPCI-Eバスプロトコルといったハードウェアのやり方、または任意のソフトウェアのやり方のいずれかでよい。
【００２１】
<SDNボックス内のパケット処理>
図5は、ソフトウェア定義(SD)スイッチのシステムアーキテクチャの一実施形態を示すブロック図である。SDスイッチ501は、少なくともRecvDモジュール502、SendDモジュール503、SendC(制御プレーンに送信する)モジュール504、RecvC(制御プレーンから受信する)モジュール509、デカプセル化(DECAP)モジュール505、カプセル化(ENCAP)モジュール506、パケットバッファ(PKT BUFFER)モジュール507およびスレーブトランザクションレイヤパケット(TLP)ルーティング表操作モジュール508から成る。RecvDモジュール502は、上流ノードおよび下流ノードからの受信を担当している。SendDモジュール503は上流ノードおよび下流ノードへの送信を担当している。RecvCモジュール509はSDSWコントローラからの受信を担当している。SendCモジュール504はSDSWコントローラへの送信を担当している。デカプセル化モジュール505は、カプセル化されたパケットをPCI-Eパケットへとデカプセル化する。カプセル化モジュール506はPCI-Eパケットをカプセル化する。パケットバッファモジュール507はパケットのバッファリングを担当している。TLPルーティング表操作モジュール508は、新規のスレーブTLPルーティング表の項目を生成して挿入することができ、スレーブTLPルーティング表の検索機能をサポートする。
【００２２】
図6は、ソフトウェア定義スイッチのコントローラ(SDSWコントローラ)のシステムアーキテクチャの一実施形態を示すブロック図である。SDSWコントローラは、少なくともRecvSWモジュール602、SendSWモジュール603、マスタTLPルーティング表操作モジュール604、およびmsgパーサモジュール605から成る。RecvSWモジュール602はSDスイッチからの受信を担当している。SendSWモジュール603はSDスイッチへの送信を担当している。マスタTLPルーティング表操作モジュール604は、新規のマスタTLPルーティング表の項目を生成して挿入することができ、マスタTLPルーティング表の検索機能をサポートする。msgパーサモジュール605が抽出する情報は、1)ノードID(ノードの固有のID)と、2)ノードのタイプ(上流ノードまたは下流ノード)と、3)各ノードの(上流または下流の)送付先アドレスと、4)ノードに接続されているSDスイッチの(上流または下流の)ポート番号と、5)グループに対して用いられるVLANタグ(基礎をなすネットワークがイーサネットであるときのみ必要)と、6)図13に示される、受信したパケットからのTLPルーティングID(TLPルーティングの固有のID)とを含む。
【００２３】
SDNボックスは、少なくとも1つのSDSWコントローラおよび少なくとも1つのSDスイッチから成る。全体の処理プロセスは以下の通りである。カプセル化されたパケット(その内部のパケットはPCI-Eパケットである)がSDスイッチ501のRcevDモジュール502によって受信されると、デカプセル化モジュール505によってPCI-Eパケットへとデカプセル化され、それからTLPルーティングIDが抽出される。次いで、スレーブTLPルーティング表操作モジュール508が、抽出されたTLPルーティングIDに基づいてスレーブTLPルーティング表を回復することになる。
>  見つからない場合には、パケットはパケットバッファモジュール507においてバッファリングされ、次いで、クエリパケット(TLPルーティングID、ノードタイプ、ノードID、ならびに図13に示されるような他の関連情報を含有している)が、クエリ(SendC)モジュール504によってSDSWコントローラ601へ送信されることになる。SDSWコントローラ601の側において、クエリが、受信(RecvSW)モジュール602によって受信される。SDSWコントローラ601のマスタTLPルーティング表は、マスタTLPルーティング表操作モジュール604によって、TLPルーティングIDに基づいてさらに回復されることになる。
◇  見つからない場合には、SDSWコントローラ601のマスタTLPルーティング表操作モジュール604は、msgパーサモジュール605によって抽出された情報に基づいて、1)ノードID(ノードの固有のID)と、2)ノードのタイプ(上流ノードまたは下流ノード)と、3)各ノードの(上流または下流の)送付先アドレスと、4)ノードに接続されているSDスイッチの(上流または下流の)ポート番号と、5)グループに対して用いられるVLANタグ(基礎をなすネットワークがイーサネットであるときのみ必要)と、6)図13に示されるTLPルーティングID(TLPルーティングの固有のID)とを含む新規の表項目を生成することになる。次いで、それがマスタTLPルーティング表に挿入される。SDSWコントローラ601の送信(SendSW)モジュール603は、PCI-E-over-EthernetパケットをブロードキャストするようにSDスイッチ501に通知することになる。
◇  見つかった場合には、SDSWコントローラ601の送信(SendSW)モジュール603は、カプセル化されたPCI-Eパケットを、回復された送付先アドレスに従って転送するようにSDスイッチ501に通知することになる。この通知はRecvCモジュール509において処理され、同一の新規の表項目が、SDスイッチ501のスレーブTLPルーティング表操作モジュール508によって、スレーブTLPルーティング表に挿入される。
>  見つかった場合には、PCI-Eパケットは、カプセル化モジュール506によってカプセル化パケットヘッダとともにカプセル化されることになり、カプセル化パケットヘッダは、スレーブTLPルーティング表操作モジュール508によって戻される送付先アドレスとして回復されたアドレスで満たされている。
【００２４】
<DEVINFOパケットフォーマット>
上流ノードと下流ノードの間の全体の通信プロセス中、2種類のパケットが用いられる。一方はPCI-Eパケットであり、メモリのリード/ライト、I/Oのリード/ライト、コンフィグのリード/ライトの動作中に用いられる。他方は、本発明において新しく定義された、DEVINFOパケットと称されるものである。DEVINFOパケットは、1)上流ノードと下流ノードの間の通信を開始すること、および、2)一定間隔で周期的に、上流ノードと下流ノードに互いの存続を気付かせること、のために用いられる。DEVINFOのパケットフォーマットは、(それだけではないが)少なくとも、1)ノードID(ノードの固有のID)と、2)ノードのタイプ(上流ノードまたは下流ノード)と、3)(上流または下流の)ノードのソースアドレスと、4)TLPルーティングID(TLPルーティングにおいて用いられる固有のID)とのデータフィールドを含有している。図7は、DEVINFOパケットのパケットフォーマットの可能な定義の一実施形態を示す表である。
【００２５】
<上流ノードと下流ノードの間の通信>
図8は、上流ノード801、SDNボックス802および下流ノード803の間のメモリのリード/ライトのシーケンス図である(I/Oのリード/ライトおよびコンフィグのリード/ライトのプロセスは同一のシーケンスを辿るので省略されている)。通信プロセスは以下の通りである。
(1)上流ノード801は、下流ノード803のメモリにアクセスするとき(たとえばメモリのリード/ライト動作)、PCI-Eパケットを送信する。ステップ804において、PCI-Eパケットは、カプセル化/デカプセル化モジュール303によってパケットヘッダとともにカプセル化されて、NIC 304から送出される。
(2)カプセル化されたパケットが、SDNボックス802におけるSDスイッチの特定のポートに到達する。ステップ805において、カプセル化されたパケットがデカプセル化され、次いで、ステップ806においてそれらの内部情報が抽出される。次いで、ステップ807において、デカプセル化されたパケットがカプセル化されて下流ノード803へ転送される。
(3)カプセル化されたパケットは、下流ノード803において受信されると、ステップ808においてPCI-Eパケットへとデカプセル化される。
【００２６】
下流ノードから上流ノードへの通信プロセス(たとえばメモリリードの結果に対する返答)は、上記のステップと同一である。図は省略されている。
【００２７】
図9は、上流ノードまたは下流ノードがPCI-Eパケットを送出するやり方の一実施形態を示す流れ図である。
(1)ノード(上流ノードまたは下流ノードのいずれか)がステップ901においてパケットを送出しようとするとき、ステップ902においてそれがDEVINFOパケットであれば、ステップ903において、(カプセル化パケットヘッダの)送付先アドレスはブロードキャストアドレスでなければならない。
(2)送付先アドレスがブロードキャストアドレスでなければ、それは必ずPCI-Eパケットであり、(カプセル化パケットヘッダにおける)送付先アドレスは所定のフォーマットでなければならず、ステップ904においてSDスイッチによって認識され得る。
(3)最終的に、パケットは外側のパケットヘッダとともにカプセル化され、送付先アドレスはステップ903およびステップ904から生じる。外側のパケットヘッダのタイプは、基礎をなすネットワークに依拠するものである。たとえば基礎をなすネットワークがイーサネットであれば、イーサネットのパケットヘッダが外側のパケットヘッダとして追加されてステップ905で送出される。
【００２８】
図10は、上流ノードまたは下流ノードがカプセル化されたパケットを受信するやり方の一実施形態を示す流れ図である。
(1)ステップ1001において、カプセル化されたパケットを受信すると、ステップ1002において、パケットがPCI-Eパケットへとデカプセル化されることになる。
【００２９】
図11は、SDスイッチが、カプセル化されたパケットを処理するやり方の一実施形態を示す流れ図である。SDスイッチのプロセスは以下の通りである。
(1)ステップ1101において、SDSWコントローラからのパケットがなければ、ステップ1104において、パケットが特定のカプセル化されたパケットに属するものであるかどうかチェックされる。パケットが特定のカプセル化されたパケットに属するものでなければ、ステップ1105において、パケットは他のパケットのルーチンにおいてさらに処理されることになる。
(2)パケットが上流ノードまたは下流ノードからのカプセル化されたパケットであれば、ステップ1106において、そのTLPルーティングIDが抽出され、それに基づいてスレーブTLPルーティング表が回復されることになる。見つからない場合には、ステップ1108においてパケットがバッファリングされ、SDSWコントローラに対してクエリ要求が送信される。見つかった場合には、ステップ1107において、パケットが、回復されたアドレスを送付先アドレスとして満たされたカプセル化ヘッダとともにカプセル化されて送出されることになる。
(3)ステップ1101において、SDSWコントローラから受信したパケットがある場合、ステップ1102において、搬送されるTLPルーティング情報が抽出され、ステップ1103において、スレーブルーティング表に新規の表項目を追加する。次いで、ステップ1107において、以前のバッファリングされたパケットがさらに処理されることになる(パケットをカプセル化し、回復された送付先アドレスを満たして、それを送信する)。
【００３０】
図12は、SDSWコントローラが、SDスイッチからのクエリ要求を処理し、TLP情報を抽出してマスタTLPルーティング表を更新し、最終的に、スレーブTLPルーティング表を更新するようにSDスイッチに通知するやり方の一実施形態を示す流れ図である。プロセスは以下の通りである。
(1)ステップ1201において、SDスイッチからのクエリ要求パケットが受信されている場合、ステップ1202においてTLPルーティング情報が抽出されることになる。
(2)ステップ1203において、TLPルーティング情報に基づいてマスタTLPルーティング表が回復されることになる。何も見つからなければ、ステップ1204において、マスタTLPルーティング表に新規の項目が追加されることになる。
(3)最終的に、ステップ1205において、SDスイッチに通知するために回復の結果が送出される。
【００３１】
図13は、TLPルーティング表の可能なデータ構造であり、これは、基礎をなすネットワークがイーサネットであるとき、SDスイッチとSDSWコントローラの両方に対して用いられる。表は、1)ノードID(ノードの固有のID)の列と、2)ノードのタイプ(上流ノードまたは下流ノード)の列と、3)各ノードの(上流または下流の)送付先アドレスの列と、4)ノードに接続されているSDスイッチの(上流または下流の)ポート番号の列と、5)グループに対して用いられるVLANタグ(基礎をなすネットワークがイーサネットであるときのみ必要)の列と、6)TLPルーティングID(TLPルーティングの固有のID)の列とから成る。図13は、VLAN IDが1または2であるノードの2つのグループを示す。最初の3つの項目は、同一のVLAN ID 1を共有するので1つのグループに属する。ノードIDが1であるノードは上流ノードであり、そのMACアドレスはMAC_00である。ノードIDが1であるノードは、SDスイッチの第1のポートに接続され、TLP IDはbusO/devO/funcOである。ノードIDが2であるノードは下流ノードであり、そのMACアドレスはMAC_01である。ノードIDが2であるノードは、SDスイッチの第2のポートに接続され、TLP IDはbusl/devl/funclである。
【００３２】
<障害検知およびハンドオーバ>
図14は、上流ノード1401、SDスイッチ(たとえば、それだけではないがOpenFlowスイッチ)1402、SDSWコントローラ(たとえば、それだけではないがOpenFlowコントローラ)1403および下流ノード(明瞭な説明のために省略されている)の間の障害検知およびハンドオーバのシーケンス図である。障害検知およびハンドオーバのプロセスは以下の通りである。
(1)一旦、ステップ1404において上流ノード1401に障害があると、リンクダウンネットワーク信号がSDスイッチ1402に送信されることになる。
(2)SDスイッチ1402は、リンクダウンネットワーク信号を受信すると、ステップ1405においてSDSWコントローラ1403に通知することになる。例のために、OpenFlowにおいて、OpenFlowスイッチはOpenFlowコントローラへOFPPS_LINK_DOWNメッセージを送信することになる。
(3)SDSWコントローラ1403は、SDスイッチ1402から通知を受信すると、ステップ1406において、ハンドオーバのための別の有効な上流ノードを見つけ、ステップ1407において、接続されている下流ノードのマスタTLPルーティング表を変更し、次いで、ステップ1408においてSDスイッチに通知することになる。
(4)SDスイッチ1402は、SDSWコントローラ1403から通知を受信すると、ステップ1409においてスレーブTLPルーティング表を変更することになる。その結果、接続されている下流ノードは、新規のグループIDとともに上流ノードにハンドオーバされる。
【００３３】
本発明の好ましい実施形態が上記で説明され、図示されてきたが、これらは本発明の例示であり、限定するものと見なされるべきではないことを理解されたい。本発明の範囲から逸脱することなく、追加、省略、置換、および他の変更が可能である。したがって、本発明は前述の説明によって限定されるものと見なされるべきではなく、添付の特許請求の範囲の有効範囲によってのみ限定されるものである。
【符号の説明】
【００３４】
101  上流ノード
102  下流ノード
103  下流ノード
104  上流ノード
105  下流ノード
106  ソフトウェア定義ネットワーク(SDN)ボックス
201  上流ノード
202  下流ノード
203  下流ノード
204  上流ノード
205  下流ノード
206  SDNボックス
207  SDSWコントローラ
208  SDスイッチ
209  SDスイッチ
210  SDSWコントローラ
211  SDスイッチ
212  SDスイッチ
301  上流ノード
302  中央処理装置(CPU)
303  カプセル化/デカプセル化(ENCAP/DECAP)モジュール
304  ネットワークインターフェースカード(NIC)
401  下流ノード
402  メモリ
403  カプセル化/デカプセル化(ENCAP/DECAP)モジュール
404  ネットワークインターフェースカード(NIC)
501  SDスイッチ
502  RecvDモジュール
503  SendDモジュール
504  SendC(制御プレーンに送信する)モジュール
505  デカプセル化(DECAP)モジュール
506  カプセル化(ENCAP)モジュール
507  パケットバッファ(PKT BUFFER)モジュール
508  スレーブトランザクションレイヤパケット(TLP)ルーティング表操作モジュール
509  RecvC(制御プレーンから受信する)モジュール
601  ソフトウェア定義スイッチのコントローラ(SDSWコントローラ)
602  RecvSWモジュール
603  SendSWモジュール
604  マスタTLPルーティング表操作モジュール
801  上流ノード
802  SDNボックス
803  下流ノード
1401  上流ノード
1402  SDスイッチ
1403  SDSWコントローラ
【図１】
2017511532.tif 000003
【図２Ａ】
2017511532.tif 000004
【図２Ｂ】
2017511532.tif 000005
【図３】
2017511532.tif 000006
【図４】
2017511532.tif 000007
【図５】
2017511532.tif 000008
【図６】
2017511532.tif 000009
【図７】
2017511532.tif 000010
【図８】
2017511532.tif 000011
【図９】
2017511532.tif 000012
【図１０】
2017511532.tif 000013
【図１１】
2017511532.tif 000014
【図１２】
2017511532.tif 000015
【図１３】
2017511532.tif 000016
【図１４】
2017511532.tif 000017
【国際調査報告】
2017511532.tif 000018