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

Reply via email to