Tuesday, June 8, 2010

A bit of a change - working on Atheros / 802.11

One of my current contracts has me working on the FreeBSD 802.11 support (specifically Atheros) chipsets for a local company. I've been adding some missing features to the later chipset support and working out kinks in general.

This has involved spending a lot of time knee-deep in the Atheros driver code. What you would traditionally find in firmware on wireless NICs is implemented in the host driver. The hardware handles packet transmission and reception, doing collision avoidance, encryption/decryption, the radio encoding and decoding; the driver pretty much handles everything else. This includes keeping all that per-state information about wireless stations, handling authentication and roaming, and even includes things like doing radio and baseband calibration.

The most difficult part of this has been the distinct lack of documentation. So far I've made some good contacts in the Linux developer community who include a number of developers employed by Atheros (and have access to documentation!) and I've made quite significant inroads in making the FreeBSD atheros/wireless code a lot more stable.

The wireless/embedded development work can be found at my FreeBSD Wiki site. The majority of the improvements will make it into FreeBSD-9.0.

Xenion is still providing on-going Squid/Lusca/CDN support and development services to a variety of clients. This is not going to change any time soon!

No comments: