Re: Linux Kernel Wireless stack presentation

Johannes Berg
2009-08-20T09:22:41Z

[-- Attachment #1: Type: text/plain, Size: 2447 bytes --]

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

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 801 bytes --]