On Thu, Mar 31, 2011 at 4:10 AM, Werner Almesberger <wer...@almesberger.net> wrote: > I'm looking into what it would take to get proper TCP/IP support on > Linux for the AT86RF231-based ATBEN/ATUSB cards we're developing in the > qi-hardware project. > > It seems that the best bet are currently the driver and MAC layers from > linux-zigbee, with 6LoWPAN on top. After a quick look at the mailing > list and some the code, this is my impression of where things stand: > > - IEEE 802.15.4 driver API > > Implemented and partially in mainline. Doesn't support common hardware > features like CRC, auto-ack, and auto-retransmit. (Should it ?) > > Drivers are not in mainline. > > - IEEE 802.15.4 MAC (with coordinator) > > Implemented but not in mainline. Seems to lack functionality, > e.g., I've observed that unanswered association requests don't seem to > get repeated. > > - ZigBee > > Didn't look at the code for this. Wikipedia claims that the > specification's licensing terms are incompatible with the GPL: > http://en.wikipedia.org/wiki/Zigbee#Licensing
I believe this to be correct which prevents an in-kernel solution from being developed. That's why nobody has done one. I believe several companies have implemented Zigbee in user space but no one has shared their code. The fastest way to a user space implementation would be to start with this: http://freaklabs.org/index.php/FreakZ-Open-Source-Zigbee-Stack.html There is in-kernel support for getting the Zigbee packets to user space in the linux-zigbee tree but I don't believe the code is complete. It should be too hard to finish it. A third solution, which is also the most common, is to run the Zigbee stack in a SOC that is attached to the Linux box. So instead of using the AT86RF231 put a mc13224 or a TI cc2531 on the USB stick and use the vendor's closed source Zigbee implementation. Communicate with the USB stick at the application level instead of network level. The Linux box becomes a application gateway to the Zigbee network instead of interconnecting at the packet level. http://focus.ti.com/docs/toolsw/folders/print/cc2531emk.html > > Is this assessment correct ? > > - 6LoWPAN > > Two partial implementations exist (an older one by Mariano Alvira, a > more recent one by Jon Smirl), but the code is incomplete and its > design considered unsuitable for mainline. > > This seems to be the area most in need of work. I saw on the list > that the best way forward would be to port the code from the Contiki > OS. Contiki is licensed under the 3-clause BSD license, which should > be acceptable for inclusion into the Linux kernel. Yes, it is fair game to port the Contiki code into the Linux kernel. Just acknowledge in the Linux files where the code came from. > Maybe also bringing the existing implementations into a more-or-less > working state could also yield quick if dirty results. Look at my code to get a feeling for the general architecture of how to integrate into Linux. Then I'd re-port Contiki back into the kernel. That way you'll get the most up to date code. Doing this port is not that hard and we had it some what working. There was no commercial backing behind our ports, they were just done on a hobbyist basis. I have often wondered why no commercial entities will back a 6lowpan implementation for Linux. Probably because the 6lowpan spec still isn't completely finalized. > Did I get this overview more or less right ? > > I also have the impression that activity on linux-zigbee is rather quiet > for a project that covers an area that's considered "hot". Is this > because there is simply not much interest in using IEEE 802.15.4 with > Linux at the moment, or is the Linux-related action happening > elsewhere ? The commercial vendors are using an SOC attached to the Linux box and bridging at the gateway layer. That lets them avoid writing any Zigbee code. The Zigbee licensing pretty much prevents any shared work on an open source Zigbee implementation. Akiba (Freaklabs) dropped his membership in Zigbee after he found out that he couldn't do open source work. His code is licensed BSD plus additional Zigbee restrictions. Note that the Zigbee network protocols are in the process of being phased out. They are being replaced by a Zigbee application layer over 6lowpan. But once you get rid of the Zigbee network protocols there isn't very much left to call Zigbee. COAP is an alternative IETF backed application protocol minus the Zigbee IP licensing baggage. > > Thanks, > - Werner > > ------------------------------------------------------------------------------ > Create and publish websites with WebMatrix > Use the most popular FREE web apps or write code yourself; > WebMatrix provides all the features you need to develop and > publish your website. http://p.sf.net/sfu/ms-webmatrix-sf > _______________________________________________ > Linux-zigbee-devel mailing list > Linux-zigbee-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/linux-zigbee-devel > -- Jon Smirl jonsm...@gmail.com ------------------------------------------------------------------------------ Create and publish websites with WebMatrix Use the most popular FREE web apps or write code yourself; WebMatrix provides all the features you need to develop and publish your website. http://p.sf.net/sfu/ms-webmatrix-sf _______________________________________________ Linux-zigbee-devel mailing list Linux-zigbee-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-zigbee-devel