From patchwork Sun Jun 7 01:18:33 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Lapin X-Patchwork-Id: 28194 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@bilbo.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from ozlabs.org (ozlabs.org [203.10.76.45]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "mx.ozlabs.org", Issuer "CA Cert Signing Authority" (verified OK)) by bilbo.ozlabs.org (Postfix) with ESMTPS id DFC8EB70BB for ; Sun, 7 Jun 2009 11:20:32 +1000 (EST) Received: by ozlabs.org (Postfix) id CF6E6DDD0B; Sun, 7 Jun 2009 11:20:32 +1000 (EST) Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.176.167]) by ozlabs.org (Postfix) with ESMTP id 76F9DDDD04 for ; Sun, 7 Jun 2009 11:20:32 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754710AbZFGBSo (ORCPT ); Sat, 6 Jun 2009 21:18:44 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1754311AbZFGBSm (ORCPT ); Sat, 6 Jun 2009 21:18:42 -0400 Received: from build.ossfans.org ([67.223.233.67]:32871 "EHLO build.ossfans.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753742AbZFGBSl (ORCPT ); Sat, 6 Jun 2009 21:18:41 -0400 Received: from build.ossfans.org ([127.0.0.1]) by build.ossfans.org (8.14.3/8.14.3/Debian-5) with ESMTP id n571IbIi008252; Sun, 7 Jun 2009 05:18:37 +0400 Received: (from slapin@localhost) by build.ossfans.org (8.14.3/8.14.3/Submit) id n571IbsA008250; Sun, 7 Jun 2009 05:18:37 +0400 From: Sergey Lapin To: linux-kernel@vger.kernel.org Cc: linux-wireless@vger.kernel.org, netdev@vger.kernel.org, Dmitry Eremin-Solenikov , David Miller , Stephen Rothwell , Sergey Lapin Subject: [PATCH 4/5] ieee802154: add documentation about our stack Date: Sun, 7 Jun 2009 05:18:33 +0400 Message-Id: <5c2bda0944c5601e408b24d2b7078763c35f1747.1244337432.git.slapin@ossfans.org> X-Mailer: git-send-email 1.5.6.5 In-Reply-To: <0c9cef2f39292adb09c60c8a11bf4d3d44debeca.1244337432.git.slapin@ossfans.org> References: <47c250c4bb2069d4faa2d6c5217d1aae15a5bc34.1244337432.git.slapin@ossfans.org> <0c9cef2f39292adb09c60c8a11bf4d3d44debeca.1244337432.git.slapin@ossfans.org> In-Reply-To: References: Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Add MAINTAINERS entry and a small text describing our stack interfaces, how to hook the drivers, etc. Signed-off-by: Dmitry Eremin-Solenikov Signed-off-by: Sergey Lapin --- Documentation/networking/ieee802154.txt | 76 +++++++++++++++++++++++++++++++ MAINTAINERS | 12 +++++ 2 files changed, 88 insertions(+), 0 deletions(-) create mode 100644 Documentation/networking/ieee802154.txt diff --git a/Documentation/networking/ieee802154.txt b/Documentation/networking/ieee802154.txt new file mode 100644 index 0000000..a0280ad --- /dev/null +++ b/Documentation/networking/ieee802154.txt @@ -0,0 +1,76 @@ + + Linux IEEE 802.15.4 implementation + + +Introduction +============ + +The Linux-ZigBee project goal is to provide complete implementation +of IEEE 802.15.4 / ZigBee / 6LoWPAN protocols. IEEE 802.15.4 is a stack +of protocols for organizing Low-Rate Wireless Personal Area Networks. + +Currently only IEEE 802.15.4 layer is implemented. We have choosen +to use plain Berkeley socket API, the generic Linux networking stack +to transfer IEEE 802.15.4 messages and a special protocol over genetlink +for configuration/management + + +Socket API +========== + +int sd = socket(PF_IEEE802154, SOCK_DGRAM, 0); +..... + +The address family, socket addresses etc. are defined in the +include/net/ieee802154/af_ieee802154.h header or in the special header +in our userspace package (see either linux-zigbee sourceforge download page +or git tree at git://linux-zigbee.git.sourceforge.net/gitroot/linux-zigbee). + +One can use SOCK_RAW for passing raw data towards device xmit function. YMMV. + + +MLME - MAC Level Management +============================ + +Most of IEEE 802.15.4 MLME interfaces are directly mapped on netlink commands. +See the include/net/ieee802154/nl802154.h header. Our userspace tools package +(see above) provides CLI configuration utility for radio interfaces and simple +coordinator for IEEE 802.15.4 networks as an example users of MLME protocol. + + +Kernel side +============= + +Like with WiFi, there are several types of devices implementing IEEE 802.15.4. +1) 'HardMAC'. The MAC layer is implemented in the device itself, the device + exports MLME and data API. +2) 'SoftMAC' or just radio. These types of devices are just radio transceivers + possibly with some kinds of acceleration like automatic CRC computation and + comparation, automagic ACK handling, address matching, etc. + +Those types of devices require different approach to be hooked into Linux kernel. + + +HardMAC +======= + +See the header include/net/ieee802154/netdevice.h. You have to implement Linux +net_device, with .type = ARPHRD_IEEE802154. Data is exchanged with socket family +code via plain sk_buffs. The control block of sk_buffs will contain additional +info as described in the struct ieee802154_mac_cb. + +To hook the MLME interface you have to populate the ml_priv field of your +net_device with a pointer to struct ieee802154_mlme_ops instance. All fields are +required. + +We provide an example of simple HardMAC driver at drivers/ieee802154/fakehard.c + + +SoftMAC +======= + +We are going to provide intermediate layer impelementing IEEE 802.15.4 MAC +in software. This is currently WIP. + +See header include/net/ieee802154/mac802154.h and several drivers in +drivers/ieee802154/ diff --git a/MAINTAINERS b/MAINTAINERS index cf4abdd..a1bbc8f 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -2816,6 +2816,18 @@ L: linux1394-devel@lists.sourceforge.net S: Maintained F: drivers/ieee1394/raw1394* +IEEE 802.15.4 SUBSYSTEM +P: Dmitry Eremin-Solenikov +M: dbaryshkov@gmail.com +P: Sergey Lapin +M: slapin@ossfans.org +L: linux-zigbee-devel@lists.sourceforge.net +W: http://apps.sourceforge.net/trac/linux-zigbee +T: git git://git.kernel.org/pub/scm/linux/kernel/git/lumag/lowpan.git +S: Maintained +F: net/ieee802154/ +F: drivers/ieee801254/ + INTEGRITY MEASUREMENT ARCHITECTURE (IMA) P: Mimi Zohar M: zohar@us.ibm.com