From patchwork Wed Jun 3 09:33:48 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 28049 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 A84ABB7069 for ; Wed, 3 Jun 2009 19:37:43 +1000 (EST) Received: by ozlabs.org (Postfix) id 964BEDDDF8; Wed, 3 Jun 2009 19:37:43 +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 1703BDDDE9 for ; Wed, 3 Jun 2009 19:37:43 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756160AbZFCJeo (ORCPT ); Wed, 3 Jun 2009 05:34:44 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1754374AbZFCJek (ORCPT ); Wed, 3 Jun 2009 05:34:40 -0400 Received: from fg-out-1718.google.com ([72.14.220.157]:21206 "EHLO fg-out-1718.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755399AbZFCJe0 (ORCPT ); Wed, 3 Jun 2009 05:34:26 -0400 Received: by fg-out-1718.google.com with SMTP id 16so3328537fgg.17 for ; Wed, 03 Jun 2009 02:34:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:from:to:cc:subject:date :message-id:x-mailer:in-reply-to:references; bh=8mhIHwb/+2eG+vPcL90wnBL1OtL+mCzA8O4Qo8iqxdI=; b=lb2u/Mn07Bi3kwjLzOQNwdyCMF6bCrDeXKiB9Z1fbtnHlfLYl2Nlz3/vW/E1e5WQwQ Er1bBK46ZUN3H+rQYisl8oW7KjXvX6LEb/UDyPpz88K5SEDL8PfB9PYjOWzNYgxB0JQq fckG4/IM3pW6Zrzs42FM0ayrA/kjxgeQRUhOM= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=from:to:cc:subject:date:message-id:x-mailer:in-reply-to:references; b=ihWGFAEZShf0mCofx3zgQo/0FVYK6Z1UCZhk1XEdCELntjZJlyu02HB4Yr/6QdBHm+ +CYZZlpzPtW89KZ5EMrh+4cEh/1a6JAB4Dx323F2ykbxpS5+pa5JjJoitZvzkgS8lPRQ FY6y0DTraTuZMJzFkyzR+R+huyq301smIvxvQ= Received: by 10.86.68.1 with SMTP id q1mr932854fga.10.1244021667505; Wed, 03 Jun 2009 02:34:27 -0700 (PDT) Received: from localhost.localdomain (iap-pxy-mow1.siemens.ru [212.248.25.26]) by mx.google.com with ESMTPS id 4sm16198455fgg.18.2009.06.03.02.34.25 (version=SSLv3 cipher=RC4-MD5); Wed, 03 Jun 2009 02:34:26 -0700 (PDT) From: Dmitry Eremin-Solenikov To: linux-kernel@vger.kernel.org Cc: netdev@vger.kernel.org, linux-wireless@vger.kernel.org, davem@davemloft.net, Stephen Rothwell , Sergey Lapin , Dmitry Eremin-Solenikov Subject: [PATCH 5/6] ieee802154: add documentation about our stack Date: Wed, 3 Jun 2009 13:33:48 +0400 Message-Id: <1244021629-18409-6-git-send-email-dbaryshkov@gmail.com> X-Mailer: git-send-email 1.6.3.1 In-Reply-To: <1244021629-18409-5-git-send-email-dbaryshkov@gmail.com> References: <1244021629-18409-1-git-send-email-dbaryshkov@gmail.com> <1244021629-18409-2-git-send-email-dbaryshkov@gmail.com> <1244021629-18409-3-git-send-email-dbaryshkov@gmail.com> <1244021629-18409-4-git-send-email-dbaryshkov@gmail.com> <1244021629-18409-5-git-send-email-dbaryshkov@gmail.com> 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 77cbfb1..d7214c7 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -2807,6 +2807,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