All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dan Williams <dcbw@redhat.com>
To: Andrew Lunn <andrew.lunn@ascom.ch>
Cc: linux-wireless@vger.kernel.org
Subject: Re: Link Quality stats not updating, recieved_channel
Date: Fri, 22 Feb 2008 16:05:51 -0500	[thread overview]
Message-ID: <1203714351.4422.2.camel@localhost.localdomain> (raw)
In-Reply-To: <20080222142614.GA18830@donkey.ma.tech.ascom.ch>

On Fri, 2008-02-22 at 15:26 +0100, Andrew Lunn wrote:
> Hi Folks
> 
> I found a problem with the IPW2100/ieee80211 drivers which i think
> also affects other users of ieee80211 in stock 2.6.24 and earlier.
> 
> The function net/ieee80211/ieee80211_rx.c:update_network() gets called
> in response to a beacon or a probe response. It is responsible for
> updating the information we already have about the network described
> by the beacon or the probe response. At the beginning of the function
> is:
> 
>         /* We only update the statistics if they were created by receiving
>          * the network information on the actual channel the network is on.
>          *
>          * This keeps beacons received on neighbor channels from bringing
>          * down the signal level of an AP. */
>         if (dst->channel == src->stats.received_channel)
>                 memcpy(&dst->stats, &src->stats,
>                        sizeof(struct ieee80211_rx_stats));
>         else
>                 IEEE80211_DEBUG_SCAN("Network %s info received "
>                         "off channel (%d vs. %d)\n", print_mac(mac, src->bssid),
>                         dst->channel, src->stats.received_channel);
> 
> The problem is that the ipw2100 driver never fills in the
> stats.received_channel. So the RSSI and other link quality parameters
> never get updated. The RSSI is always the RSSI of the first frame
> which caused the network record to be created. 

Can you try the attached patch instead?  stats.received_channel really
should be filled by the hardware driver itself.  This patch essentially
does what bcm43xx does.  Can you test it please?

Dan



diff --git a/drivers/net/wireless/ipw2100.c b/drivers/net/wireless/ipw2100.c
index 5bf9e00..8a3ce3a 100644
--- a/drivers/net/wireless/ipw2100.c
+++ b/drivers/net/wireless/ipw2100.c
@@ -2654,6 +2654,8 @@ static void __ipw2100_rx_process(struct ipw2100_priv *priv)
 			stats.mask |= IEEE80211_STATMASK_RSSI;
 		stats.freq = IEEE80211_24GHZ_BAND;
 
+		stats.received_channel = priv->channel;
+
 		IPW_DEBUG_RX("%s: '%s' frame type received (%d).\n",
 			     priv->net_dev->name, frame_types[frame_type],
 			     stats.len);


  reply	other threads:[~2008-02-22 21:08 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-02-22 14:26 Link Quality stats not updating, recieved_channel Andrew Lunn
2008-02-22 21:05 ` Dan Williams [this message]
2008-02-22 21:21   ` Andrew Lunn
2008-02-22 22:14     ` Dan Williams
2008-02-22 23:07       ` Andrew Lunn

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1203714351.4422.2.camel@localhost.localdomain \
    --to=dcbw@redhat.com \
    --cc=andrew.lunn@ascom.ch \
    --cc=linux-wireless@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.