Search Linux Wireless

Re: [RFC PATCH] introduce WEXT scan capabilities

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 2007-12-06 at 11:11 -0800, Jean Tourrilhes wrote:
> On Thu, Dec 06, 2007 at 06:28:39AM -0500, Dan Williams wrote:
> > See the previous thread about fixing the ap_scan mess.  I think Jean's
> > correct in asserting that we need more bits for scan capability.
> > 
> > This patch introduces scan capability bits for WEXT; hopefully cfg80211
> > can also pick up equivalent functionality.  Capability bits are provided
> > for all the current options that may be passed to drivers in the
> > iw_scan_req structure.  It can be assumed that if the driver reports the
> > scan capability, that the driver respects the options specified in the
> > iw_scan_req structure when performing the scan.
> > 
> > Clients can use logic like (cribbed from wpa_supplicant's driver_wext.c)
> > this to figure out whether or not the capability bits are supported:
> > 
> > struct iwreq iwr;
> > struct iw_range *range;
> > 
> > <set up iwr/range for request>
> > 
> > if (ioctl(drv->ioctl_sock, SIOCGIWRANGE, &iwr) == 0) {
> > 	u8 minlen = ((char *) &range->scan_capa) - (char *) range + sizeof(range->scan_capa);
> > 
> > 	if (iwr.u.data.length >= minlen) {
> > 		/* SCAN_CAPA is supported */
> > 	}
> > }
> > 
> > Jean; what do you think?
> 
> 	Actually, I like your new proposal. I told you there was a
> gotcha, you need to add some padding to not screw up userspace. Note
> that we have already some padding in that structure (look at 'old_*'),
> so it's not the first time we do that.
> 	Basically, it should look like the patch below...
> 
> 	Regards,
> 
> 	Jean
> 
> Signed-off-by: Jean Tourrilhes <jt@xxxxxxxxxx>
> 
> --- linux/include/linux/wireless.d1.h   2007-12-06 11:04:16.000000000 -0800
> +++ linux/include/linux/wireless.h      2007-12-06 11:06:26.000000000 -0800
> @@ -1040,6 +1040,16 @@ struct   iw_range
>          * because each entry contain its channel index */
>  
>         __u32           enc_capa;       /* IW_ENC_CAPA_* bit field */
> +
> +       /* Do *NOT* use those fields, they are just used as padding to get
> +        * proper alignement with user space */
> +       __s32           min_pms;
> +       __s32           max_pms;
> +       __u16           pms_flags;
> +       __s32           modul_capa;
> +       __u32           bitrate_capa;
> +
> +       __u32           scan_capa;      /* IW_SCAN_CAPA_* bit field */
>  };

Can you explain a bit more about this patch?  Also, if nobody is
supposed to use these fields, shouldn't their names be 'reserved' or
something like that?

Thanks,
Dan


-
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux