Skip to contentSkip to conversation

Q: iw - how to scan for a specific ssid / AP mode scan

DISCUSSION Zefir Kurtisi 2 participants 4 messages Jul 3, 2015 – Jul 13, 2015

lore
Share & tools
lore
#0 lore raw

Folks,

I have difficulties using iw for a specific use case or fail to understand the documentation correctly.

My platform is a recent OpenWRT, running ath9k.

First use case is scanning for a given ssid in managed mode. According do iw's documentation (and the attribute description in nl80211.h), issuing

iw dev wlan0 scan flush ssid <SSID>

should do exactly this, but I keep receiving a full list of visible APs. I double checked that NL80211_SCAN_FLAG_FLUSH and NL80211_ATTR_SCAN_SSIDS are set correctly, so am puzzled whether there is some bug left or I miss some detail.

The second issue is about scanning in AP mode. Where I want to go is having two APs operating on arbitrary DFS channels with periodic scans to discover each other. What I observe is
a) passive scanning: iw dev wlan0 scan flush ap-force passive
=> does not work - no scan results are provided
b) active scanning: iw dev wlan0 scan flush ap-force
* finds only a subset of APs compared to a scan in managed mode
* finds only APs on non-DFS channels

Again, I might be missing some relevant documentation, but to me the observed results look rather like 'not yet implemented' than inherent limitations.

Any hint / feedback is appreciated.

Thanks,
Zefir

#1 lore raw
Quoted 7 lines · Zefir Kurtisi

Folks,

I have difficulties using iw for a specific use case or fail to understand the documentation correctly.

My platform is a recent OpenWRT, running ath9k.

Quoted 8 lines

First use case is scanning for a given ssid in managed mode. According do iw's documentation (and the attribute description in nl80211.h), issuing

iw dev wlan0 scan flush ssid <SSID>

should do exactly this, but I keep receiving a full list of visible APs.

This is telling it to scan for that particular network, and that's what it's going to do, but it's still going to report everything that it heard, for example when hearing beacons while scanning.

Quoted 11 lines

The second issue is about scanning in AP mode. Where I want to go is having two
APs operating on arbitrary DFS channels with periodic scans to discover each
other. What I observe is
a) passive scanning: iw dev wlan0 scan flush ap-force passive => does not work - no scan results are provided
b) active scanning: iw dev wlan0 scan flush ap-force
* finds only a subset of APs compared to a scan in managed mode
* finds only APs on non-DFS channels

Quoted 4 lines

Again, I might be missing some relevant documentation, but to me the observed results look rather like 'not yet implemented' than inherent limitations.

Not sure - but you do need to realize that the AP isn't really allowed to go off-channel for any period of time (like scanning) so this isn't really guaranteed to work well. Especially passive scanning seems like a really bad idea. As to why it's not actually working, I have no idea.

johannes

#2 lore raw
Quoted 12 lines · Johannes Berg
Quoted 11 lines · Zefir Kurtisi

Folks,

I have difficulties using iw for a specific use case or fail to understand the documentation correctly.

My platform is a recent OpenWRT, running ath9k.

First use case is scanning for a given ssid in managed mode. According do iw's documentation (and the attribute description in nl80211.h), issuing

Quoted 9 lines
Quoted 4 lines

iw dev wlan0 scan flush ssid <SSID>

should do exactly this, but I keep receiving a full list of visible APs.

This is telling it to scan for that particular network, and that's what it's going to do, but it's still going to report everything that it heard, for example when hearing beacons while scanning.

Ah, that explains it. Though, intuitively when providing an SSID to scan for, I'd expect other networks seen not to be displayed. If this is of general interest, I could work out some extension to iw and provide a related patch.

Quoted 16 lines
Quoted 11 lines

The second issue is about scanning in AP mode. Where I want to go is having two
APs operating on arbitrary DFS channels with periodic scans to discover each
other. What I observe is
a) passive scanning: iw dev wlan0 scan flush ap-force passive => does not work - no scan results are provided
b) active scanning: iw dev wlan0 scan flush ap-force
* finds only a subset of APs compared to a scan in managed mode
* finds only APs on non-DFS channels

Quoted 4 lines

Again, I might be missing some relevant documentation, but to me the observed results look rather like 'not yet implemented' than inherent limitations.

Quoted 5 lines

Not sure - but you do need to realize that the AP isn't really allowed to go off-channel for any period of time (like scanning) so this isn't really guaranteed to work well. Especially passive scanning seems like a really bad idea. As to why it's not actually working, I have no idea.

Your confirmation that scanning in AP mode is not reliable helps a lot.

As for the 'bad idea', this is a special case: the APs don't provide a service at all, they only need to discover each other reliably in a mobile environment. I assumed AP background scanning would do the trick out of the box, but now will move to a time multiplexed AP / STA operation.

Quoted 1 line

johannes

Thanks a lot,
Zefir

#3 lore raw
Quoted 6 lines

Ah, that explains it. Though, intuitively when providing an SSID to scan for, I'd
expect other networks seen not to be displayed. If this is of general interest, I
could work out some extension to iw and provide a related patch.

I don't think so - you're not providing "find these networks", you're providing "send probe requests with these SSIDs", i.e. it's perfectly valid to also say "" A B C to create 4 probe requests.

johannes