(57)【要約】  本開示は、一般に、処理機能スケーラビリティのために構成されたデータプレーンを開示する。スケーラビリティがそれのためにサポートされる処理機能は、課金機能、監視機能、セキュリティ機能などを含み得る。
2019500818.tif 000002
【特許請求の範囲】
【請求項１】
通信ネットワーク中でフォワーディング要素および制御要素によってサポートされる処理機能のデータプレーン部分をサポートするように構成された装置であって、
データパケットのセットについてのパケットデータを記憶するように構成されたパケットバッファデータ構造を維持するように構成された第１の記憶要素であって、パケットバッファデータ構造は、パケットデータを記憶するように構成されたパケットキューと、フローごとにパケットデータを記憶するように構成されたパケットアグリゲーションバッファとを備える、第１の記憶要素と、
フォワーディング要素がそれのためのパケットフォワーディングをサポートするデータフローのセットについてのフローデータを記憶するように構成された第２の記憶要素と、
第１の記憶要素および第２の記憶要素に通信可能に接続され、
フォワーディング要素のハードウェア要素から、第１のパケットの第１のパケットヘッダと第２のパケットの第２のパケットヘッダとを受信することと、
第１のパケットに関連する第１のパケットデータを決定することと、
パケットキューがしきい値を下回るという決定に基づいて、第１のパケットについての個々のパケットデータとして、パケットバッファデータ構造のパケットキューに第１のパケットデータを記憶することと、
第２のパケットに関連する第２のパケットデータを決定することと、
パケットキューがしきい値を超えるという決定に基づいてパケットバッファデータ構造のパケットアグリゲーションバッファに第２のパケットデータを記憶することと
を行うように構成された、プロセッサ要素と
を備える、装置。
【請求項２】
パケットキューに、第１のパケットに関連する第１のパケットデータを記憶するために、プロセッサ要素が、
パケットキューのパケットデータエントリとして、第１のパケットに関連する第１のパケットデータを挿入することであって、パケットデータエントリが、第１のパケットのデータフローを識別するフロー識別子と第１のパケットに関連する第１のパケットデータとを含む、挿入すること
を行うように構成される、請求項１に記載の装置。
【請求項３】
パケットアグリゲーションバッファに、第２のパケットに関連する第２のパケットデータを記憶するために、プロセッサ要素が、
第２のパケットが関連するデータフローを決定することと、
パケットアグリゲーションバッファがデータフローのためのエントリを含むかどうかを決定することと、
パケットアグリゲーションバッファがデータフローのためのエントリを含まないという決定に基づいて、パケットアグリゲーションバッファのパケットデータエントリとして、第２のパケットに関連する第２のパケットデータを挿入することであって、パケットデータエントリが、データフローを識別するフロー識別子と第２のパケットに関連する第２のパケットデータとを含む、挿入することと
を行うように構成される、請求項１に記載の装置。
【請求項４】
パケットアグリゲーションバッファに、第２のパケットに関連する第２のパケットデータを記憶するために、プロセッサ要素が、
第２のパケットが関連するデータフローを決定することと、
パケットアグリゲーションバッファがデータフローのためのエントリを含むかどうかを決定することと、
パケットアグリゲーションバッファがデータフローのためのエントリを含むという決定に基づいて、第２のパケットに関連する第２のパケットデータに基づいてデータフローのためのエントリを更新することと
を行うように構成される、請求項１に記載の装置。
【請求項５】
第２のパケットに関連する第２のパケットデータに基づいてデータフローのためのエントリを更新するために、プロセッサ要素が、
データフローのためのエントリからデータフローに関連するアグリゲートされたパケットデータを抽出することと、
第２のパケットに関連する第２のパケットデータに基づいて、データフローに関連するアグリゲートされたパケットデータを更新し、それによりデータフローに関連する更新済みのアグリゲートされたパケットデータを形成することと、
データフローに関連する、更新済みのアグリゲートされたパケットデータを、データフローに関連するエントリに書き込むことと
を行うように構成される、請求項４に記載の装置。
【請求項６】
プロセッサ要素が、アグリゲートされたパケットデータエントリを使用して、パケットアグリゲーションバッファに、第２のパケットに関連する第２のパケットデータを記憶するように構成され、プロセッサ要素が、
アグリゲートされたパケットデータエントリをパケットアグリゲーションバッファからパケットキューに移動する
ように構成される、請求項１に記載の装置。
【請求項７】
プロセッサ要素が、条件に基づいて、アグリゲートされたパケットデータエントリをパケットアグリゲーションバッファからパケットキューに移動するように構成される、請求項６に記載の装置。
【請求項８】
プロセッサ要素が、
パケットキューから、第１のパケットデータを含むパケットデータエントリを抽出することであって、第１のパケットデータはデータフローに関連する、抽出することと、
第１のパケットに関連する第１のパケットデータに基づいて、データフローについての更新済みのフローデータを決定することと、
第２のメモリに、データフローについての更新済みのフローデータを記憶することと、
制御要素のほうへ、データフローについての更新済みのフローデータを伝搬することと
を行うように構成される、請求項１に記載の装置。
【請求項９】
通信ネットワーク中でフォワーディング要素および制御要素によってサポートされる処理機能のデータプレーン部分をサポートするように構成された装置であって、
データパケットのセットについてのパケットデータを記憶するように構成されたパケットバッファデータ構造を維持するように構成された第１の記憶要素であって、パケットバッファデータ構造は、パケットデータを記憶するように構成されたパケットキューと、フローごとにパケットデータを記憶するように構成されたパケットアグリゲーションバッファとを備える、第１の記憶要素と、
フォワーディング要素がそれのためのパケットフォワーディングをサポートするデータフローのセットについてのフローデータを記憶するように構成された第２の記憶要素と、
第１の記憶要素および第２の記憶要素に通信可能に接続され、
第１のメモリ要素のパケットキューから、パケットデータを備えるパケットデータエントリを抽出することであって、パケットデータは、データフローのうちの１つについての個々のパケットデータまたはデータフローのうちの１つについてのアグリゲートされたパケットデータを備える、抽出することと、
パケットデータエントリのパケットデータに基づいてデータフローのうちの１つについてのフローデータを決定することと、
第２のメモリ要素にデータフローのうちの１つについてのフローデータを記憶することと、
データフローのうちの１つについてのフローデータを制御要素のほうへ伝搬することと
を行うように構成された、プロセッサ要素と
を備える、装置。
【請求項１０】
通信ネットワーク中でフォワーディング要素および制御要素によってサポートされる処理機能のデータプレーン部分をサポートするように構成された装置であって、
第１のデータ構造および第２のデータ構造を維持するように構成された記憶要素であって、第１のデータ構造はデータパケットのセットについてのパケットデータを記憶するように構成され、第１のデータ構造は、パケットデータを記憶するように構成されたパケットキューと、フローごとにパケットデータを記憶するように構成されたパケットアグリゲーションバッファとを備え、第２のデータ構造は、フォワーディング要素がそれのためのパケットフォワーディングをサポートするデータフローのセットについてのフローデータを記憶するように構成された、記憶要素と、
記憶要素に通信可能に接続され、
フォワーディング要素のハードウェア要素から、パケットのパケットヘッダを受信することであって、パケットはデータフローに関連する、受信することと、
パケットに関連するパケットデータを決定することと、
パケットキューのサイズがしきい値を超えないという決定に基づいて、第１のデータ構造のパケットアグリゲーションバッファにではなく、第１のデータ構造のパケットキューに、パケットデータを記憶することと、
第１のデータ構造のパケットキューからパケットデータを抽出することと、
パケットデータに基づいて、データフローについてのフローデータを決定することと、
第２のデータ構造に、データフローについてのフローデータを記憶することと、
制御要素のほうへ、データフローについてのフローデータを伝搬することと
を行うように構成された、プロセッサ要素と
を備える、装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に、ワイヤレス通信ネットワークに関し、より詳細には、限定はしないが、ワイヤレス通信ネットワーク中で機能のスケーラビリティをサポートすることに関する。
【背景技術】
【０００２】
第３世代（３Ｇ）ワイヤレスネットワークと第４世代（４Ｇ）ワイヤレスネットワークとは、現在、多数のエンドデバイスと、かなりの量の関連するエンドユーザトラフィックとをサポートする。新しいタイプの通信技術およびパラダイムの出現で、第５世代（５Ｇ）ワイヤレスネットワークおよびそれ以降は、エンドデバイスの数を増加させることと、関連するエンドユーザトラフィックの量を増加させることとをサポートすることが予想される。たとえば、５Ｇワイヤレスネットワークは、モノのインターネット（ＩｏＴ：Ｉｎｔｅｒｎｅｔ  ｏｆ  Ｔｈｉｎｇｓ）通信およびマシンツーマシン（Ｍ２Ｍ：ｍａｃｈｉｎｅ−ｔｏ−ｍａｃｈｉｎｅ）通信など、新しい通信技術およびパラダイムがよりユビキタスになるにつれて、多数のエンドデバイスと、関連するエンドユーザトラフィックの増加とをサポートすることが予想される。
【発明の概要】
【課題を解決するための手段】
【０００３】
本開示は、一般に、処理機能スケーラビリティのために構成されたデータプレーンを与えるための機構を開示する。
【０００４】
少なくともいくつかの実施形態では、装置が、通信ネットワーク中でフォワーディング要素および制御要素によってサポートされる処理機能のデータプレーン部分をサポートするように構成される。本装置は、データパケットのセットについてのパケットデータを記憶するように構成されたパケットバッファデータ構造を維持するように構成された第１の記憶要素であって、パケットバッファデータ構造は、パケットデータを記憶するように構成されたパケットキューと、フローごとにパケットデータを記憶するように構成されたパケットアグリゲーションバッファとを含む、第１の記憶要素を含む。本装置は、フォワーディング要素がそれのためのパケットフォワーディングをサポートするデータフローのセットについてのフローデータを記憶するように構成された第２の記憶要素を含む。本装置は、第１の記憶要素および第２の記憶要素に通信可能に接続されたプロセッサ要素を含む。プロセッサ要素は、フォワーディング要素のハードウェア要素から、第１のパケットの第１のパケットヘッダと第２のパケットの第２のパケットヘッダとを受信するように構成される。プロセッサ要素は、第１のパケットに関連する第１のパケットデータを決定するように構成される。プロセッサ要素は、パケットキューがしきい値を下回るという決定に基づいて、第１のパケットについての個々のパケットデータとして、パケットバッファデータ構造のパケットキューに第１のパケットデータを記憶するように構成される。プロセッサ要素は、第２のパケットに関連する第２のパケットデータを決定するように構成される。プロセッサ要素は、パケットキューがしきい値を超えるという決定に基づいてパケットバッファデータ構造のパケットアグリゲーションバッファに第２のパケットデータを記憶するように構成される。
【０００５】
少なくともいくつかの実施形態では、装置が、通信ネットワーク中でフォワーディング要素および制御要素によってサポートされる処理機能のデータプレーン部分をサポートするように構成される。本装置は、データパケットのセットについてのパケットデータを記憶するように構成されたパケットバッファデータ構造を維持するように構成された第１の記憶要素であって、パケットバッファデータ構造は、パケットデータを記憶するように構成されたパケットキューと、フローごとにパケットデータを記憶するように構成されたパケットアグリゲーションバッファとを含む、第１の記憶要素を含む。本装置は、フォワーディング要素がそれのためのパケットフォワーディングをサポートするデータフローのセットについてのフローデータを記憶するように構成された第２の記憶要素を含む。本装置は、第１の記憶要素および第２の記憶要素に通信可能に接続されたプロセッサ要素を含む。プロセッサ要素は、第１のメモリ要素のパケットキューから、パケットデータを備えるパケットデータエントリを抽出することであって、パケットデータは、データフローのうちの１つについての個々のパケットデータまたはデータフローのうちの１つについてのアグリゲートされたパケットデータを備える、抽出することを行うように構成される。プロセッサ要素は、パケットデータエントリのパケットデータに基づいてデータフローのうちの１つについてのフローデータを決定するように構成される。プロセッサ要素は、第２のメモリ要素にデータフローのうちの１つについてのフローデータを記憶するように構成される。プロセッサ要素は、データフローのうちの１つについてのフローデータを制御要素のほうへ伝搬するように構成される。
【０００６】
少なくともいくつかの実施形態では、装置が、通信ネットワーク中でフォワーディング要素および制御要素によってサポートされる処理機能のデータプレーン部分をサポートするように構成される。本装置は、第１のデータ構造および第２のデータ構造を維持するように構成された記憶要素を含む。第１のデータ構造は、データパケットのセットについてのパケットデータを記憶するように構成される。第１のデータ構造は、パケットデータを記憶するように構成されたパケットキューと、フローごとにパケットデータを記憶するように構成されたパケットアグリゲーションバッファとを含む。第２のデータ構造は、フォワーディング要素がそれのためのパケットフォワーディングをサポートするデータフローのセットについてのフローデータを記憶するように構成される。本装置は、記憶要素に通信可能に接続されたプロセッサ要素を含む。プロセッサ要素は、フォワーディング要素のハードウェア要素から、パケットのパケットヘッダを受信することであって、パケットはデータフローに関連する、受信することを行うように構成される。プロセッサ要素は、パケットに関連するパケットデータを決定するように構成される。プロセッサ要素は、パケットキューのサイズがしきい値を超えないという決定に基づいて、第１のデータ構造のパケットアグリゲーションバッファにではなく、第１のデータ構造のパケットキューに、パケットデータを記憶するように構成される。プロセッサ要素は、第１のデータ構造のパケットキューからパケットデータを抽出するように構成される。プロセッサ要素は、パケットデータに基づいて、データフローについてのフローデータを決定するように構成される。プロセッサ要素は、第２のデータ構造に、データフローについてのフローデータを記憶するように構成される。プロセッサ要素は、制御要素のほうへ、データフローについてのフローデータを伝搬するように構成される。
【０００７】
本明細書の教示は、添付の図面とともに以下の発明を実施するための形態を考慮することによって、容易に理解され得る。
【図面の簡単な説明】
【０００８】
【図１】機能スケーラビリティをサポートするように構成されたデータプレーンを含む例示的なワイヤレス通信システムを示す図である。
【図２】制御要素を含み、処理機能スケーラビリティのためのデータプレーンを与えるかまたはサポートするフォワーディング要素を含む、ワイヤレス通信システムのための、例示的な分散アーキテクチャを示す図である。
【図３】データプレーンがフォワーディング要素によって与えられる処理機能スケーラビリティのためのデータプレーンの実施形態を示す図である。
【図４】データプレーンが、フォワーディング要素によって、およびフォワーディング要素に関連する付属（ａｄｊｕｎｃｔ）要素によって与えられる処理機能スケーラビリティのためのデータプレーンの実施形態を示す図である。
【図５】図３または図４のデータプレーンにおいて使用するためのデータプレーンスケーラビリティ要素の実施形態を示す図である。
【図６】データプレーンスケーラビリティ要素によって処理するためのパケットデータを生成および記憶する際にデータプレーンスケーラビリティ要素が使用するための方法の実施形態を示す図である。
【図７】データプレーンスケーラビリティ要素によって記憶されたフローデータを更新するためにパケットデータを処理する際にデータプレーンスケーラビリティ要素が使用するための方法の実施形態を示す図である。
【図８】ワイヤレス通信ネットワークのための課金機能の分散配備をサポートするワイヤレス通信ネットワークの実施形態を示す図である。
【図９】図８のワイヤレス通信ネットワークのための課金機能の分散配備におけるユーザごとバイトカウントベース課金（ｐｒｅ−ｕｓｅｒ  ｂｙｔｅ−ｃｏｕｎｔ  ｂａｓｅｄ  ｃｈａｒｇｉｎｇ）のためのメッセージフローの実施形態を示す図である。
【図１０】ユーザがワイヤレスアクセスノード間を移るときの図８の例示的なワイヤレス通信ネットワーク中のユーザのダウンリンクトラフィックのための分散課金のためのプロセスの実施形態を示す図である。
【図１１】ユーザがワイヤレスアクセスノード間を移るときの図８の例示的なワイヤレス通信ネットワーク中のユーザのアップリンクトラフィックのための分散課金のためのプロセスの実施形態を示す図である。
【図１２】本明細書で提示される様々な機能を実行する際に使用するのに好適なコンピュータの上位レベルブロック図である。
【発明を実施するための形態】
【０００９】
理解を容易にするために、可能な場合、各図に共通である同じ要素を指定するために同じ参照番号が使用されている。
【００１０】
本開示は、一般に、処理機能スケーラビリティをサポートするように構成されたデータプレーンを開示する。処理機能スケーラビリティは、通信ネットワークの処理機能のために与えられ得る。通信ネットワークの処理機能は、処理機能のデータプレーン部分と処理機能の制御プレーン部分とを使用して通信ネットワーク内に実装され得、ここで、処理機能のデータプレーン部分と処理機能の制御プレーン部分とは、通信ネットワークのための処理機能を与えるために協働し得る。処理機能のデータプレーン部分は、上記のように、通信ネットワーク内の処理機能のスケーラビリティをサポートするように構成される。処理機能スケーラビリティがそれのためにサポートされ得る処理機能は、課金機能、監視機能、セキュリティ機能などを含み得る。主に、ワイヤレス通信ネットワークのコンテキスト内で提示されるが、処理機能スケーラビリティのために構成されたデータプレーンの様々な実施形態は、様々な他のタイプの通信ネットワークまたは環境中で使用され得ることが諒解されよう。
【００１１】
図１は、機能スケーラビリティをサポートするように構成されたデータプレーンを含む例示的なワイヤレス通信システムを示す。
【００１２】
ワイヤレス通信システム１００は、任意の好適なワイヤレスシステム技術に基づき得る。たとえば、ワイヤレス通信システム１００は、第３世代（３Ｇ）ワイヤレスシステム（たとえば、ユニバーサルモバイルフォーテレコミュニケーションシステム（ＵＭＴＳ）または他の３Ｇワイヤレスシステム）、第４世代（４Ｇ）ワイヤレスシステム（たとえば、ロングタームエボリューション（ＬＴＥ）または他の４Ｇワイヤレスシステム）、第５世代（５Ｇ）ワイヤレスシステムなどであり得る。
【００１３】
ワイヤレス通信システム１００は、複数のワイヤレスデバイス（ＷＤ）１１０−１−１１０−Ｘ（まとめて、ＷＤ１１０）と、ワイヤレス通信ネットワーク（ＷＣＮ）１２０と、通信ネットワーク（ＣＮ）１３０とを含む。
【００１４】
ＷＤ１１０は、ＷＣＮ１２０にワイヤレスにアクセスするように、およびＷＣＮ１２０を介して通信するように構成されたワイヤレスデバイスを含む。たとえば、ＷＤ１１０は、エンドユーザデバイス（たとえば、スマートフォン、タブレットコンピュータ、ラップトップコンピュータなど）を含み得る。たとえば、ＷＤ１１０は、様々なモノのインターネット（ＩｏＴ）適用例のために配備され得るＩｏＴデバイス（たとえば、センサー、モニタ、アクチュエータ、コントローラなど）を含み得る。たとえば、ＩｏＴ適用例は、消費者製品（たとえば、健康およびフィットネス製品、ゲームなど）、スマートホーム適用例（たとえば、照明、温度、機器、通信システムを制御するデバイス、セキュリティデバイス、エンターテインメントデバイスなど）、環境監視適用例（たとえば、環境保護を支援するセンサー、野生生物の移動を監視するためのモニタ、地震および津波早期警戒システムのためのセンサーなど）、インフラストラクチャ管理適用例（たとえば、都市および地方インフラストラクチャを監視するためのモニタおよびセンサー）、エネルギー管理適用例（たとえば、スマートグリッド技術および他のタイプのエネルギー管理のためのセンサーおよびコントローラ）、製造適用例（たとえば、自動制御、プラント最適化、健康および安全管理などを行うためのセンサー）、商業建築物自動化適用例（たとえば、照明、温度、機器、通信システムを制御するデバイス、セキュリティデバイスなど）、ヘルスケア適用例（たとえば、患者追跡、健康監視などのためのウェアラブル医療デバイス）などを含み得る。ＷＤ１１０は、ＷＣＮ１２０にアクセスし、ＷＣＮ１２０を介して通信し得る様々な他のタイプのワイヤレスデバイスを含み得る。
【００１５】
ＷＣＮ１２０は、ＷＤ１１０とＣＮ１３０との間の通信をサポートするように構成される。ＷＣＮ１２０は、ワイヤレスアクセスノード（ＷＡＮ）１２１−１−１２１−Ｎ（まとめて、ＷＡＮ１２１）のセットと、アンカーノード（ＡＮ）１２２と、コントローラ１２３とを含む。図１に示されているように、ＷＡＮ１２１およびＡＮ１２２は、データ通信経路を介して通信するように構成され、データ通信経路は、明快のために省略されるが、様々なネットワーク要素（たとえば、スイッチ、ルータなど）、通信リンクなど、ならびにそれらの様々な組合せを含み得ることが諒解されよう。図１にさらに示されているように、コントローラ１２３は、シグナリング経路を介してＷＡＮ１２１およびＡＮ１２２と通信するように構成され、シグナリング経路は、明快のために省略されるが、様々なネットワーク要素（たとえば、スイッチ、ルータなど）、通信リンクなど、ならびにそれらの様々な組合せを含み得ることが諒解されよう。ＷＣＮ１２０は（明快のために省略される）様々な他の要素を含み得、様々な他のタイプの通信をサポートし得ることが諒解されよう。ＷＣＮ１２０は、課金機能、監視機能、セキュリティ機能など、ならびにそれらの様々な組合せなど、ＷＣＮ１２０を介したＷＤ１１０による通信をサポートすることに関連する処理機能をサポートするように構成される。
【００１６】
ＷＡＮ１２１は、ＷＤ１１０のための、ＷＣＮ１２０へのアクセスのワイヤレスポイントとして動作するように構成される。ＷＡＮ１２１は、ＷＤ１１０がそれによってＷＣＮ１２０にアタッチするネットワークアタッチプロシージャをサポートするように構成され得る。ＷＡＮ１２１は、ＷＤ１１０がＷＣＮ１２０にアタッチすることを可能にするために、ＷＤ１１０とコントローラ１２３との間の通信をサポートするように構成され得る。ＷＡＮ１２１は、ＷＤ１１０からのワイヤレスアップリンク送信とＷＤ１１０へのワイヤレスダウンリンク送信とを含む、ＷＤ１１０のワイヤレス通信をサポートするように構成され得る。ＷＡＮ１２１は、ＷＡＮ１２１とＡＮ１２２（および、したがって、ＣＮ１３０）との間のバックホール通信をサポートするように構成され得る。ＷＡＮ１２１は、様々な他の機能を与えるように構成され得る。たとえば、ＷＡＮ１２１は、３Ｇ  ＵＭＴＳノードＢ、４Ｇ  ＬＴＥ進化型ノードＢ（ｅノードＢ）、５Ｇ基地トランシーバ局（ＢＴＳ）、スモールセル無線アクセスポイント（たとえば、フェムトセル、ピコセル、マイクロセルなど）などを含み得る。（ＷＣＮ１２０のＷＡＮ１２１などの）ワイヤレス通信ネットワークのワイヤレスアクセスノードによって一般にサポートされる機能は、当業者によって理解される。ＷＡＮ１２１は、ＷＣＮ１２０によってサポートされる（１つまたは複数の）処理機能の（１つまたは複数の）データプレーン部分（たとえば、ＷＣＮ１２０の課金機能をサポートするデータプレーン処理機能を与えること、ＷＣＮ１２０の監視機能をサポートするデータプレーン処理機能を与えること、ＷＣＮ１２０のセキュリティ機能をサポートするデータプレーン処理機能を与えることなど、ならびにそれらの様々な組合せ）をサポートするように構成され得る。
【００１７】
ＡＮ１２２は、ＷＣＮ１２０を介して通信するＷＤ１１０のためのモビリティアンカーおよびネットワークレイヤアンカー（たとえば、ＩＰアンカーポイント）として動作するように構成される。ＡＮ１２２は、ＷＣＮ１２０とＣＮ１３０との間のパケットの通信をサポートする、ＷＣＮ１２０とＣＮ１３０との間のゲートウェイとして動作するように構成され得る。ＷＤ１１０からＣＮ１３０へのアップストリーム通信の場合、ＡＮ１２２は、受信されたパケットをＣＮ１３０のほうへ向けるように構成される。ＣＮ１３０からＷＤ１１０へのダウンストリーム通信の場合、ＡＮ１２２は、所与のＷＤ１１０への配信を目的とするパケットをＣＮ１３０から受信し、所与のＷＤ１１０がそれを介して現在アタッチされているＷＡＮ１２１を識別し、所与のＷＤ１１０への配信のために、所与のＷＤ１１０がそれを介して現在アタッチされているＷＡＮ１２１のほうへパケットをフォワーディングするように構成される。たとえば、ＷＣＮ１２０が３Ｇ  ＵＭＴＳネットワークである場合、ＡＮ１２２は、ゲートウェイ汎用パケット無線サービス（ＧＰＲＳ：Ｇｅｎｅｒａｌ  Ｐａｃｋｅｔ  Ｒａｄｉｏ  Ｓｅｒｖｉｃｅ）サポートノード（ＧＧＳＮ：Ｇａｔｅｗａｙ  ＧＰＲＳ  Ｓｕｐｐｏｒｔ  Ｎｏｄｅ）、組み合わせられたＧＧＳＮおよびサービングＧＰＲＳサポートノード（ＳＧＳＮ：Ｓｅｒｖｉｎｇ  ＧＰＲＳ  Ｓｕｐｐｏｒｔ  Ｎｏｄｅ）などであり得る。たとえば、ＷＣＮ１２０が４Ｇ  ＬＴＥネットワークである場合、ＡＮ１２２は、パケットデータネットワーク（ＰＤＮ：Ｐａｃｋｅｔ  Ｄａｔａ  Ｎｅｔｗｏｒｋ）ゲートウェイ（ＰＧＷ）、組み合わせられたＰＧＷおよびサービングゲートウェイ（ＳＧＷ）などであり得る。たとえば、ＷＣＮ１２０が５Ｇワイヤレスネットワークである場合、ＡＮ１２２は、（たとえば、ＬＴＥ  ＰＧＷまたはＰＧＷ／ＳＧＷ組合せによって一般にサポートされる少なくともいくつかの機能をサポートする）５Ｇスイッチまたは他の好適なタイプの５Ｇアンカーデバイスであり得る。（ＷＣＮ１２０のＡＮ１２２などの）ワイヤレス通信ネットワークのアンカーノードによって一般にサポートされる機能は、当業者によって理解される。ＡＮ１２２は、ＷＣＮ１２０によってサポートされる（１つまたは複数の）処理機能の（１つまたは複数の）データプレーン部分（たとえば、ＷＣＮ１２０の課金機能をサポートするデータプレーン処理機能を与えること、ＷＣＮ１２０の監視機能をサポートするデータプレーン処理機能を与えること、ＷＣＮ１２０のセキュリティ機能をサポートするデータプレーン処理機能を与えることなど、ならびにそれらの様々な組合せ）をサポートするように構成され得る。
【００１８】
コントローラ１２３は、ＷＣＮ１２０のための様々な制御機能を与えるように構成される。コントローラ１２３は、ＷＣＮ１２０のための処理機能をサポートする制御機能を与える目的で、ＷＡＮ１２１およびＡＮ１２２と通信するように構成される。たとえば、コントローラ１２３は、ネットワークアタッチメント（たとえば、認証および許可）、監視、セキュリティ、課金など、ならびにそれらの様々な組合せなどの処理機能をサポートする制御機能を与え得る。コントローラ１２３が、ＷＡＮ１２１およびＡＮ１２２との対話に基づいて（たとえば、これらの要素のうちの少なくともいくつかから受信された情報に基づいて、これらの要素のうちの少なくともいくつかに情報を与えることによってなど、ならびにそれらの様々な組合せで）少なくともいくつかのそのような処理機能をサポートし得ることに留意されたい。たとえば、ＷＣＮ１２０が３Ｇ  ＵＭＴＳネットワークである場合、コントローラ１２３は、ホーム加入者サーバ（ＨＳＳ：Ｈｏｍｅ  Ｓｕｂｓｃｒｉｂｅｒ  Ｓｅｒｖｅｒ）機能、ビジターロケーションレジスタ（ＶＬＲ：Ｖｉｓｉｔｏｒ  Ｌｏｃａｔｉｏｎ  Ｒｅｇｉｓｔｅｒ）機能などのうちの１つまたは複数を含み得る。たとえば、ＷＣＮ１２０が４Ｇ  ＬＴＥネットワークである場合、コントローラ１２３は、モビリティ管理エンティティ（ＭＭＥ：Ｍｏｂｉｌｉｔｙ  Ｍａｎａｇｅｍｅｎｔ  Ｅｎｔｉｔｙ）機能、パケット課金およびルール機能（ＰＣＲＦ：Ｐａｃｋｅｔ  Ｃｈａｒｇｉｎｇ  ａｎｄ  Ｒｕｌｅｓ  Ｆｕｎｃｔｉｏｎ）機能などのうちの１つまたは複数を含み得る。たとえば、ＷＣＮ１２０が５Ｇワイヤレスネットワークである場合、コントローラ１２３は、ＭＭＥ機能または他の同様のモビリティ管理機能、ＰＣＲＦ機能または他の同様の課金およびルール機能などのうちの１つまたは複数を含み得る。コントローラ１２３は、ＷＣＮ１２０内で様々な他の制御機能を与えるように構成され得る。コントローラ１２３は、ＷＣＮ１２０によってサポートされる（１つまたは複数の）処理機能の（１つまたは複数の）制御プレーン部分（たとえば、ＷＣＮ１２０の課金機能をサポートする制御プレーン処理機能を与えること、ＷＣＮ１２０の監視機能をサポートする制御プレーン処理機能を与えること、ＷＣＮ１２０のセキュリティ機能をサポートする制御プレーン処理機能を与えることなど、ならびにそれらの様々な組合せ）をサポートするように構成され得る。
【００１９】
ＷＣＮ１２０は、様々なタイプの技術を使用する様々なやり方で実装され得る。ＷＣＮ１２０は、様々な通信および制御能力または技術を使用して実装され得る。ＷＣＮ１２０は、ＷＣＮ１２０のワイヤレス技術のタイプに基づく、基礎をなすシグナリングおよび制御能力（たとえば、３Ｇ  ＵＭＴＳネットワークの基礎をなすシグナリングおよび制御能力、４Ｇ  ＬＴＥネットワークの基礎をなすシグナリングおよび制御能力、５Ｇワイヤレスネットワークの基礎をなすシグナリングおよび制御能力など）を使用して実装され得る。ＷＣＮ１２０は、１つまたは複数の関連する制御要素（ＣＥ）によって制御される１つまたは複数のフォワーディング要素（ＦＥ）を使用してデータプレーンおよび制御プレーンが分離される分散アーキテクチャを使用して実装され得る。少なくともいくつかのそのような実施形態では、たとえば、ＷＡＮ１２１およびＡＮ１２２はＦＥであり得、コントローラ１２３はＣＥであり得る。少なくともいくつかのそのような実施形態では、たとえば、ＷＣＮ１２０は、ソフトウェア定義ネットワーキング（ＳＤＮ）を使用して実装され得、その場合、コントローラ１２３はＳＤＮコントローラとして動作するように構成され、ＷＣＮ１２０の他の要素（すなわち、ＷＡＮ１２１、ＡＮ１２２、および、随意に、明快のために省略されているＷＣＮ１２０の他の要素）は、ＳＤＮネットワークデバイスとして動作するように構成される。ＷＣＮ１２０がＳＤＮを使用して実装される少なくともいくつかの実施形態では、ＳＤＮベース通信は、ＯｐｅｎＦｌｏｗ（または任意の他の好適な通信プロトコル）を使用して実装され得る。少なくともいくつかの実施形態では、ＷＣＮ１２０は、ＷＣＮ１２０の要素が仮想化環境内に（たとえば、データセンター環境または他の好適なタイプの環境内に）実装される場合など、ネットワーク機能仮想化（ＮＦＶ：Ｎｅｔｗｏｒｋ  Ｆｕｎｃｔｉｏｎ  Ｖｉｒｔｕａｌｉｚａｔｉｏｎ）を使用して実装され得る。ＷＣＮ１２０は、様々な他のタイプの技術を使用して実装され得る。
【００２０】
ＣＮ１３０は、ＷＤ１１０がそれを介して通信し得る任意の通信ネットワークを含み得る。たとえば、ＣＮ１３０は、１つまたは複数の公衆データネットワーク（たとえば、インターネット）、１つまたは複数のプライベートデータネットワーク（たとえば、１つまたは複数のネットワーク事業者ネットワーク、１つまたは複数のサービスプロバイダネットワーク、１つまたは複数のエンタープライズネットワーク、１つまたは複数のクラウドネットワークなどのうちの１つまたは複数）など、ならびにそれらの様々な組合せを含み得る。
【００２１】
本明細書では主に、特定の構成で配置された特定の要素を有するものとして提示されるが、ワイヤレス通信システム１００は、様々な他の構成で配置され得る様々な他の要素を有し得ることが諒解されよう。
【００２２】
図２は、制御要素を含み、処理機能スケーラビリティのためのデータプレーンを与えるかまたはサポートするフォワーディング要素を含む、ワイヤレス通信システムのための、例示的な分散アーキテクチャを示す。
【００２３】
図２に示されているように、分散アーキテクチャ２００は、制御要素（ＣＥ）２１０とフォワーディング要素（ＦＥ）２２０とを含み、ここで、ＣＥ２１０とＦＥ２２０とは、通信経路２３０を介して通信可能に接続される。
【００２４】
ＣＥ２１０とＦＥ２２０とは、ワイヤレス通信システム（たとえば、図１のワイヤレス通信システム１００）の要素に対応し得、ワイヤレス通信システムによってサポートされる様々な処理機能を与えるために協働し得る。たとえば、ＣＥ２１０は図１のＷＣＮ１２０のコントローラ１２３に対応し得、ＦＥ２２０はＷＣＮ１２０のデータプレーン中の任意の要素（たとえば、ＷＡＮ１２１、ＡＮ１２２など）に対応し得る。たとえば、本明細書で説明されるように、ＣＥ２１０とＦＥ２２０とは、監視、セキュリティ、課金など、ならびにそれらの様々な組合せなどの処理機能を与えるために協働し得る。（明快のために）単一のＣＥ２１０および単一のＦＥ２２０のみが示されているが、複数のＣＥが使用され得ること、複数のＦＥが使用され得ることなど、ならびにそれらの様々な組合せが使用され得ることが諒解されよう。
【００２５】
ＣＥ２１０は、ＣＥ２１０が配備されるワイヤレス通信ネットワークのための制御プレーン機能（たとえば、３Ｇ  ＵＭＴＳネットワーク中のＨＳＳおよびＶＬＲ機能、４Ｇ  ＬＴＥネットワークまたは５Ｇワイヤレスネットワーク中のＭＭＥおよびＰＣＲＦ機能など）を与えるように構成される。ＣＥ２１０は、ワイヤレス通信ネットワークのためにサポートされる処理機能（たとえば、課金、監視、セキュリティなど）のための制御プレーン機能を与えるように構成される。
【００２６】
ＦＥ２２０は、ＦＥ２２０が配備されるワイヤレス通信ネットワークのためのデータプレーン機能（たとえば、３Ｇ  ＵＭＴＳネットワーク中のＧＧＳＮおよびＳＧＳＮ機能、４Ｇ  ＬＴＥネットワークまたは５Ｇワイヤレスネットワーク中のＰＧＷおよびＳＧＷ機能など）を与えるように構成される。ＦＥ２２０は、以下でさらに説明されるように、ワイヤレス通信ネットワークのためにサポートされる処理機能（たとえば、課金、監視、セキュリティなど）のためのデータプレーン機能を与えるかまたはサポートするように構成される。ワイヤレス通信ネットワークのためにサポートされる処理機能のための、ＦＥ２２０によってサポートされるデータプレーン機能は、処理機能のためのＣＥ２１０によってサポートされる対応する制御プレーン機能（たとえば、処理機能のためのＣＥ２１０によってサポートされる制御プレーン機能を与える際にＣＥ２１０によって必要とされるかまたはそれにとって有用であり得る特定のタイプの情報を与えること）をサポートするように構成され得る。ＦＥ２２０は、ワイヤレス通信ネットワークのためにサポートされる処理機能のスケーラビリティをサポートする様式で、ワイヤレス通信ネットワークのためにサポートされる処理機能のための、データプレーン機能を与えるかまたはサポートするように構成され得る。
【００２７】
ＦＥ２２０は、ＦＥポート２２１−１−２２１−Ｎ（まとめて、ＦＥポート２２１）のセットと、ハードウェア要素２２２と、プロセッサ要素２２９とを含む。ハードウェア要素２２２に通信可能に接続されるＦＥポート２２１は、ワイヤレス通信ネットワークのデータプレーン中のＦＥ２２０によるデータパケットの受信および送信をサポートする。ハードウェア要素２２２とプロセッサ要素２２９とは、ワイヤレス通信ネットワークのデータプレーン中のＦＥ２２０によるデータパケットの受信および送信をサポートするために協働し得る。
【００２８】
ハードウェア要素２２２は、ワイヤレス通信ネットワークのデータプレーン中のデータパケットの通信をサポートするように構成される。ハードウェア要素２２２は、パケットパーシング要素２２３とパケット処理要素２２４とを含む。ＦＥ２２０は、ＦＥポート２２１のうちの１つを介してデータパケットを受信し、そのデータパケットをパケットパーシング要素２２３に与える。パケットパーシング要素２２３は、データパケットのデータフローを識別するためにデータパケットをパースする。パケットパーシング要素２２３は、データパケットのヘッダフィールドの任意の好適な組合せに基づいて（たとえば、４タプル、５タプルなどに基づいて）データパケットが属するデータフローを識別し得る。パケットパーシング要素２２３は、データパケットをパケット処理要素２２４に与える。パケット処理要素２２４は、データパケットを受信し、データパケットの識別されたデータフローに基づいてデータパケットを処理する。パケット処理要素２２４は、フローごとにフローハンドリング情報（たとえば、パケット処理ルール、パケットフォワーディングルールなど、ならびにそれらの様々な組合せ）を維持するフローテーブルを維持するか、またはそれへのアクセスを有する。パケット処理要素２２４は、データパケットの識別されたデータフローに関連するフローテーブルエントリに基づいて、特定のＦＥポート２２１を介したパケットのフォワーディングを決定し得る。パケットパーシング要素２２３およびパケット処理要素２２４は、それぞれ、パケットパーシング機能およびパケット処理機能を与えるためにプロセッサ要素２２９と対話し得る。パケット処理要素２２４は、ＦＥ２２０からの送信のためにＦＥポート２２１のうちの１つにデータパケットを与える。ハードウェア要素２２２は、ＦＥ２２０のパケットパーシング要素２２３およびパケット処理要素２２４を与えるのに好適な任意のタイプのハードウェア要素（たとえば、特定用途向け集積回路（ＡＳＩＣ）または他の好適なタイプのハードウェア要素）であり得る。ＦＥ２２０のハードウェア要素２２２が、ワイヤレス通信ネットワークのデータプレーン中のＦＥ２２０によるデータパケットの受信および送信をサポートする様々な他の機能を与え得ることが諒解されよう。
【００２９】
プロセッサ要素２２９は、ワイヤレス通信ネットワークのデータプレーン中のデータパケットの通信をサポートするように構成される。プロセッサ要素２２９は、ハードウェア要素２２２によって実行されるパケットフォワーディングのプログラマチック制御を行うように構成される。プロセッサ要素２２９は、ＣＥ２１０との対話に基づいてハードウェア要素２２２によって実行されるパケットフォワーディングのプログラマチック制御を行うように構成され得る。たとえば、ハードウェア要素２２２が、ハードウェア要素２２２によって受信されたデータパケットのデータフローのためのフローテーブルエントリを有しない場合、プロセッサ要素２２９は、ＦＥ２２０に代わってＣＥ２１０にデータパケットのためのフローテーブルエントリを要求し、ＣＥ２１０からデータパケットのためのフローテーブルエントリを受信し、そのデータパケットとデータフローの他のデータパケットとをフォワーディングする際にハードウェア要素２２２が使用するためにハードウェア要素２２２上にフローテーブルエントリをインストールし得る。プロセッサ要素２２９は、ＦＥ２２０のハードウェア要素２２２をサポートするのに好適な任意のタイプの処理要素（たとえば、中央処理ユニット（ＣＰＵ）または他の好適なタイプの処理要素）であり得る。ＦＥ２２０のプロセッサ要素２２９が、ワイヤレス通信ネットワークのデータプレーン中のＦＥ２２０によるデータパケットの受信および送信をサポートする様々な他の機能を与え得ることが諒解されよう。
【００３０】
ＦＥ２２０は、本明細書で説明されるように、ワイヤレス通信ネットワークのためにサポートされる処理機能（たとえば、課金、監視、セキュリティなど）のためのデータプレーン機能を与えるかまたはサポートするように構成される。少なくともいくつかの実施形態では、図３に関して以下でさらに提示され、説明されるように、ＦＥ２２０のプロセッサ要素２２９は、ハードウェア要素２２２からプロセッサ要素２２９によって受信されたパケットヘッダに基づいてデータプレーン機能を与えるように構成される（すなわち、ＦＥ２２０は、ワイヤレス通信ネットワークのためにサポートされる処理機能のためのデータプレーン機能を与える）。少なくともいくつかの実施形態では、図４に関して以下でさらに提示され、説明されるように、（明快のために図２から省略される）ＦＥ２２０に関連する付属要素は、ハードウェア要素２２２から付属要素によって受信されたパケットヘッダに基づいてデータプレーン機能をサポートするように構成される（すなわち、ＦＥ２２０は、ワイヤレス通信ネットワークのためにサポートされる処理機能のためのデータプレーン機能をサポートする）。いずれの場合も、ＦＥ２２０は、ワイヤレス通信ネットワークのためにサポートされる処理機能のためのデータプレーン機能を与えるかまたはサポートする際に使用するためのデータパケットのパケットヘッダの伝搬をサポートするように構成される。
【００３１】
ＦＥ２２０のハードウェア要素２２２は、上記で説明されたように、ワイヤレス通信ネットワークのためにサポートされる処理機能のためのデータプレーン機能を与えるかまたはサポートする際に使用するためのデータパケットのパケットヘッダの伝搬をサポートするように構成される。図２に示されているように、ハードウェア要素２２２のパケットパーシング要素２２３は、データパケットからパケットヘッダを抽出することと、図３の場合のようにＦＥ２２０のプロセッサ要素２２９への配信または図４の場合のようにＦＥ２２０に関連する付属要素への配信など、ワイヤレス通信ネットワークのためにサポートされる処理機能のためのデータプレーン機能を与える要素への配信のためにパケットヘッダを伝搬することとを行うように構成され得る。
【００３２】
ＦＥ２２０のハードウェア要素２２２は、上記で説明されたように、ワイヤレス通信ネットワークのためにサポートされる処理機能のためのデータプレーン機能を与えるかまたはサポートする際に使用するためのデータパケットのパケットヘッダの伝搬をサポートするように構成される。少なくともいくつかの実施形態では、パケットのパケットヘッダは、それらの元の形態でハードウェア要素２２２から伝搬され得る。少なくともいくつかの実施形態では、パケットのパケットヘッダは、伝搬されるより前にハードウェア要素２２２によって圧縮され得る。パケットヘッダの圧縮は、ハードウェア要素２２２から、ワイヤレス通信ネットワークのためにサポートされる処理機能のためのデータプレーン機能を与える要素（たとえば、プロセッサ要素２２９または付属要素）に転送されるデータの量を著しく低減し得る。パケットヘッダ圧縮は、任意の好適な圧縮技法（たとえば、ロバストヘッダ圧縮（ＲＯＨＣ：Ｒｏｂｕｓｔ  Ｈｅａｄｅｒ  Ｃｏｍｐｒｅｓｓｉｏｎ）、ステートレス辞書ベース圧縮（ｓｔａｔｅｌｅｓｓ  ｄｉｃｔｉｏｎａｒｙ−ｂａｓｅｄ  ｃｏｍｐｒｅｓｓｉｏｎ）など）を使用して実行され得る。たとえば、ＲＯＨＣは、パケットヘッダを圧縮するためにハードウェア要素２２２によって使用され得る。ＲＯＨＣはＩＰパケットヘッダを４０バイト（ＩＰｖ４の場合）から１から３バイトに低減することができるが、ＲＯＨＣを実装することは、一般に、（すべてのサイズのフローについて、約１００Ｋ以下であるものなど、比較的小さいフローについてさえ、著しいことがある）ハードウェア中のフローごと状態情報を維持することを必要とすることに留意されたい。たとえば、ステートレス辞書ベース圧縮は、パケットヘッダを圧縮するためにハードウェア要素２２２によって使用され得る。ステートレス辞書ベース圧縮では、ハードウェア要素２２２は、圧縮（たとえば、より小さいサイズの辞書値への、ヘッダフィールドの値のマッピング）のために使用されるヘッダフィールド値の辞書を構築し、（ワイヤレス通信ネットワークのためにサポートされる処理機能のためのデータプレーン機能を与えており、したがって、パケットのパケットヘッダを受信している要素と）共有し、ハードウェア要素２２２は、パケットヘッダのヘッダフィールド値を、対応するより小さいサイズの辞書値と置き換えることによって、ヘッダフィールド値の辞書に基づいてパケットヘッダを圧縮し、圧縮されたパケットヘッダを受信する要素は、圧縮されたパケットヘッダのより小さいサイズの辞書値を、対応するヘッダフィールド値と置き換えることによって、圧縮されたパケットヘッダから元のパケットヘッダを再構成するために、ヘッダフィールド値の辞書を使用する。ステートレス辞書ベース圧縮では、ヘッダフィールド値の辞書中のエントリの最大数は、ハードウェア要素中の利用可能なスペースに合うように制限され得、ヘッダフィールド値の辞書は、新しいフローがシステムに到着するとき、動的に更新され得る。他のパケットヘッダ圧縮技法が使用され得ることが諒解されよう。
【００３３】
ＦＥ２２０のハードウェア要素２２２は、上記で説明されたように、ワイヤレス通信ネットワークのためにサポートされる処理機能のためのデータプレーン機能を与えるかまたはサポートする際に使用するためのデータパケットのパケットヘッダの伝搬をサポートするように構成される。ハードウェア要素２２２は、任意の好適な（１つまたは複数の）通信チャネルまたは（１つまたは複数の）経路を使用して、ワイヤレス通信ネットワークのためにサポートされる処理機能のためのデータプレーン機能を与える要素への配信のために、パケットヘッダを伝搬し得、これは、処理機能のためのデータプレーン機能がＦＥ２２０上に与えられるのかＦＥ２２０に関連する付属要素によって与えられるのかに応じて変化し得る。たとえば、ハードウェア要素２２２は、専用ＦＥポート（たとえば、ＦＥポート２２１のうちの１つまたは複数）を使用して、通信バス（たとえば、周辺構成要素相互接続（ＰＣＩ：Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バス、ＰＣＩエクスプレス（ＰＣＩｅ）バスなど）を使用してなど、ならびにそれらの様々な組合せで、パケットヘッダを伝搬し得る。ハードウェア要素２２２は、ワイヤレス通信ネットワークのためにサポートされる処理機能のためのデータプレーン機能を与える要素にパケットヘッダをストリーミングするように構成され得る。
【００３４】
ハードウェア要素２２２は、上記で説明されたように、ワイヤレス通信ネットワークのためにサポートされる処理機能のためのデータプレーン機能を与えている要素へのデータパケットのパケットヘッダの伝搬をサポートするように構成される。これは、ＦＥ２２０が、パケットをフォワーディングするプロセスにおいて、ワイヤレス通信ネットワークのためにサポートされるそのような処理機能を与えることに関連する様々なタイプのフローデータ（たとえば、統計値、状態情報など）を追跡する必要をなくし得る。これは、ＦＥ２２０が、極めて非効率的であり得る、ワイヤレス通信ネットワークのための処理機能をサポートする目的でのみフローテーブルに追加のフローテーブルエントリ（たとえば、各個々のフローのための別個のフローテーブルエントリ）を追加する必要をもなくし得る。たとえば、一般に、限られた数のフローテーブルエントリのみが、（たとえば、３値連想メモリ（ＴＣＡＭ：Ｔｅｒｎａｒｙ  Ｃｏｎｔｅｎｔ  Ａｄｄｒｅｓｓａｂｌｅ  Ｍｅｍｏｒｙ）またはスタティックランダムアクセスメモリ（ＳＲＡＭ：Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）中の）ＦＥハードウェア内に維持され得る。これは、ＳＤＮが旧来のＬ２／Ｌ３スイッチよりもはるかに多数のパケットフィールドにわたるパケット一致を可能にするとき、現在、ＳＤＮ対応スイッチは一般にＴＣＡＭ中の１０Ｋエントリを超えることができないので、旧来のＬ２／Ｌ３スイッチと比較して、ＳＤＮ対応スイッチについて特に当てはまり得る。その結果、既存のＳＤＮスイッチでは、各フローのためのＴＣＡＭフローエントリをもつ比較的少数のフローでさえサポートすることが難しいことがある。さらに、より大きいフローテーブルサイズにおいて、ＦＥハードウェア（たとえば、ＴＣＡＭ／ＳＲＡＭ）コストおよび電力消費が急速に増加することに留意されたい。
【００３５】
ＦＥ２２０は、ワイヤレス通信ネットワークのためにサポートされる処理機能（たとえば、課金、監視、セキュリティなど）のためのデータプレーン機能を与えるかまたはサポートするように構成された様々な他の能力を含み得ることが諒解されよう。
【００３６】
ＣＥ２１０およびＦＥ２２０はワイヤレス通信ネットワーク内で様々な他の機能を与えるように構成され得ることが諒解されよう。
【００３７】
図３は、データプレーンがフォワーディング要素によって与えられる処理機能スケーラビリティのためのデータプレーンの実施形態を示す。図３に示されているように、処理機能スケーラビリティのためのデータプレーンは、ＦＥ３００内で与えられる。ＦＥ３００は、図２のＦＥ２２０として使用され得る。ＦＥ３００は、ハードウェア要素３１０とデータプレーンスケーラビリティ要素３２０とを含む。ハードウェア要素３１０は、図２のＦＥ２２０のハードウェア要素２２２と同様の様式で動作するように構成され得る。データプレーンスケーラビリティ要素３２０は、プロセッサ要素３２２とメモリ要素３２４とを含む。プロセッサ要素３２２は、（図３に示されているように）図２のＦＥ２２０のプロセッサ要素２２９の変更バージョンであり得るか、または、（明快のために図３からその実施形態が省略されている）図２のＦＥ２２０のプロセッサ要素２２９との通信のために構成された追加のプロセッサ要素であり得る。プロセッサ要素３２２とメモリ要素３２４とは、ワイヤレス通信ネットワークのためにサポートされる処理機能のスケーラビリティ（たとえば、課金機能のスケーラビリティ、監視機能のスケーラビリティ、セキュリティ機能のスケーラビリティなど、ならびにそれらの様々な組合せ）をサポートする様式で、ワイヤレス通信ネットワークのためにサポートされる処理機能（たとえば、課金、監視、セキュリティなど）のためのデータプレーン（たとえば、データプレーン機能）を与えるために協働する。プロセッサ要素３２２は、ハードウェア要素３１０から（たとえば、図２のパケットパーシング要素２２３などのパケットパーシング要素から）データパケットヘッダを受信する。プロセッサ要素３２２は、パケットヘッダに基づいて、ワイヤレス通信ネットワークのためにサポートされる処理機能をサポートするデータプレーン処理機能（たとえば、課金をサポートするデータプレーン処理、監視をサポートするデータプレーン処理、セキュリティをサポートするデータプレーン処理など）を実行する。プロセッサ要素３２２は、プロセッサ要素３２２によって実行されるデータプレーン処理からの処理結果を、ＣＥ（たとえば、図２のＣＥ２１０）のほうへ伝搬する。プロセッサ要素３２２は、任意の好適なタイプのプロセッサ要素（たとえば、ＣＰＵまたは他の好適なプロセッサ要素）を含み得る。メモリ要素３２４は、任意の好適なタイプのメモリベース記憶要素（たとえば、ランダムアクセスメモリ（ＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、同期ＤＲＡＭ（ＳＤＲＡＭ）など）を含み得る。データプレーンスケーラビリティ要素３２０の例示的な実施形態が、図５に関して示され、説明される。
【００３８】
図４は、データプレーンが、フォワーディング要素によって、およびフォワーディング要素に関連する付属要素によって与えられる処理機能スケーラビリティのためのデータプレーンの実施形態を示す。図４に示されているように、処理機能スケーラビリティのためのデータプレーンは、ＦＥ４２０と付属要素（ＡＥ）４３０とを含むシステム４００によって与えられる。ＦＥ４２０は、図２のＦＥ２２０として使用され得る。ＦＥ４２０は、それぞれ、図２のＦＥ２２０のハードウェア要素２２２およびプロセッサ要素２２９と同様の様式で構成され得る、ハードウェア要素４２２およびプロセッサ要素４２９を含む。ＡＥ４３０は、処理機能スケーラビリティのためのデータプレーンを与えるように構成されたデータプレーンスケーラビリティ要素４３１を含む。データプレーンスケーラビリティ要素４３１は、プロセッサ要素４３２とメモリ要素４３４とを含む。プロセッサ要素４３２とメモリ要素４３４とは、ワイヤレス通信ネットワークのためにサポートされる処理機能のスケーラビリティ（たとえば、課金機能のスケーラビリティ、監視機能のスケーラビリティ、セキュリティ機能のスケーラビリティなど、ならびに様々なそれらの組合せ）をサポートする様式で、ワイヤレス通信ネットワークのためにサポートされる処理機能（たとえば、課金、監視、セキュリティなど）のためのデータプレーン（たとえば、データプレーン機能）を与えるために協働する。プロセッサ要素４３２は、ＦＥ４２０から（たとえば、ハードウェア要素４２２から）データパケットヘッダを受信する。プロセッサ要素４３２は、（たとえば、ＦＥポート２２１など）ＦＥ４２０のＦＥポートを介して、またはＦＥ４２０とＡＥ４３０との間の任意の他の好適な通信チャネルを介して、ＦＥ４２０からパケットヘッダを受信し得る。プロセッサ要素４３２は、パケットヘッダに基づいて、ワイヤレス通信ネットワークのためにサポートされる処理機能をサポートするデータプレーン処理機能（たとえば、課金をサポートするデータプレーン処理、監視をサポートするデータプレーン処理、セキュリティをサポートするデータプレーン処理など）を実行する。プロセッサ要素４３２は、プロセッサ要素４３２によって実行されるデータプレーン処理からの処理結果を、ＣＥ（たとえば、図２のＣＥ２１０）のほうへ伝搬する。プロセッサ要素４３２は、ＦＥ４２０を横断することなしに直接的に、またはＦＥ４２０を介して間接的に、処理結果をＣＥのほうへ伝搬し得る。プロセッサ要素４３２は、（たとえば、（たとえば、ＦＥポート２２１など）ＦＥ４２０のＦＥポートを介して）ＦＥ４２０のプロセッサ要素４２９に処理結果を与えることによって、ＦＥ４２０を介して間接的に処理結果をＣＥのほうへ伝搬し得、プロセッサ要素４２９は、次いで、処理結果をＣＥのほうへ伝搬する。ＡＥ４３０は、サーバまたは他の好適なタイプのデバイスであり得る。プロセッサ要素４３２は、任意の好適なタイプのプロセッサ要素（たとえば、ＣＰＵまたは他の好適なプロセッサ要素）を含み得る。メモリ要素４３４は、任意の好適なタイプのメモリベース記憶要素（たとえば、ＲＡＭ、ＤＲＡＭ、ＳＤＲＡＭなど）を含み得る。データプレーンスケーラビリティ要素４３１の例示的な実施形態が、図５に関して示され、説明される。
【００３９】
図５は、図３または図４のデータプレーンにおいて使用するためのデータプレーンスケーラビリティ要素の実施形態を示す。データプレーンスケーラビリティ要素５００は、図３のデータプレーンスケーラビリティ要素３２０または図４のデータプレーンスケーラビリティ要素４３１として使用され得る。
【００４０】
図５のデータプレーンスケーラビリティ要素５００は、プロセッサコア５１０と、キャッシュ要素５２０と、メモリ要素５３０とを含む。データプレーンスケーラビリティ要素５００の様々な構成要素間の通信（たとえば、１つまたは複数の通信バスを使用する、キャッシュ要素５２０を介したプロセッサコア５１０とメモリ要素５３０との間の通信など）が様々なやり方で与えられ得、したがって、明快のために図５から省略されることに留意されたい。
【００４１】
プロセッサコア５１０は、データプレーンスケーラビリティ要素５００の様々な処理機能をサポートするように構成される。プロセッサコア５１０は、ハッシング機能５１２およびパケット処理機能５１４をサポートするように構成される。プロセッサコア５１０は、（明快のために図５から省略される）様々な他の処理機能をサポートするように構成され得る。
【００４２】
キャッシュ要素５２０は、プロセッサコア５１０によって受信されたパケットヘッダのパケットについてのパケットデータを記憶するように構成される。キャッシュ要素５２０によって記憶されたパケットデータは、以下でさらに説明されるように、メモリ要素５３０によって記憶されたフローデータを更新するためのプロセッサコア５１０による処理を待つ間に記憶される。キャッシュ要素５２０は、パケットキュー５２２とパケットアグリゲーションバッファ５２４とをサポートするように構成される。パケットキュー５２２とパケットアグリゲーションバッファ５２４とは、パケットに関連するパケットデータを記憶するように構成され、パケットバッファまたはパケットバッファデータ構造と呼ばれることがある。パケットキュー５２２は、個々のパケットについての個々のパケットデータを記憶するように構成され、パケットアグリゲーションバッファ５２４は、フローごとにパケットのグループについてのアグリゲートされたパケットデータを記憶するように構成される。パケットキュー５２２とパケットアグリゲーションバッファ５２４とは、パケットデータ構造を使用して、キャッシュ要素５２０内に（例示的に、パケットキュー５２２またはパケットアグリゲーションバッファ５２４内に）パケットデータエントリとして挿入され得るパケットデータを記憶し得る。パケットデータ構造は、フロー識別子要素とパケットデータ要素とを含む。フロー識別子要素は、パケットデータが関連するフローを識別する。フロー識別子要素は、パケットデータが関連するフローを定義するパケットヘッダフィールドのセットを記憶する１つまたは複数のフィールドを含み得る。パケットデータ要素は、フローのパケットデータ（また、パケットキュー５２２のパケットデータエントリについての個々のデータパケットの個々のパケットデータおよびパケットアグリゲーションバッファ５２４のパケットデータエントリについてのアグリゲートされたパケットデータのアグリゲートされたパケットデータ）を記憶する１つまたは複数のフィールドを含み得る。パケットデータ要素のパケットデータは、統計値（たとえば、パケットカウント、バイトカウント、ビットカウント）、状態情報（たとえば、フローについてのＴＣＰ状態（たとえば、ＳＹＮのみ（ＳＹＮ  ｏｎｌｙ）、ＳＹＮ−ＡＣＫ送信済み（ＳＹＮ−ＡＣＫ  ｓｅｎｔ）、または完全確立済み（ｆｕｌｌｙ  ｅｓｔａｂｌｉｓｈｅｄ）））など、ならびにそれらの様々な組合せを含み得る。パケットデータ要素のパケットデータは、データプレーンスケーラビリティ要素５００（たとえば、課金関係データ（たとえば、パケットカウント、バイトカウント、ビットカウントなど）、監視関係データ、セキュリティ関係データなど）によってサポートされる異なるタイプの処理機能について変化し得る。キャッシュ要素５２０は、レベル１（Ｌ１）キャッシュ、レベル２（Ｌ２）キャッシュ、Ｌ１／Ｌ２キャッシュなどを含み得る。
【００４３】
メモリ要素５３０は、フローデータを記憶するように構成される。フローデータは、キャッシュ要素５２０のパケットデータの、プロセッサコア５１０による処理（たとえば、キャッシュ要素５２０によって維持されるパケットデータの処理に基づいてフローのフローごとフローデータを更新すること）に基づいて生成されるデータを含む。メモリ要素５３０は、フローごとにデータフローのフローデータを記憶するように構成される。メモリ要素５３０は、フローデータ構造を使用して、メモリ要素５３０内にフローデータエントリとして挿入され得るパケットフローのフローデータを記憶するように構成される。フローデータを記憶するためにメモリ要素５３０によって使用されるフローデータ構造は、パケットデータを記憶するためにキャッシュ要素５２０によって使用されるパケットデータ構造と同様であり得る。フローデータ構造は、フロー識別子要素とフローデータ要素とを含む。フロー識別子要素は、フローデータが関連するフローを定義するパケットヘッダフィールドのセットを記憶する１つまたは複数のフィールドを含み得る。フローデータ要素は、フローのフローデータを記憶する１つまたは複数のフィールドを含み得る。フローデータ要素のフローデータは、統計値（たとえば、パケットカウント、バイトカウント、ビットカウント）、状態情報（たとえば、フローについてのＴＣＰ状態（たとえば、ＳＹＮのみ、ＳＹＮ−ＡＣＫ送信済み、または完全確立済み））など、ならびにそれらの様々な組合せを含み得る。フローデータ要素のフローデータは、データプレーンスケーラビリティ要素５００（たとえば、課金関係データ（たとえば、パケットカウント、バイトカウント、ビットカウントなど）、監視関係データ、セキュリティ関係データなど）によってサポートされる異なるタイプの処理機能について変化し得る。メモリ要素５３０は、ランダムアクセスメモリ（ＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、または他の好適なタイプのメモリであり得る。
【００４４】
プロセッサコア５１０は、パケット処理機能をサポートするように構成される。
【００４５】
プロセッサコア５１０は、データプレーンスケーラビリティ要素５００が関連するＦＥのハードウェア要素からパケットヘッダを受信する（ここで、ハードウェア要素は明快のために省略されている）。
【００４６】
プロセッサコア５１０は、データパケットの受信されたパケットヘッダについて、ハッシング機能５１２を使用して、データパケットのフロー識別子に基づいて（たとえば、４タプル、５タプルなどに基づいて）、受信されたパケットヘッダをハッシングする。ハッシング機能５１２は、（１つまたは複数の）任意の好適なハッシング技法を使用するように構成され得る。
【００４７】
プロセッサコア５１０は、パケットヘッダをハッシングした後に、データパケットが属するフローについてのフローデータをアグリゲートし、記憶するために使用されるメモリ要素５３０のフローごとデータバケットにパケットヘッダを割り当て、データパケットが属するフローについてのフローデータをアグリゲートし、記憶するために使用されるべきであるメモリ要素５３０のフローごとデータバケットのメモリアドレスを識別する。
【００４８】
プロセッサコア５１０は、パケットヘッダをハッシングした後に、データパケットについてのパケットデータを決定し、データパケットについてのパケットデータをキャッシュ要素５２０に挿入する。プロセッサコア５１０は、パケットキュー５２２中のパケットデータのための余地がある限り、データパケットについてのパケットデータをパケットキュー５２２に挿入し、他の場合、プロセッサコア５１０は、データパケットについてのパケットデータをパケットアグリゲーションバッファ５２４に挿入する。パケットキュー５２２中にパケットデータのための余地があるかどうかに関する決定は、パケットキュー５２２がしきい値（たとえば、記憶されるデータの総量、パケットデータエントリの数などに関するサイズしきい値）を満たすまたは超えるかどうかに関する決定に基づき得る。
【００４９】
プロセッサコア５１０は、それぞれ、データパケットについての個々のパケットデータを含む個々のパケットデータエントリとして、データパケットについてのパケットデータをパケットキュー５２２に挿入する。パケットキュー５２２は、パケットヘッダがプロセッサコア５１０によって受信されているが、プロセッサコア５１０が、データパケットが属するそれぞれのフローのフローデータを更新するためにデータパケットのパケットヘッダをまだ処理していない、個々のデータパケットについての個々のパケットデータを記憶する。プロセッサコア５１０は、パケットキュー５２２およびパケットアグリゲーションバッファ５２４によってサポートされるパケットデータ構造を使用して、パケットデータエントリとして、データパケットについてのパケットデータをパケットキュー５２２に挿入する。パケットデータ構造は、上記で説明されたように、（パケットデータが関連するフローを識別する）フロー識別子要素と（データパケットの個々のパケットデータを含む）パケットデータ要素とを含む。
【００５０】
プロセッサコア５１０は、それぞれ、フローのデータパケットのグループについてのアグリゲートされたパケットデータを含むフローごとパケットデータエントリとして、データパケットについてのパケットデータをパケットアグリゲーションバッファ５２４に挿入する。パケットアグリゲーションバッファ５２４は、パケットヘッダがプロセッサコア５１０によって受信されているが、プロセッサコア５１０が、データパケットのグループが関連するそれぞれのフローのフローデータを更新するためにデータパケットのパケットヘッダをまだ処理していない、パケットフローのデータパケットのグループについてのアグリゲートされたパケットデータを記憶する（たとえば、第１のフローのデータパケットについてのアグリゲートされたパケットデータは、パケットアグリゲーションバッファ５２４の第１のパケットデータエントリを与える第１のパケットデータ構造を使用して記憶され、第２のフローのデータパケットについてのアグリゲートされたパケットデータは、パケットアグリゲーションバッファ５２４の第２のパケットデータエントリを与える第２のパケットデータ構造を使用して記憶され、以下同様である）。プロセッサコア５１０は、データパケットが関連するフローを識別し、フローのためのパケットデータエントリがパケットアグリゲーションバッファ５２４中にすでに存在するかどうかを決定し（たとえば、フローのフロー識別子に基づいてパケットアグリゲーションバッファ５２４を探索し）、フローのためのパケットデータエントリがパケットアグリゲーションバッファ５２４中にすでに存在するかどうかに関する決定の結果に基づいて、データパケットのパケットデータを含むようにパケットアグリゲーションバッファ５２４を更新することによって、データパケットについてのパケットデータをパケットアグリゲーションバッファ５２４に挿入する。フローのためのパケットデータエントリがパケットアグリゲーションバッファ５２４中にもう存在しない場合、プロセッサコア５１０は、フローのための新しいパケットデータエントリをパケットアグリゲーションバッファ５２４中に作成し、（たとえば、（データパケットが関連するフローを識別する）フロー識別子要素と（データパケットの個々のパケットデータを含む）パケットデータ要素とを含む、パケットアグリゲーションバッファ５２４によってサポートされるパケットデータ構造を使用して）新しいパケットデータエントリ中にデータパケットのパケットデータを記憶する。フローのためのパケットデータエントリがパケットアグリゲーションバッファ５２４中にすでに存在する場合、プロセッサコア５１０は、（たとえば、データパケットのパケット統計値とパケットアグリゲーションバッファ５２４中の既存のパケットデータエントリの既存のパケット統計値とをアグリゲートすること、データパケットの追加のフロー状態情報をパケットアグリゲーションバッファ５２４中の既存のパケットデータエントリの既存のフロー状態情報に追加することなどによって）データパケットのパケットデータに基づいてパケットアグリゲーションバッファ５２４中の既存のパケットデータエントリを更新する。たとえば、フローについてのアグリゲートされたパケット統計値が、フローについて受信された総バイト数を追跡しており、フローの第１のパケットが１００バイトを含み、フローの現在受信されるパケットが２００バイトを含む場合、パケットアグリゲーションバッファ５２４中の既存のパケットデータエントリは、パケットデータがパケットアグリゲーションバッファ５２４中に維持されるデータパケットについて、フローについて合計３００バイトが受信されていることを示すアグリゲートされたパケット統計値を含むように更新される。フローのためのパケットデータエントリがパケットアグリゲーションバッファ５２４中にすでに存在する場合、プロセッサコア５１０は、（１）パケットアグリゲーションバッファ５２４から、（たとえば、フローのフロー識別子に基づいて）データパケットが関連するフローについての既存のフローデータを読み取り、（２）フローについてのアグリゲートされたパケットデータを形成するために、データパケットのパケットデータに基づいて、フローについての既存のパケットデータを更新し、（３）フローについてのアグリゲートされたパケットデータをパケットアグリゲーションバッファ５２４に書き込むことによって、データパケットに基づいてフローのためのパケットアグリゲーションバッファ５２４中の既存のパケットデータエントリを更新し得る。
【００５１】
プロセッサコア５１０は、（パケットキュー５２２に向けられるパケットは個々にハンドリングされるので）パケットキュー５２２が同じフローについて複数のパケットデータエントリ／構造を有し得るが、（プロセッサコア５１０はパケットアグリゲーションバッファ５２４に向けられるパケットヘッダについてフローごとにパケットデータアグリゲーションを実行するので）パケットアグリゲーションバッファ５２４が各フローについて単一のパケットデータエントリ／構造を含むように、パケットについてのパケットデータをキャッシュ要素５２０に挿入する。
【００５２】
プロセッサコア５１０は、（以下でさらに説明されるように、メモリ要素５３０のフローデータの更新はパケットキュー５２２中のパケットデータエントリの処理に基づいて実行され得るので）アグリゲートされたパケットデータをパケットアグリゲーションバッファ５２４の中からおよびパケットキュー５２２に移動するように構成され得る。プロセッサコア５１０は、様々な条件に基づいて、アグリゲートされたパケットデータをパケットアグリゲーションバッファ５２４の中からおよびパケットキュー５２２に移動し得る。プロセッサコア５１０は、条件が所与のフローについて満たされるとの決定に基づいて、所与のフローのアグリゲートされたパケットデータをパケットアグリゲーションバッファ５２４の中からおよびパケットキュー５２２に移動し得る。課金の場合、たとえば、フローについての条件は、フローについての現在のクレジットカウントがしきい値を満たすこと（たとえば、ほとんど０であるかまたは満了しそうであること、０に達したかまたは満了したことなど）であり得る。プロセッサコア５１０は、フローの優先度付けに基づいて、フローのアグリゲートされたパケットデータをパケットアグリゲーションバッファ５２４の中からおよびパケットキュー５２２に移動し得る。プロセッサコア５１０は、パケットアグリゲーションバッファ５２４のフローを緊急としてマークし（たとえば、条件を満たすフローの各々が緊急としてマークされる）、（たとえば、緊急フローにそれぞれのランク値を割り当てることによって）互いに対して緊急フローに優先度を付け、互いに対する緊急フローの優先度付けに基づいて緊急フローのアグリゲートされたパケットデータをパケットアグリゲーションバッファ５２４の中からおよびパケットキュー５２２に移動すること（たとえば、フローのアグリゲートされたパケットデータが移動されるべきである時間において、最も優先度の高い緊急フローが、アグリゲートされたパケットデータが移動される緊急フローとして選択される）によって、フローのアグリゲートされたパケットデータをパケットアグリゲーションバッファ５２４の中からおよびパケットキュー５２２に移動し得る。言い換えれば、緊急フローは、緊急としてマークされないフローと比較した優先処理を受信する。プロセッサコア５１０は、１つまたは複数のファクタに基づいて緊急フローに優先度を付け得る。課金の場合、たとえば、緊急としてマークされたフローは、フローの残りのクレジットの数に比例するランクを割り当てられ得る（たとえば、より低いクレジットがより高いランク、したがって、緊急度に対応する）。監視の場合、たとえば、緊急としてマークされたフローは、それらのサイズに比例するランクを割り当てられ得る。セキュリティの場合、たとえば、緊急としてマークされたフローは、フローが開始されたとき（たとえば、フローのためのＳＹＮパケットが受信されたとき、フローがハーフオープンＴＣＰフロー（ｈａｌｆ  ｏｐｅｎ  ＴＣＰ  ｆｌｏｗ）である場合）時間に比例するランクを割り当てられ得る。少なくともいくつかの実施形態では、どのフローが緊急としてマークされるかを決定する際にまたは互いに対して緊急フローに優先度を付ける際に、１つまたは複数の他のファクタ（たとえば、パケットアグリゲーションバッファ５２４中のフローについて累積された、アグリゲートされたパケットデータの量、フローに関連するサービスまたは優先度のレベルなど、ならびにそれらの様々な組合せ）が使用され得る。プロセッサコア５１０は、十分なスペースがパケットキュー５２２内で利用可能になったとの決定に基づいて、所与のフローのアグリゲートされたパケットデータをパケットアグリゲーションバッファ５２４の中からおよびパケットキュー５２２に移動し得る。プロセッサコア５１０は、パケットデータ構造をパケットアグリゲーションバッファ５２４から削除し、パケットデータ構造をパケットキュー５２２に挿入することによって、所与のフローのアグリゲートされたパケットデータをパケットアグリゲーションバッファ５２４の中からおよびパケットキュー５２２に移動し得る。
【００５３】
プロセッサコア５１０は、メモリ要素５３０のフローデータを更新するためにキャッシュ要素５２０のパケットデータを処理する。プロセッサコア５１０は、メモリ要素５３０のフローデータを更新するためにパケットキュー５２２のパケットデータを処理する。プロセッサコア５１０は、先入れ先出し（ＦＩＦＯ）様式でまたは任意の他の好適な様式でパケットキュー５２２のパケットデータエントリを処理することによって、メモリ要素５３０のフローデータを更新するために、パケットキュー５２２のパケットデータを処理し得る。パケットキュー５２２の所与のパケットデータエントリは、（パケットデータがパケットキュー５２２に直接挿入された場合）個々のパケットについてのパケットデータまたは（パケットデータが、パケットアグリゲーションバッファ５２４からパケットキュー５２２に転送される前にパケットアグリゲーションバッファ５２４内でアグリゲートされた場合）パケットのグループについてのアグリゲートされたパケットデータを含み得ることが諒解されよう。プロセッサコア５１０は、パケット処理機能５１４を使用してパケットキュー５２２のパケットデータエントリを処理し得、ここで、パケット処理機能５１４によってサポートされる（したがって、プロセッサコア５１０によって与えられる）機能は、フォワーディング要素によってサポートされ得る異なるタイプの処理機能について変化し得る。プロセッサコア５１０は、（１）メモリ要素５３０から、（たとえば、ハッシング中に算出されるメモリ要素５３０のハッシングされたアドレスに基づいて）パケットデータエントリが関連するフローについての既存のフローデータを読み取り、（２）フローについての更新済みのフローデータを形成するために、処理されているパケットキュー５２２のパケットデータエントリのパケットデータに基づいて、フローについての既存のフローデータを更新し、（３）（たとえば、ハッシング中に算出されるメモリ要素５３０のハッシングされたアドレスに基づいて）フローについての更新済みのフローデータをメモリ要素５３０に書き込むことによって、フローについてのメモリ要素５３０内に維持されるフローデータを更新するために、フローに関連するパケットキュー５２２のパケットデータエントリを処理し得る。
【００５４】
プロセッサコア５１０は、フローについての既存のフローデータと、処理されているパケットデータエントリのパケットデータとに基づいて、フローについての更新済みのフローデータを決定するための様々なタイプの処理を実行し得、これは、データプレーンスケーラビリティ要素５００によって与えられている異なるタイプの処理機能について変化し得る。たとえば、データプレーンスケーラビリティ要素５００が課金機能を与えている場合、フローについての更新済みのフローデータを決定するための処理は、フローが関連する顧客のための課金情報を決定する際に実行され得る追加の課金算出において使用するために、フローについてのパケットカウントまたはバイトカウントを更新することを含み得る。たとえば、データプレーンスケーラビリティ要素５００が監視機能を与えている場合、フローについての更新済みのフローデータを決定するための処理は、平均帯域幅を算出することを含み得る。たとえば、データプレーンスケーラビリティ要素５００がセキュリティ機能を与えている場合、フローについての更新済みのフローデータを決定するための処理は、フローについてのＴＣＰ状態（たとえば、ＳＹＮのみ、ＳＹＮ−ＡＣＫ送信済み、または完全確立済み）を算出することを含み得る。様々な他のタイプのフローデータ（たとえば、統計値、状態情報など）は、サポートされ得る様々な他のタイプの処理機能のために維持され得ることが諒解されよう。
【００５５】
プロセッサコア５１０は、フローについての更新済みのフローデータを決定するために実行される処理とともに様々な追加のタイプの処理を実行し得、これは、データプレーンスケーラビリティ要素５００によって与えられている異なるタイプの処理機能について変化し得る。たとえば、データプレーンスケーラビリティ要素５００が課金機能を与えている場合、追加の処理は、（たとえば、フローについてしきい値が満たされるまたは超えられるとの決定、フローに割り振られたクレジットが使用されているとの決定などに基づいて）追加の処理を実行すべきかどうかを決定するために更新済みのフロー統計値（たとえば、パケットカウント、バイトカウントなど）を分析することを含み得る。たとえば、データプレーンスケーラビリティ要素５００が課金機能を与えている場合、追加の処理は、（たとえば、プロセッサコア５１０が関連するＦＥのハードウェア要素中のフローテーブルエントリを設定または変更すること（たとえば、追加のクレジットなしのフローを阻止するための阻止ルールを設定すること、フローについてのＱｏＳを変更するためのＱｏＳ変更ルールを設定することなど）を行うために）プロセッサコア５１０が関連するＦＥのハードウェア要素と通信することを含み得る。たとえば、データプレーンスケーラビリティ要素５００が課金機能を与えている場合、追加の処理は、（たとえば、クレジットの割振りを獲得し、返却すること、（たとえば、周期的に、ＣＥからの要求に応答してなどで）フロー統計値を報告することなどを行うために）プロセッサコア５１０が関連するＣＥと通信することを含み得る。たとえば、データプレーンスケーラビリティ要素５００が課金機能を与えている場合、追加の処理は、（たとえば、アップリンクおよびダウンリンク上で別々に、できる限り低いフローごと粒度において、バイト、パケット、および使用持続時間を報告する）報告機能、（たとえば、（オンライン課金のために）バイトしきい値までのフローを可能にする／スロットリングすること、指定された持続時間の間または指定された時刻までフローを可能にすることなどを行う）承認／スロットリング機能、（たとえば、クレジットなしのフローを阻止すること、それらのクレジットを超えるフローについてのＱｏＳを低下させること、使用率が現在のデータバケットを超えるときに課金レート（たとえば、過剰量）を変更すること、しきい値超過時に追加のクレジットを要求することなどを行う）クレジットベース課金サポート機能あるいは同様または関連する機能など、ならびにそれらの様々な組合せを含み得る。たとえば、データプレーンスケーラビリティ要素５００が監視機能を与えている場合、追加の処理は、大きいフローをＣＥに報告することを含み得る。たとえば、データプレーンスケーラビリティ要素５００がセキュリティ機能を与えている場合、追加の処理は、完全には確立されないハーフオープンＴＣＰセッションの数をＣＥに報告することを含み得る。様々な他のタイプの追加の処理が、サポートされ得る様々な他のタイプの処理機能のために実行され得ることが諒解されよう。
【００５６】
主に、メモリ要素５３０のフローデータの更新がパケットキュー５２２中のパケットデータエントリの処理に基づいて実行される（および、したがって、パケットアグリゲーションバッファ５２４のパケットデータエントリがパケットキュー５２２に移動される）実施形態に関して提示されるが、少なくともいくつかの実施形態では、メモリ要素５３０のフローデータの更新は、パケットキュー５２２中のパケットデータエントリの処理とパケットアグリゲーションバッファ５２４中のパケットデータエントリの処理とに基づいて（すなわち、パケットアグリゲーションバッファ５２４のパケットデータエントリをパケットキュー５２２に移動することなしに）実行され得ることが諒解されよう。少なくともいくつかのそのような実施形態では、プロセッサコア５１０は、メモリ要素５３０のフローデータを更新するためのパケットキュー５２２中のパケットデータエントリの処理とパケットアグリゲーションバッファ５２４中のパケットデータエントリの処理とに優先度を付けるように構成され得る。
【００５７】
本明細書では主に、データプレーンスケーラビリティ要素５００が、パケットキュー５２２とパケットアグリゲーションバッファ５２４とを含むパケットバッファデータ構造を維持するためにキャッシュメモリを使用する実施形態に関して提示されるが、少なくともいくつかの実施形態では、パケットバッファデータ構造の少なくとも一部分（たとえば、パケットキュー５２２、パケットアグリゲーションバッファ５２４、またはパケットキュー５２２とパケットアグリゲーションバッファ５２４の両方）は、他のタイプのキャッシュベース記憶要素（たとえば、他のタイプのキャッシュメモリ（たとえば、Ｌ３キャッシュメモリ）、メインメモリ（たとえば、ＲＡＭ、ＤＲＡＭなど）など、ならびにそれらの様々な組合せ）中に維持され得ることが諒解されよう。しかしながら、以下でさらに説明されるように、パケットキュー５２２とパケットアグリゲーションバッファ５２４とを含むパケットバッファデータ構造を維持するための、他のタイプのキャッシュメモリまたはメインメモリではなくＬ１／Ｌ２キャッシュメモリの使用に関連する様々な利点または潜在的な利点があり得る。たとえば、Ｌ１／Ｌ２キャッシュからのパケットデータにアクセスするためのレイテンシは、ＤＲＡＭからのアグリゲートされたフローデータにアクセスするためのレイテンシよりも約５−１０倍低いことが予想されるので、パケットキュー５２２およびパケットアグリゲーションバッファ５２４のためのＬ１／Ｌ２キャッシュの使用は、アグリゲートされたフローデータを決定するためのＤＲＡＭの使用と比較して、アグリゲートされたフローデータを決定するためのより効率的な処理を生じる。したがって、少なくともいくつかの実施形態では、パケットキュー５２２およびパケットアグリゲーションバッファ５２４のために割り振られるメモリは、可能な範囲内で、パケットキュー５２２とパケットアグリゲーションバッファ５２４とがプロセッサのより速いＬ１／Ｌ２キャッシュ中にキャッシュされたままであるように、十分に小さく保たれ得、したがって、多くの他のタイプのメモリ（たとえば、Ｌ３キャッシュ、ＤＲＡＭなど）と比較して、比較的低いレイテンシでアクセスされ得る。少なくともいくつかの実施形態では、パケットキュー５２２およびパケットアグリゲーションバッファ５２４のために割り振られるキャッシュ要素５２０のメモリは、静的に割り振られ得る。少なくともいくつかの実施形態では、パケットアグリゲーションバッファ５２４は動的に成長し得る（たとえば、処理されていないパケットがオーバーフローするか、またはオーバーフローする危険にさらされている場合、静的に割り振られたメモリ）。（１）データプレーンスケーラビリティ要素５００が、平均パケット処理レートが平均パケット到着レートよりも高いことを保証するために寸法決定される限り、比較的小さいパケットキュー５２２（たとえば、１００個のパケット、１５０個のパケットなど）は、到着パケットのパケットデータが、関連するフローデータを更新するための処理を待っている間、到着パケットについてのパケットデータを記憶するのに十分であり得、（２）トラフィックバーストは、依然として、短い時間期間の間パケットキュー５２２のオーバーフローを引き起こし得るので、パケットアグリゲーションバッファ５２４は、上記で説明されたように、メモリ要素５３０中のフローデータを更新するために、アグリゲートされたパケットデータが使用され得るまで、パケットデータを一時的にアグリゲートすることによって、いかなるそのようなオーバーフローもハンドリングし得ることに留意されたい。その結果、（たとえば、プロセッサのＬ１／Ｌ２キャッシュメモリなど、より速いキャッシュメモリ中の）パケットアグリゲーションバッファ５２４のキャッシングは、パケットごと処理／アグリゲーションレートがはるかに高くなることを可能にし、それによりトラフィックバーストハンドリングするのに必要なスピードアップが与えられる。パケットバッファデータ構造をキャッシュすることの様々な利益または潜在的利益は、以下の例からさらに理解され得る。
【００５８】
一例として、キャッシュ要素５２０がＬ１／Ｌ２キャッシュを使用して実装され、メモリ要素５３０がＤＲＡＭを使用して実装される場合、メモリ要素５３０中のフローデータを更新する前にパケットアグリゲーションバッファ５２４を使用してパケットデータの部分アグリゲーションを行うことは、各データパケットに応答してメモリ要素５３０中のフローデータを更新することよりも効率的であることが示され得る。たとえば、フローが２０個のパケットを含む場合、パケットキュー５２２を介したＤＲＡＭ中のフローのフローデータへの２０回の個々の更新を実行する代わりに、パケットアグリゲーションバッファ５２４を使用して最初の１０個のパケットのパケットデータの第１の部分アグリゲーションを実行し、その第１の部分アグリゲーションに基づいてＤＲＡＭ中のフローのフローデータを更新し、次いで、パケットアグリゲーションバッファ５２４を使用して最後の１０個のパケットのパケットデータの第２の部分アグリゲーションを実行し、第２の部分アグリゲーションに基づいてＤＲＡＭ中のフローのフローデータを更新することは、より効率的である。これは、ＦＥが、パケットをドロップすることなしに一時的パケットバーストをハンドリングすることを可能にする処理速度の著しい増加を与える。
【００５９】
一例として、キャッシュ要素５２０がＬ１／Ｌ２キャッシュを使用して実装され、メモリ要素５３０がＤＲＡＭを使用して実装される場合、単一のＤＲＡＭバンクをもつ単一のプロセッサコアが、１００Ｋコンカレントフロー（ｃｏｎｃｕｒｒｅｎｔ  ｆｌｏｗ）のピークをもつ１０Ｇｂｐｓラインレートにおける課金をサポートし得ることが示され得る。この例では、２５０バイトの平均パケットサイズが仮定され、５０バイトの平均パケットヘッダサイズが仮定される。これは、パケットをＡＳＩＣからＣＰＵにストリーミングするためにＰＣＩバス上で必要とされる２Ｇｂｐｓ帯域幅および毎秒５Ｍパケットの処理レートを与える（ＰＣＩｅ３．０が６Ｇｂｐｓのレーンごとスループットを有することに留意されたい）。上記で説明されたように、フローごとデータを更新することは、２ＤＲＡＭアクセス、したがって、毎秒１０Ｍ  ＤＲＡＭアクセスを必要とする。ＤＲＡＭアクセスは５０ｎｓであり、それにより、毎秒２０Ｍ  ＤＲＡＭアクセスを可能にすると仮定される。したがって、ラインレートにおける処理は、ラインレートが１０Ｇｂｐｓを下回る場合、フォワーディング要素（たとえば、ＢＴＳスイッチまたは他のタイプの要素）において課金処理が実行されるとき、単一のプロセッサコアおよびＤＲＡＭで実現可能であるべきである。
【００６０】
本明細書では主に、データプレーンスケーラビリティ要素５００が単一のプロセッサ（たとえば、単一のコアＣＰＵ）および単一の関連するメモリ要素（たとえば、単一のＤＲＡＭ）を使用する実施形態に関して提示されるが、データプレーンスケーラビリティ要素５００は、複数のプロセッサ（たとえば、マルチコアＣＰＵ、複数のＣＰＵなど、ならびにそれらの様々な組合せ）、複数のメモリ要素（たとえば、それぞれ、複数のプロセッサに関連する複数の専用ＤＲＡＭメモリモジュール）など、ならびにそれらの様々な組合せを使用するように構成され得ることが諒解されよう。これは、データプレーンスケーラビリティ要素５００がより高いラインレートにおける処理機能をサポートすることを可能にし得る。ハッシングは同じフローのすべてのパケットが同じプロセッサ／ＤＲＡＭに向けられることを保証することが予想されるので、データプレーンスケーラビリティ要素５００は、パケットヘッダフィールド値をハッシングし、ハッシュベース負荷分散を利用することによって、複数のプロセッサにわたってパケットヘッダを分散し得る。十分な数のプロセッサと、関連するＤＲＡＭメモリモジュールとを有することは、比較的高い処理レートを有することが予想されるネットワーク要素（たとえば、１００Ｇｂｐｓ以上の処理レートをサポートし得るモバイルゲートウェイ）においてでさえ、処理がラインレートにおいてハンドリングされ得ることを保証することができることに留意されたい。本明細書では主に、データプレーンスケーラビリティ要素５００が単一のキャッシュ要素（例示的に、キャッシュ要素５２０）を使用する実施形態に関して提示されるが、データプレーンスケーラビリティ要素５００は複数のキャッシュ要素を使用するように構成され得ることが諒解されよう。本明細書で示され、説明される様々な記憶要素（たとえば、キャッシュ要素５２０、メモリ要素５３０など）は、本明細書ではより一般的に記憶要素と呼ばれることがあることが諒解されよう。本明細書で示され、説明される様々な記憶要素（たとえば、キャッシュ要素５２０、メモリ要素５３０など）は、単一の記憶要素、複数の記憶要素などを使用して与えられ得ることが諒解されよう。
【００６１】
図６は、データプレーンスケーラビリティ要素によって処理するためのパケットデータを生成および記憶する際にデータプレーンスケーラビリティ要素が使用するための方法の実施形態を示す。主に、連続的に実行されるものとして提示されるが、方法６００のステップの少なくとも一部分は、同時にまたは図６に提示されるものとは異なる順序で実行され得ることが諒解されよう。ステップ６０１において、方法６００は開始する。ステップ６１０において、パケットヘッダを受信する。パケットヘッダは、圧縮されていないパケットヘッダであり得るか、または圧縮されたパケットヘッダであり得る（その場合、圧縮されたパケットヘッダは、さらなる処理が実行される前に圧縮前の状態へ戻される）。ステップ６２０において、パケットについてのパケットデータを与えるためにパケットヘッダを処理する。パケットデータは、パケットが属するフローのフロー識別子と、パケットのパケットデータとを含み得る。ステップ６３０において、データプレーンスケーラビリティ要素のパケットキューがしきい値（たとえば、記憶されるデータの総量、パケットデータエントリの数などに関するサイズしきい値）を超えるかどうかに関する決定を行う。データプレーンスケーラビリティ要素のパケットキューがしきい値を超えない場合、方法６００はステップ６４０に進み、そのポイントにおいて、パケットキューのパケットデータエントリを使用して、パケットについての個々のパケットデータとして、パケットデータをパケットキューに挿入する。データプレーンスケーラビリティ要素のパケットキューがしきい値を超える場合、方法６００はステップ６５０に進み、そのポイントにおいて、パケットアグリゲーションバッファのパケットデータエントリを使用して（たとえば、新しいパケットデータエントリとして、または既存のパケットデータエントリの更新を介して）、パケットが関連するデータフローについてのアグリゲートされたパケットデータとして、パケットデータをデータプレーンスケーラビリティ要素のパケットアグリゲーションバッファに挿入する。その場合、パケットデータは、データプレーンスケーラビリティ要素によって維持されるフローデータを更新するための後の処理のためにデータプレーンスケーラビリティ要素内で利用可能であり、その実施形態は図７に関して提示される。ステップ６４０および６５０から、方法６００はステップ６９９に進み、そのポイントにおいて、方法６００は終了する。方法６００のステップは、図５の参照によってさらに理解され得る。
【００６２】
図７は、データプレーンスケーラビリティ要素によって記憶されたフローデータを更新するためにパケットデータを処理する際にデータプレーンスケーラビリティ要素が使用するための方法の実施形態を示す。主に、連続的に実行されるものとして提示されるが、方法７００のステップの少なくとも一部分は、同時にまたは図７に提示されるものとは異なる順序で実行され得ることが諒解されよう。
【００６３】
ステップ７０１において、方法７００は開始する。
【００６４】
ステップ７１０において、パケットキューが空であるかどうかに関する決定を行う。パケットキューが空である場合、方法７００は（処理のために利用可能であるパケットキュー中にパケットデータがあるまで）ステップ７１０にとどまる。パケットキューが空でない（それが処理のために利用可能な少なくとも１つのパケットデータエントリを含む）場合、方法７００はステップ７２０に進む。
【００６５】
ステップ７２０において、パケットデータエントリをパケットキューから抽出する。パケットデータエントリは、パケットデータが関連するフローのフロー識別子とパケットデータとを含むパケットデータを含む。パケットデータエントリは、フローの単一のデータパケットについての個々のパケットデータ（たとえば、パケットキューに最初に挿入されるパケットデータエントリ）またはフローのデータパケットのセットについてのアグリゲートされたパケットデータ（たとえば、パケットアグリゲーションバッファからパケットキューに移動されたパケットデータエントリ）を含み得る。パケットデータエントリは、パケットデータエントリが関連するフローのフローデータを更新するためにパケットデータエントリのパケットデータを処理するために、抽出される。たとえば、パケットキューの先頭にあるパケットデータエントリが処理のために抽出され得る。
【００６６】
ステップ７３０において、パケットデータエントリが関連するフローを識別する。パケットデータエントリが関連するフローは、パケットデータエントリのパケットデータのフロー識別子に基づいて識別され得る。
【００６７】
ステップ７４０において、パケットデータエントリが関連するフローのためのフローデータエントリをメモリ要素が含むかどうかに関する決定を行う。決定は、パケットデータエントリのフロー識別子を使用してメモリ要素を探索することによって行われ得る。
【００６８】
パケットデータエントリが関連するフローのためのフローデータエントリをメモリ要素が含まないという決定が行われた場合、方法７００はステップ７５０に進む。ステップ７５０において、パケットデータエントリが関連するフローのためのフローデータエントリをメモリ要素内で作成する。ステップ７５５（随意のステップ）において、パケットデータエントリのパケットデータがフローデータエントリに書き込まれる前に、パケットデータエントリに基づいて追加の処理を実行する。ステップ７６０において、パケットデータエントリのパケットデータを、パケットデータエントリが関連するフローのためのメモリ要素内で作成されたフローデータエントリに書き込む。ステップ７６０から、方法７００はステップ７１０に戻る。
【００６９】
パケットデータエントリが関連するフローのための既存のフローデータエントリをメモリ要素が含むという決定が行われた場合、方法７００はステップ７７０に進む。ステップ７７０において、パケットデータエントリが関連するフローのための既存のフローデータエントリからフローのフローデータを抽出する。これは、既存のフローデータエントリを抽出すること、または既存のフローデータエントリのフローデータ部分のみを抽出することを含み得る。ステップ７８０において、更新済みのフローデータを形成するために、パケットデータエントリのパケットデータに基づいて既存のフローデータエントリのフローデータを更新する。ステップ７８５（随意のステップ）において、更新済みのフローデータがフローデータエントリに書き戻される前に、更新済みのフローデータに基づいて追加の処理を実行する。ステップ７９０において、更新済みのフローデータを、パケットデータエントリが関連するフローのためのフローデータエントリに書き戻す。ステップ７９０から、方法７００はステップ７１０に戻る。
【００７０】
方法７００のステップは、図５の参照によってさらに理解され得ることが諒解されよう。
【００７１】
本明細書で説明されるように、様々なタイプの処理機能がワイヤレス通信ネットワーク内でサポートされ得る。たとえば、ワイヤレス通信ネットワーク内でサポートされ得る処理機能は、課金機能、監視機能、セキュリティ機能など、ならびにそれらの様々な組合せを含み得る。ワイヤレス通信ネットワーク内でサポートされる（１つまたは複数の）処理機能は、データプレーン部分と制御プレーン部分とを含み得、それらの各々は様々なやり方で実装され得る。たとえば、ワイヤレス通信ネットワークの処理機能のデータプレーン部分は、ＦＥのハードウェア内で実装され得る。たとえば、図１−図７に関して示され、説明されたように、ワイヤレス通信ネットワークの処理機能のデータプレーン部分は、データプレーンスケーラビリティ要素（たとえば、ＦＥのＣＰＵの変更バージョン、ＦＥに関連する付属要素など、ならびにそれらの様々な組合せ）を使用して実装され得る。概して、処理機能のデータプレーン部分および制御プレーン部分の配備を含む、ワイヤレス通信ネットワークにおける処理機能の配備は、（たとえば、集中または分散配備を使用して）様々なやり方で実装され得る。処理機能のデータプレーン部分と制御プレーン部分との分離（および、特に、処理機能のデータプレーン部分のためのデータプレーンスケーラビリティ要素の実施形態の使用）は、ワイヤレス通信ネットワークにおける処理機能の配備においてより大きいフレキシビリティを与え得ることが諒解されよう。ワイヤレス通信ネットワークにおける、処理機能のデータプレーン部分の分散配備を含む、処理機能の分散配備は、様々なやり方で実装され得る（同じく、処理機能のデータプレーン部分のためのデータプレーンスケーラビリティ要素の実施形態の使用は、この点についてより大きいフレキシビリティを与え得る）。ワイヤレス通信ネットワークにおける処理機能のデータプレーン部分の分散配備は、ワイヤレス通信ネットワークにおける特定の処理機能の分散配備を考慮することによって、さらに理解され得る。したがって、ワイヤレス通信ネットワークにおける処理機能のデータプレーン部分の分散配備は、本明細書では主に、ワイヤレス通信ネットワークのための課金機能のコンテキスト内で提示されるが、課金機能のデータプレーン部分の分散配備の実施形態は、ワイヤレス通信ネットワーク内で実装され得る様々な他のタイプの処理機能（たとえば、監視、セキュリティなど）のデータプレーン部分の分散配備を与える際に使用されるか、または使用するために適応され得ることが諒解されよう。課金機能（および、したがって、同様に他のタイプの機能）のデータプレーン部分の分散配備は、図１−図７に関して示され、説明されたように、処理機能のデータプレーン部分のためのデータプレーンスケーラビリティ要素の実施形態を利用することも利用しないこともあることに留意されたい。
【００７２】
本明細書で説明されるように、処理機能のデータプレーンおよび制御プレーンの配備を含む、ワイヤレス通信ネットワークにおける処理機能の配備は、様々なやり方で実装され得る。概して、処理機能のデータプレーン部分は、集中または分散様式で実装され得る。４Ｇワイヤレスネットワークでは、たとえば、既存の４Ｇワイヤレスネットワークは、一般に、アンカー割当てが概して静的であるように課金機能のためのデータプレーンと制御プレーンとの間の制限された分離を有する（たとえば、ユーザのためのすべてのトラフィックは、一般に、すべての課金論理が単一のＦＥ（すなわち、ユーザのホームアンカー）中で実行され得るようにホームアンカーを横断する）が、課金機能のためのデータプレーンは、一般に、モバイルゲートウェイ（ＭＧＷ）／モバイルアンカー（ＭＡ）中に存在する。対照的に、５Ｇワイヤレスネットワークによって扱われる必要があり得るトラフィックの予想される爆発的増加を扱うために、５Ｇワイヤレスネットワーク中のＭＡは、エンドワイヤレスデバイスのより近くに配備され得る。その結果は、（所与のユーザのトラフィックが複数のＭＡを利用し得るように）ＭＡがフローごと粒度において割り当てられ得る、より分散されたアーキテクチャになる。その結果、課金データプレーンも、複数のＦＥ（たとえば、複数のＭＡ、単一のＭＡおよび複数のＢＴＳの複数のＢＴＳスイッチなど、ならびにそれらの様々な組合せ）にわたって課金データプレーン機能が分散され得るように、より分散され得る。例示的な実施形態が図８に示されている。
【００７３】
図８は、ワイヤレス通信ネットワークのための課金機能の分散配備をサポートするワイヤレス通信ネットワークの実施形態を示す。
【００７４】
ワイヤレス通信ネットワーク８００は、コントローラ８１０と、モバイルゲートウェイ（ＭＧＷ）／モバイルアンカー（ＭＡ）８２０と、複数のＢＴＳ要素８３０−１−８３０−Ｘ（まとめて、ＢＴＳ要素８３０）とを含む。ＢＴＳ要素８３０−１−８３０−Ｘは、それぞれ、ＵＥのそれぞれのセットにワイヤレスアクセスポイントを与えるＢＴＳ８３２−１−８３２−Ｘ（まとめて、ＢＴＳ８３２）を含む。ＢＴＳ要素８３０−１−８３０−Ｘは、それぞれ、ＢＴＳ８３２とＭＧＷ／ＭＡ８２０との間の通信を可能にするように構成されたＢＴＳスイッチ８３４−１−８３４−Ｘ（まとめて、ＢＴＳスイッチ８３４）を含む。
【００７５】
コントローラ８１０は、ワイヤレス通信ネットワーク８００の課金機能のための制御要素（ＣＥ）として動作するように構成され得（例示的に、コントローラ８１０は課金制御プレーン機能８１２を含み）、ＭＧＷ／ＭＡ８２０とＢＴＳスイッチ８３４とは、ワイヤレス通信ネットワーク８００の課金機能のためのフォワーディング要素（ＦＥ）として動作するように構成され得る（例示的に、ＭＧＷ／ＭＡ８２０はデータプレーン課金機能８２２を含み、ＢＴＳスイッチ８３４−１−８３４−Ｘはそれぞれのデータプレーン課金機能８３５−１−８３５−Ｘ（まとめて、データプレーン課金機能８３５）を含む）。課金制御プレーン機能８１２と課金データプレーン機能８２２および８３５とは、ワイヤレス通信ネットワーク８００のエンドユーザの課金をサポートするために協働し得る（例示的に、コントローラ８１０は、ＭＧＷ／ＭＡ８２０およびＢＴＳスイッチ８３４の各々と通信するように構成される）。課金データプレーン機能８２２および８３５は、図１−図７に関して示され、説明されたデータプレーンスケーラビリティ機能として実装され得る。
【００７６】
コントローラ８１０は、そのような分散課金モデルにおいて、ユーザによって使用されているＦＥ（例示的に、ユーザがそれを介して通信するＢＴＳ８３２に関連するＢＴＳスイッチ８３４）のすべてにわたってアグリゲートされるとき、ユーザの総データ使用量がユーザのための利用可能なクレジットを超えないことを保証するように構成され得る。一実施形態では、コントローラ８１０は、ユーザの利用可能なクレジットを動的に分割し、ユーザによって使用されるべき異なるＦＥに、ユーザの分割されたクレジットを割り当て得る。コントローラ８１０は、ユーザの（１つまたは複数の）ワイヤレスデバイス（例示的に、ＵＥのうちの１つまたは複数）からのデータアクティビティに応じて、ユーザによって使用されるべき異なるＦＥに、ユーザの分割されたクレジットを割り当て得る。次いで、ＦＥは、ユーザのための処理論理を独立して実行し得る。ユーザごとバイトカウントベース課金のための例示的なメッセージフローが、図９に関して示され、説明される。
【００７７】
図９は、図８のワイヤレス通信ネットワークのための課金機能の分散配備におけるユーザごとバイトカウントベース課金のためのメッセージフローの実施形態を示す。図９のメッセージフロー９００は、課金機能のための制御プレーンを与えるＣＥと課金機能のためのデータプレーンを与えるＦＥとの間の対話を示す。たとえば、図９のメッセージフロー９００は、図８のワイヤレス通信ネットワーク８００のコンテキスト内で使用され得る（たとえば、ここで、図９のＣＥは図８のコントローラ８１０であり、図９のＦＥは図８のＢＴＳスイッチ８３４のうちの１つである）。
【００７８】
メッセージフロー９００に示されているように、ユーザ接続プロセス中に、ＦＥは、ＦＥがユーザのためのクレジットを要求する要求メッセージをＣＥに送り（９１１）、ＣＥは、ユーザのためのＦＥに、ユーザの利用可能なクレジットの一部分を割り当て（９１２）、ＣＥは、ＣＥがＣＥによってＦＥに割り当てられたユーザのクレジットの数を示す応答メッセージをＦＥに送る（９１３）（例示的に、ＦＥは、ユーザのＸ１個のクレジットを使用することを許可される）。
【００７９】
メッセージフロー９００に示されているように、パケットハンドリングプロセス中に、ＦＥはユーザのパケットをハンドリングする（９２１）。ＦＥは、ユーザのパケットが受信されたとき、（たとえば、ユーザにとって利用可能な残りのクレジットの数から、受信されたパケットのバイト数を減算することによって）ユーザにとって利用可能な残りのクレジットの数を更新する。ＦＥは、次いで、クレジット管理に関係する様々な検査を実行し得る。ＦＥは、ユーザにとって利用可能な残りのクレジットの数が０であるかどうかを決定し得、ユーザにとって利用可能な残りのクレジットの数が０であるとの決定に基づいて、（たとえば、ＣＥが、以下でさらに説明されるようにＦＥによるユーザの追加のクレジットの使用を許可するまで）ユーザの将来のパケットがＦＥによってドロップされるべきであることを示すルールを設定し得る。ＦＥは、ユーザにとって利用可能な残りのクレジットの数がしきい値を下回るかどうかを決定し、ユーザにとって利用可能な残りのクレジットの数がしきい値を下回るとの決定に基づいて、ＦＥがユーザのための追加のクレジットを要求する新しい要求メッセージを開始し得る。以下でさらに説明されるように、ユーザの追加の利用可能なクレジットがＦＥによる使用のために許可される様式は、ユーザの最初の利用可能なクレジットが、ユーザが接続したときにＦＥによる使用のために許可された（上記で説明された）様式と同様であり得る。
【００８０】
メッセージフロー９００に示されているように、追加のクレジット割振りプロセス中に、ＦＥは、ＦＥがユーザのための追加のクレジットを要求する要求メッセージをＣＥに送り（９３１）、ＣＥは、ユーザのためのＦＥに、ユーザの利用可能なクレジットの一部分を割り当て（９３２）、ＣＥは、ＣＥがＣＥによってＦＥに割り当てられたユーザの追加のクレジットの数を示す応答メッセージをＦＥに送り（９３３）（例示的に、ＦＥはユーザのＸ２個のクレジットを使用することを許可され）、ＦＥは、ＣＥによってＦＥに割り当てられたユーザの追加のクレジットを含むように、利用可能なクレジットの数を更新する（９３４）。
【００８１】
メッセージフロー９００に示されているように、ＦＥを横断するユーザフローが完了した後に、ＦＥは、ＦＥが、ユーザのためのＦＥに割り振られたがそれによって使用されなかった（および、したがって、それらが将来におけるユーザのためのＣＥによる割当てのために利用可能になるようにＦＥによってＣＥに返却される）ユーザの未使用クレジットの数を示す未使用クレジット返却メッセージをＣＥに送る（９４１）。
【００８２】
主に、単一のＦＥのコンテキスト内で提示されるが、ＣＥは、ユーザがそれを介して通信し得る複数のＦＥにわたってユーザのクレジットを管理するために、ユーザの（１つまたは複数の）フローを同じくサポートする１つまたは複数の他のＦＥと、同様の様式で対話していることがあることが諒解されよう。
【００８３】
図１０は、ユーザがワイヤレスアクセスノード間を移るときの図８の例示的なワイヤレス通信ネットワーク中のユーザのダウンリンクトラフィックのための分散課金のためのプロセスの実施形態を示す。
【００８４】
図１０に示されているように、プロセス１０００が説明されるワイヤレス通信ネットワークは、図８に関して示され、説明されたワイヤレス通信ネットワーク８００の一部分を含む。すなわち、図１０に示されているワイヤレス通信ネットワークは、コントローラ８１０と、ＭＧＷ／ＭＡ８２０と、（ＢＴＳ８３２−１とＢＴＳスイッチ８３４−１とを含む）第１のＢＴＳ要素８３０−１と、（ＢＴＳ８３２−２とＢＴＳスイッチ８３４−２とを含む）第２のＢＴＳ要素８３０−２とを含む。プロセス１０００は、ユーザのダウンリンクトラフィックのための分散課金のためのプロセスであり、したがって、単一のＵＥが示されている。ＵＥは、最初にＢＴＳ８３２−１に関連し、次いで、ＢＴＳ８３２−２に関連することに移る。
【００８５】
図１０に示されているように、プロセス１０００は、ワイヤレス通信ネットワークのノードによって実行されるステップを含み、ワイヤレス通信ネットワークのノード間のシグナリングをも含む。ＵＥは、最初にＢＴＳ８３２−１に関連し、したがって、ＵＥのためのダウンリンクトラフィックが、最初に、ＭＧＷ／ＭＡ８２０からＢＴＳ８３２−１にトンネリングされ、ユーザのダウンリンクトラフィックのための課金をサポートするデータプレーン機能が、ＢＴＳスイッチ８３４−１上で実行される。ステップ１０１０において、ＵＥは、ＢＴＳ８３２−１に関連することからＢＴＳ８３２−２に関連することに移る。ステップ１０２０において、ユーザのためのダウンリンクトラフィックは、ＢＴＳ８３２−１を介してＭＧＷ／ＭＡ８２０からＢＴＳ８３２−２にトンネリングされ、ユーザのダウンリンクトラフィックのための課金をサポートするデータプレーン機能は、ＢＴＳスイッチ８３４−１上で実行され続ける。ＢＴＳ８３２−１を介した、ＢＴＳ８３２−２へのユーザのダウンリンクトラフィックの間接的なトンネリングは、トンネリングされたダウンリンクトラフィック１００１として示されている。ステップ１０３０において、ＢＴＳ８３２−２は、ＵＥが今ＢＴＳ８３２−２に関連することをコントローラ８１０に通知する。ステップ１０４０において、コントローラ８１０は、（ＢＴＳ８３２−１にユーザのダウンリンクトラフィックをトンネリングし、ＢＴＳ８３２−２にユーザのダウンリンクトラフィックをトンネリングすることをＢＴＳ８３２−１に頼るのではなく）ＢＴＳ８３２−２にユーザのダウンリンクトラフィックを直接トンネリングするように、ＭＧＷ／ＭＡ８２０を更新する。ＢＴＳ８３２−２へのユーザのダウンリンクトラフィックの直接的なトンネリングは、トンネリングされたダウンリンクトラフィック１００２として示されている。ステップ１０５０において、ＢＴＳスイッチ８３４−２が（たとえば、ユーザのためのアップリンクパケットをハンドリングしながら）ユーザのためのクレジットの割振りをまだ受信していない場合、ＢＴＳスイッチ８３４−２は、コントローラ８１０に、ユーザのためのクレジットを要求する。ステップ１０６０において、ユーザに対する課金責任は、ＢＴＳスイッチ８３４−１からＢＴＳスイッチ８３４−２に変更される。ＢＴＳスイッチ８３４−１は、（たとえば、ユーザのユーザトラフィックのためのアクティビティがないことによるタイムアウトの後に、コントローラ８１０またはＢＴＳスイッチ８３４−２からの要求に基づいてなど）ユーザのためのダウンリンク課金処理を終了する。ＢＴＳスイッチ８３４−１は、ＢＴＳスイッチ８３４−１に割り振られたがそれによって使用されなかったユーザの残ったクレジットをコントローラ８１０に通知し得る。ＢＴＳスイッチ８３４−２は、ユーザのためのダウンリンク課金処理を開始する。
【００８６】
図１１は、ユーザがワイヤレスアクセスノード間を移るときの図８の例示的なワイヤレス通信ネットワーク中のユーザのアップリンクトラフィックのための分散課金のためのプロセスの実施形態を示す。
【００８７】
図１１に示されているように、プロセス１１００が説明されるワイヤレス通信ネットワークは、図８に関して示され、説明されたワイヤレス通信ネットワーク８００の一部分を含む。すなわち、図１１に示されているワイヤレス通信ネットワークは、コントローラ８１０と、ＭＧＷ／ＭＡ８２０と、（ＢＴＳ８３２−１とＢＴＳスイッチ８３４−１とを含む）第１のＢＴＳ要素８３０−１と、（ＢＴＳ８３２−２とＢＴＳスイッチ８３４−２とを含む）第２のＢＴＳ要素８３０−２とを含む。プロセス１１００は、ユーザのアップリンクトラフィックのための分散課金のためのプロセスであり、したがって、単一のＵＥが示されている。ＵＥは、最初にＢＴＳ８３２−１に関連し、次いで、ＢＴＳ８３２−２に移る。
【００８８】
図１１に示されているように、プロセス１１００は、ワイヤレス通信ネットワークのノードによって実行されるステップを含み、ワイヤレス通信ネットワークのノード間のシグナリングをも含む。ＵＥは、最初にＢＴＳ８３２−１に関連し、したがって、ＵＥのためのアップリンクトラフィックが、最初に、ＢＴＳ８３２−１からＭＧＷ／ＭＡ８２０にトンネリングされ、ユーザのアップリンクトラフィックのための課金をサポートするデータプレーン機能が、ＢＴＳスイッチ８３４−１上で実行される。ステップ１１１０において、ＵＥは、ＢＴＳ８３２−１に関連することからＢＴＳ８３２−２に関連することに移る。その結果、ユーザのアップリンクトラフィックは、ＢＴＳ８３２−１からではなくＢＴＳ８３２−２からＭＧＷ／ＭＡ８２０にトンネリングされる。ＢＴＳ８３２−１からＭＧＷ／ＭＡ８２０へのユーザのアップリンクトラフィックのトンネリングは、トンネリングされたアップリンクトラフィック１１０１として示されている。ステップ１１２０において、ＢＴＳスイッチ８３４−２が（たとえば、ユーザのためのダウンリンクパケットをハンドリングしながら）ユーザのクレジットの割振りをまだ受信していない場合、ＢＴＳスイッチ８３４−２は、ＵＥから第１のアップリンクパケットを受信すると、コントローラ８１０に、ユーザのためのクレジットを要求する。ステップ１１３０において、ＢＴＳスイッチ８３４−２は、ユーザのためのアップリンク課金処理を開始する。
【００８９】
本明細書では主に、（たとえば、図８−図１１で示され、説明されるように）分散課金がユーザごとに実行される実施形態に関して提示されるが、少なくともいくつかの実施形態では、分散課金は、様々な他のレベルの粒度において与えられ得ることが諒解されよう。たとえば、本明細書で提示される分散課金の実施形態は、ユーザのグループのための課金をサポートするように適応され得る。たとえば、本明細書で提示される分散課金の実施形態は、複数のユーザが単一のプランを共有し、したがって、すべての家族がまとめて課金されるファミリープランについて、課金をサポートするように適応され得る。たとえば、本明細書で提示される分散課金の実施形態は、企業のすべてのＩｏＴデバイスの全データ使用量がまとめて課金され得るＭ２Ｍプランについて、課金をサポートするように適応され得る。本明細書で提示される分散課金の様々な実施形態は、様々な他のレベルの粒度における課金をサポートするように適応され得ることが諒解されよう。
【００９０】
本明細書では主に、処理機能がトランスポートレイヤ（たとえば、開放型システム間相互接続（ＯＳＩ：Ｏｐｅｎ  Ｓｙｓｔｅｍｓ  Ｉｎｔｅｒｃｏｎｎｅｃｔｉｏｎ）モデルのレイヤ４（Ｌ４）またはＴＣＰ／ＩＰモデルのＬ４）におけるまたはその下のパケット情報に基づいて実行されるスケーラブルデータプレーンの実施形態に関して提示されるが、スケーラブルデータプレーンの実施形態は、トランスポートレイヤより上の情報（たとえば、リアルタイムトランスポートプロトコル（ＲＴＰ）ヘッダ情報、ハイパーテキストトランスポートプロトコル（ＨＴＴＰ）など、ならびにそれらの様々な組合せ）に作用する処理機能をサポートする際に使用されるか、または使用するために適応され得ることが諒解されよう。トランスポートレイヤより上のそのような情報は、本明細書で説明される処理機能または通信ネットワーク内に与えられ得る様々な他の機能のうちの１つまたは複数をサポートするために使用され得る（たとえば、トランスポートレイヤより上の情報は、様々なタイプの監視またはセキュリティ機能を与える際に特に有用であり得る）ことが諒解されよう。
【００９１】
本明細書では主に、スケーラブルデータプレーンが特定のタイプのワイヤレス通信ネットワーク（すなわち、セルラーネットワーク）における処理機能をサポートするために使用されるスケーラブルデータプレーンの実施形態に関して提示されるが、スケーラブルデータプレーンの実施形態は、様々な他のタイプのワイヤレス通信ネットワークにおいて処理機能をサポートするために使用され得ることが諒解されよう。
【００９２】
本明細書では主に、スケーラブルデータプレーンが特定のタイプの通信ネットワーク（すなわち、ワイヤレス通信ネットワーク）における処理機能をサポートするために使用されるスケーラブルデータプレーンの実施形態に関して提示されるが、スケーラブルデータプレーンの実施形態は、様々な他のタイプの通信ネットワーク（たとえば、ワイヤライン通信ネットワークなど）における処理機能をサポートするために使用され得ることが諒解されよう。
【００９３】
図１２は、本明細書で説明される様々な機能を実行する際に使用するのに好適なコンピュータの上位レベルブロック図を示す。
【００９４】
コンピュータ１２００は、プロセッサ１２０２（たとえば、中央処理ユニット（ＣＰＵ）、プロセッサコアのセットを有するプロセッサ、プロセッサのプロセッサコアなど）とメモリ１２０４（たとえば、ランダムアクセスメモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）など）とを含む。プロセッサ１２０２とメモリ１２０４とは通信可能に接続される。
【００９５】
コンピュータ１２００は協働要素１２０５をも含み得る。協働要素１２０５はハードウェアデバイスであり得る。協働要素１２０５は、メモリ１２０４にロードされ、本明細書で説明される機能を実装するためにプロセッサ１２０２によって実行され得るプロセスであり得る（その場合、たとえば、（関連するデータ構造を含む）協働要素１２０５は、記憶デバイスまたは他の記憶要素（たとえば、磁気ドライブ、オプティカルドライブなど）など、コンピュータ可読記憶媒体に記憶され得る）。
【００９６】
コンピュータ１２００は、１つまたは複数の入出力デバイス１２０６をも含み得る。入出力デバイス１２０６は、ユーザ入力デバイス（たとえば、キーボード、キーパッド、マウス、マイクロフォン、カメラなど）、ユーザ出力デバイス（たとえば、ディスプレイ、スピーカーなど）、１つまたは複数のネットワーク通信デバイスまたは要素（たとえば、入力ポート、出力ポート、受信機、送信機、トランシーバなど）、１つまたは複数の記憶デバイス（たとえば、テープドライブ、フロッピードライブ、ハードディスクドライブ、コンパクトディスクドライブなど）などのうちの１つまたは複数、ならびにそれらの様々な組合せを含み得る。
【００９７】
図１２のコンピュータ１２００は、本明細書で説明される機能要素、本明細書で説明される機能要素の部分など、ならびにそれらの様々な組合せを実装するのに好適な、一般的なアーキテクチャおよび機能を表し得ることが諒解されよう。たとえば、コンピュータ１２００は、ＷＤ１１０、ＷＡＮ１２１、ＡＮ１２２、コントローラ１２３、ＣＥ２１０、ＦＥ２２０、ＦＥ３００、ＡＥ４３０、データプレーンスケーラビリティ要素５００、または本明細書で示され説明される様々な他の要素のうちの１つまたは複数を実装するのに好適である一般的なアーキテクチャおよび機能を与え得る。
【００９８】
本明細書で示され説明される機能は、（たとえば、専用コンピュータを実装するように、汎用コンピュータ上で実行するための、１つまたは複数のプロセッサ上のソフトウェアの実装を介して（たとえば、１つまたは複数のプロセッサによる実行を介して）など）ソフトウェアで実装され得、および／または（たとえば、汎用コンピュータ、１つまたは複数の特定用途向け集積回路（ＡＳＩＣ）、および／または任意の他のハードウェア均等物を使用して）ハードウェアで実装され得ることが諒解されよう。
【００９９】
ソフトウェア方法として本明細書で説明されるステップのうちの少なくともいくつかは、たとえば、様々な方法ステップを実行するためにプロセッサと協働する回路として、ハードウェア内に実装され得ることが諒解されよう。本明細書で説明される機能／要素の部分はコンピュータプログラム製品として実装され得、コンピュータ命令は、コンピュータによって処理されるとき、本明細書で説明される方法および／または技法が呼び出されるかまたはさもなければ与えられるようにコンピュータの動作を適応させる。発明的方法を呼び出すための命令は、固定または取外し可能なメディア（たとえば、非一時的コンピュータ可読媒体）に記憶され、ブロードキャストまたは他の信号担持媒体においてデータストリームを介して送信され、および／または命令に従って動作するコンピューティングデバイス内のメモリ内に記憶され得る。
【０１００】
本明細書で使用される「または（ｏｒ）」という用語は、別段に規定されていない限り（たとえば、「または他の場合は（ｏｒ  ｅｌｓｅ）」または「または代替として（ｏｒ  ｉｎ  ｔｈｅ  ａｌｔｅｒｎａｔｉｖｅ）」の使用）、非排他的「または（ｏｒ）」を指すことが諒解されよう。
【０１０１】
様々な実施形態の態様は、特許請求の範囲において指定される。様々な実施形態の態様はまた、以下の番号付けされた条項において指定される：
【０１０２】
条項１．  通信ネットワーク中でフォワーディング要素および制御要素によってサポートされる処理機能のデータプレーン部分をサポートするように構成された装置であって、
データパケットのセットについてのパケットデータを記憶するように構成されたパケットバッファデータ構造を維持するように構成された第１の記憶要素であって、パケットバッファデータ構造は、パケットデータを記憶するように構成されたパケットキューと、フローごとにパケットデータを記憶するように構成されたパケットアグリゲーションバッファとを備える、第１の記憶要素と、
フォワーディング要素がそれのためのパケットフォワーディングをサポートするデータフローのセットについてのフローデータを記憶するように構成された第２の記憶要素と、
第１の記憶要素および第２の記憶要素に通信可能に接続され、
フォワーディング要素のハードウェア要素から、第１のパケットの第１のパケットヘッダと第２のパケットの第２のパケットヘッダとを受信することと、
第１のパケットに関連する第１のパケットデータを決定することと、
パケットキューがしきい値を下回るという決定に基づいて、第１のパケットについての個々のパケットデータとして、パケットバッファデータ構造のパケットキューに第１のパケットデータを記憶することと、
第２のパケットに関連する第２のパケットデータを決定することと、
パケットキューがしきい値を超えるという決定に基づいてパケットバッファデータ構造のパケットアグリゲーションバッファに第２のパケットデータを記憶することと
を行うように構成された、プロセッサ要素と
を備える、装置。
【０１０３】
条項２．  プロセッサ要素が、処理機能に関連する処理論理を使用した第１のパケットヘッダの処理に基づいて、第１のパケットに関連する第１のパケットデータを決定するように構成される、条項１に記載の装置。
【０１０４】
条項３．  パケットキューに、第１のパケットに関連する第１のパケットデータを記憶するために、プロセッサ要素が、
パケットキューのパケットデータエントリとして、第１のパケットに関連する第１のパケットデータを挿入することであって、パケットデータエントリが、第１のパケットのデータフローを識別するフロー識別子と第１のパケットに関連する第１のパケットデータとを含む、挿入すること
を行うように構成される、条項１に記載の装置。
【０１０５】
条項４．  パケットアグリゲーションバッファに、第２のパケットに関連する第２のパケットデータを記憶するために、プロセッサ要素が、
第２のパケットが関連するデータフローを決定することと、
パケットアグリゲーションバッファがデータフローのためのエントリを含むかどうかを決定することと、
パケットアグリゲーションバッファがデータフローのためのエントリを含まないという決定に基づいて、パケットアグリゲーションバッファのパケットデータエントリとして、第２のパケットに関連する第２のパケットデータを挿入することであって、パケットデータエントリが、データフローを識別するフロー識別子と第２のパケットに関連する第２のパケットデータとを含む、挿入することと
を行うように構成される、条項１に記載の装置。
【０１０６】
条項５．  パケットアグリゲーションバッファに、第２のパケットに関連する第２のパケットデータを記憶するために、プロセッサ要素が、
第２のパケットが関連するデータフローを決定することと、
パケットアグリゲーションバッファがデータフローのためのエントリを含むかどうかを決定することと、
パケットアグリゲーションバッファがデータフローのためのエントリを含むという決定に基づいて、第２のパケットに関連する第２のパケットデータに基づいてデータフローのためのエントリを更新することと
を行うように構成される、条項１に記載の装置。
【０１０７】
条項６．  第２のパケットに関連する第２のパケットデータに基づいてデータフローのためのエントリを更新するために、プロセッサ要素が、
データフローのためのエントリからデータフローに関連するアグリゲートされたパケットデータを抽出することと、
第２のパケットに関連する第２のパケットデータに基づいて、データフローに関連するアグリゲートされたパケットデータを更新し、それによりデータフローに関連する更新済みのアグリゲートされたパケットデータを形成することと、
データフローに関連する、更新済みのアグリゲートされたパケットデータを、データフローに関連するエントリに書き込むことと
を行うように構成される、条項５に記載の装置。
【０１０８】
条項７．  プロセッサ要素が、アグリゲートされたパケットデータエントリを使用して、パケットアグリゲーションバッファに、第２のパケットに関連する第２のパケットデータを記憶するように構成され、プロセッサ要素が、
アグリゲートされたパケットデータエントリをパケットアグリゲーションバッファからパケットキューに移動する
ように構成される、条項１に記載の装置。
【０１０９】
条項８．  プロセッサ要素が、条件に基づいて、アグリゲートされたパケットデータエントリをパケットアグリゲーションバッファからパケットキューに移動するように構成される、条項７に記載の装置。
【０１１０】
条項９．  条件が、アグリゲートされたパケットデータエントリが緊急としてマークされるとの決定またはアグリゲートされたパケットデータエントリに関連するしきい値が満たされるとの決定のうちの少なくとも１つを備える、条項８に記載の装置。
【０１１１】
条項１０．  プロセッサ要素が、
パケットキューから、第１のパケットデータを含むパケットデータエントリを抽出することであって、第１のパケットデータはデータフローに関連する、抽出することと、
第１のパケットに関連する第１のパケットデータに基づいて、データフローについての更新済みのフローデータを決定することと、
第２のメモリに、データフローについての更新済みのフローデータを記憶することと、
制御要素のほうへ、データフローについての更新済みのフローデータを伝搬することと
を行うように構成される、条項１に記載の装置。
【０１１２】
条項１１．  第１のメモリ要素がキャッシュメモリを備え、第２のメモリ要素がメインメモリを備える、条項１に記載の装置。
【０１１３】
条項１２．  装置が、フォワーディング要素上に配設されるように構成されるか、またはフォワーディング要素に通信可能に接続された付属要素上に配設されるように構成される、条項１に記載の装置。
【０１１４】
条項１３．  通信ネットワーク中でフォワーディング要素および制御要素によってサポートされる処理機能のデータプレーン部分をサポートするように構成された装置であって、
データパケットのセットについてのパケットデータを記憶するように構成されたパケットバッファデータ構造を維持するように構成された第１の記憶要素であって、パケットバッファデータ構造は、パケットデータを記憶するように構成されたパケットキューと、フローごとにパケットデータを記憶するように構成されたパケットアグリゲーションバッファとを備える、第１の記憶要素と、
フォワーディング要素がそれのためのパケットフォワーディングをサポートするデータフローのセットについてのフローデータを記憶するように構成された第２の記憶要素と、
第１の記憶要素および第２の記憶要素に通信可能に接続され、
第１のメモリ要素のパケットキューから、パケットデータを備えるパケットデータエントリを抽出することであって、パケットデータは、データフローのうちの１つについての個々のパケットデータまたはデータフローのうちの１つについてのアグリゲートされたパケットデータを備える、抽出することと、
パケットデータエントリのパケットデータに基づいてデータフローのうちの１つについてのフローデータを決定することと、
第２のメモリ要素にデータフローのうちの１つについてのフローデータを記憶することと、
データフローのうちの１つについてのフローデータを制御要素のほうへ伝搬することと
を行うように構成された、プロセッサ要素と
を備える、装置。
【０１１５】
条項１４．  パケットデータエントリのパケットデータに基づいてデータフローのうちの１つについてのフローデータを決定するために、プロセッサ要素が、
第２のメモリ要素のフローデータエントリから、データフローのうちの１つに関連する既存のフローデータを抽出することと、
それによりデータフローのうちの１つについてのフローデータを決定するために、パケットデータエントリのパケットデータに基づいて、データフローのうちの１つに関連する既存のフローデータを更新することと
を行うように構成される、条項１３に記載の装置。
【０１１６】
条項１５．  第２のメモリ要素に、データフローのうちの１つについてのフローデータを記憶するために、プロセッサ要素が、
データフローのうちの１つについてのフローデータを第２のメモリ要素のフローデータエントリに書き込むこと
を行うように構成される、条項１４に記載の装置。
【０１１７】
条項１６．  プロセッサ要素が、データフローのうちの１つについてのフローデータに基づいて追加の処理を実行するように構成される、条項１３に記載の装置。
【０１１８】
条項１７．  追加の処理が、データフローのうちの１つを阻止すること、データフローのうちの１つをスロットリングすること、またはデータフローのうちの１つのサービス品質レベルを変更することのうちの少なくとも１つのために、データフローのうちの１つに関連するフローフォワーディングテーブルエントリを更新することを備える、条項１６に記載の装置。
【０１１９】
条項１８．  プロセッサ要素が、制御要素から、データフロー処理においてプロセッサ要素が実行するためのフロー処理命令を受信するように構成される、条項１３に記載の装置。
【０１２０】
条項１９．  フロー処理命令が、データフローのうちの１つのユーザのためのデータクレジット割振りを備え、フロー処理命令が、プロセッサ要素がユーザのデータフローのうちの１つをスロットリングまたは阻止することを可能にするように構成される、条項１８に記載の装置。
【０１２１】
条項２０．  第１のメモリ要素がキャッシュメモリを備え、第２のメモリ要素がメインメモリを備える、条項１３に記載の装置。
【０１２２】
条項２１．  装置が、フォワーディング要素上に配設されるように構成されるか、またはフォワーディング要素に通信可能に接続された付属要素上に配設されるように構成される、条項１３に記載の装置。
【０１２３】
条項２２．  通信ネットワーク中でフォワーディング要素および制御要素によってサポートされる処理機能のデータプレーン部分をサポートするように構成された装置であって、
第１のデータ構造および第２のデータ構造を維持するように構成された記憶要素であって、第１のデータ構造はデータパケットのセットについてのパケットデータを記憶するように構成され、第１のデータ構造は、パケットデータを記憶するように構成されたパケットキューと、フローごとにパケットデータを記憶するように構成されたパケットアグリゲーションバッファとを備え、第２のデータ構造は、フォワーディング要素がそれのためのパケットフォワーディングをサポートするデータフローのセットについてのフローデータを記憶するように構成された、記憶要素と、
記憶要素に通信可能に接続され、
フォワーディング要素のハードウェア要素から、パケットのパケットヘッダを受信することであって、パケットはデータフローに関連する、受信することと、
パケットに関連するパケットデータを決定することと、
パケットキューのサイズがしきい値を超えないという決定に基づいて、第１のデータ構造のパケットアグリゲーションバッファにではなく、第１のデータ構造のパケットキューに、パケットデータを記憶することと、
第１のデータ構造のパケットキューからパケットデータを抽出することと、
パケットデータに基づいて、データフローについてのフローデータを決定することと、
第２のデータ構造に、データフローについてのフローデータを記憶することと、
制御要素のほうへ、データフローについてのフローデータを伝搬することと
を行うように構成された、プロセッサ要素と
を備える、装置。
【０１２４】
本明細書で提示された教示を組み込む様々な実施形態が本明細書で詳細に図示および説明されたが、当業者はこれらの教示を依然として組み込む多くの他の変形実施形態を容易に考案することができることが諒解されよう。
【図１】
2019500818.tif 000003
【図２】
2019500818.tif 000004
【図３】
2019500818.tif 000005
【図４】
2019500818.tif 000006
【図５】
2019500818.tif 000007
【図６】
2019500818.tif 000008
【図７】
2019500818.tif 000009
【図８】
2019500818.tif 000010
【図９】
2019500818.tif 000011
【図１０】
2019500818.tif 000012
【図１１】
2019500818.tif 000013
【図１２】
2019500818.tif 000014
【手続補正書】
【提出日】平成30年8月21日(2018.8.21)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
装置であって、
データフローのセットのデータパケットのセットについてのパケットデータを記憶するように構成されたパケットバッファデータ構造を維持するように構成された記憶要素であって、パケットバッファデータ構造は、データフローのセットのデータパケットに関連するパケットデータを記憶するように構成されたパケットキューと、フローごとにデータフローのセットのデータパケットに関連するパケットデータを記憶するように構成されたパケットアグリゲーションバッファとを備える、記憶要素と、
記憶要素に通信可能に接続され、
第１のデータパケットの第１のパケットヘッダと第２のデータパケットの第２のパケットヘッダとを受信することと、
第１のパケットヘッダの処理に基づいて、第１のデータパケットに関連する第１のパケットデータを決定することと、
パケットキューがしきい値を満たさないという決定に基づいて、第１のデータパケットについての個々のパケットデータとして、パケットキューに第１のパケットデータを記憶することと、
第２のパケットヘッダの処理に基づいて、第２のデータパケットに関連する第２のパケットデータを決定することと、
パケットキューがしきい値を満たすという決定に基づいて、第２のデータパケットが関連するデータフローのうちの１つに関連するフローごとパケットデータエントリを使用して、第２のデータパケットが関連するデータフローのうちの１つについてのアグリゲートされたパケットデータとして、パケットアグリゲーションバッファに第２のパケットデータを記憶することと
を行うように構成された、プロセッサ要素と
を備える、装置。
【請求項２】
パケットキューに、第１のデータパケットに関連する第１のパケットデータを記憶するために、プロセッサ要素が、
パケットキューのパケットデータエントリを使用して、パケットキュー内に、第１のデータパケットに関連する第１のパケットデータを挿入することであって、パケットデータエントリが、第１のデータパケットのデータフローを識別するフロー識別子を含み、第１のデータパケットに関連する第１のパケットデータを含む、挿入すること
を行うように構成される、請求項１に記載の装置。
【請求項３】
パケットアグリゲーションバッファに、第２のデータパケットに関連する第２のパケットデータを記憶するために、プロセッサ要素が、
第２のデータパケットが関連するデータフローのうちの１つを決定することと、
パケットアグリゲーションバッファが、第２のデータパケットが関連するデータフローのうちの１つのためのフローごとパケットデータエントリを含むかどうかを決定することと、
パケットアグリゲーションバッファが、第２のデータパケットが関連するデータフローのうちの１つのためのフローごとパケットデータエントリを含まないという決定に基づいて、データフローのうちの１つのためのフローごとパケットデータエントリを使用して、パケットアグリゲーションバッファ内に、第２のデータパケットに関連する第２のパケットデータを挿入することであって、フローごとパケットデータエントリは、第２のデータパケットが関連するデータフローのうちの１つを識別するフロー識別子を含み、第２のデータパケットに関連する第２のパケットデータを含む、挿入することと
を行うように構成される、請求項１に記載の装置。
【請求項４】
パケットアグリゲーションバッファに、第２のデータパケットに関連する第２のパケットデータを記憶するために、プロセッサ要素が、
第２のデータパケットが関連するデータフローのうちの１つを決定することと、
パケットアグリゲーションバッファが、第２のデータパケットが関連するデータフローのうちの１つのためのフローごとパケットデータエントリを含むかどうかを決定することと、
パケットアグリゲーションバッファが、第２のデータパケットが関連するデータフローのうちの１つのためのフローごとパケットデータエントリを含むという決定に基づいて、第２のデータパケットに関連する第２のパケットデータに基づいて第２のデータパケットが関連するデータフローのうちの１つのためのフローごとパケットデータエントリを更新することと
を行うように構成される、請求項１に記載の装置。
【請求項５】
第２のデータパケットに関連する第２のパケットデータに基づいて第２のデータパケットが関連するデータフローのうちの１つのためのフローごとパケットデータエントリを更新するために、プロセッサ要素が、
第２のデータパケットが関連するデータフローのうちの１つのためのフローごとパケットデータエントリから、第２のデータパケットが関連するデータフローのうちの１つに関連するアグリゲートされたパケットデータを抽出することと、
第２のデータパケットに関連する第２のパケットデータに基づいて、第２のデータパケットが関連するデータフローのうちの１つに関連するアグリゲートされたパケットデータを更新し、それにより第２のデータパケットが関連するデータフローのうちの１つに関連する、更新済みのアグリゲートされたパケットデータを形成することと、
第２のデータパケットが関連するデータフローのうちの１つに関連する更新済みのアグリゲートされたパケットデータを、第２のデータパケットが関連するデータフローのうちの１つに関連するフローごとパケットデータエントリに書き込むことと
を行うように構成される、請求項４に記載の装置。
【請求項６】
プロセッサ要素が、
フローごとパケットデータエントリをパケットアグリゲーションバッファからパケットキューに移動する
ように構成される、請求項１に記載の装置。
【請求項７】
プロセッサ要素が、条件に基づいて、フローごとパケットデータエントリをパケットアグリゲーションバッファからパケットキューに移動するように構成される、請求項６に記載の装置。
【請求項８】
プロセッサ要素が、第２のデータパケットが関連するデータフローのうちの１つについてのアグリゲートされたパケットデータをパケットアグリゲーションバッファからパケットキューに移動するように構成される、請求項１に記載の装置。
【請求項９】
装置であって、
データフローのセットのデータパケットのセットについてのパケットデータを記憶するように構成されたパケットバッファデータ構造を維持するように構成された第１の記憶要素であって、パケットバッファデータ構造は、データフローのセットのデータパケットに関連するパケットデータを記憶するように構成されたパケットキューと、データフローのためのそれぞれのフローごとパケットデータエントリを使用して、フローごとにデータフローのセットのデータパケットに関連するパケットデータを記憶するように構成されたパケットアグリゲーションバッファとを備える、第１の記憶要素と、
データフローのセットについてのフローデータを記憶するように構成された第２の記憶要素と、
第１の記憶要素および第２の記憶要素に通信可能に接続され、
第１の記憶要素のパケットキューから、データフローのうちの１つのデータパケットのうちの１つについての個々のパケットデータを備える個々のパケットデータエントリと、データフローのうちの１つについてのアグリゲートされたパケットデータを備えるフローごとパケットデータエントリとを抽出することと、
個々のパケットデータエントリの個々のパケットデータに基づいて、およびフローごとパケットデータエントリのアグリゲートされたパケットデータに基づいて、データフローのうちの１つについてのフローデータを決定することと、
第２の記憶要素にデータフローのうちの１つについてのフローデータを記憶することと、
データフローのうちの１つについてのフローデータを制御要素のほうへ送ることと
を行うように構成された、プロセッサ要素と
を備える、装置。
【請求項１０】
装置であって、
データフローのセットのデータパケットについてのパケットデータを記憶するように構成されたパケットバッファデータ構造を維持するように構成された記憶要素であって、パケットバッファデータ構造は、データフローのセットのデータパケットに関連するパケットデータを記憶するように構成されたパケットキューと、データフローのためのそれぞれのフローごとパケットデータエントリを使用して、フローごとにデータフローのセットのデータパケットに関連するパケットデータを記憶するように構成されたパケットアグリゲーションバッファとを備える、記憶要素と、
記憶要素に通信可能に接続され、
データフローのうちの１つに関連するデータパケットのパケットヘッダを受信することと、
パケットヘッダの処理に基づいて、データパケットに関連するパケットデータを決定することと、
パケットキューがしきい値を満たすという決定に基づいて、データフローのうちの１つのためのフローごとパケットデータエントリを使用して、データフローのうちの１つについてのアグリゲートされたパケットデータとして、パケットアグリゲーションバッファにデータパケットに関連するパケットデータを記憶することと、
条件に基づいて、データフローのうちの１つについてのアグリゲートされたパケットデータをパケットアグリゲーションバッファからパケットキューに移動することと
を行うように構成された、プロセッサ要素と
を備える、装置。
【国際調査報告】
2019500818.tif 000015
2019500818.tif 000016
2019500818.tif 000017