図面 (/)

技術 ソフトウェア定義PCIエクスプレス(PCI−E)スイッチを構成する方法

出願人 日本電気株式会社
発明者 孫雷吉川隆士高橋雅彦鈴木順辻聡
出願日 2014年3月18日 (6年11ヶ月経過) 出願番号 2016-555801
公開日 2017年4月20日 (3年10ヶ月経過) 公開番号 2017-511532
状態 拒絶査定
技術分野 入出力制御 バス制御
主要キーワード SWモジュール パーサモジュール カプセル化モジュール ソフトウェア定義 アドレスルーティング ポート番 例示的実施 ルーティング識別子
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2017年4月20日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (16)

課題・解決手段

本発明は、一般にネットワーキングおよびコンピュータアーキテクチャの技術分野に関し、より詳細には、ソフトウェア定義ネットワーク(SDN)ボックスと、少なくとも1つの上流ノードと、複数の下流ノードとを含むシステムを構成する手法に関するものである。ノードはいくつかのグループに分割され得る。各グループに、単一の上流ノードと、少なくとも1つの下流ノードとがある。上流ノードと下流ノードの間のすべてのパケットはSDNボックスによって転送される。SDNボックスは「PCI-Eスイッチ」として働き、上流ノードを各下流ノードと相互接続して、カプセル化されたパケット(内部はPCI-Eパケットである)を転送する。全体の通信プロセスを通じて、上流ノードは下流ノードを通常のローカルPCI-Eデバイスとして扱う。

概要

背景

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におけるキープアライブメッセージとして働くようにブロードキャストされる。それに関連したタイムアウト値がある。タイムアウト期限切れになり、依然として、そのような受信したキープアライブパケットがなければ、上流ノードが既に運転停止していると推断される。一旦、障害が検知されると、接続されている下流のノードは、できるだけ早く別の利用可能な上流のノードに移管されるべきである。

概要

本発明は、一般にネットワーキングおよびコンピュータアーキテクチャの技術分野に関し、より詳細には、ソフトウェア定義ネットワーク(SDN)ボックスと、少なくとも1つの上流ノードと、複数の下流ノードとを含むシステムを構成する手法に関するものである。ノードはいくつかのグループに分割され得る。各グループに、単一の上流ノードと、少なくとも1つの下流ノードとがある。上流ノードと下流ノードの間のすべてのパケットはSDNボックスによって転送される。SDNボックスは「PCI-Eスイッチ」として働き、上流ノードを各下流ノードと相互接続して、カプセル化されたパケット(内部はPCI-Eパケットである)を転送する。全体の通信プロセスを通じて、上流ノードは下流ノードを通常のローカルPCI-Eデバイスとして扱う。

目的

本発明は、PCI-E、イーサネットおよびSDNに基づくシステムを構成する方法を提供する

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

少なくとも1つの上流ノード、少なくとも1つの下流ノードおよびSDNボックスを含んでいるネットワークにわたる周辺装置相互接続エクスプレス(PCI-E)スイッチとしてソフトウェア定義ネットワーク(SDN)ボックスを用いる方法であって、前記SDNボックスによって、前記ネットワークを介して、前記上流ノードと前記下流ノードを相互に接続するステップと、前記上流ノードと前記下流ノードの一方の側においてPCI-Eパケットを送信するステップと、前記PCI-Eパケットを特定のパケットヘッダとともにカプセル化するステップと、前記SDNボックスによって、内部PCI-Eパケットとともに搬送されたトランザクションレイヤパケット(TLP)ルーティング識別子(ID)に基づいて、前記カプセル化されたパケットを前記ネットワークへ送信するステップと、前記上流ノードと前記下流ノードの他方の側において、前記カプセル化されたパケットを受信するステップと、受信したパケットから前記特定のパケットヘッダを除去するステップと、前記受信したパケットを前記PCI-Eパケットへとデカプセル化するステップとを含む方法。

請求項2

前記上流ノードが、演算装置(CPU)、ネットワークインターフェースカード(NIC)およびカプセル化/デカプセル化モジュールを含み、前記下流ノードが、I/Oデバイス、ネットワークインターフェースカード(NIC)およびカプセル化/デカプセル化モジュールを含む請求項1に記載の方法。

請求項3

前記上流ノードおよび前記下流ノードが、単一上流ノードおよび少なくとも1つの下流ノードを含む少なくとも1つのグループに属する請求項1に記載の方法。

請求項4

前記TLPルーティングIDが、アドレスルーティング、IDルーティングおよび暗示的ルーティングを含む、前記PCI-EにおけるTLPルーティング方法の前記識別子である請求項1に記載の方法。

請求項5

前記SDNボックスが、ソフトウェア定義(SD)スイッチおよび前記SDスイッチに対応するソフトウェア定義スイッチ(SDSW)コントローラフォーマットとして実施され、前記SDスイッチがスレーブTLPルーティング表を含み、前記SDSWコントローラがマスタTLPルーティング表を含む請求項1に記載の方法。

請求項6

SDスイッチを用いて、前記上流ノードと前記下流ノードの一方からの前記受信したパケットをデカプセル化し、前記TLPルーティングIDを抽出し、前記TLPルーティングIDに基づいて前記スレーブTLPルーティング表を回復するステップであって、前記TLPルーティング表の中に送付先アドレスが見つかった場合、前記パケットをパケットヘッダとともにカプセル化し、前記送付先アドレスを満たして送出し、前記TLPルーティング表の中に送付先アドレスが見つからない場合、前記パケットをバッファリングして、前記SDSWコントローラに対してクエリ送出するステップと、前記SDSWコントローラを用いて、前記SDスイッチからの前記クエリ要求解析し、TLPルーティング情報を抽出し、前記TLPルーティング情報を新規表項目として前記マスタTLPルーティング表に追加して、前記SDスイッチに、前記スレーブTLPルーティング表を更新するように通知するステップとを含む請求項5に記載の方法。

請求項7

前記SDスイッチと、前記SDスイッチに対応する前記SDSWコントローラとが、通信チャネルを用いて接続されており、それによってクエリおよび通知メッセージ転送され、前記通信チャネルが、イーサネットを含む遠隔通信チャネルまたはUNIXドメインソケットを含むローカル通信チャネルのいずれかである請求項5に記載の方法。

請求項8

PCI-Eパケットをカプセル化するステップにおいて、前記送付先アドレスが、前記SDNボックスによって認識され得る所定のフォーマットに保たれる請求項1において定義された方法。

請求項9

障害が生じたとき、前記SDNボックスのビルトイン通知が、前記SDスイッチおよび前記SDSWコントローラにおいてTLPルーティング表の変更を起動し、このことが前記下流ノードのハンドオーバを達成する請求項5に記載の方法。

技術分野

0001

本発明は、一般にネットワーキングおよびコンピュータアーキテクチャの技術分野に関し、より詳細には、ソフトウェア定義ネットワーク(SDN)ボックス上流ノードおよび下流ノードから成るシステムを構成する手法に関するものである。

背景技術

0002

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」を参照されたい)。

0003

サーバの中にそれほどスペースがないので、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号を参照されたい)。

0004

特定のタイプのパケットが、ExpEtherにおけるキープアライブメッセージとして働くようにブロードキャストされる。それに関連したタイムアウト値がある。タイムアウト期限切れになり、依然として、そのような受信したキープアライブパケットがなければ、上流ノードが既に運転停止していると推断される。一旦、障害が検知されると、接続されている下流のノードは、できるだけ早く別の利用可能な上流のノードに移管されるべきである。

0005

特開2007-219873号公報

先行技術

0006

「PCIExpress 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

発明が解決しようとする課題

0007

現在のExpEtherでは、高速故障検知を達成するのは困難である。故障検知がより高速になればキープアライブパケットのタイムアウト値がより短くなるので、ブロードキャストのトラフィックがより多くなる。ブロードキャストのトラフィックがより多くなれば、ネットワークデバイス処理量が増加する。

0008

本発明は、上記の高速の障害検知およびExpEtherのハンドオーバの問題を解決するために提案されるものである。本発明は、PCI-E、イーサネットおよびSDNに基づくシステムを構成する方法を提供する。提案されるシステムは、上流ノード、下流ノードおよびSDNボックスから成るものである。

課題を解決するための手段

0009

提案される本発明のシステムでは、上流ノードと下流ノードの両方にカプセル化/デカプセル化モジュールがある。上流ノード(CPU、メモリ、ハードディスクおよび様々なI/Oデバイスから成り得る)はコンピュータシステムとして作用し、下流ノードはPCI-Eデバイスとして作用し、これらはSDNボックスによって接続されている。上流ノードはPCI-Eパケットによって下流ノードにアクセスする。上流ノードと下流ノードの両方にとって、通信プロセスは以下の通りである。PCI-Eパケットを送信するときは、PCI-Eパケットを特定のパケットヘッダとともにカプセル化して、ネットワーク(たとえば、それだけではないがイーサネット)によって送信する。カプセル化されたパケットを受信するときは、特定のパケットヘッダを除去し、それをPCI-Eパケットへとデカプセル化する。SDNボックスは「PCI-Eスイッチ」として働き、特定のネットワークを介して上流ノードと下流ノードを相互接続して、カプセル化されたパケットを転送する。

0010

提案される本発明のシステムでは、上流ノードが運転停止したとき、SDNボックスに対して通知配送されることになる(SDNボックスはOpenFlow(https://www.opennetworking.org/sdn-resources/onf-specifications/openflowを参照されたい)によって実施され得るが、それだけではない。OpenFlowが用いられると、上流ノードが運転停止したとき、OFPPS_LINK_DOWNメッセージがOpenFlowスイッチからOpenFlowコントローラへ送信されることになる)。その上、SDNボックス上にPCI-Eのルーティング表が維持され、接続されている下流ノードのグループIDを変更することにより、ハンドオーバも達成され得る。

0011

前述の、また他の、例示の目的、態様、および利点を説明するために、図面を参照しながら本発明の例示的実施形態の以下の詳細な説明を用いることにする。

図面の簡単な説明

0012

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ボックスおよび下流ノードの間の障害検知およびハンドオーバのシーケンス図である。

実施例

0013

以下の説明では、本発明の好ましい一実施形態が、好ましい処理ステップおよびデータ構造に関して説明される。

0014

<システムの構成要素>
図1は、ソフトウェア定義ネットワーク(SDN)ボックス106、上流ノード101および104ならびに下流ノード102、103および105を有するコンピュータシステムのシステムアーキテクチャの一実施形態を示すブロック図である。各構成要素は、ネットワーク(それだけではないが、たとえばイーサネット)によって接続されている。一般に、システムには少なくとも1つのグループがある。図1には2つのグループがある。1つのグループは、上流ノード101および下流ノード102および下流ノード103から成る。他のグループは上流ノード104および下流ノード105から成る。各グループに、単一の上流ノードと、少なくとも1つの下流ノードとがある。上流ノードと下流ノードの間のすべてのパケットはSDNボックスによって転送される。

0015

<可能な実装形態のシステムアーキテクチャ>
図2Aおよび図2Bは、SDNボックスが少なくとも1つのソフトウェア定義スイッチ(SDスイッチ)と少なくとも1つのソフトウェア定義スイッチのコントローラ(SDSWコントローラ)とから成る、1つの可能な実装形態のシステムアーキテクチャの一実施形態を示すブロック図である。

0016

図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)に接続されている。

0017

図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が別のグループに属する。

0018

図2Aおよび図2Bにおいて、すべてのSDスイッチが、(それだけではないが)たとえばイーサネットといった特定のネットワークによって接続されている。SDSWコントローラとSDスイッチの間の通信は、(それだけではないが)たとえばOpenFlowといった特定のプロトコルにおけるものである。

0019

図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バスプロトコルといったハードウェアのやり方、または任意のソフトウェアのやり方のいずれかでよい。

0020

図4は、下流ノードのシステムアーキテクチャの一実施形態を示すブロック図である。下流ノードはCPU、メモリ、ハードディスクおよび様々なデバイスから成り得る。システムアーキテクチャについてより明瞭に説明するために、ここではその他の構成要素が省略されている。下流ノード401は、少なくともメモリ402、カプセル化/デカプセル化(ENCAP/DECAP)モジュール403およびネットワークインターフェースカード(NIC)404から成る。NIC 404は、下流ノード401を、SDNボックスが配置されているネットワークに接続するハードウェア構成要素である。カプセル化/デカプセル化モジュール403は、通信プロセス中の、PCI-Eパケットのカプセル化と、受信したカプセル化されたパケットのデカプセル化とを担当している。メモリ402とカプセル化/デカプセル化モジュール403は接続されており、カプセル化/デカプセル化モジュール403とNIC 404は、それぞれ論理的に接続されている。言い換えれば、接続するやり方は制限されず、(それだけではないが)たとえばPCI-Eバスプロトコルといったハードウェアのやり方、または任意のソフトウェアのやり方のいずれかでよい。

0021

<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ルーティング表の検索機能をサポートする。

0022

図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)とを含む。

0023

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によって戻される送付先アドレスとして回復されたアドレスで満たされている。

0024

EVINFOパケットフォーマット>
上流ノードと下流ノードの間の全体の通信プロセス中、2種類のパケットが用いられる。一方はPCI-Eパケットであり、メモリのリード/ライト、I/Oのリード/ライト、コンフィグのリード/ライトの動作中に用いられる。他方は、本発明において新しく定義された、DEVINFOパケットと称されるものである。DEVINFOパケットは、1)上流ノードと下流ノードの間の通信を開始すること、および、2)一定間隔周期的に、上流ノードと下流ノードに互いの存続を気付かせること、のために用いられる。DEVINFOのパケットフォーマットは、(それだけではないが)少なくとも、1)ノードID(ノードの固有のID)と、2)ノードのタイプ(上流ノードまたは下流ノード)と、3)(上流または下流の)ノードのソースアドレスと、4)TLPルーティングID(TLPルーティングにおいて用いられる固有のID)とのデータフィールドを含有している。図7は、DEVINFOパケットのパケットフォーマットの可能な定義の一実施形態を示す表である。

0025

<上流ノードと下流ノードの間の通信>
図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パケットへとデカプセル化される。

0026

下流ノードから上流ノードへの通信プロセス(たとえばメモリリードの結果に対する返答)は、上記のステップと同一である。図は省略されている。

0027

図9は、上流ノードまたは下流ノードがPCI-Eパケットを送出するやり方の一実施形態を示す流れ図である。
(1)ノード(上流ノードまたは下流ノードのいずれか)がステップ901においてパケットを送出しようとするとき、ステップ902においてそれがDEVINFOパケットであれば、ステップ903において、(カプセル化パケットヘッダの)送付先アドレスはブロードキャストアドレスでなければならない。
(2)送付先アドレスがブロードキャストアドレスでなければ、それは必ずPCI-Eパケットであり、(カプセル化パケットヘッダにおける)送付先アドレスは所定のフォーマットでなければならず、ステップ904においてSDスイッチによって認識され得る。
(3)最終的に、パケットは外側のパケットヘッダとともにカプセル化され、送付先アドレスはステップ903およびステップ904から生じる。外側のパケットヘッダのタイプは、基礎をなすネットワークに依拠するものである。たとえば基礎をなすネットワークがイーサネットであれば、イーサネットのパケットヘッダが外側のパケットヘッダとして追加されてステップ905で送出される。

0028

図10は、上流ノードまたは下流ノードがカプセル化されたパケットを受信するやり方の一実施形態を示す流れ図である。
(1)ステップ1001において、カプセル化されたパケットを受信すると、ステップ1002において、パケットがPCI-Eパケットへとデカプセル化されることになる。

0029

図11は、SDスイッチが、カプセル化されたパケットを処理するやり方の一実施形態を示す流れ図である。SDスイッチのプロセスは以下の通りである。
(1)ステップ1101において、SDSWコントローラからのパケットがなければ、ステップ1104において、パケットが特定のカプセル化されたパケットに属するものであるかどうかチェックされる。パケットが特定のカプセル化されたパケットに属するものでなければ、ステップ1105において、パケットは他のパケットのルーチンにおいてさらに処理されることになる。
(2)パケットが上流ノードまたは下流ノードからのカプセル化されたパケットであれば、ステップ1106において、そのTLPルーティングIDが抽出され、それに基づいてスレーブTLPルーティング表が回復されることになる。見つからない場合には、ステップ1108においてパケットがバッファリングされ、SDSWコントローラに対してクエリ要求が送信される。見つかった場合には、ステップ1107において、パケットが、回復されたアドレスを送付先アドレスとして満たされたカプセル化ヘッダとともにカプセル化されて送出されることになる。
(3)ステップ1101において、SDSWコントローラから受信したパケットがある場合、ステップ1102において、搬送されるTLPルーティング情報が抽出され、ステップ1103において、スレーブルーティング表に新規の表項目を追加する。次いで、ステップ1107において、以前のバッファリングされたパケットがさらに処理されることになる(パケットをカプセル化し、回復された送付先アドレスを満たして、それを送信する)。

0030

図12は、SDSWコントローラが、SDスイッチからのクエリ要求を処理し、TLP情報を抽出してマスタTLPルーティング表を更新し、最終的に、スレーブTLPルーティング表を更新するようにSDスイッチに通知するやり方の一実施形態を示す流れ図である。プロセスは以下の通りである。
(1)ステップ1201において、SDスイッチからのクエリ要求パケットが受信されている場合、ステップ1202においてTLPルーティング情報が抽出されることになる。
(2)ステップ1203において、TLPルーティング情報に基づいてマスタTLPルーティング表が回復されることになる。何も見つからなければ、ステップ1204において、マスタTLPルーティング表に新規の項目が追加されることになる。
(3)最終的に、ステップ1205において、SDスイッチに通知するために回復の結果が送出される。

0031

図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である。

0032

<障害検知およびハンドオーバ>
図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とともに上流ノードにハンドオーバされる。

0033

本発明の好ましい実施形態が上記で説明され、図示されてきたが、これらは本発明の例示であり、限定するものと見なされるべきではないことを理解されたい。本発明の範囲から逸脱することなく、追加、省略、置換、および他の変更が可能である。したがって、本発明は前述の説明によって限定されるものと見なされるべきではなく、添付の特許請求の範囲の有効範囲によってのみ限定されるものである。

0034

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コントローラ

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い技術

関連性が強い 技術一覧

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ