What's the state of 801.11n on FreeBSD?
It's working for me in both station and access point modes. I primarily focus on Atheros hardware; others have reported success with the Intel NICs supported by the iwn driver.
So this isn't just about getting FreeBSD-base PCs communicating over 802.11n. You're talking about embedded FreeBSD installs on wifi router hardware?
Yes. It's primarily a technology demonstration (ie, showing that it is indeed possible) but it also ends up being a great way to do regression and performance testing. A lot of the wifi router hardware is quite cheap and plentiful, making it ideal for testing. Others are finding it useful as part of their research projects, for example a group at Swinburne University are beginning to use FreeBSD on embedded hardware as part of their research into link congestion and quality of service improvements.
Router hacking has a long and glorious history. What in particular are you trying to accomplish? What advanced features are you trying to enable?
For the most part I'm simply investigating how feasible it all is. For the most part I'm trying to give people the tools they need to go out and do more interesting things. So really, I'm trying to accomplish "community enabling." :-)
So this is OSNews, so you know we say this with love, but why do it? What does FreeBSD bring to this sphere that, say, Linux can't?
Honestly? Nothing. Besides that it's BSD, not Linux. There are features that Linux has that BSD doesn't and vice versa. If you're interested in the BSD way of things, my work is just lowering the bar a little.
It looks like you're drawing on work that the Linux community has done to produce drivers for chipsets and other hardware? How close does that work get you to where you want to be?
Luckily, Sam Leffler left most of the 802.11n protocol stack code in FreeBSD before he left for greener pastures, so I only really had to focus on the driver. There was a bit of debugging and cleaning up but yes, I luckily didn't have to implement too much there.
I've been working closely with the Atheros developers over in the OpenWRT and ath9k project, on both board support and 11n chipset support. We've found a few bugs together in both codebases - having to "bootstrap" FreeBSD's Atheros 802.11 support from scratch has had me do a bit of a code review of ath9k and in doing this I've found a few things that weren't really right. I'd like to hope that both FreeBSD and Linux/ath9k have helped each other in this respect.
I've also been working closely with Atheros (now Qualcomm Atheros) who have given me access to their internal drivers and documentation through an Open Source NDA Programme. This has helped me bootstrap the rest of the missing Atheros 11n chipset support.
Can you see other opportunities to benefit from other initiatives in the Linux community in the same way?
Quite likely. I think cross pollination between projects can only be a good thing. Even if both projects decide to go along different paths, even just having to sit down and think about alternatives is going to help you in the long run.
As for what they are, I can likely list a few more after the christmas break. :)
If you had the chance to draw on some expertise from outside of your current group of collaborators, what kinds of skills or efforts do you need the most at this point?
For the most part I (and Linux wireless as well) just need some interested people who don't mind getting their hands dirty in the code. We're all happy to answer questions and help you figure out what's going on; you just need to be the inquisitive type!
For more information on the project:
- Adrian's initial net80211/802.11 overview page.
- Device information: here and here.
- ath(4) 11n information
Do you know someone who's working on an interesting OS-related project? let us know, and we'll interview them for OSNews.