2009-03-09 08:34:58

by Kevin Wilson

[permalink] [raw]
Subject: Packet aggregation in iwlwifi drivers

Hello,
- I have a short question about packet aggregation in iwlwifi drivers which
support 802.11n:
Is packet aggregation in these drivers performed by the firmware ?

I noticed that the ampdu_action() function is implemented by
iwl_mac_ampdu_action()
in these drivers; but as far as I can find, only the operations of
start/stop tx and rx aggregation
are implemented in the driver, so I guess that the aggregation of MPDU packets
(concatenating them into a single block, sending BAR - block
acknowledge request,
sending the block containing aggregated MPDUs, and so on) are
implemented in firmware. Is it so ?


Regards,
Kevin


2009-03-09 20:11:46

by Wey-Yi Guy

[permalink] [raw]
Subject: RE: Packet aggregation in iwlwifi drivers

You are correct, iwlwifi driver will handle enable the h/w aggregation queue and based on the ampdu_action() and other condition such as sequence# to decide which queue the pkt shall belong to. All the real aggregation works are performed in the firmware.

Wey-Yi Guy
Intel Corporation
2111 N.E. 25th Avenue M/S JF3-308
Hillsboro OR 97124-5961
USA
Work Phone: 503-264-6023 (OR)
Cell Phone: 503-329-8410
Email: [email protected]


-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Kevin Wilson
Sent: Monday, March 09, 2009 1:35 AM
To: [email protected]
Subject: Packet aggregation in iwlwifi drivers

Hello,
- I have a short question about packet aggregation in iwlwifi drivers which
support 802.11n:
Is packet aggregation in these drivers performed by the firmware ?

I noticed that the ampdu_action() function is implemented by
iwl_mac_ampdu_action()
in these drivers; but as far as I can find, only the operations of
start/stop tx and rx aggregation
are implemented in the driver, so I guess that the aggregation of MPDU packets
(concatenating them into a single block, sending BAR - block
acknowledge request,
sending the block containing aggregated MPDUs, and so on) are
implemented in firmware. Is it so ?


Regards,
Kevin