June 8 2002
AP Radar is a wireless utility that stumbles, manages associations to access points, makes authorization requests to wireless gateways, reestablishes a dropped connection, and does a little peer-2-peer communication. It could possibly be a self-contained node map client, ala the boingo client.
AP Radar now has its own Source Forge project! (july 3 2002) http://apradar.sourceforge.net
The problem its trying to solve is that AccessPoint association in linux is too manual.
Lets say you want to use an access point.
Open an xterm - that right there is difficult for some
Do you know the essid?
Yes go to a1.
No go to b1.
I know the essid of the access point I want to use.
a1) use iwconfig to set the essid to the essid of the access point go to step c1
I dont know the essid of the access point I want to use.
b1) use iwconfig to set the essid to any. this is usually already the case
b2) see which AP your driver/card has picked up on. shold be the strongest signal. go to step c1. If you have a rough idea of what the essid name is and this isnt it, you are screwed.
c1) is the signal strength is adequate? yes - go to step d1. no - you are screwed.
d1) aquire an IP address by running a dhcp client such as pump. wait for an answer.
d2) ping the gateway, test the DNS service. good - go to step e1. no - you are screwed.
Authentication Layer (future environment)
e1) send a broadcast request for the authentication server on this segment. Used to locate a nocat or metanet "gateway access service". Use BroadcastXml for this.
e2) if no broadcast answer, assume the ip of the default gateway is an 'access service'. send an xml-rpc authentication request to the server. If no answer, stop.
Once you're connected, keep a constant monitor of the associated AP. My cisco card has the very annoying habit of switching to a stronger AP, even with a different ESSID, whenever it feels the need. Also keep a constant monitor of the access points in range. OS X is a great example of how this should work.
Use BroadcastXml to have AP radar discover any other boxes on the segment that are running AP Radar.
idea 1. Have steps a through d in a Gnome component. Pro: Then it could be plugged into lots of other gnome apps easily. Con: Id have to write in c++
idea 2. A java applet. Pro: Im already proficient in java. Con: Difficult to talk to glibc/kernel. Many people dont have java installed
idea 3. a gnome toolbar applet.
- Stumbling will involve a lot of custom code, ugly hacks, and possibly promiscuous mode. This is what is required in the 2.4 kernel series of pcmcia-cs. The 2.5-era pcmcia-cs has functions in the API to get a list of all APs in range.
Is everything linux written in 'c'?? It turns out mandrake doesnt have the gtk bindings to c++ installed, and i cant even find the rpm package for it. So how do i make a gtk app in linux? perl, python, ruby, those are options. id prefer ruby but id have to learn it. python is supposed to be good but i have an unreasonable bias against it. ive had much first hand experience in the dark, heartless evil that is object oriented perl.
Ive learned some of the ways of cisco 'monitor mode'. This sends all packets up to the kernel. It makes the cisco card a great stumbler. It also makes the card useless as a wireless client. kismet has a 'generic' stumble mode that may get a list of APs without any tricks that make the card drop the AP association. (BTW: ACX100 based cards also implement Cisco monitor mode)
Whats new in the linux kernel for wireless support:
2.5.20 and later have v14 wireless extensions
Im going to talk about AP Radar at the next PTP Meeting.