(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-11
(45)【発行日】2024-09-20
(54)【発明の名称】ユーザープレーン機能(UPF)プラグインがインストールされた仮想ネットワーク層を備えたコンピューティングデバイスおよびUPFパケット処理方法
(51)【国際特許分類】
H04L 45/76 20220101AFI20240912BHJP
【FI】
H04L45/76
(21)【出願番号】P 2023147715
(22)【出願日】2023-09-12
【審査請求日】2023-09-12
(32)【優先日】2022-12-20
(33)【優先権主張国・地域又は機関】TW
(73)【特許権者】
【識別番号】504025778
【氏名又は名称】明泰科技股▲分▼有限公司
(74)【代理人】
【識別番号】100099759
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100123582
【氏名又は名称】三橋 真二
(74)【代理人】
【識別番号】100092624
【氏名又は名称】鶴田 準一
(74)【代理人】
【識別番号】100114018
【氏名又は名称】南山 知広
(74)【代理人】
【識別番号】100153729
【氏名又は名称】森本 有一
(72)【発明者】
【氏名】チャン コアン イー
(72)【発明者】
【氏名】チエン シュイ トン
【審査官】長谷川 未貴
(56)【参考文献】
【文献】米国特許出願公開第2021/0117360(US,A1)
【文献】米国特許出願公開第2022/0021605(US,A1)
【文献】米国特許出願公開第2022/0159501(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/00-101/00
(57)【特許請求の範囲】
【請求項1】
ユーザー機器からパケットを受信すると共に、他のコンピューティングデバイスと通信するコンピューティングデバイスであって、
処理ユニットと、
前記処理ユニットに接続された記憶ユニットと、
前記処理ユニットと前記記憶ユニットとに接続され、パケットを受信し、且つ、前記処理ユニットと前記記憶ユニットと共にハードウェア層としてまとめて定義される、ネットワークインターフェースカードと、
前記ハードウェア層において動作し、複数の仮想ネットワークアプリケーションを収容するために前記処理ユニットによって実行されるように構成されるネットワーク仮想化プラットフォームと、を備え、
前記ネットワーク仮想化プラットフォームは、
前記仮想ネットワークアプリケーションが配置されたアプリケーション層と、
ユーザープレーン機能(UPF)プラグインがインストールされた仮想ネットワーク層と、を含み、前記UPFプラグインは、前記パケットのパケットヘッダに従ってルールマッチングを実行し、且つ、
前記仮想ネットワークアプリケーションがサービスを提供するために、前記パケットを前記アプリケーション層内の1つの前記仮想ネットワークアプリケーションにオフロードするステップと、
前記パケットを再パッケージし、前記パケットを前記他のコンピューティングデバイスに転送するステップと、のいずれのステップを実行するかを決定するように構成される、
コンピューティングデバイス。
【請求項2】
前記UPFプラグインは、前記オフロードのステップと前記再パッケージのステップとのいずれのステップを実行するかを、プロトコルデータユニット(PDU)セッションアンカーに基づいて決定するように構成され、前記PDUセッションアンカーは前記パケットに記録された前記ユーザー機器の要求に従って決定されるものであり、
前記UPFプラグインが、それ自身が前記パケットの前記PDUセッションアンカーであると判定した場合、前記オフロードのステップが実行され、
前記UPFプラグインが、それ自身が前記PDUセッションアンカーではないと判定した場合、前記再パッケージのステップが実行される、
請求項1に記載のコンピューティングデバイス。
【請求項3】
前記UPFプラグインは、前記パケットをデキャップし、前記パケットのパケットヘッダを解析し、前記パケットヘッダに従ってルールマッチングを実行し、前記パケットに記録された前記ユーザー機器の要求に従って前記PDUセッションアンカーを決定するように構成される、
請求項2に記載のコンピューティングデバイス。
【請求項4】
前記ネットワークインターフェースカードは、ハードウェアオフロード機能をサポートするスマートネットワークカードであり、前記スマートネットワークカードは、受信された前記パケットを直接デキャップし、前記パケットヘッダを解析し、デキャップされた前記パケットを前記UPFプラグインに送信し、前記UPFプラグインは、前記パケットの前記パケットヘッダに従って前記パケットに対してルールマッチングを実行し、前記パケットに記録された前記ユーザー機器の要求に従って前記PDUセッションアンカーを決定するように構成される、
請求項2に記載のコンピューティングデバイス。
【請求項5】
前記パケットは、ゼロコピー技術を使用して、デバイスドライバによって前記ネットワークインターフェースカードから前記記憶ユニットに移動される、
請求項1に記載のコンピューティングデバイス。
【請求項6】
前記ネットワーク仮想化プラットフォームは、前記コンピューティングデバイスのオペレーティングシステムの権限レベルに応じて、カーネル空間とユーザ空間とに分割され、前記デバイスドライバは前記カーネル空間で動作し、前記アプリケーション層と前記仮想ネットワーク層は前記ユーザ空間で動作する、
請求項5に記載のコンピューティングデバイス。
【請求項7】
前記デバイスドライバは、データプレーン開発キットによりサポートされ、ポーリングによって前記パケットを前記ユーザ空間に直接送信することができる、
請求項6に記載のコンピューティングデバイス。
【請求項8】
前記仮想ネットワークアプリケーションは、共有メモリパケットインタフェースによって前記記憶ユニットを共有する、
請求項1に記載のコンピューティングデバイス。
【請求項9】
前記ネットワーク仮想化プラットフォームの前記仮想ネットワーク層は、ベクトルパケット処理によって実施され、前記UPFプラグインは、ベクトルパケット処理グラフアーキテクチャの下で、モジュラープラグインとしてプログラムされたものである、
請求項1に記載のコンピューティングデバイス。
【請求項10】
前記UPFプラグインは、3GPP(登録商標)で規定された5G標準のインターフェースを介して前記他のコンピューティングデバイスと通信する、
請求項1に記載のコンピューティングデバイス。
【請求項11】
コンピューティングデバイスによって実行されるユーザープレーン機能(UPF)パケットを処理するための方法であって、前記コンピューティングデバイスは、互いに接続されていて且つハードウェア層としてまとめて定義される、処理ユニットと、記憶ユニットと、ネットワークインターフェースカードとを備え、また、前記コンピューティングデバイスは、前記ハードウェア層において動作し、複数の仮想ネットワークアプリケーションを収容するために前記処理ユニットによって実行されるように構成されるネットワーク仮想化プラットフォームを更に備え、前記ネットワーク仮想化プラットフォームは、前記仮想ネットワークアプリケーションが配置されたアプリケーション層と、ユーザープレーン機能(UPF)プラグインがインストールされた仮想ネットワーク層と、を含み、前記UPFプラグインは他のコンピューティングデバイスと通信し、該方法は、
前記ネットワークインターフェースカードによりパケットをユーザー機器から受信するステップと、
前記UPFプラグインが、前記パケットのパケットヘッダに従ってルールマッチングを実行し、且つ、
前記仮想ネットワークアプリケーションがサービスを提供するために、前記パケットを前記アプリケーション層内の1つの前記仮想ネットワークアプリケーションにオフロードするステップと、
前記パケットを再パッケージし、前記パケットを前記他のコンピューティングデバイスに転送するステップと、のいずれのステップを実行するかを決定するステップと、を含む、方法。
【請求項12】
前記UPFプラグインは、前記オフロードのステップと前記再パッケージのステップとのいずれのステップを実行するかを、プロトコルデータユニット(PDU)セッションアンカーに基づいて決定し、前記PDUセッションアンカーは前記パケットに記録された前記ユーザー機器の要求に従って決定されるものであり、
前記UPFプラグインが、それ自身が前記パケットの前記PDUセッションアンカーであると判定した場合、前記オフロードのステップが実行され、
前記UPFプラグインが、それ自身が前記PDUセッションアンカーではないと判定した場合、前記再パッケージのステップが実行される、
請求項11に記載の方法。
【請求項13】
前記パケットを受信した後に、前記UPFプラグインにより実行される各ステップであって、
前記パケットをデキャップするステップと、
前記パケットのパケットヘッダを解析するステップと、
前記パケットヘッダに従ってルールマッチングを実行するステップと、
前記パケットに記録された前記ユーザー機器の要求に従って前記PDUセッションアンカーを決定するステップと、を更に含む、
請求項12に記載の方法。
【請求項14】
前記ネットワークインターフェースカードは、ハードウェアオフロード機能をサポートするスマートネットワークカードであり、該方法は、前記パケットを受信した後に、
前記スマートネットワークカードにより、受信された前記パケットをデキャップするステップと、
前記スマートネットワークカードにより、前記パケットヘッダを解析するステップと、
前記スマートネットワークカードにより、デキャップされた前記パケットを前記UPFプラグインに前記仮想ネットワーク層を介して送信するステップと、
前記UPFプラグインにより、前記パケットの前記パケットヘッダに従って前記パケットに対してルールマッチングを実行し、前記パケットに記録された前記ユーザー機器の要求に従って前記PDUセッションアンカーを決定するステップと、を更に含む、
請求項12に記載の方法。
【請求項15】
前記パケットを受信した後に、デバイスドライバによって、前記パケットを前記ネットワークインターフェースカードから前記記憶ユニットにゼロコピー技術を使用して移動させるステップを更に含む、
請求項11に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ユーザープレーン機能(user plane function、UPF)パケット(以下、「UPFパケット」と略称)を処理するための方法およびその方法を実施するためのコンピューティングデバイスに関し、より詳細には、UPFパケットを処理するための方法であって、仮想ネットワーク層に適合する方法に関する。
【背景技術】
【0002】
モバイルネットワークの発展は、従来のネットワークインフラに画期的な変化をもたらしている。例えば、第5世代(5G)の技術標準は、ネットワーク機能をデカップリングして仮想化するオープンネットワーキングの概念を導入し、クラウドネイティブ技術と組み合わせることで、ネットワーク機能をマイクロサービスの形でエッジノードに分散し、エッジコンピューティングを実現している。このアプローチは、さまざまな用途や利用ケースにより柔軟に対応でき、ネットワーク機能をエンドユーザーにより近づけることで、遅延を減らし、全体的なユーザー体験を向上させることができる。
【0003】
ネットワーク機能のデカップリングと仮想化には、具体的には、
図1に示すように、コアネットワークをユーザープレーンと制御層に分割することと、クラウドネイティブアーキテクチャの仮想化技術に基づいて、ユーザープレーン機能(user plane function、UPF)91をマルチアクセスエッジコンピューティング(multi-access edge computing、MEC)サーバ90のアプリケーション層92に展開することが含まれ、これにより、ユーザ端末に近接した計算とサービスが提供される。例えば、Blue Arcusの紹介ウェブページにおいて、インテル(Intel)社はアプリケーション層に展開されたUPFの紹介を行っている。(以下のURLを参照: https://networkbuilders.intel.com/commercial-applications/bluearcus-upf )
【0004】
図1に示すこのアーキテクチャでは、パケットがユーザー機器(user equipment、UE)81によって送信されると、パケットは無線アクセスネットワーク(Radio Access Network、RAN)82を介してGPRSトンネリングプロトコルユーザープレーン(GTP-U)トンネルを通じてMECサーバ90に送信され、MECサーバ90の仮想ネットワーク層901はさらに、パケットをアプリケーション層92のUPF91に転送する。UPF91はパケットをデキャップし、すなわちGTP-Uヘッダを解凍し、マッチルールを実行する。UPF91がPDU(Protocol Data Unit)セッションアンカーである場合、パケットは仮想ネットワーク層901に戻され、仮想ネットワーク層901は再びパケットをアプリケーション層92のアプリケーション(APP)の1つにオフロードしてサービスを提供する(
図1の矢印Aで示すデータフロー)。UPF91がセッションアンカーでない場合、UPF91はGTP-Uヘッダを再パッケージ化し、MECサーバ90を介して別のMECサーバ90’にパッケージを転送する(
図1の矢印Bで示すデータフロー)。詳細については、欧州電気通信標準化機構(ETSI)が2020年7月に発行した「5G; Procedures for the 5G System (5GS)(3GPP TS 23.502 version 16.5.0 release 16)」と題されたETSI TS 123 502 v16.5.0を参照されたい。
【0005】
しかしながら、このような処理では、パケットは、仮想ネットワーク層901とMECサーバ90のアプリケーション層92との間で何度も伝送されることになり、その結果、相当な遅延の問題が生じる。詳しく言うと、仮想ネットワーク層901は、ブリッジやiptable等のソフトウェアによって実施され、APPと協働して特定のサービスを提供する。このアーキテクチャでは、処理中に仮想ネットワーク層901とアプリケーション層92との間でパケットが伝送されるため、ルーティングポリシーに関する処理が追加される。演算処理はMECサーバ90の中央処理装置(CPU)によって実行されるため、パケット処理においてはかなりの待ち時間の問題が生じるだけでなく、CPUの通常の基本演算リソースを占有する。結果として、サービス動作が遅延し、高速伝送と低遅延の要求を満たすことが困難となる。
【発明の概要】
【発明が解決しようとする課題】
【0006】
そこで、本発明の目的は、上記従来技術の欠点の少なくとも1つを軽減することができる、ユーザープレーン機能(UPF)プラグインがインストールされた仮想ネットワーク層を備えるコンピューティングデバイスを提供することにある。
【課題を解決するための手段】
【0007】
そこで、本発明によれば、コンピューティングデバイスは、ユーザー機器(UE)からパケットを受信すると共に、他のコンピューティングデバイスと通信する。前記コンピューティングデバイスは、処理ユニットと、前記処理ユニットに接続された記憶ユニットと、前記処理ユニットと前記記憶ユニットとに接続され、パケットを受信するネットワークインターフェースカード(NIC)と、ネットワーク仮想化プラットフォームと、を備える。
【0008】
前記ネットワークインターフェースカードと、前記処理ユニットと、前記記憶ユニットとはハードウェア層としてまとめて定義される。前記ネットワーク仮想化プラットフォームは、前記ハードウェア層において動作し、複数の仮想ネットワークアプリケーションを収容するために前記処理ユニットによって実行されるように構成される。前記ネットワーク仮想化プラットフォームは、前記仮想ネットワークアプリケーションが配置されたアプリケーション層と、ユーザープレーン機能(UPF)プラグインがインストールされた仮想ネットワーク層と、を含む。
【0009】
前記UPFプラグインは、前記パケットのパケットヘッダに従ってルールマッチングを実行し、且つ、前記仮想ネットワークアプリケーションがサービスを提供するために、前記パケットを前記アプリケーション層内の1つの前記仮想ネットワークアプリケーションにオフロードするステップと、前記パケットを再パッケージし、前記パケットを前記他のコンピューティングデバイスに転送するステップと、のいずれのステップを実行するかを決定するように構成される。
【0010】
本発明の他の目的は、従来技術の欠点の少なくとも1つを軽減することができる、UPFパケットを処理するための方法を提供することにある。
【0011】
本発明によれば、該方法は、コンピューティングデバイスによって実行される。前記コンピューティングデバイスは、互いに接続されていて且つハードウェア層としてまとめて定義される、処理ユニットと、記憶ユニットと、ネットワークインターフェースカード(NIC)とを備える。また、前記コンピューティングデバイスは、前記ハードウェア層において動作し、複数の仮想ネットワークアプリケーションを収容するために前記処理ユニットによって実行されるように構成されるネットワーク仮想化プラットフォームを更に備える。前記ネットワーク仮想化プラットフォームは、前記仮想ネットワークアプリケーションが配置されたアプリケーション層と、ユーザープレーン機能(UPF)プラグインがインストールされた仮想ネットワーク層と、を含む。前記UPFプラグインは他のコンピューティングデバイスと通信する。該方法は、以下のステップを含む。
【0012】
一つのステップにおいては、前記ネットワークインターフェースカードがパケットをユーザー機器から受信する。
【0013】
別のステップにおいては、前記UPFプラグインが、前記パケットのパケットヘッダに従ってルールマッチングを実行し、且つ、前記仮想ネットワークアプリケーションがサービスを提供するために、前記パケットを前記アプリケーション層内の1つの前記仮想ネットワークアプリケーションにオフロードするステップと、前記パケットを再パッケージし、前記パケットを前記他のコンピューティングデバイスに転送するステップと、のいずれのステップを実行するかを決定する。
【図面の簡単な説明】
【0014】
【
図1】MECサーバのアプリケーション層に展開されたUPFの従来のアーキテクチャを示すブロック図である。
【
図2】本発明の実施形態によるUPFプラグインを有する仮想ネットワーク層を備えたコンピューティングデバイスのアーキテクチャを示すブロック図である。
【
図3】本発明の実施形態によるUPFパケットを処理する方法を示すフローチャートである。
【
図4】本発明の別の実施形態によるUPFプラグインを有する仮想ネットワーク層を備えたコンピューティングデバイスの別のアーキテクチャを示すブロック図である。
【
図5】本発明の別の実施形態によるUPFパケットを処理するための方法を示すフローチャートである。
【
図6】本発明の別の実施形態によるUPFプラグインを有する仮想ネットワーク層を備えたコンピューティングデバイスの別のアーキテクチャを示すブロック図である。
【
図7】パケットが処理されるソフトウェア/ハードウェアを示す概略図である。
【発明を実施するための形態】
【0015】
本発明をより詳細に説明する前に、適切と考えられる場合において、符号又は符号の末端部は、同様の特性を有し得る対応の又は類似の要素を示すために各図面間で繰り返し用いられることに留意されたい。
【0016】
図2を参照すると、本発明のコンピューティングデバイス100の一実施形態は、5Gネットワークのエッジコンピューティングノードとして展開されるように構成されている。コンピューティングデバイス100は、ユーザープレーン機能(user plane function、UPF)プラグイン3とともにインストールされた仮想ネットワーク層12を有する。コンピューティングデバイス100は、例えば、第3世代パートナーシッププロジェクト(3GPP(登録商標))標準および/または欧州電気通信標準化機構(ETSI)によって策定された標準に準拠するマルチアクセスエッジコンピューティング(multi-access edge computing、MEC)サーバであるが、これに限定されず、仮想ネットワーク技術をサポートする任意のコンピュータであり得る。
【0017】
本実施形態において、コンピューティング装置100は、互いに接続された複数の物理的ハードウェア構成要素を有する。物理的ハードウェア構成要素には、処理ユニット201、プログラム命令を記憶する記憶ユニット202、およびネットワークインターフェースカード(network interface card、NIC)が含まれ、これらは、コンピューティングデバイス100のハードウェア層2としてまとめて定義される。ハードウェア層2は、コンピューティングデバイス100のネットワーク仮想化プラットフォーム1の動作環境を提供する。処理ユニット201は、中央処理装置(CPU)であってもよいし、ファームウェアや、マイクロプロセッサやシステムオンチップなどのハードウェアによって実施されてもよく、単一のデバイスまたは分散デバイスを利用して機能を実行してもよい。記憶ユニット202は、1つまたは複数のコンピュータ読み取り可能な媒体であってよく、ランダムアクセスメモリ(RAM)、読み取り専用メモリ、フラッシュメモリ、固定またはリムーバブル記憶媒体などの様々な形態のメモリであってよく、処理ユニット201によりアクセスされる命令またはデータ構造の形態でコードおよびデータを記憶するために使用されることができる。
【0018】
本実施形態において、NICは、一般的なネットワークインタフェースカード(以下、NIC21という)である。NIC21は、パケットをやり取りするための1つ以上の仮想入出力(I/O)インターフェース210を備えるように構成されている。
図2では、パケット受信用及びパケット送信用として、2つの仮想I/Oインタフェース210を例示している。本実施形態において、NIC21は、ユーザ機器(user equipment、UE)41から出力され、無線アクセスネットワーク(例えば、無線アクセスネットワーク(RAN))42を介してGPRSトンネリングプロトコルユーザープレーン(GTP-U)トンネルを通じて送信されるパケットを受信する。パケットを処理すると、コンピューティングデバイス100はパケットをオフロードしてサービスを提供するか、あるいはパケットを次のノードに転送する(詳細は後述する)。なお、NIC21の種類は、本説明で言及したものに限定されず、フィールドプログラマブルゲートアレイ(field-programmable gate array、FPGA)であってもよく、あるいは
図4に示すような他の実施形態ではスマートネットワークインターフェースカード(以下、スマートNICと呼ぶ)であってもよい。
【0019】
ネットワーク仮想化プラットフォーム1は、複数の独立した仮想ネットワークアプリケーション110を収容するために、処理ユニット201によって実行されるように構成される。仮想ネットワークアプリケーション110の例としては、各種マイクロサービスアプリケーション、セッション管理機能(Session Management Functions、SMF)、およびハードウェアデバイスに類似した機能を提供するアプリケーション(APP)、例えば仮想ルータ、ファイアウォール、侵入防止システムなどのハードウェアデバイスに類似した機能を提供するアプリケーション(APP)が挙げられる。SMFは、N4インタフェースを介して、UPFのために新しいプロトコルデータユニット(Protocol Data Unit、PDU)セッションを確立したり、確立されたPDUセッションを変更したりするために使用される。
【0020】
具体的には、ネットワーク仮想化プラットフォーム1は、仮想ネットワークアプリケーション110が配置されたアプリケーション層11と、UPFプラグイン3がインストールされた仮想ネットワーク層12とを含む。本実施形態において、仮想ネットワーク層12は、クラウドネイティブアーキテクチャの仮想化技術に基づいて展開されるネットワーク層を指す。本実施形態では、ネットワーク仮想化プラットフォーム1の仮想ネットワーク層12は、VPP(ベクトルパケット処理(Vector Packet Processing))によって実施されるが、これに限定されず、6WINDが提供する6WINDGateなどの他のSDK(ソフトウェア開発キット(Software Development Kit))であってもよい。
【0021】
UPFは、3GPP(登録商標) 5Gコアネットワークにおけるインフラストラクチャ・アーキテクチャの基本コンポーネントの1つであり、エッジ計算ノードに分離(デカップル)されて展開される。本実施形態において、UPFは、VPPグラフアーキテクチャの下で、モジュラープラグイン(すなわち、UPFプラグイン3)としてプログラムされ、プラグインの形で仮想ネットワーク層12にインストールされる。UPFプラグイン3は、仮想ネットワーク層12の本来の機能のパケット処理フローに挿入して実行することで、仮想ネットワーク層12の本来の機能に影響を与えることなく、機能の拡張や運用の柔軟化を実現することができる。例えば、パケット処理のフローを
図2における破線の矢印で示す。仮想ネットワーク層12の本来の機能は、リンク層121、インターネット層122、トランスポート層123などのOSIモデル(Open System Interconnection Model)における各層の機能である。UPFプラグイン3は、N3、N4、N6、N9、N11、N19、S5-U、S2B-Uインタフェースなどの3GPP(登録商標)インタフェースのパケットを処理する機能を備えている。UPFプラグイン3は、3GPP(登録商標)で規定された5G標準のN9インターフェースを介して他のコンピューティングデバイス100’と通信する。3GPP(登録商標)で規定された5G標準の通り、N9インターフェースは2つのUPF間のインターフェースである。前述の3GPP(登録商標)の仕様および規格は、本発明の特徴ではなく、本明細書では説明を省く。以下では、UPFプラグイン3の具体的な機能を詳述する。
【0022】
ネットワーク仮想化プラットフォーム1は、コンピューティングデバイス100のオペレーティングシステムの権限レベルに応じて、カーネル空間101とユーザ空間102とに分割され得る。特権命令(例えば、デバイスドライバ13からの命令等)に関するカーネルプロセスは、カーネル空間101で実行される。ユーザ空間102は、非特権処理に使用される。アプリケーション層11と仮想ネットワーク層12はいずれもユーザ空間102で動作する。本実施形態では、デバイスドライバ13は、データプレーン開発キット(Data Plane Development Kit、DPDK)がサポートするuio_generic_pci、virtio、またはigb_uioを使用するが、これに限定されない。
【0023】
図3をさらに参照すると、UPFパケットを処理するための方法は、本実施形態のコンピューティングデバイス100によって実行され、以下のステップを含む。
【0024】
UE41がパケットを送信すると、パケットは、RAN42を介して、GTP-UのN3インタフェースを通じてNIC21によって受信される(ステップS1)。3GPP(登録商標)によって規定された5G標準の通り、N3インタフェースは、RAN42とUPFとの間のインタフェースを指す。
【0025】
ステップS2において、仮想ネットワーク層12が記憶ユニット202からパケットを直接読み出すために、パケットは、ゼロコピー技術を使用して、デバイスドライバ13によってNIC21から記憶ユニット202に移動される。具体的な実施形態では、デバイスドライバ13はデータプレーン開発キット(DPDK)によってサポートされ、ポーリングによってパケットをユーザ空間102に直接送信することができる。他の具体的な実施形態では、デバイスドライバ13は、eXpress Data Path(XDP)のようなソフトウェア開発キット(SDK)であり、パケットを複製するために処理ユニット201を中断することなくパケットの伝送を可能にし、パケットは、ユーザ空間102とカーネル空間101との間で交換される必要がなく、NIC21からユーザ空間102に直接伝送される。このようにして、カーネルバイパスが実現され、物理ネットワークから仮想ネットワークへのデータの流れが比較的速くなり、パケット処理速度が高速化される。
【0026】
ステップS3において、UPFプラグイン3は、パケットをデキャップし、パケットのパケットヘッダを解析し、パケットヘッダに従ってルールマッチングを実行する。ルールマッチングに関して、UPFプラグイン3は、ステップS4aおよびステップS4bのいずれを実行するかを決定するために、パケットに記録されたUE41の要求に従ってPDUセッションアンカーを決定する。具体的には、パケットには、UPFプラグイン3がPDUセッションアンカーを決定するための基礎となる、UE41が必要とするターゲット・マイクロサービス・アプリケーションまたはローカル・エリア・データ・ネットワーク(LADN)が記録されている。UPFプラグイン3が、それ自身がパケットのPDUセッションアンカーであると判定した場合(ステップS4a)、方法のフローはステップS5aに進み、仮想ネットワークアプリケーション110がサービスを提供するために、N6インタフェースを介してパケットをアプリケーション層11内の指定された仮想ネットワークアプリケーション110にオフロードする。UPFプラグイン3が、それ自身がPDUセッションアンカーではなく分岐点であると判定した場合(ステップS4b)、方法のフローはステップS5bに進み、パケットを再パッケージし、N9インタフェース(2つのUPF間のインタフェース)を介してパケットを他のコンピューティングデバイス100’に転送する。
【0027】
以上により、UPFを仮想ネットワーク層12にプラグインとしてインストールすることおよびカーネルバイパスすることにより、アプリケーション層11と仮想ネットワーク層12間のパケット転送を回避し、パケット処理を高速化することができる。
【0028】
さらに、UPFをプラグインにモジュール化することによって、異なるハードウェアリソースまたは異なる仮想ネットワーク層を使用する様々なコンピューティングデバイスに対して、より高い互換性および動作の柔軟性が達成される。
図4を参照すると、本発明の別の実施形態では、コンピューティングデバイス100のNICは、ハードウェアオフロード機能をサポートするスマートネットワークカード22である。スマートネットワークカード22は、仮想ネットワーク層12およびUPFプラグイン3で本来行われるパケット処理の一部をサポートする。スマートネットワークカード22は、パケットを交換するための1つまたは複数の仮想入出力(I/O)インタフェース220を提供するように構成される。
【0029】
図5をさらに参照すると、この実施形態では、UPFパケットを処理する方法は
図4に示すコンピューティングデバイス100によって実行され、ステップS2’およびS3’を除いて、
図3に示す方法と同様である。ステップS2’では、スマートネットワークカード22が受信されたパケットを直接デキャップし、パケットヘッダを解析し、デキャップされたパケットを仮想ネットワーク層12を介してUPFプラグイン3に送信する。ステップS3’では、すでにパケットがデキャップされ且つヘッダが解析されているので、UPFプラグイン3はパケットに対して直接ルールマッチングを実行する。その後、UPFプラグイン3は、マッチング結果に応じてステップS4a、S5aまたはステップS4b、S5bに進む。スマートネットワークカード22のサポートにより、コンピューティングデバイス100の処理ユニット201および記憶ユニット202のコンピューティングリソースをさらに節約することができ、パケット処理の待ち時間を短縮することができる。
【0030】
結論として、本発明のUPFプラグイン3のアーキテクチャは、異なるコンピューティングデバイス100の様々なソフトウェアおよびハードウェア構成に適合させることができる。
図6および
図7を参照すると、コンピューティングデバイス100がユニバーサルNIC(すなわち、
図2のNIC21)を採用する場合、パケット処理のフローは、
図6の矢印(a)のように示され、すなわち、NIC21から、デバイスドライバ13を経由して、ユーザ空間102の仮想ネットワーク層12に入り、その後、UPFプラグイン3に至る。最後に、ルールマッチングの結果に応じて、パケットはアプリケーション層11にオフロードされ得る。コンピューティングデバイス100のNICがスマートネットワークカード22である場合(
図4参照)、パケット処理のフローは、
図6の矢印(b)に示すように、スマートネットワークカード22からデバイスドライバ13を経て直接UPFプラグイン3に至り、その後、ルールマッチングの結果に応じてパケットがアプリケーション層11にオフロードされ得る。
【0031】
ネットワーク仮想化プラットフォーム1は、OpenStack NFV(OPNFV)やKubernetesといったインフラストラクチャーソリューションをサポートしながら、仮想マシンおよびコンテナアプリケーションサービスのための統一された管理インターフェースを提供することができる。仮想ネットワークアプリケーション110は、コンテナ、仮想マシンであってもよく、その結果、様々な仮想ネットワークアプリケーション110を迅速に展開することが容易になる。より詳しく言うと、各仮想ネットワークアプリケーション110は、KubernetesやDockerなどのツールを使用して仮想ネットワーク層12によって管理されるコンテナであってもよい。また、各仮想ネットワークアプリケーション110は、VMware vSphere Hypervisor(ESXi)、OpenStackまたはHyper-Vなどのツールを用いて仮想ネットワーク層12によって管理される仮想マシンであってもよい。
【0032】
さらに、仮想ネットワークアプリケーション110は、共有メモリパケットインタフェース(memif)14によって記憶ユニット202を共有する。memif14は、仮想ネットワークアプリケーション110と仮想ネットワーク層12との間のインターフェースとして機能し、仮想ネットワーク層12においてパケットを直接伝送することを可能にする。このようにして、仮想ネットワーク層12とローカルデータネットワークとの間のデータの流れが、カーネル空間101を通過することなく高速化され、これにより、UE登録、PDUセッション確立等の時間が大幅に短縮され、パケット処理の高速化の目的が達成される。
【0033】
要約すると、アプリケーション層11とは対照的に、仮想ネットワーク層12に展開させたUPFにより、パケットが往復して伝送される頻度が少なくなる。UPFはプラグイン方式で仮想ネットワーク層12に配備されるため、仮想ネットワーク層12の元々のアーキテクチャに影響を与えず、配備をより柔軟かつ拡張可能にする。さらに、本発明では、DPDKやXDPなどの高速化ツールを使用して、パケット処理の効率を向上させ、カーネルをバイパスして物理ネットワークと仮想ネットワーク間のデータの流れを高速化する。さらに、仮想ネットワークアプリケーション110と仮想ネットワーク層12との間のデータの流れは、memifインタフェースによって高速化される。以上の特徴により、本発明の目的は確実に達成される。
【0034】
上記においては、本発明の全体的な理解を促すべく、多くの具体的な詳細が示された。しかしながら、当業者であれば、一またはそれ以上の他の実施形態が具体的な詳細を示さなくとも実施され得ることが明らかである。また、本明細書における「一つの実施形態」「一実施形態」を示す説明において、序数などの表示を伴う説明は全て、特定の態様、構造、特徴を有する本発明の具体的な実施に含まれ得るものであることと理解されたい。さらに、本説明において、時には複数の変化例が一つの実施形態、図面、またはこれらの説明に組み込まれているが、これは本説明を合理化させるためのもので、また、本発明の多面性が理解されることを目的としたものであり、また、一実施形態における一またはそれ以上の特徴あるいは特定の具体例は、適切な場合には、本発明の実施において、他の実施形態における一またはそれ以上の特徴あるいは特定の具体例と共に実施され得る。
【0035】
以上、本発明の実施形態の例を説明したが、本発明はこれらに限定されるものではなく、最も広い解釈の精神および範囲内に含まれる様々な構成として、全ての修飾および均等な構成を包含するものとする。