JP7686380B2 - COMMUNICATION DEVICE, CONTROL METHOD, AND PROGRAM - Google Patents
COMMUNICATION DEVICE, CONTROL METHOD, AND PROGRAM Download PDFInfo
- Publication number
- JP7686380B2 JP7686380B2 JP2020166969A JP2020166969A JP7686380B2 JP 7686380 B2 JP7686380 B2 JP 7686380B2 JP 2020166969 A JP2020166969 A JP 2020166969A JP 2020166969 A JP2020166969 A JP 2020166969A JP 7686380 B2 JP7686380 B2 JP 7686380B2
- Authority
- JP
- Japan
- Prior art keywords
- address information
- transmission queue
- mac
- mac frame
- wireless
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Mobile Radio Communication Systems (AREA)
Description
本発明は、MAC(Media Access Control)フレームをアグリゲーション可能な通信装置に関する。 The present invention relates to a communication device capable of aggregating MAC (Media Access Control) frames.
無線LAN規格(IEEE802.11nおよびac)では、MACフレームを束ねてデータの送信効率を増すことで通信速度を向上させるA-MSDU(Aggregation-MAC Service Data Unit)が規定されている。A-MSDUによりMACフレームをアグリゲーションすることで、データの送信期間に対する送信待ち時間およびACK待ち時間などのプロトコル上で必要となる期間を低減し、通信速度を改善することができる。 Wireless LAN standards (IEEE802.11n and ac) prescribe A-MSDU (Aggregation-MAC Service Data Unit), which improves communication speeds by bundling MAC frames to increase data transmission efficiency. By aggregating MAC frames using A-MSDU, it is possible to reduce the time required by the protocol, such as the transmission waiting time and ACK waiting time for the data transmission period, and improve communication speeds.
例えば、特許文献1には、標準規格で規定される送信時間の制約を遵守しつつ、フレームの最大長を決定し、その範囲内でデータフレームを結合してスループットを向上させる技術が開示されている。
For example,
一方、A-MSDUを実現するためには、無線ドライバにおいて送信時に上位層のプロトコルスタックで生成されるMACフレームをA-MSDUのフレームフォーマットに従って連結する必要がある。一般的な実装としては、プロトコルスタックが生成したMACフレームをキューに投入し、無線ドライバがキューから取り出して既定のフレーム数のMACフレームを連結し、無線ヘッダを付加して無線通信フレームを生成し、無線デバイスへ転送する。また、複数の宛先と無線通信を行う場合には、複数のキューを用意して宛先ごとにMACフレームを連結する。 On the other hand, to implement A-MSDU, the MAC frames generated by the upper layer protocol stack at the time of transmission must be concatenated in the wireless driver according to the A-MSDU frame format. In a typical implementation, the MAC frames generated by the protocol stack are put into a queue, and the wireless driver takes them out of the queue, concatenates a preset number of MAC frames, adds a wireless header to generate a wireless communication frame, and transfers it to the wireless device. Also, when performing wireless communication with multiple destinations, multiple queues are prepared and MAC frames are concatenated for each destination.
しかしながら、組み込み製品では、使用できるメモリ容量が少ないため、複数の宛先ごとにキューを持つと、メモリリソースが不足するおそれがある。一方、少ないキューでアグリゲーションを実現する場合、複数の宛先へのMACフレームがキュー内で混在し、適切にアグリゲーションできず、スループットが低下するおそれがある。 However, in embedded products, the memory capacity available is small, so having a queue for each of multiple destinations can lead to memory resource shortages. On the other hand, when achieving aggregation with a small number of queues, MAC frames for multiple destinations can be mixed in the queue, preventing proper aggregation and causing a risk of reduced throughput.
本発明は、上述の課題を鑑み、メモリリソースの増大を抑制しつつ、複数の宛先へのアグリゲーションを適正化することを目的とする。 In consideration of the above-mentioned problems, the present invention aims to optimize aggregation to multiple destinations while suppressing an increase in memory resources.
本発明の一つの態様による通信装置は、通信装置であって、MAC(Media Access Control)フレームに対応するデータを格納した構造体の情報を第1のメモリ領域を用いて管理する管理手段と、第1のメモリ領域とは異なる第2のメモリ領域のFIFO(First In First Out)構造の送信キューと、前記管理手段による管理対象として新たに生成された構造体のメモリ番地にアクセスするためのアドレス情報を前記送信キューの末尾に投入する第1処理で前記データを処理するか、前記送信キューにアドレス情報を投入することなしに、前記送信キューに投入済みのMACフレームに対応する構造体に紐づけて管理する第2処理で前記データを処理するかを当該新たに生成された構造体に対応するMACフレームの宛先MACアドレスの情報と、アグリゲーションの上限サイズとを少なくとも用いて判定する判定手段と、前記判定手段により、前記管理手段による管理対象として前記新たに生成された構造体に対応するMACフレームのメモリ番地にアクセスするためのアドレス情報を前記送信キューの末尾に投入する第1処理で前記データを処理すると判定した場合、当該新たに生成された構造体のメモリ番地にアクセスするためのアドレス情報を前記送信キューの末尾に送信待ち状態で投入する投入手段と、前記送信キューに格納されたアドレス情報に基づきSDIO(Secure Digital Input/Output)、PCIe(Peripheral Component Interconnect-Express)、又はUSB(Universal Serial Bus)のうちのいずれか1つのインタフェースを介して前記通信装置のホストシステムと接続された無線制御部に対して当該インタフェースを介して無線フレームを転送する転送制御手段と、を有し、新たに生成された構造体に対応するMACフレームの宛先MACアドレスの情報が、前記送信キューに送信待ち状態で投入されているいずれのアドレス情報に対応する構造体に対応するMACフレームの宛先MACアドレスの情報とも一致しないことに従って前記判定手段は、前記管理手段による管理対象として新たに生成された構造体のメモリ番地にアクセスするためのアドレス情報を前記送信キューの末尾に投入する前記第1処理で前記データを処理すると判定し、新たに生成された構造体に対応するMACフレームの宛先MACアドレスの情報が、前記送信キューに送信待ち状態で投入されているいずれかのアドレス情報に対応する構造体に対応するMACフレームの宛先MACアドレスの情報と一致し、尚且つ、前記上限サイズ以下で前記送信キューに投入済みのアドレス情報に対応する構造体に対応するMACフレームと新たに生成された構造体に対応するMACフレームとを紐づけすることができると判定した場合に、前記判定手段は、前記送信キューに前記管理手段による管理対象として新たに生成された構造体のメモリ番地にアクセスするためのアドレス情報を投入することなしに、前記送信キューに投入済みのMACフレームに対応する構造体に関連付けて管理する前記第2処理で前記データを処理すると判定し、新たに生成された構造体に対応するMACフレームの宛先MACアドレスの情報が、前記送信キューに送信待ち状態で投入されているいずれかのアドレス情報に対応する構造体に対応するMACフレームの宛先MACアドレスの情報と一致するが、前記送信キューに投入済みのアドレス情報に対応する構造体が指し示すMACフレームと新たに生成された構造体に対応するMACフレームとを前記アグリゲーションの上限サイズ以下で紐づけることができないと判定した場合に、前記判定手段は、前記管理手段による管理対象として新たに生成された構造体のメモリ番地にアクセスするためのアドレス情報を前記送信キューの末尾に投入する前記第1処理で前記データを処理すると判定し、前記判定手段によって前記新たに生成された構造体のメモリ番地にアクセスするためのアドレス情報を前記送信キューの末尾に投入することなしに、前記送信キューに投入済みのMACフレームに対応する構造体に対応付けて管理する前記第2処理で前記データを処理すると判定した場合、前記管理手段は、前記上限サイズ以下で前記送信キューに投入済みのアドレス情報に対応する構造体と、前記新たに生成された構造体とを紐づける管理処理を行い、前記判定手段によって前記管理手段による管理対象として新たに生成された構造体のメモリ番地にアクセスするためのアドレス情報を前記送信キューの末尾に投入する前記第1処理に進めると判定された場合に、前記投入手段は、第1のメモリ領域で管理する前記新たに生成された構造体の当該アドレス情報を前記送信キューの末尾に投入する処理を行い、前記送信キューに送信待ち状態で格納されているアドレス情報で特定されるMACフレームに基づく無線フレームを前記無線制御部に転送すると判断した前記転送制御手段は、前記FIFO構造の前記送信キューをデキューすることで先頭に格納されているアドレス情報を取得し、該取得したアドレス情報に基づき前記第1のメモリ領域の構造体を参照し、当該参照した構造体に別の1以上の構造体が紐づけられている場合には、前記参照した構造体により特定されるMACフレームと、前記紐づけられている前記別の1以上の構造体により特定される1以上のMACフレームとをアグリゲーションする処理を行うことでアグリゲーションされた無線フレームが前記無線制御部に転送されるように制御する一方、当該参照した構造体に別の構造体が紐づけられていない場合には、アグリゲーションする処理を行わずアグリゲーション処理されていない当該参照した構造体に対応する1つのMACフレームを含む無線フレームが前記無線制御部に転送されるように制御し、前記送信キューに複数のアドレス情報が送信待ち状態で格納されている状態で、前記無線制御部に転送すると判断した前記転送制御手段は、前記FIFO構造の前記送信キューから順にアドレス情報をデキューすることで、前記送信キューに積まれた複数のアドレス情報の個数に対応する個数の複数の無線フレームを生成し、該生成した複数の無線フレームらが前記無線制御部に転送されるよう制御する、ことを特徴とする。 A communication device according to one aspect of the present invention is a communication device, comprising: a management unit that uses a first memory area to manage information of a structure that stores data corresponding to a MAC (Media Access Control) frame; and a FIFO (First In First Out) storage unit that stores information of a structure that stores data corresponding to a MAC (Media Access Control) frame. a transmission queue having a structure of a destination MAC address of a MAC frame corresponding to the newly generated structure and an upper limit size of an aggregation , determining whether to process the data by a first process of inserting address information for accessing a memory address of a structure newly generated as a management target by the management means into the tail of the transmission queue, or to process the data by a second process of managing the data in association with a structure corresponding to a MAC frame already inserted into the transmission queue without inserting address information into the transmission queue, using at least information on a destination MAC address of a MAC frame corresponding to the newly generated structure and an upper limit size of an aggregation; an inserting means for inserting address information for accessing a memory address of the newly generated structure into the tail of the transmission queue in a transmission waiting state based on the address information stored in the transmission queue, and a transfer control means for transferring a wireless frame via one of an interface of a USB (Universal Serial Bus) or a USB (Interconnect-Express) to a wireless control unit connected to a host system of the communication device, the transfer control means determining that the data is to be processed by the first process of putting address information for accessing a memory address of a newly generated structure as a target for management by the management means, into the tail of the transmission queue, in accordance with a determination that destination MAC address information of a MAC frame corresponding to a newly generated structure does not match destination MAC address information of a MAC frame corresponding to a structure corresponding to any of address information put into the transmission queue in a waiting state for transmission, and determining that the data is to be processed by the first process of putting address information for accessing a memory address of a newly generated structure as a target for management by the management means, into the tail of the transmission queue, in accordance with a determination that destination MAC address information of a MAC frame corresponding to a newly generated structure matches destination MAC address information of a MAC frame corresponding to a structure corresponding to any of address information put into the transmission queue in a waiting state for transmission, and and when it is determined that the MAC frame corresponding to the newly generated structure can be linked with the MAC frame already put into the transmission queue, the determination means determines to process the data by the second process of managing the data in association with the structure corresponding to the MAC frame already put into the transmission queue, without putting address information for accessing a memory address of a structure newly generated as a target for management by the management means into the transmission queue, and when it is determined that destination MAC address information of the MAC frame corresponding to the newly generated structure matches destination MAC address information of the MAC frame corresponding to a structure corresponding to any of the address information put into the transmission queue in a transmission waiting state, but the MAC frame indicated by the structure corresponding to the address information already put into the transmission queue and the MAC frame corresponding to the newly generated structure cannot be linked within an upper limit size of the aggregation, the determination means determines to process the data by the first process of putting address information for accessing a memory address of a structure newly generated as a target for management by the management means into the tail of the transmission queue, and when it is determined that the MAC frame indicated by the structure corresponding to the address information already put into the transmission queue cannot be linked with the MAC frame corresponding to the newly generated structure within an upper limit size of the aggregation, the determination means When it is determined that the data should be processed by the second process of managing the data in association with a structure corresponding to a MAC frame already put into the transmission queue without putting address information for accessing a memory address of a structure that has been put into the transmission queue and is equal to or smaller than the upper limit size, the management means performs a management process of linking the newly generated structure with a structure that corresponds to the address information already put into the transmission queue and is equal to or smaller than the upper limit size, and when it is determined by the determination means to proceed to the first process of putting address information for accessing a memory address of a structure newly generated as a target for management by the management means into the tail of the transmission queue, the putting means performs a process of putting the address information of the newly generated structure managed in a first memory area into the tail of the transmission queue, and when it is determined that the data should be processed by the second process of managing the data in association with a structure corresponding to a MAC frame already put into the transmission queue without putting address information for accessing a memory address of a structure that has been put into the transmission queue and is equal to or smaller than the upper limit size, the putting means and when another structure or structures are linked to the referenced structure, the transfer control means performs a process of aggregating a MAC frame specified by the referenced structure with one or more MAC frames specified by the other one or more linked structures, thereby controlling the aggregated wireless frame to be transferred to the wireless control unit, while when another structure is not linked to the referenced structure, the transfer control means does not perform a process of aggregation, and controls the transfer of a wireless frame including one MAC frame corresponding to the referenced structure that has not been aggregated, to the wireless control unit. When a plurality of pieces of address information are stored in the transmission queue in a waiting state for transmission, the transfer control means, which has determined to transfer the data to the wireless control unit, dequeues address information in order from the transmission queue of the FIFO structure, and controls the transfer of the generated plurality of wireless frames to the wireless control unit.
本発明によれば、メモリリソースの増大を抑制しつつ、複数の宛先へのグリゲーションを適正化することができる。 According to the present invention, it is possible to optimize aggregation to multiple destinations while suppressing the increase in memory resources.
以下、添付図面を参照して本発明の実施形態を詳細に説明する。なお、以下の実施形態は本発明を限定するものではなく、また、実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。実施形態の構成は、本発明が適用される装置の仕様や各種条件(使用条件、使用環境等)によって適宜修正または変更され得る。本発明の技術的範囲は、特許請求の範囲によって確定されるのであって、以下の個別の実施形態によって限定されない。 The following describes in detail the embodiments of the present invention with reference to the attached drawings. Note that the following embodiments do not limit the present invention, and not all of the combinations of features described in the embodiments are necessarily essential to the solution of the present invention. The configuration of the embodiments may be modified or changed as appropriate depending on the specifications of the device to which the present invention is applied and various conditions (conditions of use, environment of use, etc.). The technical scope of the present invention is determined by the claims, and is not limited by the individual embodiments below.
図1は、実施形態に係る通信ネットワークの構成例を示すブロック図である。
図1において、通信システム11は、通信装置1~4を備える。図1の例では、通信装置1は、アクセスポイント、通信装置2~4は、ステーションである。通信装置1~4は、カメラ、プリンタ、タブレット、PC(Personal Computer)などの通信機能を備えた装置である。このとき、通信システム11は、インフラストラクチャーモードの無線ネットワークを構成することができる。インフラストラクチャーモードは、IEEE802.11で規定される無線LANの動作モードの1つである。インフラストラクチャーモードでは、アクセスポイントを介してステーション間の通信が行われる。例えば、インフラストラクチャーモードでは、通信装置2であるカメラが撮影した動画像を、通信装置1を介して通信装置3、4に送信し、通信装置3、4である複数のディスプレイに表示することができる。あるいは、通信装置2であるタブレットで編集したコンテンツを、通信装置1を介して通信装置3、4に送信し、通信装置3、4である複数のプリンタで用途別に印刷することができる。
FIG. 1 is a block diagram illustrating an example of the configuration of a communication network according to an embodiment.
In FIG. 1, the
通信装置2は、通信装置1を介して、動画像または印刷データを無線パケットとして通信装置3、4へ送信する。このとき、通信装置1は、各通信装置3、4の無線パケットを同時にハンドリングするため、アグリゲーション処理を効率化し、通信速度を向上させる。例えば、通信装置1は、各通信装置3、4に対して許容される最大のアグリゲーションサイズの無線パケットを送信することで、通信速度を向上させることができる。
また、通信装置2においても、通信装置1が各通信装置3、4に効率よくアグリゲーションしたパケットを送信できるように、宛先ごとに最大のアグリゲーションサイズで送信することができる。ここで、各通信装置1~4が許容する最大のアグリゲーションサイズは、予め機器のスペックおよび通信リンク方式により決められる。例えば、通信リンク方式としてIEEE802.11acで接続する場合には、A-MSDUの最大アグリゲーションサイズは10Kバイトであり、IEEE802.11nの場合は、最大アグリゲーションサイズは8Kバイトである。
Furthermore,
また、通信装置1、2間には無線リンク12が設定され、通信装置1、3間には無線リンク13が設定され、通信装置1、4間には無線リンク14が設定される。このとき、各通信装置1~4は、ケーパビリティーを予め交換し合うことで無線リンク12~14における最大アグリゲーションサイズを決定することができる。例えば、無線リンク12、13は、IEEE802.11acで接続され、無線リンク14は、IEEE802.11nで接続されるものとする。ただし、通信装置4は、スペックの制約で6Kバイトまでのアグリゲーションに対応しているものとする。この場合、各通信装置1、2は、最大アグリゲーションサイズを管理するテーブルを宛先ごとに持ち、宛先が通信装置3の場合には最大10Kバイトのアグリゲーションを実行し、通信装置4の場合には最大6Kバイトのアグリゲーションを実行する。
A
図2は、実施形態に係る通信装置の構成例を示すブロック図である。なお、図2は、図1の通信装置1を例にとるが、通信装置2~4も同様に構成することができる。
図2に示す通信装置1の各機能モジュールのうち、ソフトウェアにより実現される機能については、各機能モジュールの機能を提供するためのプログラムがROM(Read Only Memory)等のメモリに記憶される。そして、そのプログラムをRAM(Random Access Memory)に読み出してCPU(Central Processing Unit)が実行することにより実現される。ハードウェアにより実現される機能については、例えば、所定のコンパイラを用いることで、各機能モジュールの機能を実現するためのプログラムからFPGA上に自動的に専用回路を生成すればよい。FPGAとは、Field Programmable Gate Arrayの略である。また、FPGAと同様にしてGate Array回路を形成し、ハードウェアとして実現するようにしてもよい。また、ASIC(Application Specific Integrated Circuit)により実現するようにしてもよい。なお、図2に示した機能ブロックの構成は一例であり、複数の機能ブロックが1つの機能ブロックを構成するようにしてもよいし、いずれかの機能ブロックが複数の機能を行うブロックに分かれてもよい。
Fig. 2 is a block diagram showing an example of the configuration of a communication device according to an embodiment. Note that Fig. 2 takes the
Of the functional modules of the
図2において、通信装置1は、CPU21、オンチップメモリ22、メインメモリ23および無線制御部24を備える。CPU21、オンチップメモリ22、メインメモリ23および無線制御部24は、システムバス25を介して互いに接続されている。システムバス25は、各種データの転送経路である。
In FIG. 2, the
CPU21は、OS(Operating System)またはデバイスドライバを介して各ハードウェア構成部を統括的に制御し、通信装置1を制御する。CPU21は、GPU(Graphics Processing Unit)であってもよい。CPU21は、アプリケーション210、プロトコルスタック211および無線ドライバ212を備える。無線ドライバ212は、連結サイズ決定部213、キュー管理部214、リスト管理部215および管理種別選択部216を備える。
The
オンチップメモリ22は、CPU21で実行されるOSおよびデバイスドライバなどの制御プログラムを格納する。オンチップメモリ22は、送信キュー217を備える。
メインメモリ23は、CPU21で実行されるアプリケーション210、プロトコルスタック211および無線ドライバ212の各種プログラムおよびデータを記憶したり、ワークエリアを提供したりする。
The on-
The
無線制御部24は、無線ネットワークを介し、相手の通信装置と通信を行う。無線制御部24は、CPU21、オンチップメモリ22およびメインメモリ23から構成されるホストシステムと接続するためのSDIO、PCIeまたはUSBなどのインターフェースから構成される。SDIOは、Secure Digital Input/Output、PCIeは、Peripheral Component Interconnect-Express、USBは、Universal Serial Busである。
The
通信装置1において、データ通信を行う場合は、アプリケーション210により、ソケットAPI(Application Programming Interface)がコールされる。
プロトコルスタック211は、TCP/IP(Transmission Control Protocol /Internet Protocol)等のプロトコル処理を行い、MACフレームを生成する。
When data communication is performed in the
The
無線ドライバ212は、プロトコルスタック211からMACフレームを受け取り、無線通信フレームを生成する際に複数のMACフレームに対してアグリゲーション処理を行う。このとき、無線ドライバ212は、送信キュー217に積まれた順にMACフレームのアグリゲーション処理を行い、無線ヘッダを付加して無線通信フレームとして無線制御部24に転送する。このアグリゲーション処理では、無線ドライバ212は、各宛先のアグリゲーションサイズ以下でMACフレームを宛先ごとに連結する。このとき、無線ドライバ212は、A-MSDUを実現するために、プロトコルスタック211で生成されるMACフレームをA-MSDUのフレームフォーマットに従って連結する。
The
連結サイズ決定部213は、複数の宛先ノードごとにアグリゲーションサイズを決定する。例えば、図1の通信装置1が各通信装置3、4にMACフレームを送信する場合、宛先ノードは各通信装置3、4である。連結サイズ決定部213は、複数の宛先ノードごとに設定されたアグリゲーションサイズを格納するテーブルを備えてもよい。連結サイズ決定部213は、複数の宛先ノードごとのアグリゲーションサイズから最小のアグリゲーションサイズを決定し、全ての宛先に対して最小のアグリゲーションサイズを適用してもよい。
The concatenation
キュー管理部214は、MACフレームにアクセス可能なアドレス情報が投入される送信キュー217を管理する。このアドレス情報は、例えば、MACフレームが格納されるパケット管理構造体の先頭アドレスである。
The
リスト管理部215は、MACフレームにアクセス可能なアドレス情報に基づいて、同宛先のMACフレームを紐付けてリスト形式で管理する。例えば、リスト管理部215は、第1MACフレームの第1アドレス情報が送信キュー217に投入済の場合、第1MACフレームと同宛先の第2MACフレームをリスト管理する。このとき、リスト管理される第2MACフレームの第2アドレス情報は送信キュー217に投入されない。また、リスト管理部215は、同宛先のMACフレームをアグリゲーションサイズ以下で紐付けて管理する。
このとき、MACフレームは、キュー管理部214およびリスト管理部215により宛先ごとに適正にアグリゲーションが実行できるように管理される。
The
At this time, the MAC frames are managed by the
管理種別選択部216は、MACフレームの宛先およびアグリゲーションサイズに基づいて、送信キュー217に未投入のアドレス情報を送信キュー217に投入するか、投入しないかを選択する。例えば、管理種別選択部216は、第1MACフレームの第1アドレス情報が送信キュー217に投入済のときに、第1MACフレームと同宛先の第2MACフレームをアグリゲーションサイズ以下で紐付けが可能な場合、第2MACフレームの第2アドレス情報を送信キュー217に投入しないことを選択する。この場合、リスト管理部215は、第2MACフレームを第1MACフレームと紐付けてリスト管理する。
また、管理種別選択部216は、第1MACフレームの第1アドレス情報が送信キュー217に投入済のときに、第1MACフレームと同宛先の第2MACフレームをアグリゲーションサイズ以下で紐付けが不可能な場合、第2MACフレームの第2アドレス情報を送信キュー217に投入することを選択する。
さらに、管理種別選択部216は、第1MACフレームの第1アドレス情報と同宛先の第2MACフレームの第2アドレス情報が送信キュー217に未投入の場合、第1アドレス情報を送信キュー217に投入することを選択する。
The management
In addition, when the first address information of the first MAC frame has already been put into the
Furthermore, if the second address information of the second MAC frame having the same destination as the first address information of the first MAC frame has not been entered into the
送信キュー217は、MACフレームにアクセス可能なアドレス情報が投入される。例えば、送信キュー217には、MACフレームが格納されるパケット管理構造体の先頭アドレスが積まれる。このとき、同宛先のMACフレームが複数あるものとする。この場合、送信キュー217には、それら複数のMACフレームのそれぞれの格納先である複数のパケット管理構造体の先頭アドレスのうち、いずれか1つのMACフレームの格納先であるパケット管理構造体の先頭アドレスのみが格納される。
Address information that can access a MAC frame is input to the
図3は、実施形態に係る無線ドライバのアグリゲーション処理を示すフローチャートである。ここでは、図2のプロトコルスタック211がMACフレームを生成し、無線ドライバ212が取得した後、宛先ごとに管理してアグリゲーション処理を行い、無線制御部24に転送するまでの流れを説明する。
Figure 3 is a flowchart showing the aggregation process of the wireless driver according to the embodiment. Here, the flow is explained, from when the
なお、図3の各ステップは、通信装置1の記憶部に記憶されたプログラムをCPU21が読み出し、実行することで実現される。また、図3に示すフローチャートの少なくとも一部をハードウェアにより実現してもよい。ハードウェアにより実現する場合、例えば、所定のコンパイラを用いることで、各ステップを実現するためのプログラムからFPGA上に自動的に専用回路を生成すればよい。また、FPGAと同様にしてGate Array回路を形成し、ハードウェアとして実現するようにしてもよい。また、ASICにより実現するようにしてもよい。
この場合、図3に示すフローチャートにおける各ブロックは、ハードウェアブロックと見做すことができる。なお、複数のブロックをまとめて1つのハードウェアブロックとして構成してもよく、1つのブロックを複数のハードウェアブロックとして構成してもよい。
Each step in FIG. 3 is realized by the
In this case, each block in the flowchart shown in Fig. 3 can be regarded as a hardware block. Note that multiple blocks may be integrated into one hardware block, and one block may be configured as multiple hardware blocks.
図3のS1において、図2の無線ドライバ212は、プロトコルスタック211が生成したMACフレームが取得可能かどうかを判断し、取得可能な場合にはS2に進み、取得不可の場合にはS6に進む。
S2では、無線ドライバ212は、MACフレーム内のMACヘッダまたはIP(Internet Protocol)ヘッダを参照し、同宛先のMACフレームが送信キュー217にあるかどうかを判定する。このとき、無線ドライバ212は、宛先を識別するために、宛先MACアドレスまたは宛先IPアドレスを参照することができる。
In S1 of FIG. 3, the
In S2, the
無線ドライバ212は、同宛先のMACフレームが送信キュー217にない場合、S3に進み、ある場合、S4に進む。
S3では、無線ドライバ212は、MACフレームが格納されるパケット管理構造体の先頭アドレスを送信キュー217に投入し、S1に戻る。
S4では、無線ドライバ212は、同宛先のMACフレームに関連付けられるMACフレームを含めても、連結サイズ決定部213にて決定されるアグリゲーションサイズ以下かどうかを判定する。無線ドライバ212は、アグリゲーションサイズを超過する場合、S3に進み、アグリゲーションサイズ以下の場合、S5に進む。
If there is no MAC frame with the same destination in the transmit
In S3, the
In S4, the
S5では、無線ドライバ212は、リストに追加されるMACフレームを送信キュー217に投入済みのMACフレームに関連付け、リスト管理を行う。なお、MACフレームを関連付けすることでリストとして管理する方法については後述する。
In S5, the
S6では、無線ドライバ212は、MACフレームが格納されるパケット管理構造体の先頭アドレスを送信キュー217からデキューし、S7に進む。
S7では、無線ドライバ212は、格納先のパケット管理構造体の先頭アドレスがデキューされたMACフレームに関連付けられているMACフレームを含めてアグリゲーション処理を行い、S8に進む。
S8では、無線ドライバ212は、アグリゲーション処理を行ったMACフレームに無線ヘッダを付加して無線通信フレームを生成し、S9に進む。
S9では、無線ドライバ212は、無線通信フレームを無線制御部24に転送し、処理を終了する。
In S6, the
In S7, the
In S8, the
In S9, the
ここで、S1において、無線制御部24へ転送可能かどうかの判断を加えてもよい。すなわち、無線制御部24へ転送可能の場合には、MACフレームが格納されるパケット管理構造体の先頭アドレスを送信キュー217から即座にデキューしてアグリゲーションし、無線ヘッダを付加して転送してもよい。
また、S4において、アグリゲーションサイズにより判定を行ったが、この方法以外にも、アグリゲーション数により判定を行ってもよい。例えば、MACフレームのサイズは1.5Kバイトを想定し、最大アグリゲーションサイズが6Kバイトの場合には、アグリゲーション数を4として判定してもよい。
Here, in S1, a determination may be made as to whether or not the frame can be transferred to the
In addition, in S4, the determination is made based on the aggregation size, but the determination may be made based on the number of aggregations in addition to this method. For example, when the size of the MAC frame is assumed to be 1.5 Kbytes and the maximum aggregation size is 6 Kbytes, the number of aggregations may be determined to be 4.
図4は、実施形態に係るパケット管理構造体を示す図である。ここでは、図2のメインメモリ23において、MACフレームを格納するパケット管理構造体40について説明を行う。
図4において、パケット管理構造体40は、管理情報部41およびデータ部42を備える。
4 is a diagram showing a packet management structure according to an embodiment of the present invention, in which a
In FIG. 4, a
管理情報部41は、データ部42のサイズ、データ部42に格納されるフレームのデータ長、データ部42の開始アドレスおよび次パケット管理構造体40の先頭アドレスを含む。
データ部42は、フレームを格納可能なサイズのバッファである。データ部42は、パケットとしてMACヘッダ、IPヘッダ、TCP/UDPヘッダおよびペイロードを格納する。
The
The
プロトコルスタック211で生成されたMACフレームは、パケット管理構造体40に格納され、無線ドライバ212は、データ部42の開始アドレスからMACフレームを取得する。また、無線ドライバ212は、S5において、次のパケット管理構造体40の先頭アドレスを使用してリスト形式でMACフレームの関連付けを行う。無線ドライバ212は、リストの最後のパケット管理構造体40では、次のパケット管理構造体40の先頭アドレスをNULLまたは0として管理を行う。
The MAC frame generated by the
ここで、送信キュー217は、サイズが予め決められたFIFO(First In First Out)で構成され、MACフレームを格納するパケット管理構造体の先頭アドレスを保持する。また、無線ドライバ212は、パケット管理構造体に他のパケット管理構造体の先頭アドレスを紐付けることでリスト管理を行う。リスト管理は、先頭アドレスのみの情報を付加することで宛先ごとにMACフレームを管理可能であるため、送信キュー217でMACフレームのFIFOを実現するよりも、必要となるメモリサイズを低減可能である。
The transmit
図5は、実施形態に係る送信キューおよびリスト管理の一例を示す図である。ここでは、図2の通信装置1において、図3の処理を実行することで、宛先である通信装置3、4へのMACフレームを宛先ごとに適切にアグリゲーション処理できるように管理する場合を説明する。また、全てのMACフレームは、1.5Kバイトであるものとして説明する。
Figure 5 is a diagram showing an example of transmission queue and list management according to an embodiment. Here, a case is described in which the
図5において、パケット管理構造体504~510は、番号順にプロトコルスタック211で生成され、無線ドライバ212が生成した順に取得される。パケット管理構造体504、508は、通信装置3宛てのMACフレームが格納され、パケット管理構造体505~507、509、510は、通信装置4宛てのMACフレームが格納される。
In FIG. 5, packet management structures 504-510 are generated by
以下、図5の送信キュー217に格納された先頭アドレスに紐付けられたリストの生成方法について説明する。
無線ドライバ212は、パケット管理構造体504を取得し、パケット管理構造体504の先頭アドレス503を送信キュー217に投入する。
次に、無線ドライバ212は、パケット管理構造体505を取得する。このとき、パケット管理構造体505の宛先は、送信キュー217に投入済みのパケット管理構造体404と宛先と異なるため、無線ドライバ212は、パケット管理構造体505の先頭アドレス502を送信キュー217に投入する。
A method for generating a list linked to the top address stored in the
The
Next, the
次に、無線ドライバ212は、パケット管理構造体506を取得する。このとき、パケット管理構造体506と同宛先であるパケット管理構造体505が送信キュー217に既に存在する。このため、無線ドライバ212は、管理情報部41の次のパケット管理構造体40の先頭アドレス512にパケット管理構造体506の先頭アドレスを使用して関連付けを行う。
Next, the
次に、無線ドライバ212は、パケット管理構造体505と同宛先であるパケット管理構造体507、509について順次関連付けを行う。
また、無線ドライバ212は、パケット管理構造体504と同宛先であるパケット管理構造体508について関連付けを行う。
また、無線ドライバ212は、パケット管理構造体510を取得する。このとき、パケット管理構造体510と同宛先のパケット管理構造体509が存在するが、これらの関連付けを行うと、最大アグリゲーションサイズである6Kバイトを超過するものとする。この場合、無線ドライバ212は、パケット管理構造体510については、パケット管理構造体509と紐付けるリスト管理を行わず、パケット管理構造体510の先頭アドレス501を送信キュー217に投入する。
Next, the
The
The
以上の操作により、最大アグリゲーションサイズ以内に収めつつ、図5の送信キュー217に格納された先頭アドレスに紐付けられたリストが生成される。
その後、無線ドライバ212は、送信キュー217から順にデキューし、リスト管理されるパケット管理構造体40に格納されるMACフレームをアグリゲーション処理する。これにより、無線ドライバ212は、1つの送信キュー217のみで宛先ごとに適切にアグリゲーション処理を行うことができ、メモリリソースの増大を抑制しつつ、データ送信時のスループットを向上させることができる。
Through the above operations, a list is generated that is linked to the top address stored in the
Thereafter, the
図6は、実施形態に係る無線ドライバのアグリゲーション処理シーケンスを示す図である。ここでは、図1の通信装置1において、通信装置3、4への複数のMACフレームF1~F7に対するアグリゲーション処理を含む送信動作を説明する。MACフレームF1、F5は通信装置3宛て、MACフレームF2~F4、F6、F7は通信装置4宛てであるものとする。また、各MACフレームの格納先が、図5のパケット管理構造体504~510であるものとする。
Figure 6 is a diagram showing the aggregation processing sequence of a wireless driver according to an embodiment. Here, a transmission operation including aggregation processing of multiple MAC frames F1 to F7 to
図6において、S10、S11では、図2のプロトコルスタック211は、通信装置3宛てのMACフレームF1をメインメモリ23に生成する。
S12では、無線ドライバ212は、MACフレームF1を取得し、S13では、格納されるパケット管理構造体504の先頭アドレス503を送信キュー217に投入する。
6, in S10 and S11, the
In S12, the
S14、S15では、プロトコルスタック211は、通信装置4宛てのMACフレームF2をメインメモリ23に生成する。
S16では、無線ドライバ212は、MACフレームF2を取得し、S17では、格納されるパケット管理構造体505の先頭アドレス502を送信キュー217に投入する。
In S14 and S15, the
In S16, the
S18、S19では、プロトコルスタック211は、通信装置4宛てのMACフレームF3をメインメモリ23に生成する。
S20では、無線ドライバ212は、MACフレームF3を取得し、S21では、格納されるパケット管理構造体506の先頭アドレスをパケット管理構造体505に関連付ける。
In S18 and S19, the
In S20, the
S22、S23では、プロトコルスタック211は、通信装置4宛てのMACフレームF4をメインメモリ23に生成する。
S24では、無線ドライバ212は、MACフレームF4を取得し、S25では、格納されるパケット管理構造体507の先頭アドレスをパケット管理構造体506に関連付ける。
In S22 and S23, the
In S24, the
S26、S27では、プロトコルスタック211は、通信装置3宛てのMACフレームF5をメインメモリ23に生成する。
S28では、無線ドライバ212は、MACフレームF5を取得し、S29では、格納されるパケット管理構造体508の先頭アドレスをパケット管理構造体504に関連付ける。
In S26 and S27, the
In S28, the
S30、S31では、プロトコルスタック211は、通信装置4宛てのMACフレームF6をメインメモリ23に生成する。
S32では、無線ドライバ212は、MACフレームF6を取得し、S33では、格納されるパケット管理構造体509の先頭アドレスをパケット管理構造体507に関連付ける。
In S30 and S31, the
In S32, the
S34、S35では、プロトコルスタック211は、通信装置4宛てのMACフレームF7をメインメモリ23に生成する。
S36では、無線ドライバ212は、MACフレームF7を取得する。このとき、無線ドライバ212は、MACフレームF7のパケット管理構造体510の先頭アドレスをパケット管理構造体509に関連付けると、MACフレームF2を先頭にリスト管理されるフレーム数がアグリゲーションサイズを超過する。このため、S37では、無線ドライバ212は、格納されるパケット管理構造体510の先頭アドレス501を送信キュー217に投入する。
In S34 and S35, the
In S36, the
S38、S39では、無線ドライバ212は、MACフレームを取得できなかったため、パケット管理構造体504の先頭アドレス503を送信キュー217からデキューし、MACフレームF1、F5をアグリゲーション処理する。
また、無線ドライバ212は、パケット管理構造体505の先頭アドレス502を送信キュー217からデキューし、MACフレームF2~F4、F6をアグリゲーション処理する。
さらに、無線ドライバ212は、パケット管理構造体510の先頭アドレス501を送信キュー217からデキューし、パケット管理構造体510については関連付けがないため、MACフレームF7のアグリゲーション処理は行わない。
In S38 and S39, since the
Furthermore, the
Furthermore, the
S40、S41では、無線ドライバ212は、アグリゲーション処理されたMACフレームと、アグリゲーション処理されてないMACフレームF7に無線ヘッダを付加し、無線通信フレームを生成する。
S42では、無線ドライバ212は、無線制御部203に対して転送命令を発行し、S43、S44では、メインメモリ23から無線制御部203に無線通信フレームを転送する。
In S40 and S41, the
In S42, the
以上説明したように、上述した実施形態によれば、キュー管理部は、MACフレームにアクセス可能なアドレス情報が投入される送信キューを管理し、リスト管理部は、送信キューに投入されたアドレス情報に基づいて、同宛先のMACフレームを紐付けて管理する。これにより、送信キューに投入されるデータの量を削減しつつ、宛先ごとにMACフレームを管理することが可能となり、メモリリソースの増大を抑制しつつ、複数の宛先へのアグリゲーションを適正化することができる。 As described above, according to the above-mentioned embodiment, the queue management unit manages the transmission queue into which address information accessible to the MAC frame is input, and the list management unit manages MAC frames for the same destination based on the address information input into the transmission queue. This makes it possible to manage MAC frames for each destination while reducing the amount of data input into the transmission queue, and optimize aggregation to multiple destinations while suppressing an increase in memory resources.
なお、上述した実施形態では、宛先である通信装置3、4に対して各々のアグリゲーションサイズを決定してテーブルで管理し、図3のS4では宛先ごとのアグリゲーションサイズを利用して判定を行った。この方法以外にも、例えば、全ての宛先のアグリゲーションサイズから最小のアグリゲーションサイズを決定し、S4において全ての宛先について最小のアグリゲーションサイズを使用して判定してもよい。また、最もアクセス数の多い宛先には個別のアグリゲーションサイズを適用し、その他の宛先に対しては最小のアグリゲーションサイズを適用してもよい。
In the above embodiment, the aggregation size is determined for each of the
また、上述した実施形態では、通信装置1~4がインフラストラクチャーモードで動作する場合を例にとった。これ以外にも、通信装置1~4は、複数のBSS(Basic Service Set)モードを併用して実行する場合であってもよい。複数のBSSモードは、インフラストラクチャーモード、WiFiダイレクトモードおよびアドホックモードのうち、少なくともいずれか2つの組み合わせである。例えば、インフラストラクチャーモードに加えて通信装置1、4間でWiFiダイレクトモードを同時に併用する場合に、通信装置1~4は、各々のモードに対して2つの送信キューを生成して運用してもよい。
In the above-described embodiment, the
また、リスト管理部215は、緊急性の高いMACフレームに対しては、MACフレームのリスト管理を行わないようにしてもよい。緊急性の高いMACフレームは、例えば、同期情報または制御情報を含むMACフレームである。
The
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワークまたは記憶媒体を介してシステムまたは装置に供給してもよい。そして、上述の実施形態の1以上の機能は、そのシステムまたは装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。 The present invention may provide a program that realizes one or more of the functions of the above-described embodiments to a system or device via a network or a storage medium. One or more of the functions of the above-described embodiments may also be realized by a process in which one or more processors in a computer of the system or device read and execute the program.
11 通信システム、1~4 通信装置、12~14 無線リンク、21 CPU、22 オンチップメモリ、23 メインメモリ、24 無線制御部、25 システムバス、210 アプリケーション、211 プロトコルスタック、212 無線ドライバ、213 連結サイズ決定部、214 キュー管理部214 リスト管理部、216 管理種別選択部、217 送信キュー
REFERENCE SIGNS
Claims (3)
MAC(Media Access Control)フレームに対応するデータを格納した構造体の情報を第1のメモリ領域を用いて管理する管理手段と、
第1のメモリ領域とは異なる第2のメモリ領域のFIFO(First In First Out)構造の送信キューと、
前記管理手段による管理対象として新たに生成された構造体のメモリ番地にアクセスするためのアドレス情報を前記送信キューの末尾に投入する第1処理で前記データを処理するか、前記送信キューにアドレス情報を投入することなしに、前記送信キューに投入済みのMACフレームに対応する構造体に紐づけて管理する第2処理で前記データを処理するかを当該新たに生成された構造体に対応するMACフレームの宛先MACアドレスの情報と、アグリゲーションの上限サイズとを少なくとも用いて判定する判定手段と、
前記判定手段により、前記管理手段による管理対象として前記新たに生成された構造体に対応するMACフレームのメモリ番地にアクセスするためのアドレス情報を前記送信キューの末尾に投入する第1処理で前記データを処理すると判定した場合、当該新たに生成された構造体のメモリ番地にアクセスするためのアドレス情報を前記送信キューの末尾に送信待ち状態で投入する投入手段と、
前記送信キューに格納されたアドレス情報に基づきSDIO(Secure Digital Input/Output)、PCIe(Peripheral Component Interconnect-Express)、又はUSB(Universal Serial Bus)のうちのいずれか1つのインタフェースを介して前記通信装置のホストシステムと接続された無線制御部に対して当該インタフェースを介して無線フレームを転送する転送制御手段と、を有し、
新たに生成された構造体に対応するMACフレームの宛先MACアドレスの情報が、前記送信キューに送信待ち状態で投入されているいずれのアドレス情報に対応する構造体に対応するMACフレームの宛先MACアドレスの情報とも一致しないことに従って前記判定手段は、前記管理手段による管理対象として新たに生成された構造体のメモリ番地にアクセスするためのアドレス情報を前記送信キューの末尾に投入する前記第1処理で前記データを処理すると判定し、新たに生成された構造体に対応するMACフレームの宛先MACアドレスの情報が、前記送信キューに送信待ち状態で投入されているいずれかのアドレス情報に対応する構造体に対応するMACフレームの宛先MACアドレスの情報と一致し、尚且つ、前記上限サイズ以下で前記送信キューに投入済みのアドレス情報に対応する構造体に対応するMACフレームと新たに生成された構造体に対応するMACフレームとを紐づけすることができると判定した場合に、前記判定手段は、前記送信キューに前記管理手段による管理対象として新たに生成された構造体のメモリ番地にアクセスするためのアドレス情報を投入することなしに、前記送信キューに投入済みのMACフレームに対応する構造体に関連付けて管理する前記第2処理で前記データを処理すると判定し、新たに生成された構造体に対応するMACフレームの宛先MACアドレスの情報が、前記送信キューに送信待ち状態で投入されているいずれかのアドレス情報に対応する構造体に対応するMACフレームの宛先MACアドレスの情報と一致するが、前記送信キューに投入済みのアドレス情報に対応する構造体が指し示すMACフレームと新たに生成された構造体に対応するMACフレームとを前記アグリゲーションの上限サイズ以下で紐づけることができないと判定した場合に、前記判定手段は、前記管理手段による管理対象として新たに生成された構造体のメモリ番地にアクセスするためのアドレス情報を前記送信キューの末尾に投入する前記第1処理で前記データを処理すると判定し、
前記判定手段によって前記新たに生成された構造体のメモリ番地にアクセスするためのアドレス情報を前記送信キューの末尾に投入することなしに、前記送信キューに投入済みのMACフレームに対応する構造体に対応付けて管理する前記第2処理で前記データを処理すると判定した場合、前記管理手段は、前記上限サイズ以下で前記送信キューに投入済みのアドレス情報に対応する構造体と、前記新たに生成された構造体とを紐づける管理処理を行い、
前記判定手段によって前記管理手段による管理対象として新たに生成された構造体のメモリ番地にアクセスするためのアドレス情報を前記送信キューの末尾に投入する前記第1処理に進めると判定された場合に、前記投入手段は、第1のメモリ領域で管理する前記新たに生成された構造体の当該アドレス情報を前記送信キューの末尾に投入する処理を行い、
前記送信キューに送信待ち状態で格納されているアドレス情報で特定されるMACフレームに基づく無線フレームを前記無線制御部に転送すると判断した前記転送制御手段は、前記FIFO構造の前記送信キューをデキューすることで先頭に格納されているアドレス情報を取得し、該取得したアドレス情報に基づき前記第1のメモリ領域の構造体を参照し、当該参照した構造体に別の1以上の構造体が紐づけられている場合には、前記参照した構造体により特定されるMACフレームと、前記紐づけられている前記別の1以上の構造体により特定される1以上のMACフレームとをアグリゲーションする処理を行うことでアグリゲーションされた無線フレームが前記無線制御部に転送されるように制御する一方、当該参照した構造体に別の構造体が紐づけられていない場合には、アグリゲーションする処理を行わずアグリゲーション処理されていない当該参照した構造体に対応する1つのMACフレームを含む無線フレームが前記無線制御部に転送されるように制御し、
前記送信キューに複数のアドレス情報が送信待ち状態で格納されている状態で、前記無線制御部に転送すると判断した前記転送制御手段は、前記FIFO構造の前記送信キューから順にアドレス情報をデキューすることで、前記送信キューに積まれた複数のアドレス情報の個数に対応する個数の複数の無線フレームを生成し、該生成した複数の無線フレームらが前記無線制御部に転送されるよう制御する、
ことを特徴とする通信装置。 1. A communication device, comprising:
a management means for managing information of a structure storing data corresponding to a MAC (Media Access Control) frame by using a first memory area;
a transmission queue having a FIFO (First In First Out) structure in a second memory area different from the first memory area;
a determination means for determining whether to process the data by a first process of inserting address information for accessing a memory address of a structure newly generated as a target for management by the management means into the tail of the transmission queue, or to process the data by a second process of managing the data in association with a structure corresponding to a MAC frame already inserted into the transmission queue without inserting address information into the transmission queue, using at least information on a destination MAC address of a MAC frame corresponding to the newly generated structure and an upper limit size of aggregation;
an input means for inputting address information for accessing a memory address of a MAC frame corresponding to the newly generated structure as a management target of the management means, to the end of the transmission queue in a transmission waiting state, when the determination means determines that the data is to be processed by a first process of inputting address information for accessing a memory address of the MAC frame corresponding to the newly generated structure as a management target of the management means, to the end of the transmission queue;
a transfer control means for transferring a wireless frame to a wireless control unit connected to a host system of the communication device via any one of an SDIO (Secure Digital Input/Output), a PCIe (Peripheral Component Interconnect-Express), or a USB (Universal Serial Bus) interface based on the address information stored in the transmission queue,
In accordance with the fact that destination MAC address information of a MAC frame corresponding to a newly generated structure does not match destination MAC address information of a MAC frame corresponding to a structure corresponding to any of the address information put into the transmission queue in a waiting state for transmission, the determination means determines that the data is to be processed by the first process of putting address information for accessing a memory address of a structure newly generated as a management target by the management means into the tail of the transmission queue, and when it is determined that destination MAC address information of a MAC frame corresponding to a newly generated structure matches destination MAC address information of a MAC frame corresponding to a structure corresponding to any of the address information put into the transmission queue in a waiting state for transmission and that a MAC frame corresponding to a structure corresponding to address information already put into the transmission queue can be linked to a MAC frame corresponding to the newly generated structure within the upper limit size, the determination means performs the transmission keying process. and when it is determined that destination MAC address information of the MAC frame corresponding to the newly generated structure matches destination MAC address information of the MAC frame corresponding to any of the address information put into the transmission queue in a waiting state for transmission but that the MAC frame indicated by the structure corresponding to the address information put into the transmission queue and the MAC frame corresponding to the newly generated structure cannot be linked within an upper limit size of the aggregation, the determination means determines that the data is to be processed by the first process of putting address information for accessing a memory address of a structure newly generated as a management target by the management means into the tail of the transmission queue,
When the determination means determines that the data is to be processed by the second process of managing the data in association with a structure corresponding to a MAC frame already put into the transmission queue without putting address information for accessing a memory address of the newly generated structure into the tail of the transmission queue, the management means performs a management process of linking a structure corresponding to the address information already put into the transmission queue, which is equal to or smaller than the upper limit size, with the newly generated structure,
when it is determined by the determination means that the first process should be performed in which address information for accessing a memory address of a structure newly generated as a target for management by the management means is added to the tail of the transmission queue, the adding means performs a process of adding the address information of the newly generated structure managed in a first memory area to the tail of the transmission queue,
the transfer control means, which has determined to transfer a wireless frame based on a MAC frame specified by address information stored in the transmission queue in a waiting state for transmission to the wireless control unit, dequeues the transmission queue of the FIFO structure to obtain address information stored at the top of the queue, references a structure in the first memory area based on the obtained address information, and, if the referenced structure is associated with one or more other structures, performs a process of aggregating the MAC frame specified by the referenced structure and the one or more MAC frames specified by the associated one or more other structures, thereby controlling the transfer of the aggregated wireless frame to the wireless control unit, while, if the referenced structure is not associated with another structure, does not perform the aggregation process and controls the transfer of a wireless frame including one MAC frame corresponding to the referenced structure that has not been aggregated to the wireless control unit;
When a plurality of pieces of address information are stored in the transmission queue in a transmission waiting state, the transfer control means, which has determined to transfer the pieces of address information to the wireless control unit, generates a plurality of wireless frames, the number of which corresponds to the number of pieces of address information stored in the transmission queue, by dequeuing the address information in order from the transmission queue having the FIFO structure, and controls the transfer of the generated plurality of wireless frames to the wireless control unit.
A communication device comprising:
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2020166969A JP7686380B2 (en) | 2020-10-01 | 2020-10-01 | COMMUNICATION DEVICE, CONTROL METHOD, AND PROGRAM |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2020166969A JP7686380B2 (en) | 2020-10-01 | 2020-10-01 | COMMUNICATION DEVICE, CONTROL METHOD, AND PROGRAM |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2022059312A JP2022059312A (en) | 2022-04-13 |
| JP7686380B2 true JP7686380B2 (en) | 2025-06-02 |
Family
ID=81124343
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2020166969A Active JP7686380B2 (en) | 2020-10-01 | 2020-10-01 | COMMUNICATION DEVICE, CONTROL METHOD, AND PROGRAM |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP7686380B2 (en) |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20080144586A1 (en) | 2006-12-19 | 2008-06-19 | Nokia Corporation | Techniques for rts/cts usage for wireless networks |
| JP2008211815A (en) | 2008-03-17 | 2008-09-11 | Hitachi Kokusai Electric Inc | Wireless transmission device |
| US20090060009A1 (en) | 2007-09-04 | 2009-03-05 | Lu Qian | Aggregate data frame generation |
| JP2009147786A (en) | 2007-12-17 | 2009-07-02 | Nec Corp | Communication device, data frame transmission control method, and program |
| JP2011009876A (en) | 2009-06-23 | 2011-01-13 | Nippon Telegr & Teleph Corp <Ntt> | Buffer circuit and buffer circuit control method |
-
2020
- 2020-10-01 JP JP2020166969A patent/JP7686380B2/en active Active
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20080144586A1 (en) | 2006-12-19 | 2008-06-19 | Nokia Corporation | Techniques for rts/cts usage for wireless networks |
| US20090060009A1 (en) | 2007-09-04 | 2009-03-05 | Lu Qian | Aggregate data frame generation |
| JP2009147786A (en) | 2007-12-17 | 2009-07-02 | Nec Corp | Communication device, data frame transmission control method, and program |
| JP2008211815A (en) | 2008-03-17 | 2008-09-11 | Hitachi Kokusai Electric Inc | Wireless transmission device |
| JP2011009876A (en) | 2009-06-23 | 2011-01-13 | Nippon Telegr & Teleph Corp <Ntt> | Buffer circuit and buffer circuit control method |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2022059312A (en) | 2022-04-13 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP4150336B2 (en) | Configuration to create multiple virtual queue pairs from compressed queue pairs based on shared attributes | |
| US9654406B2 (en) | Communication traffic processing architectures and methods | |
| US10057387B2 (en) | Communication traffic processing architectures and methods | |
| CN101304373B (en) | Method and system for implementing high-efficiency transmission chunk data in LAN | |
| CN113709047B (en) | Data forwarding system and method for automobile domain controller | |
| JP2000151664A (en) | Data transmission method | |
| US6976149B1 (en) | Mapping technique for computing addresses in a memory of an intermediate network node | |
| CN107070958B (en) | A method for efficient transmission of massive data | |
| US20060268936A1 (en) | Communication apparatus and method thereof | |
| JP7686380B2 (en) | COMMUNICATION DEVICE, CONTROL METHOD, AND PROGRAM | |
| JP4201590B2 (en) | Data communication apparatus, data communication method, data communication program, and recording medium on which data communication program is recorded | |
| US20140165078A1 (en) | Apparatus and circuit for processing data | |
| JP2000235536A (en) | Data communication system and device | |
| US7580410B2 (en) | Extensible protocol processing system | |
| CN116074253B (en) | Message chained forwarding method and device | |
| US20240069754A1 (en) | Computing system and associated method | |
| US7853739B1 (en) | Method and system for transmitting USB communication | |
| US12341710B2 (en) | Packet forwarding apparatus with buffer recycling and associated packet forwarding method | |
| JP2022161122A (en) | Communication apparatus and communication method | |
| CN101715210B (en) | Method and device for assembling MAC-layer HSPA data | |
| US7532644B1 (en) | Method and system for associating multiple payload buffers with multidata message | |
| JP7423223B2 (en) | Communication device | |
| US20250150392A1 (en) | Network processor using fake packet generation for improving processing efficiency of learning packets and associated packet processing method | |
| JP2019134313A (en) | Communication device and control method of communication device | |
| CN109379342A (en) | Data transmission method between host computer and DSP based on UDP network protocol |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230726 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20240410 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20240416 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20240517 |
|
| RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20240614 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20240903 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20241101 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20250225 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20250227 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20250422 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20250521 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7686380 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |