From patchwork Sat Aug 8 03:31:51 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Javier Cardona X-Patchwork-Id: 40077 Received: from vger.kernel.org (vger.kernel.org [209.132.176.167]) by demeter.kernel.org (8.14.2/8.14.2) with ESMTP id n783hhPw030484 for ; Sat, 8 Aug 2009 03:43:43 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933310AbZHHDnk (ORCPT ); Fri, 7 Aug 2009 23:43:40 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S933304AbZHHDnk (ORCPT ); Fri, 7 Aug 2009 23:43:40 -0400 Received: from rv-out-0506.google.com ([209.85.198.239]:31468 "EHLO rv-out-0506.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933273AbZHHDnj (ORCPT ); Fri, 7 Aug 2009 23:43:39 -0400 Received: by rv-out-0506.google.com with SMTP id k40so286716rvb.5 for ; Fri, 07 Aug 2009 20:43:38 -0700 (PDT) Received: by 10.140.193.15 with SMTP id q15mr703457rvf.157.1249703018303; Fri, 07 Aug 2009 20:43:38 -0700 (PDT) Received: from localhost (adsl-71-156-104-53.dsl.pltn13.sbcglobal.net [71.156.104.53]) by mx.google.com with ESMTPS id g14sm10239388rvb.50.2009.08.07.20.43.37 (version=TLSv1/SSLv3 cipher=RC4-MD5); Fri, 07 Aug 2009 20:43:37 -0700 (PDT) From: Javier Cardona To: linux-wireless@vger.kernel.org Cc: Javier Cardona , Andrey Yurovsky , johannes@sipsolutions.net, linville@tuxdriver.com, devel@lists.open80211s.org Subject: [PATCH] mac80211: Update the station failed frames average when minstrel is used. Date: Fri, 7 Aug 2009 20:31:51 -0700 Message-Id: <1249702314-32504-6-git-send-email-javier@cozybit.com> X-Mailer: git-send-email 1.5.4.3 In-Reply-To: <1249702314-32504-5-git-send-email-javier@cozybit.com> References: <> <1249702314-32504-1-git-send-email-javier@cozybit.com> <1249702314-32504-2-git-send-email-javier@cozybit.com> <1249702314-32504-3-git-send-email-javier@cozybit.com> <1249702314-32504-4-git-send-email-javier@cozybit.com> <1249702314-32504-5-git-send-email-javier@cozybit.com> Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org The fail_avg value is used to compute the mesh metric, and was only being set by the pid rate control module. This fixes the mesh path selection mechanism for cards that use mistrel for rate control. Signed-off-by: Javier Cardona Signed-off-by: Andrey Yurovsky --- net/mac80211/rc80211_minstrel.c | 10 +++++++++- 1 files changed, 9 insertions(+), 1 deletions(-) diff --git a/net/mac80211/rc80211_minstrel.c b/net/mac80211/rc80211_minstrel.c index 7c51429..3ea9740 100644 --- a/net/mac80211/rc80211_minstrel.c +++ b/net/mac80211/rc80211_minstrel.c @@ -155,12 +155,16 @@ minstrel_tx_status(void *priv, struct ieee80211_supported_band *sband, struct sk_buff *skb) { struct minstrel_sta_info *mi = priv_sta; + struct minstrel_priv *mp = (struct minstrel_priv *)priv; struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb); struct ieee80211_tx_rate *ar = info->status.rates; + struct ieee80211_local *local = hw_to_local(mp->hw); + struct sta_info *si; int i, ndx; int success; success = !!(info->flags & IEEE80211_TX_STAT_ACK); + si = sta_info_get(local, sta->addr); for (i = 0; i < IEEE80211_TX_MAX_RATES; i++) { if (ar[i].idx < 0) @@ -172,8 +176,12 @@ minstrel_tx_status(void *priv, struct ieee80211_supported_band *sband, mi->r[ndx].attempts += ar[i].count; - if ((i != IEEE80211_TX_MAX_RATES - 1) && (ar[i + 1].idx < 0)) + if ((i != IEEE80211_TX_MAX_RATES - 1) && (ar[i + 1].idx < 0)) { mi->r[ndx].success += success; + if (si) + si->fail_avg = (18050 - mi->r[ndx].probability) + / 180; + } } if ((info->flags & IEEE80211_TX_CTL_RATE_CTRL_PROBE) && (i >= 0))