Return-path: Received: from nbd.name ([46.4.11.11]:54649 "EHLO nbd.name" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751727AbaBFQ4H (ORCPT ); Thu, 6 Feb 2014 11:56:07 -0500 Message-ID: <52F3BEA6.1080502@openwrt.org> (sfid-20140206_175612_751651_97E1A5AC) Date: Thu, 06 Feb 2014 17:56:06 +0100 From: Felix Fietkau MIME-Version: 1.0 To: voncken , linux-wireless@vger.kernel.org Subject: Re: ATH9K software retry References: <773DB8A82AB6A046AE0195C68612A3190173371A@sbs2003.acksys.local> <52F39F41.2010300@openwrt.org> <009301cf2359$e35f0330$aa1d0990$@acksys.fr> In-Reply-To: <009301cf2359$e35f0330$aa1d0990$@acksys.fr> Content-Type: text/plain; charset=ISO-8859-1 Sender: linux-wireless-owner@vger.kernel.org List-ID: On 2014-02-06 17:38, voncken wrote: >> -----Message d'origine----- >> De : Felix Fietkau [mailto:nbd@openwrt.org] >> Envoy? : jeudi 6 f?vrier 2014 15:42 >> ? : Cedric VONCKEN; linux-wireless@vger.kernel.org >> Objet : Re: ATH9K software retry >> >> On 2014-02-06 14:06, Cedric VONCKEN wrote: >> > In xmit.c the function ath_tx_complete_aggr test if the fi->retries < >> > ATH_MAX_SW_RETRIES. >> > >> > If this condition is true, ATH9K handle software retry. >> > >> > Minstrel set in the frame one or more rates, for each rate minstrel >> > set a retries count. I think is sufficient. >> > >> > Why ATH9K need to manage the software retries? >> The retries configured for minstrel_ht are used for hardware retries of > single >> frames and full A-MPDU transmissions. Software retries are used for >> individual subframes that are sent as part of A-MPDUs. >> This is required, because failed subframes are frequent with higher MCS > rates >> and A-MPDU. >> > Is it possible to only applied software retrying for A-MPDU frame with more > one frame? > If I correctly understood the code, the function ath_tx_count_frames return > the number of frame in the A-MPDU. If nframes == 1 we don't use the software > retry. Software retry should be applied to any frame that is part of a BlockAck session, because any failed frame that is not retried requires the sender to notify the receiver with a BlockAckRequest, which is expensive. I would suggest keeping the current behavior, unless you have a good reason to change it and understand the implications. - Felix