【文献】
久保庭 章子 Akiko Kuboniwa,IPsecトンネル終端装置のスケール性に関する一検討,電子情報通信学会2011年総合大会講演論文集 通信2 PROCEEDINGS OF THE 2011 IEICE GENERAL CONFERENCE,日本,社団法人電子情報通信学会,P121
(58)【調査した分野】(Int.Cl.,DB名)
スプリットアーキテクチャを有する第3世代(3G)ネットワークのパケットコア(PC)内にGPRS(general packet radio service)トンネルプロトコル(GTP)を実装するための方法であって、前記3Gネットワークの前記PCの制御プレーンは、クラウドコンピューティングシステム内にあり、前記クラウドコンピューティングシステムは、コントローラを含み、前記コントローラは、複数の制御プレーンモジュールを実行し、前記制御プレーンは、制御プレーンプロトコルを通じて前記PCのデータプレーンと通信し、前記データプレーンは、前記3Gネットワークの複数のネットワークエレメント内に実装され、前記方法は、
前記コントローラにより、加入者セッションのための前記3Gネットワークの前記PC内のSGSN(serving GPRS support node)とGGSN(gateway GPRS support node)との間のGTPトンネルを生成するためのリクエストを前記SGSN又は前記GGSNの制御プレーンコンポーネントから受信するステップと、
前記制御プレーンプロトコルを介して、前記SGSNのデータプレーンを実装するスイッチを、前記加入者セッションのパケットをカプセル化し及び非カプセル化し、並びに第1のGTPトンネルエンドポイントを確立するように構成するステップと、
前記制御プレーンプロトコルを介して、前記GTPトンネルのルート内の少なくとも1つのスイッチを、前記GTPトンネルに従って前記加入者セッションのパケットを転送するように構成するステップと、
前記制御プレーンプロトコルを介して、前記GGSNのデータプレーンを実装するスイッチを、前記加入者セッションの前記パケットをカプセル化し及び非カプセル化し、並びに第2のGTPトンネルエンドポイントを確立するように構成するステップと、
を含む方法。
前記コントローラにより、前記加入者セッションのための前記3Gネットワークの前記PC内の前記SGSNとGGSNとの間の前記GTPトンネルを修正するためのリクエストを受信するステップと、
前記制御プレーンプロトコルを介して、前記加入者セッションのパケットをカプセル化し及び非カプセル化し、並びに前記第1のGTPトンネルエンドポイントを修正するように、前記SGSNの前記データプレーンを実装する前記スイッチの構成を修正するステップと、
前記制御プレーンプロトコルを介して、前記加入者セッションの前記パケットをカプセル化し及び非カプセル化し、並びに前記第2のGTPトンネルエンドポイントを修正するように、前記GGSNの前記データプレーンを実装する前記スイッチの構成を修正するステップと、
をさらに含む、請求項1の方法。
前記GTPトンネルに従った前記加入者セッションのパケットの転送を終了させるために、前記制御プレーンプロトコルを介して、前記GTPトンネルの前記ルート内の前記少なくとも1つのスイッチの構成を除去するステップ、をさらに含む、請求項4の方法。
前記制御プレーンプロトコルを介して、前記GTPトンネルの新たなルート内のスイッチを、前記GTPトンネルに従って前記加入者セッションのパケットを転送するように構成するステップ、をさらに含む、請求項5の方法。
前記コントローラにより、前記加入者セッションのための前記3Gネットワークの前記PC内の前記SGSNとGGSNとの間の前記GTPトンネルを削除するためのリクエストを受信するステップと、
前記加入者セッションのパケットのカプセル化及び非カプセル化を終了させ、並びに前記第1のGTPトンネルエンドポイントを除去するために、前記制御プレーンプロトコルを介して、前記SGSNの前記データプレーンを実装する前記スイッチの構成を除去するステップと、
前記加入者セッションの前記パケットのカプセル化及び非カプセル化を終了させ、並びに前記第2のGTPトンネルエンドポイントを除去するために、前記制御プレーンプロトコルを介して、前記GGSNの前記データプレーンを実装する前記スイッチの構成を除去するステップと、
をさらに含む、請求項1の方法。
スプリットアーキテクチャを有する第3世代(3G)ネットワークのパケットコア(PC)内のGPRS(general packet radio service)トンネルプロトコル(GTP)の実装を管理するためのクラウドコンピューティングシステムであって、前記3Gネットワークの前記PCの制御プレーンは、前記クラウドコンピューティングシステム内にあり、前記制御プレーンは、制御プレーンプロトコルを通じて前記PCのデータプレーンと通信し、前記データプレーンは、前記3Gネットワークの複数のネットワークエレメント内に実装され、
前記クラウドコンピューティングシステムは、前記PCの前記データプレーンを実装する前記複数のネットワークエレメントと通信し、及び互いに通信する複数のサーバ、を備え、
前記複数のサーバは、
前記PCの前記制御プレーンを実装する複数の制御プレーンモジュールを実行するように構成されるコントローラと、
前記コントローラへ通信可能に結合され、前記PCの前記複数の制御プレーンモジュールの実行を管理するように構成されるクラウドマネージャと、
を実行し、
各制御プレーンモジュールは、前記データプレーンを管理するための制御プレーン機能のセットを提供し、
前記コントローラは、加入者セッションのための前記3Gネットワークの前記PC内のSGSN(serving GPRS support node)とGGSN(gateway GPRS support node)との間のGTPトンネルを生成するためのリクエストを前記SGSN又は前記GGSNの制御プレーンコンポーネントから受信するように構成され、
前記コントローラは、前記制御プレーンプロトコルを介して、前記SGSNのデータプレーンを実装するスイッチを、前記加入者セッションのパケットをカプセル化し及び非カプセル化し、並びに第1のGTPトンネルエンドポイントを確立するように構成する、ように構成され、
前記コントローラは、前記制御プレーンプロトコルを介して、前記GTPトンネルのルート内の少なくとも1つのスイッチを、前記GTPトンネルに従って前記加入者セッションのパケットを転送するように構成する、ように構成され、
前記コントローラは、前記制御プレーンプロトコルを介して、前記GGSNのデータプレーンを実装するスイッチを、前記加入者セッションの前記パケットをカプセル化し及び非カプセル化し、並びに第2のGTPトンネルエンドポイントを確立するように構成する、ように構成される、
クラウドコンピューティングシステム。
前記コントローラは、前記加入者セッションのための前記3Gネットワークの前記PC内の前記SGSNとGGSNとの間の前記GTPトンネルを修正するためのリクエストを受信する、ように構成され
前記コントローラは、前記制御プレーンプロトコルを介して、前記加入者セッションのパケットをカプセル化し及び非カプセル化し、並びに前記第1のGTPトンネルエンドポイントを修正するように、前記SGSNの前記データプレーンを実装する前記スイッチの構成を修正する、ように構成され
前記コントローラは、前記制御プレーンプロトコルを介して、前記加入者セッションの前記パケットをカプセル化し及び非カプセル化し、並びに前記第2のGTPトンネルエンドポイントを修正するように、前記GGSNの前記データプレーンを実装する前記スイッチの構成を修正する、ように構成される、
請求項8のクラウドコンピューティングシステム。
前記コントローラは、前記GTPトンネルに従った前記加入者セッションのパケットの転送を終了させるために、前記制御プレーンプロトコルを介して、前記GTPトンネルの前記ルート内の前記少なくとも1つのスイッチの構成を除去する、ように構成される、請求項11のクラウドコンピューティングシステム。
前記コントローラは、前記制御プレーンプロトコルを介して、前記GTPトンネルの新たなルート内のスイッチを、前記GTPトンネルに従って前記加入者セッションのパケットを転送するように構成する、ように構成される、請求項12のクラウドコンピューティングシステム。
【発明を実施するための形態】
【0009】
以下の説明において、多くの特定の詳細が呈示される。しかしながら、それら特定の詳細が無くとも本発明の実施形態は実践され得ることが理解される。他の例において、よく知られた回路、構造及び技法は、本説明の理解を曖昧にしないために、詳細には示されていない。しかしながら、そうした特定の詳細が無くとも本発明は実践され得ることが、当業者には理解されるであろう。過剰な実験をせずとも、包含した説明があれば、当業者は適切な機能性を実装することができるであろう。
【0010】
図8、10〜12、14及び15の例示的な実施形態を参照しながら、フロー図の動作が説明されるであろう。しかしながら、フロー図の動作は
図8、10〜12、14及び15を参照しながら議論されるものとは別の本発明の実施形態によって実行されることができること、並びに、
図8、10〜12、14及び15を参照しながら議論される実施形態は
図5、7、13、18、19、20及び21のフロー図を参照しながら議論されるものとは異なる動作を実行することができること、が理解されるべきである。
【0011】
図中に示す技法は、1つ以上の電子デバイス(例えば、端局、ネットワークエレメントなど)上で記憶され及び実行されるコード及びデータを用いて実装されることができる。そうした電子デバイスは、非一時的なマシン読取可能な又はコンピュータ読取可能な記憶媒体(例えば、磁気ディスク、光学ディスク、ランダムアクセスメモリ、リードオンリメモリ、フラッシュメモリデバイス及び相変化メモリ)などの、非一時的なマシン読取可能な又はコンピュータ読取可能な媒体を用いて、コード及びデータを記憶し及び(内部的に、及び/又はネットワーク上で他の電子デバイスとの間で)通信する。加えて、そうした電子デバイスは、典型的には、1つ以上の記憶デバイス、ユーザ入出力デバイス(例えば、キーボード、タッチスクリーン及び/又はディスプレイ)並びにネットワーク接続などの、1つ以上の他のコンポーネントと結合される、1つ以上のマイクロプロセッサのセットを含む。マイクロプロセッサのセットと他のコンポーネントとの間の結合は、典型的には、1つ以上のバス及びブリッジ(バスコントローラともいう)を通じてなされる。記憶デバイスは、1つ以上の非一時的なマシン読取可能な又はコンピュータ読取可能な記憶媒体及び非一時的なマシン読取可能な又はコンピュータ読取可能な通信媒体を表現する。よって、所与の電子デバイスの記憶媒体は、典型的には、電子デバイスの1つ以上のプロセッサのセット上での実行のための、コード及び/又はデータを記憶する。当然ながら、本発明の一実施形態の1つ以上の部分が、ソフトウェア、ファームウェア及び/又はハードウェアの異なる組合せを用いて実装されてもよい。
【0012】
ここで使用されるように、ネットワークエレメント(例えば、ルータ、スイッチ、ブリッジなど)は、ネットワーク上の他の機器(例えば、他のネットワークエレメント、端局など)と通信可能に相互接続するハードウェア及びソフトウェアを含む1つのネットワーキング機器である。いくつかのネットワークエレメントは、マルチネットワーキング機能(例えば、ルーティング、ブリッジング、スイッチング、レイヤ2統合、セッションボーダ制御、マルチキャスティング、及び/若しくは加入者管理)についてのサポートを提供し、並びに/又は、マルチアプリケーションサービス(例えば、データ、ボイス及びビデオ)についてのサポートを提供する、“マルチサービスネットワークエレメント”である。加入者端局(例えば、サーバ、ワークステーション、ラップトップ、パームトップ、モバイルフォン、スマートフォン、マルチメディアフォン、VOIP(Voice Over Internet Protocol)フォン、ポータブルメディアプレーヤ、GPSユニット、ゲーミングシステム、セットトップボックス(STB)など)は、インターネット上で提供されるコンテンツ/サービス、及び/又は、インターネット上に重畳される仮想プライベートネットワーク(VPN)上で提供されるコンテンツ/サービスにアクセスする。コンテンツ及び/又はサービスは、典型的には、サービスプロバイダ若しくはコンテンツプロバイダに属する1つ以上の端局(例えば、サーバ端局(server end stations))又はピアツーピアサービスに参加する端局によって提供され、パブリックウェブページ(無料コンテンツ、ストアフロント、検索サービスなど)、プライベートウェブページ(例えば、電子メールサービスを提供する、ユーザ名/パスワードによりアクセスされるウェブページ)、VPN上の企業ネットワーク、IPTVなどを含み得る。典型的に、加入者端局は、(例えば、(無線又は有線で)アクセスネットワークに結合される顧客構内の機器を通じて)エッジネットワークエレメントに結合され、当該エッジネットワークエレメントは、(例えば、他のエッジネットワークエレメントへの1つ以上のコアネットワークエレメントを通じて)他の端局(例えば、サーバ端局)に結合される。
【0013】
本発明の実施形態は、従来技術の欠点を回避するための方法及びシステムを提供する。従来技術の欠点は、3Gパケットコアの従来の実装が特定のネットワークエンティティ専用のサーバのプールを使用することであり、例えばSGSNのホスティング専用のサーバのプールなどである。追加的なシグナリングの需要が余分なキャパシティを要する場合、新たなSGSNのインスタンスがサーバプール内でインスタンス化される。しかしながら、ホーム加入者サーバ(HSS)のサービスについて需要が大きい場合、HSSサーバ専用のサーバプールは高負荷で利用されることになり、しかしSGSNのためのサーバプールはそれほど利用されない。それほど利用されない当該サーバプールは、依然としてメンテナンスを要し、運用費用を発生させ、しかしネットワーク事業者のために最適なパフォーマンスを提供しない。
【0014】
いくつかの状況において、管理サービス会社がモバイル事業者のネットワークを構築し及び稼働させ、一方でモバイル事業者自身はマーケティング、請求及びカスタマリレーションを扱う。各モバイル事業者のネットワークについてのシグナリング及びデータトラフィックは、それらネットワークと競業者のネットワークとが同じ管理サービス会社により管理され得るとしても、プライベートに保たれ、その競業者のトラフィックからは隔離される。管理サービス会社は、完全に別個のサーバプールと、自身がサポートするモバイル事業者ごとの物理的なシグナリングネットワークとを維持しなければならない。結果として、リソースの大幅な冗長性と、サーバキャパシティの利用率低下(underutilization)とが存在する。これは、追加的な機器、電力及び冷却要件に起因して、管理サービス会社及びモバイル事業者ネットワークのための運用費用を増加させる。
【0015】
現在定義されている通りの3Gパケットコアアーキテクチャは、モバイル事業者の固定的なコア/インターネットとモバイル統合ネットワークとの間にプレゼンス点(PoP:point of presence)を1つのみ許容しており、即ち、単一のGGSN(gateway GPRS support node)が存在する。モバイルネットワーク事業者は、統合ネットワーク内の隣接する事業者の間に、複数のピアリング点及びPoPをセットアップすることができない。これは、モバイル事業者のコアネットワークへ流入するトラフィックの量を低減し、それによりコアネットワークの高価で時間の掛かるアップグレードについての必要性が低減される。加えて、ピアリング点は、サービスレベル協定(SLA:service level agreements)が遵守されている限りは、通常は事業者にコストを掛けない。しかしながら、この配備の柔軟性は、単一のモバイルゲートウェイにおいてコア/インターネットとのPoPをアンカリング(anchor)しなければならないことに起因して、モバイル事業者にとって利用可能でない。
【0016】
3G PCアーキテクチャは、ユーザフローの特殊な取り扱い(treatment)のための柔軟性もあまり含まない。当該アーキテクチャはサービス品質(QoS)を確立するためのサポートを提供するものの、他の種類のデータ管理は利用可能でない。例えば、特殊なディープパケットインスペクション、又は、トランスコード若しくは拡張現実アプリケーションのために利用され得るローカルデータキャッシュ及び処理リソースとのとのやり取りといった、ミドルボックスが関与するサービスは、現行の3G PCアーキテクチャではサポートすることが難しい。そうしたアプリケーションのほとんど全ては、パケットフローがGGSNを通って退出することを要し、そこでGTPからトンネル解除(de-tunnneled)され、有線ネットワーク内で処理されることになる。
【0017】
3G PCの制御プレーンのクラウドコンピューティング設備における実装と、OpenFlowプロトコル(例えば、OpenFlow1.1)を用いた制御プレーンとデータプレーンとの間の通信の管理に加えて、OpenFlowスイッチのセットを用いた3G PCのデータプレーンの実装は、OpenFlowプロトコルが、3G PCのデータプレーンの実装のために必要とされる、GTP又はGTPトンネルエンドポイント識別子(TEID)ルーティングをサポートしないという問題を生じさせる。
【0018】
本発明の実施形態は、従来技術のこれら欠点を克服する。3G PCアーキテクチャのために制御プレーンとデータプレーンとを分離(split)し、クラウドコンピューティング設備内に3G PC制御プレーンエンティティを配備することにより制御プレーンを実装することで、従来技術の欠点が回避され、一方で、データプレーンはOpenFlowスイッチの集合を分散させることにより実装される。OpenFlowプロトコルは、その2つをGTPルーティングをサポートする拡張と共に接続するために使用される。3G PCアーキテクチャは既に制御プレーンとデータプレーンとの間の分離を有するものの、SSGN及びGGSNがそもそもデータプレーンエンティティであってHLR(home location register)、HSS(home subscriber server)及びAUC(authentication center)がそもそも制御プレーンエンティティであるという意味において、その分離はモビリティ管理プロトコル、GTP、のレベルでなされたものである。
【0019】
標準の3G PCアーキテクチャは、標準によってルーティングが行われるトランスポート用IPネットワークを前提とし、その上位(top)でモバイルネットワークエンティティ及びプロトコルが実装される。ここで説明される拡張される3G PCアーキテクチャは、代わりに、IPルーティング及びメディアアクセス制御(MAC)スイッチングのレベルにあたる。IPルーティングとイーサネット及びIPルーティングの管理を分散させるために、L2ルーティングプロトコル及びL3内部ゲートウェイプロトコルを、分散された制御エンティティの集合として使用する代わりに、L2及びL3ルーティングの管理がクラウド設備内に一元化され、ルーティングがOpenFlowプロトコルを用いてクラウド設備から制御される。ここで使用されるように、“OpenFlowプロトコル”は、スタンフォード大学によってホスティングされているウェブサイトであるwww.openflowswitch.orgにてOpenFlowスイッチ仕様内で定義されている、OpenFlowネットワークプロトコル及びスイッチング仕様をいう。ここで使用されるように、“OpenFlowスイッチ”は、OpenFlowプロトコルを実装するネットワークエレメントをいう。
【0020】
クラウド内で、標準の3G PC制御プレーンエンティティであるHSS、HLR、AUC、VLR(visitor location register)、EIR(equipment identity register)、SMS−IWMSC(sort message service interworking message center)、SMS−GMSC(SMS gateway message center)及びSLF(subscriber location function)並びにSGSN及びGGSNの制御プレーンの側面が配備される。データプレーンは、IPルータ及びイーサネットスイッチよりもむしろ、GTPパケットをルーティングするための必要に応じた拡張を伴って、標準のOpenFlowスイッチから構成される。最小限で、SGSN及びGGSNのデータプレーン部分、並びにE−UTRAN内のNodeBのパケットルーティング部分は、GTPルーティングのためのOpenFlow拡張を要する。ルーティングについてどれほど精細な制御を事業者が要するかに依存して、3G PCアーキテクチャ内の他のスイッチにGTPルーティングのための追加的な拡張が必要とされ得る。GTPルーティングのための拡張は、3G PCアーキテクチャ内で、GTPトンネルを確立するための処理、GTPトンネルを修正するための処理、及びGTPトンネルをティアダウンさせるための処理を含む。
【0021】
3G PCの制御プレーン部分及びデータプレーン部分の間の分離を仮想プライベートクラウド(VPC)技術と共に用いて、単一の3G PC内の複数のPoPを実装し、特殊なアプリケーションのためのGTPフロー固有のルーティングを提供し、単一のクラウドコンピューティング設備から複数の事業者ネットワークを稼働させることができる。
【0022】
1つの実施形態において、クラウドベースの3G PCシステムを、ハードウェアデバイスのセットとして実装することができる。他の実施形態において、システムコンポーネントはソフトウェア(例えば、マイクロコード、アセンブリ言語又は上位レベルの言語)で実装される。それらソフトウェアの実装は、非一時的なコンピュータ読取可能な媒体上に記憶され得る。非一時的な“コンピュータ読取可能な”媒体は、情報を記憶可能ないかなる媒体をも含み得る。非一時的なコンピュータ読取可能な媒体の例は、リードオンリ―メモリ(ROM)、フロッピーディスク、CD Rom、DVD、フラッシュメモリ、ハードドライブ、光学ディスク又は類似の媒体を含む。
【0023】
[OpenFlow1.0ネットワーク]
図1は、OpenFlow1.0仕様に準拠するOpenFlowスイッチを伴う例としてのネットワークの1つの実施形態の図である。OpenFlow1.0プロトコルは、コントローラ101が、OpenFlow1.0対応のスイッチ109へセキュアチャネル103を用いて接続し、スイッチ109内の単一の転送テーブル107を制御することを可能とする。コントローラ101は、ユーザがOpenFlow1.0スイッチ109を設定することを可能とする遠隔コンピューティングデバイスによって実行される外部ソフトウェアコンポーネントである。セキュアチャネル103は、ローカルエリアネットワーク(LAN)又はインターネットなどのワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークによって提供可能である。
【0024】
図2は、フローテーブルエントリの内容の1つの実施形態を例示する図である。転送テーブル107は、パケットヘッダ内のフィールド群についてのマッチングを定義するルール201、フローマッチに関連付けられるアクション203、及びフローについての統計の集合205からなるエントリで形成される。インカミングパケットが受信されると、フローテーブル107内でマッチングするルールのルックアップが行われる。インカミングパケットが特定のルールに適合する場合、フローテーブルエントリ内で定義されている関連付けられるアクションが当該パケットについて実行される。
【0025】
ルール201は、プロトコルスタック内のいくつかのヘッダからのキーフィールド群、例えば、ソース及び宛て先イーサネットMACアドレス、ソース及び宛て先IPアドレス、IPプロトコルタイプ番号、インカミング及びアウトゴーイングTCP/UDPポート番号、を含む。フローを定義するために、利用可能な全てのマッチングフィールドが使用されてよい。但し、望まれないフィールドについてはワイルドカードを使用することで、利用可能なフィールドのサブセットにマッチングルールを制限することも可能である。
【0026】
OpenFlow1.0の仕様により定義されているアクションは、適合したパケットを破棄するDrop、1つ又は全てのアウトゴーイングポートへ、インカミング物理ポートそれ自身へ、セキュアチャネルを介してコントローラへ、又は(もし存在すれば)ローカルネットワークスタックへパケットを転送するForward、である。OpenFlow1.0プロトコルデータユニット(PDU)は、Cプログラミング言語を用いて特定される構造のセットで定義されている。より一般的に使用されるメッセージのいくつかは、スイッチ構成レポートメッセージ、(フローエントリ修正メッセージ及びポート修正メッセージを含む)ステート修正メッセージ、ステート読取りメッセージ、パケット送信メッセージであり、システムの稼動中にステート読取りメッセージを用いて現行の自身のステートに関してデータパスが問合せされ、パケット送信メッセージはコントローラがデータパスを通じて外部へパケットを送信することを希望する場合に使用される。
【0027】
OpenFlow1.0は、何らかのプロトコルエレメントを拡張することを可能とする“ベンダ拡張(vendor extensions)”をサポートする。プロトコルメッセージ及びテーブルアクションは拡張可能だが、フローマッチングルールは可能ではない。クラウドベースのEPCアーキテクチャとの関連におけるこれら拡張の使用が以下にさらに議論される。
【0028】
[OpenFlow1.1ネットワーク]
図3は、OpenFlow1.1仕様に準拠する、OpenFlowを実装する他の例としてのアーキテクチャを示している。本実施形態において、複数のフローテーブル301についての明示的な提供がある。これは、テーブルサイズの組合せによる激増を引き起こすことなく、特定のルール及びアクションをミックスしマッチングするためのパケット処理パイプラインを可能とする。例えば、1つのフローテーブルはQoS処理を実行可能であり、一方で別のフローテーブルはルーティングを行う。
【0029】
図4は、OpenFlow1.1スイッチによるパケット処理パイプラインを通じたパケットの処理の1つの実施形態を示している。受信されたパケットは、フローテーブル401の各々に対して比較される。各フローテーブルのマッチング後に、アクションがアクションセットに蓄積される。他のフローテーブルに対するマッチングを処理が必要とする場合、適合したルール内のアクション群は、処理をパイプライン内の次のテーブルへと向かわせるアクションを含む。全ての蓄積されたアクション群を即座に実行するというアクションをセット内に含まない場合、アクション群はパケット処理パイプラインの最終段403において実行される。あるアクションはメタデータレジスタへのデータの書き込みを可能とし、メタデータレジスタはパケット処理パイプラインに沿ってパケットヘッダと同様に搬送される。
【0030】
図5は、OpenFlow1.1のルールマッチング処理の1つの実施形態のフローチャートである。OpenFlow1.1は、パケットのタグ付けについてのサポートを含む。OpenFlow1.1は、ヘッダフィールド及びMPLS(multi-protocol label switching)ラベルに基づくマッチングを可能とする。1つの仮想LAN(VLAN)ラベル及び1つのMPLSラベルがテーブルごとにマッチング可能である。処理すべきパケットの到達と共に、ルールマッチング処理が開始される(ブロック501)。第1のテーブル0から、受信されたパケットとの適合を判定するためにルックアップが実行される(ブロック503)。当該テーブル内で適合がなければ、デフォルトアクションのセットのうちの1つが行われる(即ち、コントローラへのパケットの送信、パケットの破棄又は次のテーブルへ続行)(ブロック509)。適合があれば、カウンタ、パケット又は適合セットフィールド及びメタデータと共に、アクションセットの更新が行われる(ブロック505)。処理すべき次のテーブルを判定するためのチェックが行われ、それはシーケンシャルな次のテーブルか、又は適合したルールのアクションにより特定されるテーブルであり得る(ブロック507)。テーブルの全てが一度処理されると、導かれたアクションセットが実行される(ブロック511)。
【0031】
図6は、パケットに適用すべきルールを識別するためにマッチング処理が利用することのできるフィールド群の図である。アクションは、ラベルをプッシュし及びポップすることによるタグスタックの操作を可能とする。複数のテーブルと組み合わされて、VLAN又はMPLSラベルスタックを、テーブルごとに1つのラベルをマッチングすることにより処理することができる。
【0032】
図7は、ヘッダパース(header parsing)処理の1つの実施形態のフローチャートである。パース処理は、マッチングフィールドのセットを初期化し、様々なヘッダタイプのセットの出現をチェックすることにより、パケットヘッダをマッチングする(ブロック701)。本プロセスは、VLANタグについてチェックを行う(ブロック703)。VLANタグが出現している場合、当該VLANタグのための一連の処理ステップが存在する(ブロック705〜707)。スイッチがMPLSをサポートする場合(ブロック709)、MPLSヘッダ情報を検出し処理するための一連のステップが存在する(ブロック711〜715)。スイッチがアドレス解決プロトコル(ARP)をサポートする場合、ARPヘッダを処理するための一連のステップが存在する(ブロック719及び721)。パケットがIPヘッダを有する場合(ブロック723)、当該IPヘッダを処理するための一連のステップが存在する(ブロック725〜733)。本処理は、受信されるパケットごとに実行される。
【0033】
1つの実施形態において、OpenFlow1.1プロトコルとの関係でグループテーブルをサポートすることができる。グループテーブルは、単一のフローの適合が複数のポート上での転送をトリガすることを許容する方法を可能とする。グループテーブルエントリは、4つのフィールドからなる:グループを識別する32ビットの符号無し整数であるグループ識別子;グループのセマンティクスを決定するグループタイプ;グループについての統計を維持するカウンタ;及び、そのパラメータと共に実行すべきアクションのセットを各々収容するアクションバケットの順序付きリストであるアクションバケットリスト。
【0034】
グループには4つの異なるタイプがある:バケットリスト内の全てのアクションを実行し、これはブロードキャスト又はマルチキャスト転送のために使用される、オール(All);OpenFlowプロトコルの範囲外のスイッチにより決定されるアルゴリズムに基づいてパケットごとに1つのバケットを実行し、これはマルチパス転送を実装するために使用される、セレクト(Select);全てのパケットについて単一のバケットを実行し、これは複数の転送テーブルエントリ内で定義されるアクションを有するよりもむしろ複数のフロー又はグループがアクションの単一の集合をポインティングすることを可能とする、インダイレクト(Indirect);各バケットがその生存性(liveness)を制御するポートに関連付けられる状況において第1の生存バケット(live bucket)を実行し、これはコントローラの関与なく他のポートへスイッチがフェイルオーバすることを可能とする、高速フェイルオーバ(Fast Failover)。
【0035】
OpenFlow1.1を利用して、仮想ポートをサポートすることができる。ここで使用されるように、仮想ポートは、物理ポートが行うようにネットワーク接続へ向けてパケットを単純に転送するのではなく、何らかの種類の処理アクションを実行する“アクションブロック”である。数少ないビルトインの仮想ポートの例は:入口ポート及び“転送不要(Do Not Forward)”とマークされた任意のポートを除く全てのポートへ
パケットを転送するオール(ALL);パケットをカプセル化してコントローラへ送信するコントローラ(CONTROLLER);パケットを第1のフローテーブルへ投入(submit)することによりパケット処理パイプラインへ挿入し、本アクションはパケットアウトメッセージのアクションセット内でのみ有効である、テーブル(TABLE);及び、パケットを入力ポートから送出するイン_ポート(IN_PORT)。他の実施形態において、スイッチによって定義される仮想ポートもあり得る。
【0036】
[3G PCアーキテクチャ]
図8は、3Gパケットコア(3G PC)ネットワークの1つの実施形態の図である。3G PCネットワークは、コアネットワーク(CN)801、無線アクセスネットワーク(RAN)803、及びユーザ機器(UE)805という、相互作用する3つのドメインからなる。ユーザ機器805は、コンピューティングデバイス、セルラーフォン及び類似のデバイスであり得る。無線アクセスネットワーク803は、UMTS(universal mobile telecommunications system)841又はGSM(global systems for mobile communications)ネットワーク843を含む任意の数のネットワーク又は任意のネットワークの組合せであり得る。これらネットワークは、無線ネットワークセンタ(RNC)831又はパケット制御ユニット(PCU)833を通じてコアネットワーク801とインタフェースすることができる。
【0037】
コアネットワーク801の主な機能は、ユーザ機器805からのユーザトラフィックについて、スイッチング、ルーティング及びトランジットを提供することである。コアネットワーク801は、データベース及びネットワーク管理機能をも含む。それは、GSM/GPRS、WCDMA(wideband code division multiple access)/HSPA(high speed packet access)及び非3GPPモバイルネットワークについて共通的なパケットコアネットワークである。コアネットワーク801は、インターネットプロトコル(IP)パケットを送信するために使用される。コアネットワーク801は、GGSN819を通じて、インターネット851及び他のネットワーク853とインタフェースする。
【0038】
コアネットワーク801は、回線交換ドメイン及びパケット交換ドメインに区分される。回線交換用のエレメントは、MSC(mobile services switching centre)811、VLR(visitor location register)813及びゲートウェイMSC815を含む。パケット交換用のエレメントは、SGSN817及びGGSN819である。EIR821、HLR823、VLR813及びAUC825のような他のネットワークエレメントは、双方のドメインによって共用される。
【0039】
コアネットワーク801のアーキテクチャは、新たなサービス及び特徴が導入されると変化し得る。他の実施形態では、ユーザが古い電話番号を維持しつつネットワークを変更することを可能とするために、NPDB(number portability database)が使用され得る。ネットワーク境界間の加入者ハンドリングを最適化するために、GLR(gateway location register)が使用されてもよい。
【0040】
モバイル無線ネットワーキングに関するコアネットワーク801の主要な機能は、モビリティ管理及びQoSである。これら機能は、典型的には固定ブロードバンドネットワークでは提供されないが、無線ネットワークにとっては極めて重要(crucial)である。モビリティ管理は、無線端末がある基地局から他へと移動する場合にパケットネットワークの接続性を保証するために必要とされる。QoSが必要とされるのは、固定ネットワークとは違って、無線リンクは端末へどの程度の帯域を提供可能であるかに厳密に制約され、ユーザに受入れ可能なサービス品質を提供するために固定ネットワークよりも厳しく帯域を管理する必要があるためである。
【0041】
モビリティ管理機能及びQoS機能を実装するためのシグナリングは、GPRSトンネリングプロトコル(GTP)により提供される。GTPは、2つのコンポーネントを有する:GTP−C … モビリティ管理のためのトンネルの確立と、有線バックホール及びパケットコアのQoSを無線リンクQoSに適合させるQoS管理のためのベアラの確立とをサポートする制御プレーンプロトコル;及び、GTP−U … ルータとして動作するネットワークエレメントの間のトンネルを実装するために使用されるデータプレーンプロトコル。GTP−Cプロトコルには2つのバージョンがあり、即ちGTPバージョン1(GTPv1−C及びGTPv1−U)と、(LTEのために設計された)GTPバージョン2−Cである。GTPv1は、主に、3G PCベースのシステムとの関係で利用される。
【0042】
ネットワークサービスは、エンドツーエンドであると見なされ、これは端末機器(TE:Terminal Equipment)から他のTEへという意味である。エンドツーエンドサービスサービスは、ネットワークサービスのユーザに提供されるあるサービス品質(QoS)を有し得る。提供されるQoSに満足するか否かを決定するのはユーザである。あるネットワークQoSを実現するために、明確に定義された特性と機能性とを伴うサービスが、サービスのソースから宛て先へとセットアップされることになる。
【0043】
QoSパラメータに加えて、各ベアラは、関連付けられるGTPトンネルを有する。GTPトンネルは、トンネルエンドポイントノード(無線基地局、SGSN及びGGSN)のIPアドレス、ソース及び宛て先UDPポート、及びトンネルエンドポイント識別子(TEID)からなる。GTPトンネルは一方向的であって、よって各ベアラは2つのTEIDに関連付けられ、1つはアップリンク、1つはダウンリンクのトンネルである。GTPトンネルの1つのセット(アップリンク及びダウンリンク)は、無線基地局とSGSNとの間に延伸し、1つのセットはSGSNとGGSNとの間に延伸する。GTP−UのためのUDP宛て先ポート番号は2152である一方、GTP−Cのための宛て先ポート番号は2123である。ソースポート番号は、送信ノードによって動的に割り当てられる。
図9は、プライマリGTP−Uカプセル化ヘッダ内のヘッダフィールド群の1つの実施形態の図である。
【0044】
[クラウドコンピューティング]
データセンタは、外部の顧客に、コンピューティング、ストレージ及びネットワーク通信リソースを提供する。提供されるサービスは、より実際的な目的では顧客の支払い能力によってのみ制限される、弾性的でオンデマンドのプロセッシング、ストレージと、インターネットへのネットワーク帯域と、からなることができる。このデータセンタにより提供されるサービスのセットを、ここでクラウドコンピューティングという。
【0045】
サーバ仮想化技術は、サーバのプールを本質的に1つの大規模な計算リソースとして管理することを可能とする。オペレーティングシステムとハードウェアとの間に、ハイパーバイザ(hypervisor)と呼ばれるソフトウェアのレイヤが存在する。ハイパーバイザは、仮想マシン(VM)の実行をスケジューリングする。VMは、いくつかのアプリケーションと共にパッケージ化されたオペレーティングシステムイメージである。ハイパーバイザは、VMが一時停止しロードバランシングのためにサーバ間で移動することを可能とする。ロードバランシング、及びクラッシュを捕捉するためのVMの実行のモニタリングは、特殊なソリューションと共により高コストで達成される企業アプリケーションのために、同じ種類の耐障害性(fault tolerance)とスケーラビリティサービスとを提供する。クラウドマネージャシステムは、VMの実行、VMの需要を満たすための実行のスケジューリング、並びにサーバ利用の最適化及び電力消費の最小化を監督する。クラウドマネージャあるいはクラウドオペレーティングシステムは、クラウドコンピューティングシステムにおけるVM及びそのアプリケーションへの進行中のサービスの提供に影響を与えることなくハードウェア及びソフトウェアのサービス内アップグレードを可能とするように、実行をスケジューリングすることのできるソフトウェアプログラムである。
【0046】
マシン間のVMの任意の移動をサポートするために、データセンタ内のネットワーキングもまた仮想化されなければならない。クラウドコンピューティングシステムは、ハイパーバイザに仮想スイッチを取り入れることにより、ネットワークを仮想化することができる。仮想スイッチは、ハイパーバイザの制御下で実行中のVMに仮想ネットワークポートを提供する。仮想スイッチソフトウェアは、サーバリソースがハイパーバイザによって仮想化されるのと同様のやり方で、ネットワークリソースを仮想化することも可能とする。ハイパーバイザ及び仮想スイッチは、それにより、VMがサーバ間で移動可能となるように協働する。ハイパーバイザは、VMを移動させる際、新たなロケーションに関して仮想スイッチと通信し、仮想スイッチは、パケットが新たなロケーションへルーティングされるようにVMのアドレス(L2MACアドレス、潜在的にIPアドレスも)についてのネットワークルーティングテーブルが更新されることを保証する。
【0047】
クラウドコンピューティングシステムは、どういった範囲のケイパビリティ(例えば、処理パワー又はストレージ容量)を有するいくつのコンピューティングデバイスから構成されることもできる。クラウドコンピューティングシステムは、プライベートシステムでもパブリックシステムでもあり得る。コンピューティングデバイスは、いかなる通信システム又はネットワークをまたいで互いに通信することもできる。クラウドコンピューティングシステムは、単一のクラウド若しくはサービスをサポート可能であり、又はいくつの離散的なクラウド若しくはサービスをサポートすることもできる。サービス、アプリケーション及び同様のプログラムは、標準的なコードとして仮想化され又は実行され得る。1つの実施形態において、クラウドコンピューティングシステムは、ウェブサービスアプリケーションをサポートすることができる。ウェブサービスアプリケーションは、ウェブサーバのプールへリクエストを送り出すロードバランシングフロントエンドからなる。リクエストはインターネット上のリモートマシン上のアプリケーションから発せられ、従って、プライベートな企業ネットワーク内のアプリケーションのためのものよりも、セキュリティ及びプライバシー要件は非常に緩い。
【0048】
クラウドコンピュータシステムは、セキュアなマルチテナント(multi-tenancy)をサポートすることもでき、そこでは、クラウドコンピュータシステムプロバイダは、クラウド外のクライアントの分散したオフィスネットワークと、クラウドコンピューティングシステム内のVPNとの間のVPN(virtual private network)ライクな接続を提供する。これは、クラウドコンピューティングシステム内のクライアントのアプリケーションが企業WANに似たネットワーク環境において動作することを可能とする。プライベートデータセンタについては、当該データセンタを所有する企業の範囲内の顧客にサービスが提供されるのみであり、マルチテナントのためのセキュリティ及びプライバシー要件は緩和される。しかし、パブリックデータセンタについては、複数のテナントからのトラフィックが隔離されており、1つのクライアントからのトラフィックが他のクライアントのネットワークへ到達する可能性が無いことを、クラウド事業者は保証しなければならない。
【0049】
図10は、クライアントのセットへサービスするクラウドコンピューティングシステムの1つの実施形態の図である。ここで使用されるように、“セット”は、正である任意の総数のアイテムをいう。
図10に示した実施形態では、2つの仮想プライベートクラウド(VPC)が2つの異なる外部の企業顧客のためにセットアップされている。VPCは、VM、ストレージ及びネットワークリソースの集合から構成され、それらはクラウド内のスペースを借り受けている企業にセキュアなマルチテナントを提供する。企業顧客は、パブリック事業者ネットワーク上で稼働しているインターネット上のVPNを介して、VPCへ接続する。
【0050】
図11は、クライアントのVPCへ新たなサービスインスタンスを追加する処理を示す、クラウドコンピューティングシステムの他の実施形態の図である。このケースでは、クラウド内のVPNは、MACレイヤ仮想LAN(VLAN)を用いて実装される。新たなサービスインスタンスをリクエストする企業のために、VPC内のハイパーバイザ管理型サーバ(hypervisor managed server)上にVMが生成される(ステップ1)。新たなVMを企業のクラウド内VPNに含めるように仮想スイッチVLANが構成され、それによりクラウド内のサービス接続性が確立される(ステップ2)。新たなサービスのために仮想カスタマエッジルータ(CE)が更新される(ステップ3)。新たなサービスで、企業VPNが稼動している事業者ネットワーク内のプロバイダエッジルータが更新される(ステップ4)。
【0051】
[クラウドコンピューティングシステムにおける3G PCの実装]
図12は、クラウドコンピューティングシステム内に実装されるEPCの1つの実施形態の図である。3G PCの制御プレーンエンティティ(AUC,HLR,HSS)1207、及びサポートノード(SGSN,GGSN)の制御プレーン部分1207、即ちGTPシグナリングをハンドリングする部分が、OpenFlowコントローラ1205の一部としてクラウドコンピューティングシステム1201内に実装される。制御プレーンエンティティ1207及びOpenFlowコントローラ1205は、VMとしてパッケージ化される。OpenFlowコントローラ1205と制御プレーンエンティティ1207との間のアプリケーションプログラムインタフェース(API)は、リモートプロシージャコール(RPC)又は類似のインタフェースであり得る。この実装技術は、クラウド内の制御プレーンエンティティのスケーラブルな管理にとって好都合であり、なぜなら、需要に従って別々に制御プレーンエンティティ1207の実行とコントローラ1205の実行とを管理することを可能とするからである。クラウドマネージャ1203は、VMか、又はクラウドコンピューティングシステム1201内で実行されるアプリケーションであり得る。
【0052】
クラウドマネージャ1203は、3G PC制御プレーンエンティティ1207のCPU(central processor unit)利用率、及びクラウド内の3G PC制御プレーンエンティティ1207間の制御プレーントラフィックをモニタリングする。また、エンドユーザデバイス(UE)1225と、クラウドコンピューティングシステム1201内に制御プレーンエンティティを有しないNodeB1217、及び3G PC制御プレーンエンティティ1207との間の制御プレーントラフィックをもモニタリングする。3G PC制御プレーンエンティティ1207が例えば過剰なCPU時間の利用又は処理すべき過剰なトラフィックのキューイングといった過負荷のサインを呈し始めると、過負荷を受けている制御プレーンエンティティ1207は、クラウドマネージャ1203に、負荷をハンドリングする新たなVMをスタートアップすることをリクエストする。追加的に、3G PC制御プレーンエンティティ1207は、過負荷を経験し始めていることを内部的に検出した場合に、自分でクラウドマネージャ1203へイベント通知を発行することができる。
【0053】
クラウドマネージャ1204は、いずれかの3G PC制御プレーンエンティティ1207がクラッシュしそうであれば、特定の制御プレーンエンティティ1207又は機能のためのVMをリスタートさせることにより、信頼性及びフェイルオーバをも提供する。このリスタート処理の間、クラウドマネージャは、診断データを収集し、障害を起こした3G PC制御プレーンエンティティのコアファイルを保存し、システム管理者へ障害が発生したことを通報することができる。制御プレーンエンティティ1207は、
図8に示した3GPP 3G PCアーキテクチャ内のものと同じ、制御プレーンエンティティの間のプロトコルインタフェースを維持する。
【0054】
ここでは点線で示されているOpenFlow制御プレーン12321は、ネットワーク内のルーティング及びスイッチング構成を管理する。OpenFlow制御プレーン1221は、クラウドコンピューティングシステム1203を、SGSN−D1215(即ち、SGSNのデータプレーン)、標準OpenFlowスイッチ1213、及びGGSN−D1211(即ち、GGSNのデータプレーン)へ接続する。OpenFlow制御プレーン1221の物理的な実装は、完全に別個の物理ネットワークとしてなされてもよく、又は同じ物理ネットワーク上でデータプレーンとして稼動する仮想ネットワークであってもよい。仮想ネットワークは、優先度付きVLAN若しくはMPLSラベルスイッチパスで実装され、又はGRE(generic routing encapsulation)若しくは他のIPトンネルでさえ実装されてよい。OpenFlow制御プレーン1221は、原理上は、GTP−C及び他のモバイルネットワークシグナリングとして、同じ物理制御プレーンパスを使用することができる。SGSN−D1215及びGGSN−D1211は、以下でさらに説明されるOpenFlow GTPスイッチ拡張を用いてパケットカプセル化し及び非カプセル化(decapsulate)する、OpenFlow GTP拡張ゲートウェイとして動作する。
【0055】
3G PCとNodeBとの間で必要とされる無線アクセスネットワーク(RAN)シグナリングは単にIPルーティングパラメータではなく無線パラメータを含むため、NodeB1217は、クラウド内に制御プレーンエンティティを有しない。従って、クラウドコンピューティングシステム1201内のOpenFlowコントローラ1205とNodeB1217との間にOpenFlow制御プレーン1221接続は無い。NodeB1217は、しかしながら、OpenFlowを用いたデータプレーン接続へのローカル制御を実装することにより、OpenFlow GTP拡張ゲートウェイとして動作することができる。これは、NodeB1217のパケットスイッチングの側面がパケットゲートウェイとして同じOpenFlow GTPスイッチング拡張を利用することを可能とする。
【0056】
3G PCクラウドコンピューティングシステムの動作は次のように働く。UE1225、NodeB1217、SGSN1207及びGGSN1207は、GTPトンネルを確立し、修正し及び削除するために、HLR、HSS、AUC、SMS−GMSC1207へ標準的な3G PCプロトコルを用いてシグナリングを行う。このシグナリングは、リクエストされた通りに3G PC内のルーティングを修正する、OpenFlowコントローラに伴うプロシージャコールをトリガする。OpenFlowコントローラは、制御プレーンエンティティによりリクエストされたルーティングを可能とするフロールール及びアクションで、標準のOpenFlowスイッチ、OpenFlow SGSN1215及びGGSN1211を構成する。この構成の詳細は、以下にさらに詳細に説明される。
【0057】
図13は、3G PCの基本的な動作の1つの実施形態のフローチャートである。1つの実施形態において、クラウドコンピューティングシステム内のOpenFlowコントローラ内の3G PCの制御プレンモジュールの初期化によって、処理は開始される(ブロック13401)。複数の制御プレーンモジュールのうちの各制御プレーンモジュールは、クラウドマネージャにより別個のVMとして初期化される。そして、クラウドマネージャは、各制御プレーンモジュールのリソース利用率と共に、各制御プレーンモジュールによりハンドリングされる制御プレーントラフィックの量とタイプとをモニタリングする(ブロック1303)。クラウドマネージャは、このデータを直接的にモニタリングし、制御プレーンモジュールからレポートを受信し、又はそれらの組合せを行い得る。
【0058】
クラウドマネージャは、モニタリング中の複数の制御プレーンモジュールのうちのいずれかについて閾値レベルのリソース利用率又はトラフィック負荷を検出すると(ブロック1205)、このシナリオに自動的に対処するためのステップを行うことができる。クラウドマネージャは、別個の仮想マシンとして、新たな制御プレーンモジュール又は当該制御プレーンモジュールのインスタンスを初期化し得る(ブロック1207)。そして、この新たな制御プレーンモジュール又はインスタンスは、同じタイプの既存の制御プレーンモジュール又はインスタンスの負荷をシェアすることができ、それにより当該モジュール上の負荷が動的に軽減される。
【0059】
同様に、クラウドマネージャは、複数の制御プレーンモジュールの1つの障害又は利用率低下を検出し得る(ブロック1209)。そして、クラウドマネージャは、障害を起こした制御プレーンモジュールをリスタートさせ、又は利用率の低下した制御プレーンモジュールを終了させ得る(ブロック1211)。制御プレーンモジュールのリスタートは、制御プレーンモジュールのプールについて、あるレベルの負荷のシェアを保証する。制御プレーンモジュールの非アクティブ化は、リソースを解放し、当該制御プレーンモジュールにより生み出されていたオーバヘッドを削減する。クラウドマネージャは、クラウドコンピューティングシステムのリソースを使用するVPC及びモバイル事業者をまたいでこれら機能を実行することができ、それにより、モバイル事業者間のデータ及びトラフィックの厳密な隔離を維持しながら、利用可能なリソースの使用が最大化され、運用コストが削減される。
【0060】
図14は、単一のデータセンタの外部の複数の事業者ネットワークを管理サービス会社が管理することをクラウドコンピューティングシステム内の3G PCがどのように可能にするかの1つの実施形態の図である。管理サービスクラウドコンピューティング設備1401は、管理サービス会社がコンタクトを有するモバイル事業者ごとに、3G PC制御プレーンの別個のインスタンスを稼働させる。各3G PCインスタンスは、データセンタのクラウドコンピューティング設備1401内の他のテナントからモバイル事業者のトラフィックを隔離するVPC1403A、B内にある。モバイル事業者のための3G PC制御プレーンインスタンスは、モバイル事業者の地理的に分散した3G PC OpenFlowデータプレーンスイッチングファブリック1407A、B、及びモバイル事業者の基地局群へ、仮想エッジルータ1409A、Bを通じて接続される。仮想エッジルータ1409A、Bは、データセンタと、適切なモバイル事業者の3G PCデータプレーンスイッチングファブリック1407A、Bとの間で、データセンタからのからのトラフィックをルーティングする。
図14の例としての実施形態は2つのモバイル事業者が別個のスイッチングファブリックを有するケースを示しているが、いくつかのケースでは、モバイル事業者は、基地局及び3G PCスイッチングファブリックを共用さえしてもよい。
【0061】
[3G PCピアリング及びクラウドコンピューティングシステム内の差別化ルーティング]
図15は、特殊なサービスの取り扱い(specialized service treatment)のための3G PCピアリング(peering)及び差別化ルーティング(differential routing)のための処理の1つの実施形態の図である。実線及び矢印1501で示されているOpenFlowシグナリングは、3G PC内のスイッチ及びゲートウェイ上に差別化ルーティングのためにフロールール及びアクションをセットアップする。それらフロールールは、GTPフローを特定のロケーションへと向かわせる。この例における事業者は、自身の3G PCを、他の2つの固定事業者とピアリングさせる。各ピアリング点を通じたルーティングは、それぞれGGSN1及びGGSN2 1503A、Bによりハンドリングされる。破線及び矢印1505は、他のピアリング事業者へルーティングされる必要のある、UE1507からのトラフィックを示している。OpenFlowスイッチ1509及びゲートウェイ1503A、B内に、OpenFlowコントローラ1511により、トラフィックがどのピアリング点を通過すべきかを区別するフロールール及びアクションがインストールされる。OpenFlowコントローラ1511は、外部トラフィックについて維持しているルーティングテーブル、並びにパケットのソース及び宛て先に基づいて、さらにDSCPでマークされたパケットについて要する任意の特殊な転送の取り扱いによって、これらフロールール及びアクションを計算する。
【0062】
2点鎖線及び矢印1515は、外部ソースからコンテンツを取得しているUE1517の例を示している。コンテンツは、もともとはUE1517の画面のために編成されておらず、そのため、OpenFlowコントローラ1511は、GGSN1 1503B、SGSN 1519及びOpenFlowスイッチ1509上に、当該フローをクラウドコンピューティング設備内のトランスコーディングアプリケーション1521を経由させるようにルーティングするためのフロールール及びアクションをインストールしている。トランスコーディングアプリケーション1521は、コンテンツをUE1517の画面にフィットするように再フォーマットする。MSCは、UEがIPマルチメディアサブシステム(IMS)又は他のシグナリングプロトコルを介して外部のコンテンツソースとのセッションをセットアップする際に、この特殊な取扱いをリクエストする。
【0063】
[GTP TEIDルーティング]
1つの実施形態において、OpenFlowは、GTP TEIDルーティングを提供するように修正される。
図16は、GTP TEIDルーティングのためのOpenFlowテーブルの修正の1つの実施形態の図である。TEIDルーティングをサポートするOpenFlowスイッチは、少なくとも1つのフローテーブル(例えば、最初のフローテーブル)において、他のOpenFlowヘッダフィールドに加えて、2バイト(16ビット)のヘッダフィールドの集合と4バイト(32ビット)のGTP TEIDについてのマッチングを行う。GTP TEIDフラグは、ワイルドカードであり得る(即ち、マッチングは“何でもよい”)。1つの実施形態において、3G PCプロトコルは、TEIDに、標準的なUDP/TCPトランスポートプロトコルにおけるポートのような、トンネルについてのエンドポイント識別子としてのもの以外の何らの意味も割当てない。他の実施形態において、TEIDは、相関付けられる意味及びセマンティクスを有し得る。GTPヘッダフラグフィールドはワイルドカードであってもよく、これは次のビットマスクと組み合わせることで部分的にマッチングされ得る:0xFF00 … メッセージタイプフィールドとマッチング;0xe0 … バージョンフィールドとマッチング;0x10 … PTフィールドとマッチング;0x04 … Eフィールドとマッチング;0x02 … Sフィールドとマッチング;及び、0x01 … PNフィールドとマッチング。
【0064】
1つの実施形態において、OpenFlowは、高速パス(fast path)GTP TEIDカプセル化及び非カプセル化のための仮想ポートをサポートするように修正され得る。OpenFlowモバイルゲートウェイは、仮想ポートと共にGTPカプセル化及び非カプセル化をサポートするために使用され得る。GTPカプセル化及び非カプセル化の仮想ポートは、GTP−Uトンネル内でのユーザデータパケットの高速なカプセル化及び非カプセル化のために使用され、ハードウェアで又はファームウェアで十分に実装可能な程度に単に設計され得る。この理由で、GTP仮想ポートは、それらがハンドリングすることになるトラフィックについて、次の制限を有し得る:プロトコルタイプ(PT)フィールド=1、この場合GTPカプセル化ポートはGTPのみをサポートし、GTP´(PTフィールド=0)をサポートしない;拡張ヘッダフラグ(E)=0、この場合サポートされる拡張ヘッダはない、シーケンス番号フラグ(S)=0、この場合シーケンス番号はサポートされない;N−PDUフラグ(PN)=0;及び、メッセージタイプ=255、この場合G−PDUメッセージ、即ちトンネリングされるユーザデータのみが高速パスにおいてサポートされる。
【0065】
パケットがカプセル化を必要とし、若しくは非ゼロのヘッダフラグ、ヘッダ拡張と共にカプセル化されて受信された場合、及び/又は、GTP−UパケットがG−PDUパケットではない(即ち、GTP−U制御パケットである)場合、処理は、ゲートウェイの低速パス(ソフトウェア)制御プレーンを介して進められなければならない。ゲートウェイのIPアドレス宛てのGTP−Cパケット及びGTP´パケットは、構成ミスの結果であってエラーである。それらパケットは、クラウドコンピューティングシステム内のSGSN及びGGSN制御プレーンエンティティによりハンドリングされるため、OpenFlowコントローラへ送信されなければならず、又は、SGSN及びGGSNデータプレーンスイッチではなく、GTP´をハンドリングする請求エンティティへ送信されなければならない。
【0066】
GTP仮想ポートは、構成プロトコルを用いて、OpenFlowコントローラから構成される。構成プロトコルの詳細は、スイッチ依存である。構成プロトコルは、次の機能を実行するメッセージをサポートしなければならない:スイッチがGTP高速パス仮想ポートをサポートするか、並びに高速パス及び低速パスGTP−U処理のためにどの仮想ポート番号が使用されるか、の標識をコントローラが問合せし及び返答することを可能とすること;OpenFlowテーブルのset-output-portアクションにおける使用のためにスイッチのデータパス内にGTP−U高速パス仮想ポートをコントローラがインスタンス化することを可能とすること。アクションの結果がコントローラへレポートバックされた際に、リクエストされたデータパスのためのGTP−U高速パス仮想ポートがインスタンス化されており、又はリクエストが報われなかった理由を示すエラーが返信されるように、構成コマンドはトランザクションにおいて実行されなければならない。コマンドは、OpenFlowコントローラがGTP−U仮想ポートを物理ポートにバインディングすることをも可能とする。非カプセル化仮想ポートについて、物理ポートは入力ポートである。カプセル化仮想ポートについて、物理ポートは出力ポートである。
【0067】
OpenFlowコントローラは、GTP TEIDルーティングのためのスイッチ内にルールをインストールするに先立って、GTPトンネルを通じてルーティングされるパケットを送信し又は受信し得る物理ポートごとに、仮想ポートをインスタンス化する。
【0068】
1つの実施形態において、OpenFlow GTPゲートウェイは、GTP TEIDをそれらのベアラのためのトンネルヘッダフィールドへマッピングするハッシュテーブルを維持する。
図17は、フローテーブルの行の構造の図である。TEIDのハッシュキーは、例えばSHA−1といった、衝突頻度の低い適切なハッシュアルゴリズムを用いて計算される。ゲートウェイは、GTP TEID/ベアラごとにこうした1つのフローテーブルの行を維持する。TEIDフィールドは、当該トンネルのためのGTP TEIDを含む。VLANタグフィールド及びMPLSラベルフィールドは、パケットのルーティング先とならなければならないトンネルを定義する、VLANタグ及び/又はMPLSラベルの順序付きリストを含む。ラベル内には、VLAN優先度ビット及びMPLSトラフィッククラスビットが含まれる。そのようなトンネルは必要とされてもされなくてもよい。必要とされない場合、これらフィールドは空である。トンネリング元(tunnel origin)ソースIPアドレスは、当該トンネルに関与する制御トラフィック(例えば、エラー標識)が向かうべきカプセル化ゲートウェイ上のアドレスを含む。トンネリング先(tunnel end)宛て先IPアドレスフィールドは、トンネリングされるパケットのルーティング先となるべきゲートウェイのIPアドレスを含み、そのルーティング先においてパケットは逆カプセル化されGTPトンネルから除去されることになる。QoS DSCPフィールドは、もしあるならば、専用ベアラのケースにおいてベアラについてのDiffServeコードポイントを含む。このフィールドは、ベアラがベストエフォート型のQoSを伴うデフォルトベアラであれば空であってよく、但しベアラQoSがベストエフォートを超えるものであれば非ゼロの値を含むであろう。
【0069】
1つの実施形態において、GTPのための低速パスのサポートが、OpenFlowゲートウェイスイッチと共に実装される。OpenFlowモバイルゲートウェイスイッチは、低速パスパケット処理のためのソフトウェア制御プレーンについてのサポートをも含む。このパスは、非ゼロのヘッダフィールド又は拡張ヘッダを伴うG−PDU(メッセージタイプ255)パケット、及びそうしたフィールドでのカプセル化又は拡張ヘッダの追加を要するユーザデータプレーンパケットによって、またGTP−U制御パケットによって選択される(taken)。この目的で、スイッチは、ソフトウェア制御プレーン内で3つのローカルポートをサポートする:LOCAL_GTP_CONTROL … スイッチの高速パスがGTP−U制御メッセージを含むゲートウェイIPアドレス宛てのGTPカプセル化パケットを転送し、ローカルスイッチソフトウェア制御プレーンがGTP−U制御メッセージに依存してローカル制御プレーンのアクションを開始する;LOCAL_GTP_U_DECAP … スイッチの高速パスが非ゼロのヘッダフィールド又は拡張ヘッダを有する(即ち、E!=0、S!=0、又はPN!=0)G−PDUパケットをこのポートへ転送する。これらパケットは、特殊なハンドリングを要する。ローカルスイッチのソフトウェアの低速パスが当該パケットを処理し特殊なハンドリングを実行する;LOCAL_GTP_U_ENCAP … スイッチの高速パスが非ゼロのヘッダフィールド又は拡張ヘッダ(即ち、E!=0、S!=0、又はPN!=0)でのGTPトンネルにおけるカプセル化を要するユーザデータプレーンパケットをこのポートへ転送する。これらパケットは、特殊なハンドリングを要する。ローカルスイッチのソフトウェアの低速パスが当該パケットをカプセル化し特殊なハンドリングを実行する。パケットを転送することに加えて、スイッチの高速パスは、OpenFlowメタデータフィールドを低速パスソフトウェアに向けて利用可能にする。
【0070】
低速パスのカプセル化をサポートするために、スイッチ上のソフトウェア制御プレーンは、GTP−U TEIDから計算されるキーを伴うハッシュテーブルを維持する。TEIDのハッシュキーは、例えばSHA−1といった、衝突頻度の低い適切なハッシュアルゴリズムを用いて計算される。フローテーブルエントリは、GTPカプセル化ヘッダを含むパケットヘッダがどのように構成されるべきかのレコードを含む。これは、次を含む:
図18におけるハードウェア又はファームウェアのカプセル化テーブルと同じヘッダフィールド;GTPヘッダフラグのための値(PT、E、S及びPN);もしあれば、シーケンス番号及び/又はN−PDU番号;Eフラグが1であれば、フローテーブルは、低速パスがGTPヘッダへ挿入すべきそのタイプを含む拡張ヘッダのリストを含む。
【0071】
1つの実施形態において、システムは、高速パスカプセル化仮想ポートを実装する。クラウドコンピューティングシステム内で稼働しているSGSN及びGGSNの制御プレーンソフトウェアによりリクエストされると、OpenFlowコントローラは、ゲートウェイスイッチをプログラムして、高速パスGTPカプセル化仮想ポートを介してGTPトンネルへパケットをルーティングするための、ルール、アクション及びTEIDハッシュテーブルエントリをインストールする。ルールは、GTPトンネルのベアラの入力側にパケットフィルタをマッチングさせる。典型的には、これは、4つのタプルとなる:IPソースアドレス;IP宛て先アドレス;UDP/TCP/SCTPソースポート;及び、UDP/TCP/SCTP宛て先ポート。IPソースアドレス及び宛て先アドレスは、典型的には、ユーザデータプレーントラフィックの、即ちUE又はUEとやり取り中(transacting)のインターネットサービスのためのアドレスであり、ポート番号についても同様である。GTP−Uトンネルの入力側にマッチングするルールについて、関連付けられる指示は次の通りである:
Write-Metadata(GTP-TEID, 0xFFFFFFFF)
Apply-Actions(Set-Output-Port GTP-Encap-VP)
【0072】
スイッチは、パケットについてのトンネルヘッダフィールドを含むTEIDハッシュテーブル内のエントリの書き込みをも行う。GTP−TEIDは、GTPトンネルエンドポイント識別子である。GTP−Enacap−VPは、カプセル化されたパケットが最終的にそこからルーティングされることになる物理ポートに結び付けられた、GTP高速パスカプセル化仮想ポートである。
【0073】
パケットヘッダが仮想ポートに関連付けられるルールに適合する場合、GTP TEIDがメタデータの下位32ビットに書き込まれ、パケットは仮想ポートへ向けられる。仮想ポートは、TEIDのハッシュを計算し、トンネルヘッダテーブル内のトンネルヘッダ情報をルックアップする。当該トンネル情報が存在しなければ、パケットはエラー標識と共にコントローラへ転送される。そうでなければ、仮想ポートは、GTPトンネルヘッダを構築し、パケットをカプセル化する。何らかのDSCPビット又はVLAN優先度ビットが追加的にIP又はMACトンネルヘッダへセットされ、何らかのVLANタグ又はMPLSラベルがパケットへプッシュされる。カプセル化されたパケットは、仮想ポートに結び付けられた物理ポートから転送される。
【0074】
1つの実施形態において、システムは、GTP高速パス非カプセル化仮想ポートを実装する。クラウドコンピューティングシステム内で稼働しているSGSN及びGGSNの制御プレーンソフトウェアによりリクエストされると、ゲートウェイスイッチは、GTPトンネルから出るGTPカプセル化パケットをルーティングするための、ルール及びアクションをインストールする。
図16に示した修正されたOpenFlowのフローテーブルでは、パケットについてのGTPヘッダフラグ及びGTP TEIDに、次のようにルールがマッチングされる:IP宛て先アドレスが、ゲートウェイが予期しているGTPトラフィックのIPアドレスである;IPプロトコルタイプがUDP(17)である;UDP宛て先ポートがGTP−U宛て先ポート(2152)である;ヘッダフィールド及びメッセージタイプフィールドがフラグ0XFFF0でワイルドカード指定されており、フィールドの上位2バイトがG−PDUメッセージタイプ(255)に適合し、一方で下位2バイトが0x30、即ち当該パケットがGTP´パケットではなくGTPパケットであること、に適合し、バージョン番号が1である。仮想ポートは、単純にGTPトンネルヘッダを除去し、内包されていたユーザデータプレーンパケットを結び付けられている物理ポートから転送する。
【0075】
1つの実施形態において、システムは、GTP−U制御パケットのハンドリングを実装する。OpenFlowコントローラは、GTPトラフィックのために使用される各ゲートウェイスイッチのIPアドレスについて、5つのルールと共にゲートウェイスイッチのフローテーブルをプログラムする。これらルールは、次のようなフィールドのための特定の値を含む:IP宛て先アドレスは、ゲートウェイが予期しているGTPトラフィックのIPアドレスである;IPプロトコルタイプはUDP(17)である;UDP宛て先ポートはGTP−U宛て先ポート(2152)である;GTPヘッダフラグ及びメッセージタイプフィールドはフラグ0XFFF0でワイルドカード指定される;ヘッダフラグフィールドの値は0x30、即ちバージョン番号が1であってPTフィールドが1、である;及び、メッセージタイプフィールドの値は、1(エコーリクエスト)、2(エコーレスポンス)、26(エラー標識)、31(拡張ヘッダ通知についてのサポート)又は254(エンドマーカ)のうちの1つである。
【0076】
これらルールのうち1つのマッチングに関連付けられる指示は次の通りである:
Apply-Actions(Set-Output-Port LOCAL_GTP_CONTROL)
【0077】
これは、パケットがローカルソフトウェア制御プレーンによって処理のためにゲートウェイスイッチのローカルGTP−U制御ポートへ転送されることを引き起こす。当該スイッチにより発信されるGTP−U制御パケットは、当該ソフトウェア制御プレーン上で生成され、制御プレーンによってルーティングされる。
【0078】
1つの実施形態において、システムは、拡張ヘッダ、シーケンス番号及びN−PDU番号を伴うG−PDUパケットのハンドリングを実装する。拡張ヘッダ、シーケンス番号及びN−PDU番号を伴うG−PDUパケットは、処理のためにローカルスイッチのソフトウェア制御プレーンへ転送される必要がある。OpenFlowコントローラは、この目的のために3つのルールをプログラムする。それらは、次の共通的なヘッダフィールドを有する:IP宛て先アドレスは、ゲートウェイが予期しているGTPトラフィックのIPアドレスである;IPプロトコルタイプはUDP(17)である;UDP宛て先ポートはGTP−U宛て先ポート(2152)である。
【0079】
3つのルールについてのヘッダフラグ及びメッセージタイプフィールドは、次のようにビットマスクでワイルドカード指定されマッチングされる;ビットマスク0xFFF4、上位2バイトがG−PDUメッセージタイプ(255)に適合し、一方で下位2バイトは0x34であり、これはバージョン番号が1、当該パケットはGTPパケット、拡張ヘッダが存在することを示す;ビットマスク0xFFF2、上位2バイトがG−PDUメッセージタイプ(255)に適合し、一方で下位2バイトは0x32であり、これはバージョン番号が1、当該パケットはGTPパケット、シーケンス番号が存在することを示す;ビットマスク0xFF01、上位2バイトがG−PDUメッセージタイプ(255)に適合し、一方で下位2バイトは0x31であり、これはバージョン番号が1、当該パケットはGTPパケット、N−PDUが存在することを示す。
【0080】
これらルールについての指示は次の通りである:
Apply-Actions(Set-Output-Port LOCAL_GTP_U_DECAP)
【0081】
これは、パケットを、特殊な処理のためのソフトウェア低速パスのGTP−U逆カプセル化パスへ送る。
【0082】
1つの実施形態において、システムは、拡張ヘッダ、シーケンス番号及びN−PDU番号でのG−PDUカプセル化を要するユーザデータプレーンパケットのハンドリングを実装する。GTPカプセル化の間に拡張ヘッダ、シーケンス番号又はN−PDU番号を要するユーザデータプレーンパケットは、ソフトウェア低速パスによる特殊なハンドリングを要する。OpenFlowコントローラは、これらパケットのために、4つのタプルにマッチングされるルールをプログラムする:IPソースアドレス;IP宛て先アドレス;UDP/TCP/SCTPソースポート;及び、UDP/TCP/SCTP宛て先ポート。パケットのマッチングのための指示は:
Write-Metadata(GTP-TEID, 0xFFFFFFFF)
Apply-Actions(Set-Output-Port LOCAL_GTP_U_ENCAP)
【0083】
これは、パケットを、ソフトウェア低速パスのGTPカプセル化ポートへ送り、さらに低速パスに向けてTEIDを利用可能にする。
【0084】
ルールの挿入をプログラムするOpenFlowメッセージは、シーケンス番号、N−PDU番号又は拡張ヘッダのタイプ及び内容についての値と共に、逆カプセル化ゲートウェイ及びベアラトランスポートを指定するパケットヘッダフィールドと、GTP−TEIDと、に関する情報をも含む。この情報は、TEIDによるキーを付して、スイッチの制御プレーンソフトウェアによってソフトウェアカプセル化テーブルへ挿入される。
【0085】
1つの実施形態において、システムは、GTP−C及びGTP´制御パケットのハンドリングを実装する。ゲートウェイスイッチ上のIPアドレスに向けられる任意のGTP−C及びGTP´制御パケットは、エラーである(in error)。これらパケットは、スイッチ内のSGSN及びGGSNエンティティではなく、クラウドコンピューティングシステム内のSGSN、GGSN及びGTP´プロトコルエンティティによってハンドリングされる必要がある。そうしたパケットを捕捉するために、OpenFlowコントローラは、次の2つのルールでスイッチをプログラムしなければならない:IP宛て先アドレスは、ゲートウェイが予期しているGTPトラフィックのIPアドレスである;IPプロトコルタイプはUDP(17)である;1つのルールについてUDP宛て先ポートはGTP−U宛て先ポート(2152)であり、他のルールについてUDP宛て先ポートはGTP−C宛て先ポート(2123)である;GTPヘッダフラグ及びメッセージタイプフィールドはワイルドカード指定される。
【0086】
これらルールは、ゲートウェイスイッチのフローテーブル内の全てのGTPルールのうちで最低の優先度でなければならない。それらは、他のより具体的なルールに適合しないいかなるGTPパケットにも適合するであろう。これらルールについての指示は次の通りである:
Apply-Actions(Set-Output-Port CONTROLLER)
【0087】
これは、パケットをカプセル化してOpenFlowコントローラへ送信する。
【0088】
1つの実施形態において、システムは、非ゲートウェイGTPルーティングを実装する。GTP拡張OpenFlowスイッチは、カプセル化及び非カプセル化のゲートウェイ機能を実行することなく、GTPルーティングを達成することもできる。GTPルーティング機能は、自身のゲートウェイ機能に加えて、ゲートウェイスイッチによって実行されることもでき、又は分散型のEPCスイッチングファブリック内でゲートウェイ機能を欠く他のスイッチによって実行されることもできる。
【0089】
GTP拡張OpenFlowスイッチは、
図16におけるもののようなGTPヘッダフィールドとのマッチングを行うルールをハンドリングする、少なくとも1つのフローテーブルを含む。OpenFlowコントローラは、GTPルーティングを行うための他のフィールド加えて、GTPヘッダフィールドのルールをプログラムし、ルールが適合した場合の適切なアクションを追加する。例えば、次のルールは制御プレーンVLAN内には無い、クラウドコンピューティングシステム内の制御プレーンエンティティ(MSC,SGSN,GGSN)へ向けられるGTP−C制御パケットに適合する:VLANタグが制御プレーンVLANに設定されておらず、宛て先IPアドレスフィールドはターゲット制御プレーンエンティティのIPアドレスに設定されており、IPプロトコルフィールドはUDP(17)であり、UDP宛て先ポートはGTP−C宛て先ポート(2123)であり、GTPヘッダフラグ及びメッセージタイプは0xF0でワイルドカード指定され、適合するバージョン及びプロトコルタイプフィールドは2及び1であり、これは当該パケットがGTPv1制御プレーンパケットであってGTP´ではないことを示す。
【0090】
次のアクションは、制御プレーンVLANタグをパケットへプッシュし、それを関係する制御プレーンエンティティによる処理のためにクラウドへ転送する。当該パケットは、何らのL3処理もされずに(即ち、IP TTLを修正せずに)転送される:
Write-Action(Set-VLAN-ID CP_VLAN_TAG)
Write-Action(Set-Source-MAC-Address SWITCH_MAC_ADDR)
Write-Action(Set-Dest-MAC-Address NEXT_HOP_MAC_ADDR)
Set-Output-Port NEXT_HOP_PORT
【0091】
[OpenFlowのためのGTPの拡張]
3G PCの管理を可能とするGTPのための拡張を提供するように、OpenFlowプロトコルを修正することができる。OpenFlowは、当該プロトコルが特定のフローにルールを適合させるための基準を定義することを可能とする、フローマッチ構造と呼ばれるデータ構造を利用する。ofp_matchというOpenFlowのフローマッチ構造は、フローマッチ構造を拡張可能とする、タイプ及びレングスという2つのフィールドを含む。タイプフィールドは当該拡張のタイプに設定され、レングスフィールドは拡張されたofp_match構造の長さに設定され得る。1つの実施形態において、GTPフローマッチングのためのランダム数に基づく新たなタイプが定義される:
enum ofp_match_type_ext{
ERSMT_GTP=48696,
};
【0092】
タイプは、他の拡張されたタイプと干渉しないように、ランダムに生成され得る。現在のところ、OpenFlowにおけるタイプ識別子を登録するための組織的な仕組みは存在しない。
【0093】
ersmt_gtp構造は、GTPフローのルーティングのためのフローテーブルのフィールドを次のように定義する:
struct ersmt_gtp{
unit8_t gtp_wildcard;
uint16_t gtp_type_n_flags;
uint16_t gtp_flag_mask;
uint32_t gtp_teid;
};
【0094】
gtp_type_n_flagsフィールドは、上位8ビットにGTPメッセージタイプを、下位8ビットにGTPヘッダフラグを含む。gtp_teidフィールドは、GTP TEIDを含む。gtp_wildcardフィールドは、GTPタイプ及びフラグ並びにTEIDがマッチングされるべきかを示す。その下位4ビットが1であればタイプ及びフラグフィールドは無視されるべきであり、上位4ビットが1であればTEIDは無視されるべきである。下位4ビットがゼロであればタイプ及び
フラグフィールドはgtp_flag_maskフィールド内のフラグを対象としてマッチングされるべきであり、上位ビットがゼロであればTEIDはマッチングされるべきである。マスクは、論理ANDを用いてパケットのメッセージタイプ及びヘッダフィールドと合成され、その結果がマッチングの値となる。当該マスクが値1を有するフィールドの部分のみが、適合(matched)となる。
【0095】
フローテーブルのフィールドに加えて、仮想ポートTEIDハッシュテーブルエントリのカプセル化をエンコードするためのオブジェクトが必要とされる。ersmt_gtp_tuninfo構造を、この情報を定義するために使用することができる:
struct ermst_mpls_lbl{
uint8_t mpls_lbl_low;
uint8_t mpls_lbl_mid;
uint8_t mpls_lbl_high;
};
struct ersmt_gtp_tuninfo{
uint16_t gtp_tuninfo_length;
uint32_t gtp_tuninfo_saddr;
uint32_t gtp_tuninfo_daddr;
uint8_t gtp_tuninfo_dscp;
uint8_t gtp_tuninfo_vlan_len;
unit16_t gtp_tuninfo_vlan_tags[0]; /*variable length*/
uint8_t gtp_tuninfo_mpls_len;
struct mpls_lbl gtp_tuninfo_mpls_labels[0]; /*variable length*/
};
【0096】
ermst_mpls_lbl構造体(struct)は、MPLSラベルをエンコードするための24ビットのデータ構造を提供する。ersmt_gtp_tunifo構造は、GTPトンネルを記述するフィールド群を含む。これらは、カプセル化仮想ポートへ挿入される。当該構造は可変長であり、なぜなら可変的な数のVLANタグ及び/又はMPLSラベルを含み得るからである。gtp_tuninfo_lengthフィールドは、当該構造の長さを含む。gtp_tuninfo_saddr、gtp_tuninfo_daddr及びgtp_tuninfo_dscpフィールドは、当該トンネルのソースアドレス(カプセル化を実行するスイッチ上のインタフェースのアドレス)、当該トンネルの宛て先アドレス(トンネリングされるパケットのルーティング先となり当該パケットを逆カプセル化することとなるスイッチ)、及び、(もしあれば)当該トンネルのベアラに割り当てられたDiffServeコードポイント、を含む。ベアラのDSCPは、当該ベアラが専用ベアラであってベストエフォート型のベアラでなければ、非ゼロとなる。
【0097】
gtp_tuninfo_vlan_len及びgtp_tuninfo_mpls_lenは、それぞれ、VLANタグフィールド及びMPLSラベルフィールドの長さを含む。gtp_tuninfo_vlan_tags[0]及びgtp_tuninfo_mpls_labels[0]フィールドは、パケットのトンネルヘッダへプッシュされなければならない実際のVLANタグ及び/又はMPLSラベルを含む。トンネルについてVLANが使用されず又はMPLSラベルスイッチパス(LSP)が使用されない場合、これらフィールドは不在になる(対応する長さフィールドはゼロになる)。
【0098】
1つの実施形態において、OpenFlowは、3G PCベアラ又はGTPトンネルを追加し、削除し、又は修正するための拡張メッセージを追加するように修正される。3G PCベアラ又はGTPトンネルを追加し、修正し、又は削除するためのOpenFlowシグナリングは、ersmt_gtp GTPフロー定義を含む1つのOpenFlowメッセージ、ofp_flow_modメッセージから構成される。OpenFlowプロトコルパーサが拡張されたフローをハンドリング可能な限り、標準のOpenFlow ofp_flow_modメッセージを使用することができる。フローの修正がカプセル化仮想ポートのTEIDハッシュテーブルの変更を要する場合、OpenFlowコントローラは、TEIDハッシュテーブルエントリを含むGTP OpenFlow拡張メッセージを発行しなければならない。OpenFlowコントローラは、双方のメッセージを順番に、まずofp_flow_modメッセージを、そしてTEIDハッシュテーブル修正メッセージを発行しなければならず、そして、OpenFlowコントローラは、OpenFlowスイッチによる双方のメッセージの処理を強制するために、OFPT_BARRIER_REQUESTメッセージを発行しなければならない。
【0099】
OpenFlowメッセージの拡張ヘッダ構造ofp_experimenter_headerは、実験者(experimenter)と呼ばれるexperimenter idフィールドを含む。1つの実施形態において、このフィールドは、Ericsson IEEE OUI, 0x01ec又は類似の製造者若しくはプロバイダOUIに設定され得る。構造の残りは、GTP拡張メッセージを含む。これらメッセージを、次のメッセージコードによって識別することができる:
enum ermst_gtp_message_code{
GTP_ADD_TEID_TABLE_ENTRY=0,
GTP_DEL_TEID_TABLE_ENTRY=1,
};
【0100】
GTP OpenFlow拡張は、TEIDハッシュテーブルエントリを追加するための及び削除するためのメッセージを含む。エントリは、まず当該TEIDのためのエントリを削除し、そして同じTEIDのための新たなエントリを追加することにより、修正される。カプセル化仮想ポートのハッシュテーブル内に新たなTEIDエントリを投入するためのGTP OpenFlow拡張メッセージは:
struct ermst_teid_table_add{
ermst_gtp_message_code teid_table_add_type;
uint16_t teid_table_add_teid;
struct ermst_gtp_tuninfo teid_table_add_entry;
};
【0101】
teid_table_add_typeフィールドはGTP_ADD_TEID_TABLE_ENTRYに設定され、teid_table_add_teidフィールドはTEIDを含み、teid_table_add_entryは追加されるべきテーブルエントリを含む。カプセル化仮想ポートのハッシュテーブルからTEIDエントリを削除するためのGTP OpenFlow拡張メッセージは:
struct ermst_teid_table_del{
ermst_gtp_message_code teid_table_del_type;
uint16_t teid_table_del_teid;
};
【0102】
teid_table_del_typeフィールドはGTP_DEL_TEID_TABLE_ENTRYに設定され、teid_table_del_teidフィールドは削除されるべきエントリについてのTEIDを含む。
【0103】
1つの実施形態において、GTPのためのOpenFlowの拡張は、OpenFlowスイッチの構成をも包含する。3G PCのクラウドの制御プレーンエンティティから何らかのGTPルーティング更新RPCを受け取る前に、OpenFlowコントローラは、GTP拡張型のOpenFlowゲートウェイスイッチ上にGTPカプセル化及び/又は非カプセル化仮想ポートを構成しなければならない。その構成は、スイッチ固有の構成プロトコルを用いて達成され、上で説明されている。
【0104】
GTP拡張型のOpenFlowゲートウェイ上の仮想ポートの構成に加えて、ベストエフォートよりも上位のGTPベアラトラフィックを転送することになる何らかのOpenFlowスイッチ上に、QoSキューの構成が必要とされ得る。OpenFlowプロトコルはキューを構成するためのメッセージを含んでおらず、この構成は、仮想ポートについてもそうであるように、構成プロトコルに委ねられる。何らかのフロールートをインストールする前に、OpenFlowコントローラは、ベストエフォートよりも上位のGTPベアラをルーティングすることになるスイッチ内の物理ポート及び/又は仮想ポートと接続するためのキューを構成しなければならない。この構成ステップは、GTP拡張型のOpenFlowスイッチ及び標準のOpenFlowスイッチの双方について行われなければならない。
【0105】
1つの実施形態において、GTP動作のためのOpenFlowメッセージフローが修正される。上述したように、SGSN及び
GGSNの3G PC制御プレーン部分を含む3G PC制御プレーンエンティティは、データセンタにおけるクラウドコンピューティング設備内にある。SGSN及びGGSNの制御プレーンは、GTPシグナリングによってルーティング変更がトリガされると、クラウド内のOpenFlowコントローラとの間で、リモートプロシージャコール(RPC)又は類似の仕組みを介して通信する。OpenFlowコントローラは、データプレーン上の変更を、GTP拡張型のOpenFlow対応のデータプレーンゲートウェイ、SGSN及びGGSNの制御プレーン、並びにここでは“GxOFS”と呼ばれるGTPルーティングのために拡張されたOpenFlowスイッチへ、クラウドとゲートウェイ及びスイッチとを接続する制御プレーンネットワーク上のOpenFlowシグナリングを通じて設定(enact)する。
【0106】
一般には、GTPフローのために特別なルーティングの取り扱いが必要とされなければ、GxOFSへはシグナリングは必要とされない。そうした取扱いが必要とされ得るケースは、例えば:事業者の3G PCがインターネットとの間で1つよりも多くの場所でピアリング点を有し、結果として1つよりも多くのゲートウェイを有していて、最適なゲートウェイへのルーティングが中間スイッチにて3G PC内のトラフィックを誘導する(steer)ことを要し得るケース;及び、GTPフローが事業者のネットワーク内、例えばクラウド内のどこかでアプリケーションによる特殊な取り扱いを受けなければならないケース、である。そうした特殊な取り扱いの一例は、トランスコーディングであえる。中間スイッチは、ユーザプレーンパケットをトランスコーディングアプリケーションへルーティングするためのプログラミングを要し得る。この列挙は網羅的ではなく、中間スイッチ上のGTPルーティングの他の多くの応用が可能である。
【0107】
GTP PDPコンテキストトンネルは、GTP−C PDPコンテキスト生成リクエストメッセージを用いてセットアップされることができる。この手続は、例えばE−UTRAN初期アタッチ手続などの、多様なメッセージシーケンスで使用される。
【0108】
図18A〜Cは、3G PCにおけるセッションの生成、修正及び削除のフローチャートである。
図18Aには、セッションを生成するための処理が例示されている。処理は、加入者セッションのためのSGSNとGGSNとの間のGTPトンネルを生成するためのリクエストへの応答として開始される(ブロック1801)。加入者セッションは、3G PC内のユーザ機器を加入者セッションの他のエンドポイントに接続するために開始され、他のエンドポイントは他のユーザ機器、サーバ又は類似のエンドポイントであり得る。GTPトンネルは、3G PCネットワークのコアネットワークをまたいでピアリング点、インターネット又は類似のエンドポイントへの加入者セッションのルートを確立する。コントローラは、SGSNを実装するスイッチを、加入者セッションのためにデータパケットをカプセル化し及び非カプセル化し、並びに第1のGTPトンネルエンドポイントを確立するように構成する(ブロック1803)。また、コントローラは、GTPトンネルのルート内の各スイッチを、GTPトンネルのルートに従い、各方向においてパケットを転送するように構成する(ブロック1805)。コントローラは、GGSNのデータプレーンを、加入者セッションのパケットをカプセル化し及び非カプセル化して、GGSNにおいて当該GTPトンネルの第2のエンドポイントを確立するように構成する(ブロック1807)。
【0109】
図18Bには、セッションを修正するための処理が例示されている。処理は、加入者セッションのためのSGSNとGGSNとの間のGTPトンネルを修正するためのリクエストへの応答として開始される(ブロック1811)。加入者セッションは、3G PC内のユーザ機器を加入者セッションの他のエンドポイントに接続し、他のエンドポイントは他のユーザ機器、サーバ又は類似のエンドポイントであり得る。GTPトンネルは、3G PCネットワークのコアネットワークをまたいでピアリング点、インターネット又は類似のエンドポイントへの加入者セッションの、確立済みのルートである。修正処理は、同じエンドポイント又は異なるエンドポイントへの3G PCネットワークをまたぐ加入者セッションをルート付けし直す(re-route)ために利用され得る。GTPトンネルのエンドポイントとGTPのパスとの任意の組合せが、本処理を用いて変更可能である。コントローラは、SGSNを実装するスイッチの構成を、加入者セッションのためにデータパケットをカプセル化し及び非カプセル化し、並びに第1のGTPトンネルエンドポイントを修正するように、修正する(ブロック1813)。また、コントローラは、GTPトンネルの現在のルート及び新たなルート内の各スイッチを、GTPトンネルの当該ルートに従って各方向においてパケットを転送するように構成する(ブロック1815)。コントローラは、GGSNのデータプレーンの構成を、加入者セッションのパケットをカプセル化し及び非カプセル化して、GGSNにおいて当該GTPトンネルの第2のエンドポイントを確立するように、修正する(ブロック1817)。
【0110】
図18Cには、セッションを削除するための処理が例示されている。処理は、加入者セッションのためのSGSNとGGSNとの間のGTPトンネルを削除するためのリクエストへの応答として開始される(ブロック1821)。加入者セッションは、3G PC内のユーザ機器を加入者セッションの他のエンドポイントに接続し、他のエンドポイントは他のユーザ機器、サーバ又は類似のエンドポイントであり得る。GTPトンネルは、3G PCネットワークのコアネットワークをまたいでピアリング点、インターネット又は類似のエンドポイントへの加入者セッションの、確立済みのルートである。加入者セッション及び関連付けられるGTPトンネルは、ユーザ機器上の関連付けられるアプリケーション、又は、加入者セッションの他端における他方のユーザ機器上のアプリケーション若しくはサーバアプリケーションが接続を終了させた際に削除される。すると、加入者セッションのリソースは、加入者セッション及びGTPトンネルを削除することにより、再生(reclaim)される。コントローラは、加入者セッションのためにデータパケットをカプセル化し及び非カプセル化してきた、SGSNを実装するスイッチにおけるGTPトンネルの構成を除去し、それにより第1のGTPトンネルエンドポイントが除去される(ブロック1823)。また、コントローラは、GTPトンネルのルートに従って各方向においてパケットを転送してきたGTPトンネルのルート内の各スイッチから、GTPトンネルのための構成を除去する(ブロック1825)。コントローラは、加入者セッションのパケットをカプセル化し及び非カプセル化してきた、GGSNのデータプレーンから、GTPトンネルのための構成を除去し、それによりGGSNにおけるGTPトンネル第2のエンドポイントが除去される(ブロック1827)。
【0111】
図19に、セッション生成リクエスト手続についてのOpenFlowメッセージフローの一例が示されている。図示された例において、SSGN制御プレーンコンポーネントは、クラウドコンピューティングシステム内のGGSN制御プレーンコンポーネントへセッション生成リクエストを送信し、GGSN制御プレーンコンポーネントは、当該リクエストをGTPルーティング更新RPCコールを通じてコントローラへ送信する。当該RPCコールは、OpenFlowコントローラがデータプレーン内のSGSN及びGGSNに新たなGTPトンネルエンドポイントを確立し、必要ならば中間スイッチ上に新たなGTPベアラ又はトンネルのためのルートをインストールすること、を要求する。
【0112】
GTPルーティング更新RPCからの結果を制御プレーンGGSNへ返送する前に、OpenFlowコントローラは、適切なデータプレーンゲートウェイエンティティへOpenFlowメッセージのシーケンスを発行する。例示的な実施形態において、当該シーケンスは、後続のメッセージの処理に影響し得る保留中のメッセージはないことを保証するOFP_BARRIER_REQUESTから開始する。そして、マッチングフィールドとしてのGTP拡張を伴うofp_match構造とコマンドフィールドとしてのOFPFC_ADDとを含むOFPT_FLOW_MODメッセージが発行される。当該メッセージは、上で説明したように、適切な仮想ポートを通じてパケットをカプセル化し及び逆カプセル化するGTPトンネルのためのフロールートを確立するための、アクション及び指示(instructions)を特定する。加えて、OFPT_FLOW_MODメッセージにすぐ続いて、OpenFlowコントローラは、カプセル化仮想ポートのためのTEIDハッシュテーブルエントリを含むゲートウェイへ、GTP_ADD_TEID_TABLE_ENTRYメッセージを発行する。上で説明したように、当該2つのOpenFlowメッセージに、ゲートウェイに手続を進める前にフロールート及びTEIDハッシュテーブルの更新を処理することを強制するためのOFPT_BARRIER_REQUESTメッセージが続く。
【0113】
GTPルーティング更新RPCからの返答の前に、OpenFlowコントローラは、カスタマイズされたGTPフロールーティングに関与する必要のあるGTP拡張型のOpenFlowスイッチ(GxOFS)へ、GTPフロールーティング更新をも発行する。これら更新におけるメッセージは、OFP_BARRIER_REQUESTと、それに続く、マッチングフィールドとしての新たなGTPフローのためのGTP拡張を伴うofp_match構造とコマンドフィールドとしてのOFPFC_ADDとを含むOFPT_FLOW_MODメッセージと、カスタマイズされたGTPフロールーティングのための上述したアクション及び指示と、からなる。最終的なOFP_BARRIER_REQUESTは、応答の前に変更を処理することをスイッチに強制する。
図19に例示したように、何らかのGxOFS上のフロールートは、データプレーン内のSGSN上にGTPトンネルエンドポイントルートをインストールした後、データプレーン内のGGSN上にGTPトンネルエンドポイントルートをインストールする前に、インストールされる。OpenFlowコントローラは、全てのフロールーティング更新が達成されるまで、制御プレーンGGSN RPCに応答しない。
【0114】
一度RPCについて返答がなされると、制御プレーンのGGSN及びSGSNは、PDPコンテキスト生成レスポンスメッセージを返答する。GTPベアラの特性は、PDPコンテキスト更新リクエスト処理を用いて変更される。そうした変更は、例えば、IPパケットに割り当てられたQoSを含み得る。この手続は、例えばUEによりトリガされるサービスリクエストといった、多様な3G PCメッセージシーケンスで使用される。
【0115】
図20は、セッション修正リクエスト手続のためのOpenFlowメッセージシーケンスの1つの実施形態の図である。セッションの生成もそうであるように、3G PCクラウド制御プレーンSGSNが、制御プレーンGGSNへPDPコンテキスト更新リクエストメッセージを発行し、制御プレーンGGSNが、新たなトンネルの更新情報を含むGTPルーティング更新RPCをOpenFlowコントローラへ発行する。そして、OpenFlowコントローラは、データプレーンSGSN、GxOFS及びデータプレーンGGSNへ、GTP拡張OpenFlowメッセージを発行する。
【0116】
GTPルーティング更新RPCからの結果を制御プレーンGGSNへ返送する前に、OpenFlowコントローラは、適切なデータプレーンゲートウェイエンティティへOpenFlowメッセージのシーケンスを発行する。当該シーケンスは、後続のメッセージの処理に影響し得る保留中のメッセージはないことを保証するOFP_BARRIER_REQUESTから開始する。そして、マッチングフィールドとしてのGTP拡張を伴うofp_match構造とコマンドフィールドとしてのOFPFC_MODIFY又はOFPFC_MODIFY_STRICTとを含むOFPT_FLOW_MODメッセージが発行される。必要であれば、当該メッセージは、上で説明したように、適切な仮想ポートを通じてパケットをカプセル化し及び逆カプセル化するGTPトンネルのための新たなフロールートを確立するための、アクション及び指示を特定する。加えて、TEIDハッシュテーブルにおいて変更が必要であれば、OFPT_FLOW_MODメッセージにすぐ続いて、OpenFlowコントローラは、エントリを削除するための
GTP_DEL_TEID_TABLE_ENTRYと、それに続く新たなエントリをインストールするための
GTP_ADD_TEID_TABLE_ENTRYメッセージを発行する。上で説明したように、当該2つのOpenFlowメッセージに、ゲートウェイに手続を進める前にフロールート及びTEIDハッシュテーブルの更新を処理することを強制するためのOFPT_BARRIER_REQUESTメッセージが続く。
【0117】
GTPルーティング更新RPCからの返答の前に、OpenFlowコントローラは、カスタマイズされたGTPフロールーティングに関与する必要のあるGTP拡張型のOpenFlowスイッチ(GxOFS)へ、必要なGTPフロールーティング更新をも発行する。これら更新におけるメッセージは、OFP_BARRIER_REQUESTと、それに続く、マッチングフィールドとしての新たなGTPフローのためのGTP拡張を伴うofp_match構造とコマンドフィールドとしてのOFPFC_MODIFY又はOFPFC_MODIFY_STRICTとを含むOFPT_FLOW_MODメッセージと、必要ならばカスタマイズされたGTPフロールーティングのための上述したアクション及び指示と、からなる。最終的なOFP_BARRIER_REQUESTは、応答の前に変更を処理することをスイッチに強制する。
図20に例示したように、何らかのGxOFS上のフロールートは、データプレーンSGSN上にGTPトンネルエンドポイントルートをインストールした後、データプレーンGGSN上にGTPトンネルエンドポイントルートをインストールする前に、インストールされる。OpenFlowコントローラは、全てのフロールーティング更新が達成されるまで、制御プレーンGGSN RPCに応答しない。一度RPCについて返答がなされると、制御プレーンのGGSN及びSGSNは、PDPコンテキスト更新メッセージを返答する。
【0118】
GTPトンネルは、セッション削除リクエスト手続を用いて削除される。この手続は、例えばUEによりトリガされるデタッチリクエストといった、多様な3G PCメッセージシーケンスで使用され得る。
図21は、セッション削除リクエスト手続のためのOpenFlowメッセージシーケンスの1つの実施形態の図である。セッションの生成及び修正と同様に、3G PCクラウド制御プレーンSGSNが、制御プレーンGGSNへPDPコンテキスト削除リクエストメッセージを発行し、制御プレーンGGSNが、トンネル削除情報を含むGTPルーティング更新RPCをOpenFlowコントローラへ発行する。そして、OpenFlowコントローラは、データプレーンSGSN、GxOFS及びデータプレーンGGSNへ、GTP拡張OpenFlowメッセージを発行する。
【0119】
GTPルーティング更新RPCのコール相手への返送に先立って、OpenFlowシグナリングが遂行される。当該シーケンスは、後続のメッセージの処理に影響し得る保留中のメッセージはないことを保証するOFP_BARRIER_REQUESTから開始する。そして、マッチングフィールドとしてのGTP拡張を伴うofp_match構造とコマンドフィールドとしてのOFPFC_DELETE又はOFPFC_DELETE_STRICTとを含むOFPT_FLOW_MODメッセージが発行される。加えて、OFPT_FLOW_MODメッセージにすぐ続いて、OpenFlowコントローラは、TEIDハッシュテーブルエントリを削除するためのGTP_DEL_TEID_TABLE_ENTRYを発行する。上で説明したように、このOpenFlowメッセージに、ゲートウェイに手続を進める前にフロールート及びTEIDハッシュテーブルの更新を処理することを強制するためのOFPT_BARRIER_REQUESTメッセージが続く。
【0120】
GTPルーティング更新RPCからの返答の前に、OpenFlowコントローラは、カスタマイズされたGTPフロールーティングに関与する必要のあるGTP拡張型のOpenFlowスイッチへ、必要なGTPフロールーティング更新をも発行する。これら更新におけるメッセージは、OFP_BARRIER_REQUESTと、それに続く、マッチングフィールドとしての新たなGTPフローのためのGTP拡張を伴うofp_match構造とコマンドフィールドとしてのOFPFC_DELETE又はOFPFC_DELETE_STRICTとを含むOFPT_FLOW_MODメッセージと、からなる。最終的なOFP_BARRIER_REQUESTは、応答の前に変更を処理することをスイッチに強制する。
図21に例示したように、何らかのGxOFS上のフロールートは、データプレーンSGSN上にGTPトンネルエンドポイントルートをインストールした後、データプレーンGGSN上にGTPトンネルエンドポイントルートをインストールする前に、インストールされる。OpenFlowコントローラは、全てのフロールーティング更新が達成されるまで、コール側エンティティ(calling entity)に応答しない。
【0121】
[代替的な実装]
1つの実施形態において、3G PCアーキテクチャは、非クラウドの非仮想化システム内に実装され得る。当該3G PCアーキテクチャの制御プレーンエンティティは、単一のサーバ上に、又は任意の数のサーバ若しくは類似のコンピューティングデバイス上にわたって分散して、記憶され及び実行され得る。同様に、制御プレーンエンティティは、仮想化無しの標準的なソフトウェアコード及びモジュール又は類似のシステムとして実行可能である。それら制御プレーンエンティティは、ローカルシステムコール若しくはプロシージャコール、リモートプロシージャコール又は類似の仕組みを通じて、互いに通信可能である。さらなる実施形態において、制御プレーンエンティティのサブセットはクラウドコンピューティングシステム内で仮想化又は実行可能であり、一方で制御プレーンエンティティの他のサブセットはサーバ、分散型サーバシステム又は類似のシステム内で実行可能である。制御プレーンエンティティは、ここで説明したようなOpenFlowプロトコルの使用を通じて、又は以下に説明する他の制御プロトコルを通じて、データプレーンと通信することができる。
【0122】
ここで説明したクラウドコンピューティングシステムは、説明のために提供されたものであり、限定のためのものではない。当業者は、クラウドコンピューティングシステムとの関連で上述した原理及び特徴を、単一のサーバ又は分散型サーバシステムといった他の構成において実装することもできることを理解するであろう。上述したものと同様の原理及び特徴は、単一のサーバシステム、分散型サーバシステム及び類似のコンピューティング環境において実装可能である。それら原理及び特徴は、クラウドコンピューティングシステム、単一サーバ、分散型サーバシステム及び類似のシステムの任意の組合せにおいて実行される非仮想化制御プレーンエンティティを含む非仮想化環境を用いて実装されることもできる。
【0123】
他の実施形態において、ここで説明したようなOpenFlowの代わりに、他の制御プロトコルを利用することができる。OpenFlowの使用は、例として提示されており、限定ではない。他の制御プロトコルを、制御プレーンとデータプレーンとの間の通信、及びスプリット3G PCアーキテクチャのデータプレーンの構成を管理するために利用することもできる。そうしたプロトコルの一例は、ネットワーク内の制御プレーンと転送プレーンとを分離するためのIETF標準プロトコルであるFORCESである。FORCESプロトコルの仕様は、RFC5810に記述されている。RFC5812は、OpenFlowスイッチと等価であるFORCES転送エレメントのアーキテクチャを説明している。FORCESプロトコル自体は、転送エレメントへのルートのプログラミングを直接的にはサポートしておらず、むしろ、FORCESコントローラとFORCES転送エレメントとの間のインタラクションのハンドリングのためのフレームワークである。転送エレメントのアーキテクチャは、FORCESコントローラがFORCES転送エレメントをプログラムすることを正確に可能とするプロトコルをいかに設計すべきかを記述している。GTP TEIDルーティングのためにコントローラがスイッチをプログラムすることを可能とするための、GTP OpenFlow拡張といったOpenFlowの実施形態に関連して上述した特徴を、FORCESベースのシステムが含むことができることを、当業者は理解するであろう。
【0124】
FORCES及びOpenFlowは、例として提示されており、限定ではない。当業者は、FORCESプロトコル及びOpenFlowプロトコルに関連して上述した原理及び特徴が他の類似の制御プロトコルにおいても実装可能であることを理解するであろう。
【0125】
このように、クラウドコンピューティングシステム内に3G PCを実装するための方法、システム及び装置が説明された。理解されるべきこととして、上の説明は例示であって制限的ではないことが意図される。上の説明を読み理解すれば、当業者には他の多くの実施形態が明らかとなるであろう。従って、本発明の範囲は、添付の特許請求の範囲と共に、当該特許請求の範囲に与えられる均等の全ての範囲を基準として、決定されるべきである。