Folks,
I am giving on Thursday next week a lecture about the Linux Kernel
Wireless stack in a
Linux User Group in Herzelia (Israel).
The slides are available online now, so I thought some of you might
be interested
to take a look; the presentation is very detailed (over 110 pages).
see:
http://tuxology.net/wp-content/uploads/2009/08/wirelessLecHerzelinux.pdf
and
http://tuxology.net/herzelinux/
(I know that this is a bit off topic, but it seems to me that this can interest
some members of the Linux wireless community)
Regards,
Rami Rosen
Johannes,
Thanks a lot for your comments. I will fix the presentation accordingly.
The code base for the lecture is indeed not the latest wireless-testing tree.
> Hey that got long!
The presentation is also quite long...
Regards,
Rami Rosen
On Thu, Aug 20, 2009 at 12:22 PM, Johannes
Berg<[email protected]> wrote:
> On Thu, 2009-08-20 at 10:02 +0300, Rami Rosen wrote:
>
>> http://tuxology.net/wp-content/uploads/2009/08/wirelessLecHerzelinux.pdf
>
> had a quick look
>
> * almost all drivers support passive scanning -- all the modern ones at
> least -- maybe some old drivers don't, but all using cfg80211 do
> * your presentation is based on old code -- all the code stuff about
> scanning is already outdated in wireless-testing
> * you can scan for multiple specific SSIDs and channels:
> iw wlan0 scan freq 2412 ssid foo bar baz
> * iw has a better IE parser, so showing a result from that may be more
> instructive
> * code stuff about authentication/association is also outdated already
> * the STA_MLME_DISABLED stuff no longer exists
> * AP MLME will never be in the kernel, not just not in the near
> future :)
> * raw packets still go through the mac80211 stack, they arrive in
> monitor_start_xmit() or so
> * four-address format is not necessarily used only for WDS, the
> standard doesn't define uses for it (ToDS = FromDS = 1)
> * an AP may transmit nullfunc (!) frames to tell clients it has no data
> buffered, but it never transmits frames with the PM bit on
> * power timeout 5 is described incorrectly -- it doesn't go to sleep
> for 5 seconds, it actually stays awake for 5 seconds after each
> packet transmission -- the time spent asleep is calculated based on
> the DTIM period etc. Cf. 04fe20372e70685d9f15966216cdffd3795fe590.
> * STA may wake up in response to TIM[AID] == 1 instead of sending
> PS-poll, which we do depends on the timeout (iwconfig wlan0 power
> timeout 0 == PS-poll, iwconfig wlan0 power timeout 100ms == send
> nullfunc and stay awake for 100ms)
> * "paramter" typo
> * ibss is in net/mac80211/ibss.c and has been for quite a while
> * PM in IBSS is not implemented typically
> * s/80211.s/802.11s/
> * s/80211.n/802.11n/
> * you can change the channel with iw (iw phy set freq ...) but it isn't
> really useful unless you're AP/monitor (and rejected otherwise)
> * Fedora no longer updates from wireless-testing afaik
> * wmaster0 is no longer created
> * assigning interface_modes doesn't set the mode, it just sets the
> possible modes :)
> * you can also call iterate_interfaces_atomic() in irq context
> * nobody cares about the wireless extensions version any more :)
> * for sniffing you may care about "iw dev <devname> set monitor <flag>*"
>
> Hey that got long!
>
> johannes
>
On Thu, Aug 20, 2009 at 12:22 AM, Rami Rosen<[email protected]> wrote:
> Luis,
> First, thanks for your quick response.
>
>> * Ditch iwconfig and refer to iw
>
> I do mention also iw; for example, in slide 70, slide 111.
> My impression is that both set of tools, wireless-tools and iw, will
> coexist for the next
> near future and maybe beyond.
Sure, but the sooner wireless-tools if forgotten into oblivion the better.
Luis
Luis,
First, thanks for your quick response.
> * Ditch iwconfig and refer to iw
I do mention also iw; for example, in slide 70, slide 111.
My impression is that both set of tools, wireless-tools and iw, will
coexist for the next
near future and maybe beyond.
> * ath5k/ath9k do not have any firmware burned onto any "ROM", the
> devices just do not require software, everything is done by the driver
Thanks for the info!
Regards,
Rami Rosen
On Thu, Aug 20, 2009 at 10:12 AM, Luis R. Rodriguez<[email protected]> wrote:
> On Thu, Aug 20, 2009 at 12:02 AM, Rami Rosen<[email protected]> wrote:
>> Folks,
>>
>> I am giving on Thursday next week a lecture about the Linux Kernel
>> Wireless stack in a
>> Linux User Group in Herzelia (Israel).
>>
>> The slides are available online now, so I thought some of you might
>> be interested
>> to take a look; the presentation is very detailed (over 110 pages).
>>
>> see:
>> http://tuxology.net/wp-content/uploads/2009/08/wirelessLecHerzelinux.pdf
>
> A few comments:
>
> * Ditch iwconfig and refer to iw
> * ath5k/ath9k do not have any firmware burned onto any "ROM", the
> devices just do not require software, everything is done by the driver
>
> Luis
>
Hello,
> iwconfig wlan0 power timeout 0 == PS-poll,
I am not sure I fully understand what you mean here by
"iwconfig wlan0 power timeout 0 == PS-poll". As far as I understand,
"iwconfig wlan0 power timeout 0" invokes ieee80211_change_ps(); this method
notifies the driver about disabling PS (by
ieee80211_hw_config(...IEEE80211_CONF_CHANGE_PS))
and sets the flags to have ~IEEE80211_CONF_PS; It also cancells the
dynamic_ps_enable_work work_queue thread. But what PS-POLL has to do with it ?
I am not sure I understand how PSPOLL is relevant here.
It could be that I missunderstand you in some point here.
Regards,
Rami Rosen
On Thu, Aug 20, 2009 at 12:22 PM, Johannes
Berg<[email protected]> wrote:
> On Thu, 2009-08-20 at 10:02 +0300, Rami Rosen wrote:
>
>> http://tuxology.net/wp-content/uploads/2009/08/wirelessLecHerzelinux.pdf
>
> had a quick look
>
> * almost all drivers support passive scanning -- all the modern ones at
> least -- maybe some old drivers don't, but all using cfg80211 do
> * your presentation is based on old code -- all the code stuff about
> scanning is already outdated in wireless-testing
> * you can scan for multiple specific SSIDs and channels:
> iw wlan0 scan freq 2412 ssid foo bar baz
> * iw has a better IE parser, so showing a result from that may be more
> instructive
> * code stuff about authentication/association is also outdated already
> * the STA_MLME_DISABLED stuff no longer exists
> * AP MLME will never be in the kernel, not just not in the near
> future :)
> * raw packets still go through the mac80211 stack, they arrive in
> monitor_start_xmit() or so
> * four-address format is not necessarily used only for WDS, the
> standard doesn't define uses for it (ToDS = FromDS = 1)
> * an AP may transmit nullfunc (!) frames to tell clients it has no data
> buffered, but it never transmits frames with the PM bit on
> * power timeout 5 is described incorrectly -- it doesn't go to sleep
> for 5 seconds, it actually stays awake for 5 seconds after each
> packet transmission -- the time spent asleep is calculated based on
> the DTIM period etc. Cf. 04fe20372e70685d9f15966216cdffd3795fe590.
> * STA may wake up in response to TIM[AID] == 1 instead of sending
> PS-poll, which we do depends on the timeout (iwconfig wlan0 power
> timeout 0 == PS-poll, iwconfig wlan0 power timeout 100ms == send
> nullfunc and stay awake for 100ms)
> * "paramter" typo
> * ibss is in net/mac80211/ibss.c and has been for quite a while
> * PM in IBSS is not implemented typically
> * s/80211.s/802.11s/
> * s/80211.n/802.11n/
> * you can change the channel with iw (iw phy set freq ...) but it isn't
> really useful unless you're AP/monitor (and rejected otherwise)
> * Fedora no longer updates from wireless-testing afaik
> * wmaster0 is no longer created
> * assigning interface_modes doesn't set the mode, it just sets the
> possible modes :)
> * you can also call iterate_interfaces_atomic() in irq context
> * nobody cares about the wireless extensions version any more :)
> * for sniffing you may care about "iw dev <devname> set monitor <flag>*"
>
> Hey that got long!
>
> johannes
>
On Thu, 2009-08-20 at 10:02 +0300, Rami Rosen wrote:
> http://tuxology.net/wp-content/uploads/2009/08/wirelessLecHerzelinux.pdf
had a quick look
* almost all drivers support passive scanning -- all the modern ones at
least -- maybe some old drivers don't, but all using cfg80211 do
* your presentation is based on old code -- all the code stuff about
scanning is already outdated in wireless-testing
* you can scan for multiple specific SSIDs and channels:
iw wlan0 scan freq 2412 ssid foo bar baz
* iw has a better IE parser, so showing a result from that may be more
instructive
* code stuff about authentication/association is also outdated already
* the STA_MLME_DISABLED stuff no longer exists
* AP MLME will never be in the kernel, not just not in the near
future :)
* raw packets still go through the mac80211 stack, they arrive in
monitor_start_xmit() or so
* four-address format is not necessarily used only for WDS, the
standard doesn't define uses for it (ToDS = FromDS = 1)
* an AP may transmit nullfunc (!) frames to tell clients it has no data
buffered, but it never transmits frames with the PM bit on
* power timeout 5 is described incorrectly -- it doesn't go to sleep
for 5 seconds, it actually stays awake for 5 seconds after each
packet transmission -- the time spent asleep is calculated based on
the DTIM period etc. Cf. 04fe20372e70685d9f15966216cdffd3795fe590.
* STA may wake up in response to TIM[AID] == 1 instead of sending
PS-poll, which we do depends on the timeout (iwconfig wlan0 power
timeout 0 == PS-poll, iwconfig wlan0 power timeout 100ms == send
nullfunc and stay awake for 100ms)
* "paramter" typo
* ibss is in net/mac80211/ibss.c and has been for quite a while
* PM in IBSS is not implemented typically
* s/80211.s/802.11s/
* s/80211.n/802.11n/
* you can change the channel with iw (iw phy set freq ...) but it isn't
really useful unless you're AP/monitor (and rejected otherwise)
* Fedora no longer updates from wireless-testing afaik
* wmaster0 is no longer created
* assigning interface_modes doesn't set the mode, it just sets the
possible modes :)
* you can also call iterate_interfaces_atomic() in irq context
* nobody cares about the wireless extensions version any more :)
* for sniffing you may care about "iw dev <devname> set monitor <flag>*"
Hey that got long!
johannes
On Thu, Aug 20, 2009 at 12:02 AM, Rami Rosen<[email protected]> wrote:
> Folks,
>
> I am giving on Thursday next week a lecture about the Linux Kernel
> Wireless stack in a
> Linux User Group in Herzelia (Israel).
>
> The slides are available online now, so I thought some of you might
> be interested
> to take a look; the presentation is very detailed (over 110 pages).
>
> see:
> http://tuxology.net/wp-content/uploads/2009/08/wirelessLecHerzelinux.pdf
A few comments:
* Ditch iwconfig and refer to iw
* ath5k/ath9k do not have any firmware burned onto any "ROM", the
devices just do not require software, everything is done by the driver
Luis
Hi,
> > iwconfig wlan0 power timeout 0 == PS-poll,
>
> I am not sure I fully understand what you mean here by
> "iwconfig wlan0 power timeout 0 == PS-poll". As far as I understand,
> "iwconfig wlan0 power timeout 0" invokes ieee80211_change_ps(); this method
> notifies the driver about disabling PS (by
> ieee80211_hw_config(...IEEE80211_CONF_CHANGE_PS))
> and sets the flags to have ~IEEE80211_CONF_PS; It also cancells the
> dynamic_ps_enable_work work_queue thread. But what PS-POLL has to do with it ?
> I am not sure I understand how PSPOLL is relevant here.
No,
iwconfig wlan0 power off
goes into the disable PS case.
iwconfig wlan0 power timeout 0
sets the timeout to zero and power management on. And when the timeout
is 0 we use ps-poll.
johannes