Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 21309
b: refs/heads/master
c: 651be26
h: refs/heads/master
i:
  21307: 9c56583
v: v3
  • Loading branch information
Olivier Hochreutiner authored and John W. Linville committed Mar 17, 2006
1 parent 6eee258 commit dce1e31
Show file tree
Hide file tree
Showing 4 changed files with 62 additions and 2 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 71de1f3dd14e3e39cef929506a9526779f5a447d
refs/heads/master: 651be26f2daf31e61faf4b55ada709cf39ec76a2
10 changes: 10 additions & 0 deletions trunk/Documentation/networking/README.ipw2200
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ Index
2. Ad-Hoc Networking
3. Interacting with Wireless Tools
3.1. iwconfig mode
3.2. iwconfig sens
4. About the Version Numbers
5. Firmware installation
6. Support
Expand Down Expand Up @@ -383,6 +384,15 @@ When configuring the mode of the adapter, all run-time configured parameters
are reset to the value used when the module was loaded. This includes
channels, rates, ESSID, etc.

3.2 iwconfig sens
-----------------------------------------------

The 'iwconfig ethX sens XX' command will not set the signal sensitivity
threshold, as described in iwconfig documentation, but rather the number
of consecutive missed beacons that will trigger handover, i.e. roaming
to another access point. At the same time, it will set the disassociation
threshold to 3 times the given value.


4. About the Version Numbers
-----------------------------------------------
Expand Down
48 changes: 48 additions & 0 deletions trunk/drivers/net/wireless/ipw2200.c
Original file line number Diff line number Diff line change
Expand Up @@ -8608,6 +8608,52 @@ static int ipw_wx_get_nick(struct net_device *dev,
return 0;
}

static int ipw_wx_set_sens(struct net_device *dev,
struct iw_request_info *info,
union iwreq_data *wrqu, char *extra)
{
struct ipw_priv *priv = ieee80211_priv(dev);
int err = 0;

IPW_DEBUG_WX("Setting roaming threshold to %d\n", wrqu->sens.value);
IPW_DEBUG_WX("Setting disassociate threshold to %d\n", 3*wrqu->sens.value);
mutex_lock(&priv->mutex);

if (wrqu->sens.fixed == 0)
{
priv->roaming_threshold = IPW_MB_ROAMING_THRESHOLD_DEFAULT;
priv->disassociate_threshold = IPW_MB_DISASSOCIATE_THRESHOLD_DEFAULT;
goto out;
}
if ((wrqu->sens.value > IPW_MB_ROAMING_THRESHOLD_MAX) ||
(wrqu->sens.value < IPW_MB_ROAMING_THRESHOLD_MIN)) {
err = -EINVAL;
goto out;
}

priv->roaming_threshold = wrqu->sens.value;
priv->disassociate_threshold = 3*wrqu->sens.value;
out:
mutex_unlock(&priv->mutex);
return err;
}

static int ipw_wx_get_sens(struct net_device *dev,
struct iw_request_info *info,
union iwreq_data *wrqu, char *extra)
{
struct ipw_priv *priv = ieee80211_priv(dev);
mutex_lock(&priv->mutex);
wrqu->sens.fixed = 1;
wrqu->sens.value = priv->roaming_threshold;
mutex_unlock(&priv->mutex);

IPW_DEBUG_WX("GET roaming threshold -> %s %d \n",
wrqu->power.disabled ? "OFF" : "ON", wrqu->power.value);

return 0;
}

static int ipw_wx_set_rate(struct net_device *dev,
struct iw_request_info *info,
union iwreq_data *wrqu, char *extra)
Expand Down Expand Up @@ -9429,6 +9475,8 @@ static iw_handler ipw_wx_handlers[] = {
IW_IOCTL(SIOCGIWFREQ) = ipw_wx_get_freq,
IW_IOCTL(SIOCSIWMODE) = ipw_wx_set_mode,
IW_IOCTL(SIOCGIWMODE) = ipw_wx_get_mode,
IW_IOCTL(SIOCSIWSENS) = ipw_wx_set_sens,
IW_IOCTL(SIOCGIWSENS) = ipw_wx_get_sens,
IW_IOCTL(SIOCGIWRANGE) = ipw_wx_get_range,
IW_IOCTL(SIOCSIWAP) = ipw_wx_set_wap,
IW_IOCTL(SIOCGIWAP) = ipw_wx_get_wap,
Expand Down
4 changes: 3 additions & 1 deletion trunk/drivers/net/wireless/ipw2200.h
Original file line number Diff line number Diff line change
Expand Up @@ -246,8 +246,10 @@ enum connection_manager_assoc_states {
#define HOST_NOTIFICATION_S36_MEASUREMENT_REFUSED 31

#define HOST_NOTIFICATION_STATUS_BEACON_MISSING 1
#define IPW_MB_DISASSOCIATE_THRESHOLD_DEFAULT 24
#define IPW_MB_ROAMING_THRESHOLD_MIN 1
#define IPW_MB_ROAMING_THRESHOLD_DEFAULT 8
#define IPW_MB_ROAMING_THRESHOLD_MAX 30
#define IPW_MB_DISASSOCIATE_THRESHOLD_DEFAULT 3*IPW_MB_ROAMING_THRESHOLD_DEFAULT
#define IPW_REAL_RATE_RX_PACKET_THRESHOLD 300

#define MACADRR_BYTE_LEN 6
Expand Down

0 comments on commit dce1e31

Please sign in to comment.