introduce WEXT scan capabilities
Subsystems (2)
PATCH v2 1/1 introduce WEXT scan capabilities
Introduce scan capabilities to WEXT so that userspace can do intelligent things with scan behavior such as handling hidden SSIDs more gracefully. If the driver reports a specific scan capability, the driver must respect the options specified in the iw_scan_req structure when handling the SIOCSIWSCAN call, unless it's mode or state does not allow it to do so, in which case it must return an error.
This version switches to Dave Kilroy's suggestion of claiming unused padding space for the scan_capa field.
drivers/net/wireless/hostap/hostap_ioctl.c +3 -0
@@ -1089,6 +1089,9 @@ static int prism2_ioctl_giwrange(struct net_device *dev, range->enc_capa =IW_ENC_CAPA_WPA |IW_ENC_CAPA_WPA2 |IW_ENC_CAPA_CIPHER_TKIP |IW_ENC_CAPA_CIPHER_CCMP ; +if (local->sta_fw_ver >=PRISM2_FW_VER (1 ,3 ,1 )) + range->scan_capa =IW_SCAN_CAPA_ESSID ; +return 0 ; }
drivers/net/wireless/ipw2200.c +2 -0
@@ -8901,6 +8901,8 @@ static int ipw_wx_get_range(struct net_device *dev, range->enc_capa =IW_ENC_CAPA_WPA |IW_ENC_CAPA_WPA2 |IW_ENC_CAPA_CIPHER_TKIP |IW_ENC_CAPA_CIPHER_CCMP ; + range->scan_capa =IW_SCAN_CAPA_ESSID |IW_SCAN_CAPA_TYPE ; +IPW_DEBUG_WX ("GET Range\n" );return 0 ; }
include/linux/wireless.h +13 -0
@@ -541,6 +541,16 @@/* Maximum size of returned data */ #define IW_SCAN_MAX_DATA 4096/* In bytes */ +/* Scan capability flags - in (struct iw_range *)->scan_capa */ +#define IW_SCAN_CAPA_NONE 0x00 +#define IW_SCAN_CAPA_ESSID 0x01 +#define IW_SCAN_CAPA_BSSID 0x02 +#define IW_SCAN_CAPA_CHANNEL 0x04 +#define IW_SCAN_CAPA_MODE 0x08 +#define IW_SCAN_CAPA_RATE 0x10 +#define IW_SCAN_CAPA_TYPE 0x20 +#define IW_SCAN_CAPA_TIME 0x40 +/* Max number of char in custom event - use multiple of them if needed */ #define IW_CUSTOM_MAX 256/* In bytes */
@@ -963,6 +973,9 @@ struct iw_range__u16 old_num_channels;__u8 old_num_frequency; +/* Scan capabilities */ +__u8 scan_capa;/* IW_SCAN_CAPA_* bit field */ +/* Wireless event capability bitmasks */ __u32 event_capa[6 ];
net/mac80211/ieee80211_ioctl.c +2 -0
@@ -218,6 +218,8 @@ static int ieee80211_ioctl_giwrange(struct net_device *dev,IW_EVENT_CAPA_SET (range->event_capa,SIOCGIWAP );IW_EVENT_CAPA_SET (range->event_capa,SIOCGIWSCAN ); + range->scan_capa |=IW_SCAN_CAPA_ESSID ; +return 0 ; }
From: Dan Williams <[email protected]>
Date: Wed, 12 Dec 2007 10:25:07 -0500
Quoted 11 lines
Introduce scan capabilities to WEXT so that userspace can do intelligent things with scan behavior such as handling hidden SSIDs more gracefully. If the driver reports a specific scan capability, the driver must respect the options specified in the
iw_scan_reqstructure when handling the SIOCSIWSCAN call, unless it's mode or state does not allow it to do so, in which case it must return an error.This version switches to Dave Kilroy's suggestion of claiming unused padding space for the
scan_capafield.Signed-off-by Dan Williams <[email protected]>
Ok, I'm fine with this.
Quoted 6 lines · Dan Williams
include/linux/wireless.h +0
-0@@ -541,6 +541,16 @@/* Maximum size of returned data */ #define IW_SCAN_MAX_DATA 4096/* In bytes */
include/linux/wireless.h line 553
Quoted 10 lines
include/linux/wireless.h +10
-0+/* Scan capability flags - in (struct iw_range *)->scan_capa */ +#define IW_SCAN_CAPA_NONE 0x00 +#define IW_SCAN_CAPA_ESSID 0x01 +#define IW_SCAN_CAPA_BSSID 0x02 +#define IW_SCAN_CAPA_CHANNEL 0x04 +#define IW_SCAN_CAPA_MODE 0x08 +#define IW_SCAN_CAPA_RATE 0x10 +#define IW_SCAN_CAPA_TYPE 0x20 +#define IW_SCAN_CAPA_TIME 0x40 +
Oh well... Would you mind putting this on enum and kerneldoc'ing them? I'm not sure what some of these would imply capabilities for.
Luis
Johannes Berg
maintainerQuoted 3 lines
Oh well... Would you mind putting this on enum and kerneldoc'ing them? I'm not sure what some of these would imply capabilities for.
kerneldoc isn't very useful on that file and nobody's going to convert all the comments there any more.
johannes
Johannes Berg
maintainerQuoted 11 lines · Dan Williams
Introduce scan capabilities to WEXT so that userspace can do intelligent things with scan behavior such as handling hidden SSIDs more gracefully. If the driver reports a specific scan capability, the driver must respect the options specified in the
iw_scan_reqstructure when handling the SIOCSIWSCAN call, unless it's mode or state does not allow it to do so, in which case it must return an error.This version switches to Dave Kilroy's suggestion of claiming unused padding space for the
scan_capafield.Signed-off-by Dan Williams <[email protected]>
Looks ok to me.
johannes