(57)【特許請求の範囲】
【請求項１】
ワイヤレスネットワークコントローラ(NIC)を有するシステムであって、前記ワイヤレスNICは、コンピュータシステムの複数の仮想マシン(VM)の各々が前記ワイヤレスNICの機能に対して独立にアクセスして設定を行うことを可能にし、前記ワイヤレスNICは、
前記コンピュータシステムからコンフィギュレーションコントロール信号を受信し、コンフィギュレーションコントロール信号の各々について、前記VMの何れかを前記コンフィギュレーションコントロール信号のソースとして特定し、
前記VMの各々について、VM固有のコンフィギュレーションパラメータ及びデバイスコネクション情報を維持し、
前記コンピュータシステムから送信パケットを受信し、前記送信パケットの各々について、前記VMの何れかを前記送信パケットのソースとして特定し、対応するVM固有のコンフィギュレーションパラメータ及びVM固有のデバイスコネクション情報と共に前記ワイヤレスNICを設定し、及び
1つ以上のワイヤレスアクセスポイントから受信パケットを受信し、受信パケットの各々について、前記VMの何れかを宛先VMとして特定し、対応するVM識別子と共に前記受信パケットを前記コンピュータシステムに転送する、システム。
【請求項２】
前記ワイヤレスNICが、
状態フィードバック及び前記受信パケットを前記コンピュータシステムにAPIコールとして送信し、前記APIコールの各々について、VM識別子を前記APIコールのヘッダフィールドに挿入し、及び
前記コンピュータシステムから前記コンフィギュレーションコントロール信号をAPIコールとして受信し、前記コンフィギュレーションコントロール信号の各々について、前記対応するAPIコールの前記ヘッダフィールド内のVM識別子により、前記VMの何れかを前記コンフィギュレーションコントロール信号のソースとして特定する、請求項1に記載のシステム。
【請求項３】
前記ワイヤレスNICが、
前記VMの各々について対応するVM固有のMACアドレスを有するようにVM固有の仮想MACを初期設定し、
前記VM固有のMACアドレスの各々と対応するVM識別子との間の対応関係を維持し、
前記受信パケットの宛先MACアドレスに基づいて受信パケット各々について前記VM識別子を探索する、請求項1に記載のシステム。
【請求項４】
前記ワイヤレスNICは、前記送信パケットのVM固有のMACアドレスに基づいて、送信パケット各々について前記VM識別子を探索する、請求項3に記載のシステム。
【請求項５】
前記ワイヤレスNICは、前記対応するVM識別子に基づいて受信パケット各々についてVM固有のセキュリティ情報を探索し、対応するVM固有のセキュリティ情報に従って前記受信パケットを解読する、請求項1に記載のシステム。
【請求項６】
前記ワイヤレスNICは、前記対応するVM識別子に基づいて受信パケット各々についてVM固有のセキュリティキーインデックスを探索し、対応する受信パケットと共に前記セキュリティキーインデックスを前記コンピュータシステムに転送する、請求項1に記載のシステム。
【請求項７】
前記ワイヤレスNICは、前記対応するVM識別子に基づいて送信パケット各々についてVM固有のセキュリティ情報を探索し、対応するVM固有のセキュリティ情報に従って前記送信パケットを暗号化する、請求項1に記載のシステム。
【請求項８】
ワイヤレスネットワークインターフェースコントローラ(NIC)宛のコンフィギュレーションコントロール信号をコンピュータシステムの複数の仮想マシン(VM)から受信し、コンフィギュレーションコントロール信号の各々について、前記VMの何れかを前記コンフィギュレーションコントロール信号のソースとして特定するステップと、
前記VMの各々について、VM固有のコンフィギュレーションパラメータ及びデバイスコネクション情報を維持するステップと、
前記コンピュータシステムから送信パケットを受信し、前記送信パケットの各々について、前記VMの何れかを前記送信パケットのソースとして特定し、対応するVM固有のコンフィギュレーションパラメータ及びVM固有のデバイスコネクション情報と共に前記ワイヤレスNICを設定するステップと、
1つ以上のワイヤレスアクセスポイントから受信パケットを受信し、受信パケットの各々について、前記VMの何れかを宛先VMとして特定し、対応するVM識別子と共に前記受信パケットを前記コンピュータシステムに転送するステップと
を有する方法。
【請求項９】
状態フィードバック及び前記受信パケットをVMMにAPIコールとして送信し、前記APIコールの各々について、VM識別子を前記APIコールのヘッダフィールドに挿入するステップと、
前記VMMから前記コンフィギュレーションコントロール信号をAPIコールとして受信し、前記コンフィギュレーションコントロール信号の各々について、前記対応するAPIコールの前記ヘッダフィールド内のVM識別子により、前記VMの何れかを前記コンフィギュレーションコントロール信号のソースとして特定するステップと
を更に有する請求項8に記載の方法。
【請求項１０】
前記VMの各々について対応するVM固有のMACアドレスを有するようにVM固有の仮想MACを初期設定するステップと、
前記VM固有のMACアドレスの各々と対応するVM識別子との間の対応関係を維持するステップと、
前記受信パケットの宛先MACアドレスに基づいて受信パケット各々について前記VM識別子を探索するステップと
を更に有する請求項8に記載の方法。
【請求項１１】
前記送信パケットのVM固有のMACアドレスに基づいて、送信パケット各々について前記VM識別子を探索するステップを更に有する請求項10に記載の方法。
【請求項１２】
前記対応するVM識別子に基づいて受信パケット各々についてVM固有のセキュリティ情報を探索するステップと、
対応するVM固有のセキュリティ情報に従って前記受信パケットを解読するステップと
を更に有する請求項10に記載の方法。
【請求項１３】
前記対応するVM識別子に基づいて受信パケット各々についてVM固有のセキュリティキーインデックスを探索するステップと、
対応する受信パケットと共に前記セキュリティキーインデックスを前記コンピュータシステムに転送するステップと
を更に有する請求項8に記載の方法。
【請求項１４】
前記対応するVM識別子に基づいて送信パケット各々についてVM固有のセキュリティ情報を探索するステップと、
対応するVM固有のセキュリティ情報に従って前記送信パケットを暗号化するステップと
を更に有する請求項８に記載の方法。
【請求項１５】
コンピュータで読み取ることが可能な媒体に保存され、所定の方法をワイヤレスネットワークインターフェース(ワイヤレスNIC)のコントローラに実行させるコンピュータプログラムであって、前記所定の方法は、
ワイヤレスネットワークインターフェースコントローラ(NIC)宛のコンフィギュレーションコントロール信号をコンピュータシステムの複数の仮想マシン(VM)から受信し、コンフィギュレーションコントロール信号の各々について、前記VMの何れかを前記コンフィギュレーションコントロール信号のソースとして特定するステップと、
前記VMの各々について、VM固有のコンフィギュレーションパラメータ及びデバイスコネクション情報を維持するステップと、
前記コンピュータシステムから送信パケットを受信し、前記送信パケットの各々について、前記VMの何れかを前記送信パケットのソースとして特定し、対応するVM固有のコンフィギュレーションパラメータ及びVM固有のデバイスコネクション情報と共に前記ワイヤレスNICを設定するステップと、
1つ以上のワイヤレスアクセスポイントから受信パケットを受信し、受信パケットの各々について、前記VMの何れかを宛先VMとして特定し、対応するVM識別子と共に前記受信パケットを前記コンピュータシステムに転送するステップと
を有するコンピュータプログラム。
【請求項１６】
前記所定の方法が、
状態フィードバック及び前記受信パケットをVMMにAPIコールとして送信し、前記APIコールの各々について、VM識別子を前記APIコールのヘッダフィールドに挿入するステップと、
前記VMMから前記コンフィギュレーションコントロール信号をAPIコールとして受信し、前記コンフィギュレーションコントロール信号の各々について、前記対応するAPIコールの前記ヘッダフィールド内のVM識別子により、前記VMの何れかを前記コンフィギュレーションコントロール信号のソースとして特定するステップと
を更に有する請求項15に記載のコンピュータプログラム。
【請求項１７】
前記所定の方法が、
前記VMの各々について対応するVM固有のMACアドレスを有するようにVM固有の仮想MACを初期設定するステップと、
前記VM固有のMACアドレスの各々と対応するVM識別子との間の対応関係を維持するステップと、
前記受信パケットの宛先MACアドレスに基づいて受信パケット各々について前記VM識別子を探索するステップと
を更に有する請求項15に記載のコンピュータプログラム。
【請求項１８】
前記所定の方法が、前記送信パケットのVM固有のMACアドレスに基づいて、送信パケット各々について前記VM識別子を探索するステップを更に有する請求項15に記載のコンピュータプログラム。
【請求項１９】
前記所定の方法が、
前記対応するVM識別子に基づいて受信パケット各々についてVM固有のセキュリティ情報を探索するステップと、
対応するVM固有のセキュリティ情報に従って前記受信パケットを処理するステップと
を更に有する請求項15に記載のコンピュータプログラム。
【請求項２０】
前記所定の方法が、
前記対応するVM識別子に基づいて受信パケット各々についてVM固有のセキュリティキーインデックスを探索するステップと、
対応する受信パケットと共に前記セキュリティキーインデックスを前記コンピュータシステムに転送するステップと
を更に有する請求項15に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
開示される発明は無線ネットワークインターフェースコントローラを有するシステム、方法及びコンピュータプログラム等に関連する。
【背景技術】
【０００２】
コンピュータシステムは、1つ以上のオペレーティングシステムに対するホストとなる仮想マシンモニタ(Virtual  Machine  Monitor：VMM)を有する。
【０００３】
VMMは、コンピュータシステムのリソースに対するアクセスを、1つ以上のゲストオペレーティングシステムの中で調整する。VMMは、リソースの抽象化(abstraction)又は仮想インターフェースをゲストオペレーティングシステムに提供する。本願においては、ゲストオペレーティングシステム及び対応する仮想化されたリソース及びインターフェースは、仮想マシン(Virtual  Machine：VM)として言及される。
【０００４】
VMMは、VMに対する独立した安全な環境(isolated  and  secure  environment)を提供する。
【０００５】
VMMは、ソフトウェアの中で実現されてもよいし、或いはハードウェア及びソフトウェアの組み合わせにより実現されてもよい。
【０００６】
物理リソースは設定で変えられる1つ以上の機能を含んでいるかもしれない。例えば、無線ネットワークインターフェースコントローラ(NIC)は、装置の初期設定、ネットワークの探索(スキャニング)、ネットワークアクセスポイントの選択、チャネルの選択、コネクションの設定、ハンドオーバの管理、セキュリティ及び電力制御等に関して設定を変更できるかもしれない。
【０００７】
ペリフェラルコンポーネントインターコネクトスペシャルインタレストグループ(PCI-SIG)により公表されているシングルルートI/O仮想化(SR-IOV)標準仕様(v1.0)に基づいて、ソフトウェアベースのVMM及びNICハードウェア仮想化サポート機能を有する有線NICを仮想化する技術が開発されている。
【０００８】
ソフトウェアベースのVMM方式は設定可能な装置の特徴をVMから隠蔽する。
【０００９】
SR-IOV方式はNICパフォーマンスを改善するが、ハードウェアの複雑さ及びコストを増加させてしまう。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】米国特許出願公開第2006-0294517号明細書
【特許文献２】米国特許出願公開第2006-0245533号明細書
【特許文献３】米国特許出願公開第2007-0101323号明細書
【特許文献４】米国特許出願公開第2009-0183173号明細書
【発明の概要】
【発明が解決しようとする課題】
【００１１】
開示される発明の課題は、ハードウェアの複雑さ及びコストを増加させてしまう問題を少なくとも軽減する装置及び方法等を提供することである。
【課題を解決するための手段】
【００１２】
開示される発明によるシステムは、
ワイヤレスネットワークコントローラ(NIC)を有するシステムであって、前記ワイヤレスNICは、コンピュータシステムの複数の仮想マシン(VM)の各々が前記ワイヤレスNICの機能に対して独立にアクセスして設定を行うことを可能にし、前記ワイヤレスNICは、
前記コンピュータシステムからコンフィギュレーションコントロール信号を受信し、コンフィギュレーションコントロール信号の各々について、前記VMの何れかを前記コンフィギュレーションコントロール信号のソースとして特定し、
前記VMの各々について、VM固有のコンフィギュレーションパラメータ及びデバイスコネクション情報を維持し、
前記コンピュータシステムから送信パケットを受信し、前記送信パケットの各々について、前記VMの何れかを前記送信パケットのソースとして特定し、対応するVM固有のコンフィギュレーションパラメータ及びVM固有のデバイスコネクション情報と共に前記ワイヤレスNICを設定し、及び
1つ以上のワイヤレスアクセスポイントから受信パケットを受信し、受信パケットの各々について、前記VMの何れかを宛先VMとして特定し、対応するVM識別子と共に前記受信パケットを前記コンピュータシステムに転送する、システムである。
【図面の簡単な説明】
【００１３】
【図１】コンピュータシステム、設定変更可能な物理リソース又はデバイス及び仮想支援システムを有し、複数の仮想マシンの各々が物理デバイスを設定する及び物理デバイスにアクセスするコンピュータプラットフォームのブロック図。
【図２】仮想支援(VA)システムの概念的なブロック図。
【図３】コンピュータプラットフォームのブロック図(物理デバイスは仮想支援機能を有する無線ネットワークインターフェースコントローラ(NIC)を有している)。
【図４】図3に示すようなコンピュータプラットフォームのブロック図(VAシステムはVMM及び物理デバイスの間で移されるコントロール及びメッセージにVM識別子を関連付ける)。
【図５】物理デバイス及び複数のVMの間でインターフェースの処理を行う方法のフローチャート。
【図６】無線NICのブロック図(無線NICは、複数のVMに対して構築し直すことが可能であり、VMへの及びVMからのコンフィギュレーションコントロール及びデータトラフィックに関して複数のVMを差別化する)。
【図７】複数のVMに関して動作するように無線NICを制御する方法のフローチャート(無線NICは、VMへの及びVMからのコンフィギュレーションコントロール及びデータトラフィックに関して複数のVMを差別化する)。
【図８】コンフィギュレーションコントロール及び受信パケットに関してVMを差別化する方法のフローチャート。
【図９】1つ以上のアクセスポイントから受信したパケット及びVMMから受信した送信パケットにVM固有の識別子を関連付ける方法のフローチャート。
【図１０】コンピュータシステムの例示的な要素を含む図1に示すコンピュータプラットフォームのブロック図。
【図１１】コンピュータシステムの例示的な要素を含む図1に示すコンピュータプラットフォームの別のブロック図。
【発明を実施するための形態】
【００１４】
図中、参照番号の左側の桁はその参照番号が最初に登場した図面を示す。
【００１５】
複数の仮想マシン(VM)の各々が物理リソース又は物理デバイスを独立に設定してアクセスすることを許容する方法及びシステム、並びにホストコンピュータシステム内の複数のVMを差別化する(differentiate)物理デバイスを実現する方法及びシステム等が、本願により開示される。
【００１６】
図1はコンピュータプラットフォーム100のブロック図を示し、コンピュータプラットフォーム100は、コンピュータシステム102、設定可能な物理リソース又は物理デバイス104及び仮想支援(VA)システム118を有し、コンピュータシステム102の複数の仮想マシンの各々が物理デバイス104を設定しかつそれにアクセスできるようにする。
【００１７】
物理デバイス104は、物理デバイス104の1つ以上の機能又は特徴を設定するためのデバイスコントローラ106を有する。
【００１８】
物理デバイス104は1つ以上の多種多様の物理デバイス又は物理リソースを含んでよい。例えば、物理デバイス104は無線トランシーバを有し、デバイスコントローラ106はワイヤレスネットワークインターフェースコントローラ(Network  Interface  Controller：NIC)、ワイヤレスNIC又は無線NICを有する。しかしながら物理リソース104及びデバイスコントローラ106はワイヤレスNICに限定されない。
【００１９】
コンピュータシステム102は、本願ではホスト環境110と言及されるプロセッサ実行環境を提供する1つ以上のプロセッサ108を有する。ホスト環境110は1つ以上の仮想マシン(VM)114-1ないし114-nに対するホストとして機能する仮想マシンモニタ(VMM)112を有する。
【００２０】
デバイスコントローラ106は、ファームウェアで提供されてもよい命令、論理装置又はプログラムを実行するためにマイクロコントローラを含む別のプロセッサを有していてもよい。ホスト環境110は、コンピュータシステム102及び物理デバイス104間のインターフェースの機能を提供するホストデバイスドライバ116を有する。ホストデバイスドライバ116はVMM112の外部のプロセッサ108上で動作する。
【００２１】
VAシステム118は、VM114-1ないし114-nの各々が物理デバイス104を独立に設定してそれにアクセスできるように設定又は構築される。
【００２２】
VM114の各々はデバイスドライバ120のインスタンス(instance)を有し、VM114-1ないし114-nの各々において物理デバイスの制御可能な機能を明らかにする。デバイスドライバ120は、物理デバイス104及び/又はデバイスコントローラ106に特化して設計されてもよく、物理デバイス104及び/又はデバイスコントローラ106の製造元から提供されてもよい。デバイスドライバ120はネイティブデバイスドライバ(native  device  driver)と言及されてもよい。
【００２３】
VMシステム118又はその一部はデバイスコントローラ106の中で及び/又はコンピュータシステム102の中で実現されてもよい。コンピュータシステム102の中で、VAシステムの1つ以上の部分がVMM112の内部に及び/又はホストデバイスドライバ116のようにVMM112の外部に設けられてもよい。
【００２４】
VAシステム118の一部分がデバイスコントローラ106の内部に設けられる場合、本願においてデバイスコントローラ106は仮想支援デバイスコントローラ(virtualization−augmented  device  controller)と言及される。
【００２５】
I/Oインターフェースシステム112の一部分がホストデバイスドライバ116の内部に設けられる場合、本願においてホストデバイスドライバ116は仮想支援ホストデバイスドライバ(virtualization−augmented  host  device  driver)と言及される。
【００２６】
図2は統合コントロールエンジン又は統合制御エンジン202を含む仮想支援システム118の概念的なブロック図を示し、統合制御エンジン202はVM114-1ないし114-nから物理デバイス104(図1)に送信されるコマンド及び/又はデータを管理する。統合制御エンジン202は物理デバイス104に対する統合された制御インターフェースを提供する。例えば、統合制御エンジン202は、VM114-1ないし114-nからのコントロール(信号)及び/又はコンフィギュレーションコマンドを合成し、例えば、優先度、コマンドの性質、競合の可能性及び/又はその他の要因に基づいて、VM114-1ないし114-nのそれぞれからのコントロール(信号)及び/又はコンフィギュレーションコマンドを選択及び/又は破棄する。
【００２７】
統合制御エンジン202は、VM114-1ないし114-nの各々に対するVM固有パラメータ(VM-specific  parameters)204を維持し、VM固有パラメータ204を物理デバイス104に選択に適用する。VM固有パラメータ204の選択的な適用は、図2においてマルチプレクサ206と共に機能的に示されている。
【００２８】
パラメータ204は、1つ以上のデバイスコンフィギュレーションパラメータ及び/又はコネクション情報を含んでもよい。デバイスコンフィギュレーションパラメータ及びコネクション情報又は接続情報のタイプは、物理デバイスのタイプに応じて異なってもよい。
【００２９】
物理デバイス104がワイヤレスNICを含んでいる場合、例えば、コンフィギュレーションパラメータは以下に示すものの1つ以上に関連してよい：
デバイスの初期設定；
ネットワークのスキャニング：
ネットワーク/アクセスポイントの選択；
チャネルの選択；
コネクション又は接続の設定；
ハンドオーバの管理；
ネットワークの同期；
データレートの選択；
セキュリティ/暗号化；及び
電力制御。
【００３０】
代替的又は追加的に、ワイヤレスNICは以下に示すものの1つ以上に関連してよい：
認証；
帯域幅；
マネジメント；
アクセス制御/優先度；
サブネットローミング；
バッファリング；
リクエストトゥセンド及びクリアトゥセンド(RTS/CTS)；及び
サービス品質(QoS)(例えば、アクセス優先度のようなユーザプロファイルに基づく帯域幅の管理)。
【００３１】
上記の列挙されたコンフィギュレーションパラメータの例は説明の目的で示されているに過ぎず、網羅的ではない。本願において開示される方法及びシステムは上記の制御可能な属性の具体的なリストに限定されない。
【００３２】
コネクション情報又は接続情報に関し、物理デバイス104がワイヤレスNICを含む場合、コネクション情報は、例えば、アクセスポイントのMACアドレス、VM固有のMACアドレス、アクセスポイントでサポート又は使用されるデータレート、アクセスポイントが動作しているチャネル及び/又はコネクション又はセッションに固有のセキュリティキーを含んでもよい。
【００３３】
コネクション情報は状態情報(state  information)を含んでもよい。物理デバイス104が無線トランシーバを有する場合、状態情報は例えば関連する状態及び/又はレートスケーリングアルゴリズムの状態を含んでもよい。
【００３４】
物理デバイス104へのアクセス(又はアクセス権)が或るVMから別のVMへ移る場合、特定のVMコネクションに関するコネクション情報が保存及び/又は更新される。後にVMが物理デバイス104にアクセスする場合、そのコネクション情報が適用され直す。
【００３５】
制御モジュール202は、VM114及び物理デバイス104間でのメッセージの送受信を制御し、VM114-1ないし114-nの各々が、対応するVM固有パラメータ204に基づいて、物理デバイス104に独立にアクセスできるようにする。コントロールモジュール202は、VM114-1ないし114-nが時間分割多重方式で物理デバイス104に独立にアクセスできるようにする。
【００３６】
制御モジュール202又はその一部分は、ホストデバイスドライバ116(図1)の中に及び/又はデバイスコントローラ106(図1)の中に、例えばマイクロコントローラが実行するファームウェア組み込み命令と共に実現されてもよい。
【００３７】
図3はコンピュータシステム102及び物理デバイス104のブロック図を示し、物理デバイス104は仮想支援ワイヤレスNIC304を含み、コンピュータシステム102は仮想支援ホストワイヤレスNIC312を含み、VAシステム118は、NIC304、ホストワイヤレスNICドライバ312及びVMM112を介して実現されるように図示されている。
【００３８】
ワイヤレスNIC304は、媒体アクセスコントローラ(MAC)306と、MAC306及び無線トランシーバ間のインターフェースの機能を果たす物理レイヤの部分又はデバイス(PHY)308とを含む。MAC306は、VM114-1ないし114-n(仮想MAC307-1ないし307-nとして示されている)の各々にMAC306の仮想インスタンスを提供するように再構築することができ、それらの各々は対応するVM固有デバイスパラメータ304により規定される。
【００３９】
VM114-1ないし114-n対応するネイティブワイヤレスNICドライバ320-1ないし320-nを含む。
【００４０】
ホストNICドライバ312は、MAC306及びVMM112間のインターフェース(無線部314として示されている)を提供する。ホストワイヤレスNICドライバ312は、VM114-1ないし114-n(仮想部316-1ないし316-nとして示されている)の各々に無線部314の仮想インスタンスを提供し、それらは対応するVM固有コンフィギュレーション及びコンテキストパラメータにより規定される。
【００４１】
ホストワイヤレスNICドライバ312は制御モジュール320を含み、制御モジュール320はVMM112の外部のプロセッサ108上で動作する。制御モジュール320は、VM114-1ないし114-nからのデバイスコンフィギュレーションコントロール信号を統合し(consolidate)、統合された制御インターフェースをワイヤレスNIC304に提供する。
【００４２】
VM112はワイヤレスNIC304に対応するデバイスモデルを含み、デバイスモデルの仮想インスタンスを、ワイヤレスNICドライバ320-1ないし320-n(デバイスモデル318-1ないし318-nとして示されている)に対して明らかにする。デバイスモデルはエミュレートされたペリフェラルコンポーネントインターコネクト(emulated  peripheral  component  interconnect：emulated  PCI)の機能を有する。
【００４３】
ワイヤレスNICデバイスドライバ120、デバイスモデル318及びホストワイヤレスNICドライバ312は、VM114が、物理デバイス104の設定可能な機能の全部又は一部にアクセスできるようにする。
【００４４】
図4は図3と同様にコンピュータシステム102及び物理デバイス104のブロック図を示すが、VAシステム118は、VMM112、ホストワイヤレスNICドライバ312及びワイヤレスNIC304の間でやり取りされるメッセージ及びコントロール(信号)にVM固有識別子を関連付ける。これは本願においてVM固有識別子と共にタグが付されたメッセージ又はタグ付きメッセージ(tagging  message)として言及される。
【００４５】
図4において、ワイヤレスNIC304は仮想無線識別子又はVR-IDのタグモジュール402を有し、ホストワイヤレスNICドライバ312はVR-IDタグモジュール404を有する。VR-IDタグモジュール302及び304の各々は、ワイヤレスNIC304及びホストワイヤレスNICドライバ312の間で送受信されるメッセージ及びコントロール(信号)305に適切なVM固有VR-IDタグを付ける。
【００４６】
MAC306は、関連するVR-IDタグに基づいて、仮想MAC307-1ないし307-nのうち選択されたものと共にホストワイヤレスNICドライバ312から受信したメッセージを処理する。
【００４７】
同様に、ホストワイヤレスNICドライバ312は、関連するVR-IDタグに基づいて、仮想無線部316-1ないし316-nのうち選択されたものと共にワイヤレスNIC304から受信したメッセージを処理する。
【００４８】
ホストワイヤレスNICドライバ312はVM-IDタグモジュール406を更に有し、VMM112はVM-IDタグモジュール408を有する。VM-IDタグモジュール406及び408の各々は、ホストワイヤレスNICドライバ312及びVMM112の間で送受信されるメッセージ及びコントロール(信号)に関連するVM-IDタグを付与する。
【００４９】
ホストワイヤレスNICドライバ312は、更に、関連するVM-IDタグに基づいて、仮想無線部316-1ないし316-nのうち選択されたものを通じて、VMM112から受信したメッセージを与える。
【００５０】
同様に、VMM112は、関連するVM-IDタグに基づいて、VM114-1ないし114-nのうち選択されたものに、ホストワイヤレスNICドライバ312から受信したメッセージを与える。
【００５１】
図5は、物理デバイス及び複数のVMの間のやり取りに関する方法500のフローチャートを示す。
【００５２】
ステップ502において、物理デバイス宛のコンフィギュレーションコントロール(信号)が、VMの内部にある物理デバイスの可制御機能を明らかにするデバイスドライバの対応するインスタンスにより、複数のVM各々から受信する。
【００５３】
ステップ504において、VM各々について、1つ以上の具体例で説明されているように、VM固有コンフィギュレーションパラメータ及びVM固有のコネクション情報が維持される。
【００５４】
ステップ506において、1つ以上の具体例で説明されているように、対応するVM固有コンフィギュレーションパラメータ及びコネクション情報と共に、VM各々について、物理デバイスが再設定される又は設定され直す。
【００５５】
1つ以上の具体例で説明されているように、ステップ502におけるコンフィギュレーションコントロール(信号)の受信と、ステップ504におけるVM固有コンフィギュレーションパラメータ及びVM固有のコネクション情報の維持と、ステップ506における物理デバイスの再構築とは、VMに対するホストのVMMの実質的に外部で実行されてもよい。
【００５６】
ステップ504におけるVM固有コンフィギュレーションパラメータ及びVM固有のコネクション情報の維持と、ステップ506における物理デバイスの再構築とは、実質的に物理デバイスの中で実行されてもよい。
【００５７】
物理デバイスはワイヤレスNICを含んでもよく、ステップ506の再設定において、上記の1つ以上のパラメータに関して、複数のVMの各々に関するワイヤレスNICを再構築してもよい。
【００５８】
上記に列挙されているコンフィギュレーションパラメータの具体例は説明を意図して提示されているに過ぎない。本方法500は上記の設定可能な具体的なリストに限定されない。
【００５９】
VM宛の及びVMからのコンフィギュレーションコントールと共に及びデータトラフィックと共に、VMの中で差別化する又は相違させる方法及びシステムが図6-9を参照しながら以下において説明される。本方法及び本システムはワイヤレスNICの観点から説明される。しかしながら本方法及び本システムはワイヤレスNICに限定されない。
【００６０】
図6は、複数のVMに関して再構築可能であり、コンフィギュレーションコントロール(信号)及びデータトラフィックに関してVMを差別化する又は相違させる無線NIC604のブロック図を示す。ワイヤレスNIC604は図1の物理デバイス104に対応するので、図1の参照しながら説明する。しかしながらワイヤレスNIC604は図1は図1に示す具体例に限定されない。
【００６１】
ホストデバイスドライバ601は、VM114-1ないし114-n(図1)から送信パケット606及びコンフィギュレーションコントロール(信号)608をワイヤレスNIC604に送信する。ワイヤレスNIC604は、受信したパケット610及び状態フィードバック612を、対応するVM114-1ないし114-nに配布するためにホストデバイスドライバ601に送信する。
【００６２】
送信パケット606、コンフィギュレーションコントロール(信号)608、受信したパケット610及び状態フィードバック612には適切なVM識別子(VM-ID)がタグ付けされ、ワイヤレスNIC604及びホストデバイスドライバ601が、パケット、コントロール(信号)及びフィードバックをVM毎に取り扱う及び/又は処理することを可能にする。VM-IDは図4を参照しながら説明されたようなVM及び/又は仮想無線部に直接的に関連してもよい。
【００６３】
VM-IDのタグ付けは、複数の技術のうちの1つ以上及びそれらの組み合わせと共に実行されてもよい。
【００６４】
例えば、ホスト環境110は、ワイヤレスNIC604及びVM114-1ないし114-nの間でインターフェースの機能を果たすためのホストアプリケーションプログラムインターフェース(API)を含んでいてもよい。ホストAPIはホストデバイスドライバ601の内部で実現されてもよい。ホストAPIはホストAPIヘッダの中のVM識別子(VM-ID)フィールドを認識できるように構築される。VMヘッダフィールドは、既存の又は従来のAPIヘッダについて予約されているビットを用いて含められてもよい。VM-IDヘッダフィールドに使用されるビット数は、使用されるVMの数によって決定されてもよい。
【００６５】
状態フィードバック612に関し、ワイヤレスNIC604は、状態フィードバック612と共にホストAPIを呼び出すデバイス主導API呼出モジュール614を含む。ワイヤレスNIC604は、状態フィードバック612のホストAPI-VM-IDヘッダフィールドにVM-IDを挿入するVM-ID挿入モジュール616を更に含む。これは、ホストデバイスドライバ601が状態フィードバック612を適切なVMに向けることを可能にする。
【００６６】
コンフィギュレーションコントロール(信号)608に関し、図3及び図4におけるデバイスモデル318のようなVMM内部のデバイスモデルは、対応するVMが発行したAPIコントロール呼び出し(コンフィギュレーションコントロール(信号)608)にVM-IDを挿入するように構築される。ワイヤレスNIC604は、コンフィギュレーションコントロール(信号)608を受信しかつAPI-VM-IDヘッダフィールドから関連するVM114を特定するVM差別化部618を有する。
【００６７】
受信パケット610及び送信パケット606のVM差別化については後述する。
【００６８】
ワイヤレスNIC604は、関連するVM-IDに基づいてVM毎にコンフィギュレーションコントロール信号を取り扱う及び/又は処理する。ワイヤレスNIC604は、例えば、後述するように、VM毎にMAC及び/又はPHYを初期化するVM用デバイス初期化モジュール(per  VM  Device  Initialization  module)620を有する。ワイヤレスNIC604は、後述するように、VM毎にパラメータを維持するVM用コネクションテーブル(per  VM  Connection  Table)622も有する。
【００６９】
受信したパケット(受信パケット)610に関し、VM差別化を説明する。
【００７０】
ワイヤレスNIC604は1つ以上のアクセスポイント又はトランシーバからパケット610を受信し、そのパケットは1つ以上のサービスセット識別子(Service  Set  Identifier：SSID)に関連付けられている。受信パケット610の各々は1つのVM114についての特定の宛先MACアドレスを含む。
【００７１】
ワイヤレスNIC604は、受信パケット610のMACアドレスに基づいて、VM用コネクションテーブル622の中でVM-IDを探索する受信側VM-ID探索部626を有する。
【００７２】
ワイヤレスNIC604は、VM-ID挿入部616に関して説明したのと同様に、同定、識別又は特定されたVM-IDを受信パケット610のAPI-VM-IDヘッダフィールドに挿入するVM-ID挿入モジュール628を更に有する。
【００７３】
受信パケット610のVM-IDは、ホストデバイスドライバ601が、受信パケット610を実質的に処理することを必要とせずに、受信パケット610を適切なVM114に与えることを可能にする。
【００７４】
ワイヤレスNIC604は後述するようにセキュリティモジュール630を有する。
【００７５】
送信パケット606に関し、VM差別化を説明する。
【００７６】
ホスト環境110(図1)は、コンフィギュレーションコントロール(信号)608に関して説明したのと同様に、送信パケット606にVM-IDを挿入する。これにより、送信パケット606のコンフィギュレーションパラメータ及びコネクション情報が、VM-IDに基づいてVM用コネクションテーブル622から抽出される。
【００７７】
或いは、送信パケット606はVM-IDによらずホストデバイスドライバ601から受信されてもよい。例えば、ホストデバイスドライバ601及び/又はホストAPIはVM-IDをAPIヘッダに挿入するように構築されていなくてもよい。これを行うには、ワイヤレスNIC604は、受信側のVM-ID探索部626に関して説明したのと同様に、送信パケット606に含まれているVM固有MACアドレスに基づいてVM用コネクションテーブル622からVM-IDを探索する送信側VM-ID探索部632を備える。
【００７８】
ワイヤレスNIC604は、VM-ID探索部632により特定されたVM-IDに基づいてVM用コネクションテーブル622からVM固有のコンフィギュレーションパラメータ及びコネクション情報を抽出し、かつ対応するVM-IDに基づいて送信パケット606のためにワイヤレスNIC604の機能を設定又は再設定するVM用コンフィギュレーションモジュール(per  VM  Configuration  Module)634を有する。
【００７９】
次に、デバイスの初期化を説明する。
【００８０】
コンフィギュレーションコントロール(信号)608は、複数のVMからのデバイス初期化コントロール信号を含む。デバイス初期化コントロール(信号)はPHY及び/又はMACに向けられる。ワイヤレスNIC604は、デバイス初期化コントロール信号を処理しかつデバイス初期化コントロール(信号)が衝突するおそれを回避するためのVM用デバイス初期化モジュール(per  VM  device  initialization  module)620を有する。
【００８１】
PHY初期設定に関し、初期化モジュール620は、現在のPHY及び動作チャネルを決定する。初期化モジュール620は、PHYが現在初期化されていない場合に、PHYのみを初期化するように構築されていてもよい。PHY初期化コマンドが現在の動作チャネル又は動作モード以外のチャネル又はモードを指定していた場合、初期化モジュール620は処理を進める前に1つ以上の事項を確認する。そのような事項(factor)は、現在のチャネル又はモードがデバイスでサポート又は使用されているか否か、及び新たなチャネル又はモードに関連する何らかの制約を示す。
【００８２】
MAC初期設定に関し、初期化モジュール620は、VMが対応するNICドライバを始めて起動又は始動する場合に、特定のVMについてのMACインスタンスを起動するように構築される。これは、そのVMのパケット610を受信するために、そのVMのMACアドレスと共に仮想MAC用のMACフィルタを構築することを含む。
【００８３】
次に、VM固有パラメータを維持することを説明する。
【００８４】
VM用コネクションテーブル622は、複数のVM又はVMコネクションの各々に関し、VM固有のコンフィギュレーションパラメータ及びコネクション情報(状態情報を含む)を維持するように構築される。
【００８５】
VMコネクションテーブル622は、ワイヤレスNIC604へのアクセス(アクセス権)が或るVMから別のVMに移された場合に、特定のVMについてのコネクション情報を保存し、かつVMが後でワイヤレスNIC604にアクセスする場合に、コネクション情報及び対応するコンフィギュレーションパラメータを適用し直すように構築される。
【００８６】
VMコネクションテーブル622及び/又はワイヤレスNIC604は、コネクション毎の独立したエントリを伴うデータ構造を有し又は使用し、対応するVM-IDに関連するコネクション情報毎に又はVM-ID毎に維持する。ワイヤレスNIC604は、各々のVMに関連する詳細(specificts)と共にデータ構造を維持してもよい(例えば、追加、修正又は削除を含む)。データ構造はコードデータ構造を含んでいてもよい。
【００８７】
次に、セキュリティ属性を説明する。
【００８８】
VM用コネクションテーブル622は、VM又はVMコネクション用にVM固有のセキュリティ情報を保存する。セキュリティ情報は、例えば1つ以上の一時的なキーインテグリティプロトコル(temporal  key  integrity  protocol：TKIP)を含むVM毎の暗号化/復号化方式と、暗号ブロック連鎖メッセージ認証コードプロトコル(cipher  block  chaining  message  authentication  code  protocol：CCMP)とを含んでもよい。セキュリティ情報はセキュリティキー及び/又はセキュリティキーに対するインデックスを含み、セキュリティ情報と共に受信パケット610をデコードし及び/又は送信パケット606をエンコードする。
【００８９】
受信側では、セキュリティモジュール630は、受信パケット610のVM-IDに基づいて、VM用コネクションテーブル622からVM固有のセキュリティ解読方式及びセキュリティキーを抽出し、対応する解読方式及びセキュリティキーと共に受信パケット610をデコードする。或いは、デコード又は解読処理はコンピュータシステム102により実行されてもよく、セキュリティモジュール630はVM固有のセキュリティキーインデックスを対応する受信パケット610と共に抽出及び転送してもよい。
【００９０】
送信側では、VMコンフィギュレーションモジュール634は、送信パケット606のVM-IDに基づいてコネクションテーブル622からVM固有のセキュリティ暗号化方式及びセキュリティキーを抽出し、対応する暗号化方式及びセキュリティキーと共に送信パケット606をエンコードする。
【００９１】
図7は複数のVMに関して動作するようにワイヤレスNICを制御する方法700のフローチャートを示し、VMへの及びVMからのコンフィギュレーションコントロール(信号)及びデータに関し、VMを差別化する又は相違させることを含む。
【００９２】
ステップ702において、ワイヤレスNIC宛のコンフィギュレーションコントロール(信号)が、コンピュータシステムがホストとなっている複数の仮想マシン(VM)から受信され、コンフィギュレーションコントロール(信号)各々について、何れかのVMがコンフィギュレーションコントロール(信号)のソースとして特定される。
【００９３】
ステップ704において、VM各々についてVM固有コンフィギュレーションパラメータ及びデバイスコネクション情報がNICにより維持される。
【００９４】
ステップ706において、送信パケットがVMから受信され、送信パケット各々について、何れかのVMが送信パケットのソースとして特定され、対応するVM固有のコンフィギュレーションパラメータ及び対応するVM固有のコネクション情報と共にワイヤレスNICが構築される。
【００９５】
ステップ708において、1つ以上のワイヤレスネットワークアクセスポイントからパケットが受信され、受信したパケット各々について、何れかのVMが宛先VMとして特定され、対応するVM識別子と共に受信パケットがコンピュータシステムに転送される
図8は、コンフィギュレーションコントロール(信号)及び受信パケットに関し、VMを差別化する又は相違させる方法800のフローチャートを示す。本方法800又はその一部分は方法700との組み合わせで実行されてもよい。
【００９６】
ステップ802において、状態フィードバック及び受信パケットがAPI呼出又はAPIコール(API  call)としてコンピュータシステムに送信され、APIコールの各々についてVM識別子がAPIコールのヘッダフィールドに挿入される。
【００９７】
ステップ804において、コンフィギュレーションコントロール(信号)がAPIコールとしてコンピュータシステムから受信され、コンフィギュレーションコントロール(信号)の各々について、対応するAPIコールのヘッダフィールドのVM識別子から、何れかのVMがコンフィギュレーションコントロール(信号)のソースとして特定される。
【００９８】
図9は、VM固有の識別子を、1つ上のアクセスポイントから受信した受信パケット及びコンピュータシステムから受信した送信パケットに関連付ける方法900のフローチャートを示す。方法900又はその一部分は方法700及び/又は方法800との組み合わせで実行されてもよい。
【００９９】
ステップ902において、VM固有の仮想MACが複数のVMの各々について初期設定され、各々の仮想MACが対応するVM固有のMACアドレスと共に設定される。
【０１００】
ステップ904において、VM固有のMACアドレスの各々と対応するVM識別子との間の関連性(reference)が維持される。
【０１０１】
ステップ906において、受信パケットの宛先MACアドレスに基づいて、VM識別子が受信パケット各々について探索される。
【０１０２】
ステップ908において、送信パケットのVM固有のMACアドレスに基づいて、VM識別子が送信パケット各々について探索される。
【０１０３】
受信側において、VM識別子は、受信パケットをデコードするのに使用するセキュリティ情報を探索するために使用されてもよい。受信パケットは、ワイヤレスNICにより解読、復号又はデコードされてもよいし、或いは上記の1つ以上の例で説明されたようにセキュリティキーインデックスと共にコンピュータシステムに送信されてもよい。
【０１０４】
本願で説明される1つ以上の特徴は、ハードウェア、ソフトウェア、ファームウェア及びそれらの任意の組み合わせにより実現されてもよく、個別の及び一体化された回路論理装置、特定用途向け集積回路(ASIC)用の論理装置及びマイクロコントローラを含み、ドメイン固有の集積回路パッケージの一部として及び/又は集積回路パッケージの組み合わせとして実現されてもよい。本願で使用されているようなソフトウェア、コード及び命令等の用語はコンピュータプログラムに関連し、コンピュータプログラムは、コンピュータで読み取ることが可能な記憶媒体に保存され、上記の1つ以上の処理をコンピュータシステムに実行させる。
【０１０５】
図10はコンピュータシステム102に関する特徴を含む図1のコンピュータプラットフォーム100のブロック図を示す。
【０１０６】
図10に示す例の場合、コンピュータシステム102はコンピュータプログラム(「論理装置」と言及される)を実行するプロセッサ108を有する。プロセッサ108は複数のプロセッサを表現してもよい。
【０１０７】
コンピュータシステム102は、メモリ、キャッシュ、レジスタ及びストレージのうちの1つ以上を有し、メモリ1004として示されている。メモリ1004は、保存されるコンピュータプログラム又は論理装置又は命令1006を保存するコンピュータで読み取ることが可能な媒体であり、コンピュータプログラムはそれに応じてプロセッサ108に1つ以上の機能を実行させる。論理装置の具体例については後述する。
【０１０８】
メモリ1004は、論理装置1006を実行するプロセッサ108で使用されるデータ1008及び/又は論理装置1006の実行に応じてプロセッサ108が生成したデータ1008を含む。
【０１０９】
論理装置1006は、プロセッサ108に1つ以上のアプリケーションタスクを実行させるアプリケーション論理装置1010を有していてもよい。
【０１１０】
論理装置1006は、プロセッサ108に、アプリケーション論理装置1010のための動作環境を提供させるオペレーティングシステム論理装置1012を有していてもよい。
【０１１１】
論理装置1006は、プロセッサ108に、仮想マシンの中でオペレーティングシステム論理装置1012を実行させるVMM論理装置1014を有していてもよい。
【０１１２】
論理装置1006は、上記の1つ以上の例で説明したように、プロセッサ108が、物理デバイス104及び仮想マシンモニタの間でインターフェースの機能を発揮することを引き起こす仮想支援ホストデバイスドライバ論理装置1016を有していてもよい。
【０１１３】
ホストデバイスドライバ論理装置1016は、プロセッサ108に、複数のVM固有の仮想無線部を構築させる論理装置を有し、データ1008は対応するVM固有の仮想無線コンフィギュレーション及びコンテキストパラメータ1018を含んでもよい。
【０１１４】
コンピュータシステム102は、コンピュータシステム102の中で1つ以上の装置とのインターフェースの機能を果たしかつ物理デバイス104と通信する通信インターフェース1040を有していてもよい。
【０１１５】
図11は物理デバイス104に関する特徴を含む図1のコンピュータプラットフォーム100のブロック図を示す。
【０１１６】
物理デバイス104は、コンピュータプログラム論理装置を実行する1つ以上のコンピュータ命令処理部(コントローラ1102として示されている)を有する。
【０１１７】
物理デバイス104は、メモリ、キャッシュ、レジスタ及びストレージの内の1つ以上を有し、メモリ1104のように示されている。メモリ1104は、保存されるコンピュータプログラム又は論理装置又は命令1106を保存するコンピュータで読み取ることが可能な媒体であり、コンピュータプログラムはそれに応じてコントローラ1106に1つ以上の機能を実行させる。論理装置1106はファームウェア内に設けられてもよく、実行時にメモリにコピーされてもよい。論理装置の具体例については後述する。
【０１１８】
メモリ1104は、論理装置1106を実行するコントローラ1102で使用されるデータ1108及び/又は論理装置1106の実行に応じてコントローラ1102が生成したデータ1108を含む。
【０１１９】
論理装置1106は物理デバイス論理装置1110を含み、物理デバイス論理装置1110は、コンピュータシステム102の複数のVM各々についてコントローラ1102にVM固有のパラメータ204を維持させかつ上記の1つ以上の例で説明したようにVM固有のパラメータ204と共に物理デバイス104を再構築する。
【０１２０】
物理デバイス論理装置1110は、上記の1つ以上の例で説明したように、コントローラを仮想支援ワイヤレスNICとして動作させる仮想支援ワイヤレスNIC論理装置1112を含んでもよい。
【０１２１】
本方法及び本装置は、機能、特徴及びそれらの関連性を示す機能ブロック図を用いて説明された。これらの機能ブロックの境界の少なくとも一部は説明の便宜上の理由から任意的に規定されている。本発明の具体的な機能及び関連性が適切に実現される限り、代替的な境界が規定されてもよい。
【０１２２】
以上、様々な実施の形態が説明されたが、それらは単なる例示的に示されているに過ぎず、限定ではないことが理解されるべきである。本願で開示された方法及びシステムの精神及び範囲から逸脱することなく、実施形態及び詳細に関する様々な変形例がなされてよいことが、当業者にとって明らかであろう。従って、本発明の範囲及び目的は具体的に記載された何れの実施の形態にも限定されない。
【図１】
0005450898.tif 000002
【図２】
0005450898.tif 000003
【図３】
0005450898.tif 000004
【図４】
0005450898.tif 000005
【図５】
0005450898.tif 000006
【図６】
0005450898.tif 000007
【図７】
0005450898.tif 000008
【図８】
0005450898.tif 000009
【図９】
0005450898.tif 000010
【図１０】
0005450898.tif 000011
【図１１】
0005450898.tif 000012