kern/125502: [ral] ifconfig ral0 scan produces no output unless
in shared mode
Dimitry Andric
dimitry at andric.com
Wed Aug 27 21:40:04 UTC 2008
The following reply was made to PR kern/125502; it has been noted by GNATS.
From: Dimitry Andric <dimitry at andric.com>
To: bug-followup at FreeBSD.org, chelton30 at gmail.com
Cc:
Subject: Re: kern/125502: [ral] ifconfig ral0 scan produces no output unless
in shared mode
Date: Wed, 27 Aug 2008 23:36:46 +0200
The ral I've got here on RELENG_7 is a mini-PCI card:
ral0: <Ralink Technology RT2561S> mem 0xdfef8000-0xdfefffff irq 18 at device 2.0 on pci2
ral0: MAC/BBP RT2561C, RF RT5225
ral0: Ethernet address: 00:12:0e:61:48:e4
ral0: [ITHREAD]
I've got exactly the same as the original submitter: "ifconfig ral0
scan" keeps busy forever, and never returns, if authmode is open. When
I set authmode to shared, it scans within a few seconds, usually.
When turning on +scan+auth+debug+assoc, I get the following for authmode
shared:
ral0: scan_next: chan 2g -> 1g [active, dwell min 20 max 200]
ral0: [ff:ff:ff:ff:ff:ff] send probe req on channel 1
ral0: scan_next: chan 1g -> 6g [active, dwell min 20 max 200]
ral0: [ff:ff:ff:ff:ff:ff] send probe req on channel 6
ral0: scan_next: chan 6g -> 11g [active, dwell min 20 max 200]
ral0: [ff:ff:ff:ff:ff:ff] send probe req on channel 11
ral0: scan_next: chan 11g -> 7g [active, dwell min 20 max 200]
ral0: [ff:ff:ff:ff:ff:ff] send probe req on channel 7
ral0: scan_next: chan 7g -> 13g [active, dwell min 20 max 200]
ral0: [ff:ff:ff:ff:ff:ff] send probe req on channel 13
ral0: scan_next: chan 13g -> 52a [active, dwell min 20 max 200]
ral0: [ff:ff:ff:ff:ff:ff] send probe req on channel 52
ral0: scan_next: chan 52a -> 56a [active, dwell min 20 max 200]
ral0: [ff:ff:ff:ff:ff:ff] send probe req on channel 56
ral0: scan_next: chan 56a -> 60a [active, dwell min 20 max 200]
ral0: [ff:ff:ff:ff:ff:ff] send probe req on channel 60
ral0: scan_next: chan 60a -> 64a [active, dwell min 20 max 200]
ral0: [ff:ff:ff:ff:ff:ff] send probe req on channel 64
ral0: scan_next: chan 64a -> 36a [active, dwell min 20 max 200]
ral0: [ff:ff:ff:ff:ff:ff] send probe req on channel 36
ral0: scan_next: chan 36a -> 40a [active, dwell min 20 max 200]
ral0: [ff:ff:ff:ff:ff:ff] send probe req on channel 40
ral0: scan_next: chan 40a -> 44a [active, dwell min 20 max 200]
ral0: [ff:ff:ff:ff:ff:ff] send probe req on channel 44
ral0: ieee80211_start_scan: active scan already in progress
ral0: scan_next: chan 44a -> 48a [active, dwell min 20 max 200]
ral0: [ff:ff:ff:ff:ff:ff] send probe req on channel 48
ral0: scan_next: chan 48a -> 2g [active, dwell min 20 max 200]
ral0: [ff:ff:ff:ff:ff:ff] send probe req on channel 2
ral0: received probe_resp from 00:90:4c:60:04:00 rssi 27
[00:90:4c:60:04:00] new probe_resp on chan 2 (bss chan 2) "slackernet"
[00:90:4c:60:04:00] caps 0x411 bintval 100 erp 0x0
ral0: ieee80211_add_scan: chan 2g min dwell met (8236357 > 8236355)
ral0: received beacon from 00:90:4c:60:04:00 rssi 27
[00:90:4c:60:04:00] new beacon on chan 2 (bss chan 2) "slackernet"
[00:90:4c:60:04:00] caps 0x411 bintval 100 erp 0x0
ral0: scan_next: chan 2g -> 3g [active, dwell min 20 max 200]
ral0: [ff:ff:ff:ff:ff:ff] send probe req on channel 3
ral0: scan_next: chan 3g -> 4g [active, dwell min 20 max 200]
ral0: [ff:ff:ff:ff:ff:ff] send probe req on channel 4
ral0: received probe_resp from 00:1b:2f:de:86:1e rssi 17
ral0: received beacon from 00:1b:2f:de:86:1e rssi 17
ral0: scan_next: chan 4g -> 5g [active, dwell min 20 max 200]
ral0: [ff:ff:ff:ff:ff:ff] send probe req on channel 5
ral0: received probe_resp from 00:1b:2f:de:86:1e rssi 15
[00:1b:2f:de:86:1e] new probe_resp on chan 5 (bss chan 5) "pipi"
[00:1b:2f:de:86:1e] caps 0x431 bintval 100 erp 0x0
ral0: ieee80211_add_scan: chan 5g min dwell met (8236845 > 8236843)
ral0: received beacon from 00:1b:2f:de:86:1e rssi 15
[00:1b:2f:de:86:1e] new beacon on chan 5 (bss chan 5) "pipi"
[00:1b:2f:de:86:1e] caps 0x431 bintval 100 erp 0x0
ral0: scan_next: chan 5g -> 8g [active, dwell min 20 max 200]
ral0: [ff:ff:ff:ff:ff:ff] send probe req on channel 8
ral0: scan_next: chan 8g -> 9g [active, dwell min 20 max 200]
ral0: [ff:ff:ff:ff:ff:ff] send probe req on channel 9
ral0: scan_next: chan 9g -> 10g [active, dwell min 20 max 200]
ral0: [ff:ff:ff:ff:ff:ff] send probe req on channel 10
ral0: scan_next: chan 10g -> 12g [active, dwell min 20 max 200]
ral0: [ff:ff:ff:ff:ff:ff] send probe req on channel 12
ral0: scan_next: chan 12g -> 14g [active, dwell min 20 max 200]
ral0: [ff:ff:ff:ff:ff:ff] send probe req on channel 14
ral0: scan_next: chan 14g -> 149a [active, dwell min 20 max 200]
ral0: [ff:ff:ff:ff:ff:ff] send probe req on channel 149
ral0: scan_next: chan 149a -> 153a [active, dwell min 20 max 200]
ral0: [ff:ff:ff:ff:ff:ff] send probe req on channel 153
ral0: scan_next: chan 153a -> 157a [active, dwell min 20 max 200]
ral0: [ff:ff:ff:ff:ff:ff] send probe req on channel 157
ral0: scan_next: chan 157a -> 161a [active, dwell min 20 max 200]
ral0: [ff:ff:ff:ff:ff:ff] send probe req on channel 161
ral0: scan_next: chan 161a -> 100a [active, dwell min 20 max 200]
ral0: [ff:ff:ff:ff:ff:ff] send probe req on channel 100
ral0: scan_next: chan 100a -> 104a [active, dwell min 20 max 200]
ral0: [ff:ff:ff:ff:ff:ff] send probe req on channel 104
ral0: scan_next: chan 104a -> 108a [active, dwell min 20 max 200]
ral0: [ff:ff:ff:ff:ff:ff] send probe req on channel 108
ral0: scan_next: chan 108a -> 112a [active, dwell min 20 max 200]
ral0: [ff:ff:ff:ff:ff:ff] send probe req on channel 112
ral0: scan_next: chan 112a -> 116a [active, dwell min 20 max 200]
ral0: [ff:ff:ff:ff:ff:ff] send probe req on channel 116
ral0: scan_next: chan 116a -> 120a [active, dwell min 20 max 200]
ral0: [ff:ff:ff:ff:ff:ff] send probe req on channel 120
ral0: scan_next: chan 120a -> 124a [active, dwell min 20 max 200]
ral0: [ff:ff:ff:ff:ff:ff] send probe req on channel 124
ral0: scan_next: chan 124a -> 128a [active, dwell min 20 max 200]
ral0: [ff:ff:ff:ff:ff:ff] send probe req on channel 128
ral0: scan_next: chan 128a -> 132a [active, dwell min 20 max 200]
ral0: [ff:ff:ff:ff:ff:ff] send probe req on channel 132
ral0: scan_next: chan 132a -> 136a [active, dwell min 20 max 200]
ral0: [ff:ff:ff:ff:ff:ff] send probe req on channel 136
ral0: scan_next: chan 136a -> 140a [active, dwell min 20 max 200]
ral0: [ff:ff:ff:ff:ff:ff] send probe req on channel 140
ral0: macaddr bssid chan rssi rate flag wep essid
- 00:90:4c:60:04:00 00:90:4cral0: received beacon from 00:90:4c:60:04:00 rssi 27
[00:90:4c:60:04:00] new beacon on chan 2 (bss chan 2) "slackernet"
[00:90:4c:60:04:00] caps 0x411 bintval 100 erp 0x0
:60:04:00 2 30 54M ess wep! "slackernet"
- 00:1b:2f:de:86:1e 00:1b:2f:de:86:1e 5 16 54M ess wep! "pipi"
ral0: ieee80211_add_scan: chan 2g min dwell met (8241192 > 8240968)
ral0: scan_next: done, restart [ticks 8241200, dwell min 20 scanend 2155701896]
...and this in an endless loop, of course. But the ifconfig *does*
return. When authmode is open, I get exactly the same messages, but
ifconfig doesn't return.
The last thing it appears to do, according to ktrace, is to read from a
socket:
...
2544 ifconfig CALL __sysctl(0xbfbfe2c0,0x6,0,0xbfbfe2d8,0,0)
2544 ifconfig RET __sysctl 0
2544 ifconfig CALL __sysctl(0xbfbfe2c0,0x6,0x8102000,0xbfbfe2d8,0,0)
2544 ifconfig RET __sysctl 0
2544 ifconfig CALL socket(PF_INET,SOCK_DGRAM,IPPROTO_IP)
2544 ifconfig RET socket 3
2544 ifconfig CALL socket(PF_ROUTE,SOCK_RAW,0)
2544 ifconfig RET socket 4
2544 ifconfig CALL ioctl(0x3,SIOCS80211,0xbfbfe290)
2544 ifconfig RET ioctl 0
2544 ifconfig CALL read(0x4,0xbfbfda90,0x800)
and here it hangs, until interrupted.
More information about the freebsd-net
mailing list