I've been looking at writing some debugging/diagnostic GUI tools lately for atheros devices on both Linux and FreeBSD.
My problem is that (a) my free time is being spent either sleeping or hacking on FreeBSD's wireless code, and (b) I'm not really "GUI" focused.
Someone's already begun doing this with ath5k - http://wiki.spench.net/wiki/RADAR - but he used C# and targetted Windows. Although I'm sure I could figure out how to make things work in Wine or (if there's source code for his graphing library) compile it using Mono, what I'd really like to see is a native Qt4 app that we can compile up on pretty much any platform.
Before you say "but python! or java!", sure, as long as it can handle the ridiculous levels of events that can occur (in really horrible environments, that's upwards of 50,000 events a second.) As I've also been a field engineer in the past, I'd like for this to be portable to tablets and netbook devices that don't necessarily have a lot of CPU.
So, here's my request. I'd like to see these tools written and I'd like to see these written using an open source licence. I'm willing to help you out with how ath5k/ath9k/HAL drivers work and even add some further documentation to whatever is in the driver. I even have a few ideas in mind as to useful displays. I even have working radar frame decoding code (based on what's in ath9k/FreeBSD.) I just don't have the time/expertise to write the GUI.
I figure we can do this as a joint BSD/Linux "GSoC" proposal.
What I'm looking for:
- Something in C++ / QT4 (but if you can prove it will work in python and we can make installable images for the below OSes, I'm all ears);
- It has to be easily (within definitions of "easily") portable to Linux, FreeBSD, MacOSX, Windows;
- It has to be flexible enough to work on a live packet capture (via pcap/bpf/whatever) (and optionally record that to disk at the same time) or an offline packet capture;
The initial GUI bits I'd like to see:
- Graph PHY errors (OFDM/CCK PHY error rates, CRC/FCS errors) in a time-series graph;
- Graph general frame statistics - the HAL/driver API exposes a lot of live statistics (over 130 different data points) and I think graphing the TX/RX stats will be very helpful;
- .. and likely throw in beacon/cabq statistics too, to see things like beacon miss events ,cabq too long events, etc;
- Frequency histograms of the radar pulse duration / RSSI;
- Waterfall style plots of the radar pulse duration and RSSI;
- Time series radar plots of the radar pulse/duration and RSSI;
- If we can get the format opened up, plots of the radar FFT information for longer pulses.