Search Linux Wireless

Re: requesting information on null frame send during scan in mac80211 - linux 3_1_4 code base

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

 



On Sat, Mar 3, 2012 at 12:09 AM,  <vivekanandah@xxxxxxxxxxx> wrote:
> hi,

hi vivekanandah,

>
> i am new to the linux system and i am hoping that this is the right list to
> mail for my query.
>
> I am presently working on linux kernel 3.1.4 and i was looking into the
> mac80211 code and the scan implementation on the same.

the present wireless-testing scan state machine is simplified by the
johannes's patch
http://comments.gmane.org/gmane.linux.kernel.wireless.general/80287
and easy to understand

>
> when the scan process is started, the station is supposed to send a null
> frame with PM bit set, so that AP can buffer frames to the station.
>
> However, it is seen in code that when scan is initiated (software scan),
> the ieee80211_offchannel_enable_all_ps(local, false); function is called,
> since the flag is set to false, the NULL frame will not be sent out. also,
> when the scan state changes to leaving operating channel, the vifs interface
> is blocked. even here, i see that the flag setting is false for offchannel
> Power save and the null frame is not sent out.

the current wireless-testing tree does this. please look at
ieee80211_start_sw_scan
git clone git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git

>
> the comment however just prior to the vifs stop function call indicates that
> offchannel settings are already completed at the start of scan process. the
> code snippet is shown below:
>
> /*PS will already be in off-channel mode, we do that once at the beginning
> of scanning.*/
> ieee80211_offchannel_stop_vifs(local, false);
>
> i just would like to know why the flag is FALSE in both cases, so we never
> send out a null frame to the AP at the start. is this a bug or there is some
> deficiency in my current understanding?

based on my limited understanding of the previous code, my guess we
have in ieee80211_work in work.c and this should send a null func
frame. (both started and tmp_channel will be false and NULL

if (on_oper_chan != on_oper_chan2) {
				if (on_oper_chan2) {
					/* going off oper channel, PS too */
----> 					ieee80211_offchannel_stop_vifs(local,
								       true);
					ieee80211_hw_config(local, 0);
				} else {
					/* going on channel, but leave PS

its best to look at the current wireless-testing tree code, its more simpler.


>
> --
> 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



-- 
thanks,
shafi
--
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 Wireless Personal Area Network]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux