Search Linux Wireless

nl80211 notification when scanning is finished?

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

 



Hi all,

I'm writing a fake wifi driver (basically a proxy between two devices) which uses nl80211 to talk to a real wifi device, and it mostly works, but I have a problem with the scanning interface.

From userland, after sending the NL80211_CMD_GET_SCAN the results come in as a single netlink read (split up and the handler gets called once for each) and I know it is finished after that read, but I'm triggering the scan from a different kernel driver (so driverA -> driverB -> genl to userland -> nl80211 -> userland -> driverB -> driverA). I don't want to modify the nl80211 message (with the theory that i could go driverB -> nl80211 directly later) but I have no way to know when scanning results have been fully sent. (Or even how many results to expect so I can finally call cfg80211_scan_done() in driverA when that many stations have been reported from nl80211).

Is there any way to do what I want? Is it possible to know when we get the NLMSG_DONE type from the post_doit? Is it possible to figure it out using a combination of the pre_doit() and post_doit() callbacks?

The really nasty hack I'm using currently is having a timeout of 1s after I receive a NL80211_CMD_GET_SCAN (resetting the timeout for each one) but I'm praying there is a nicer way?

Thanks.
Jonathan Gordon

P.S yes, the design is convoluted, but there is no other way to do what we want. :)
--
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