Commit 6bf0d84d authored by Stefan Schmidt's avatar Stefan Schmidt

docs: ieee802154: update main documentation file

This updates some out of date documentation and fixes some wrong assumptions as
well as pure grammar fixes. This file needs to move towards the new kernel doc
system and getting an overhaul during this work.
Signed-off-by: default avatarStefan Schmidt <stefan@osg.samsung.com>
parent e03551d7
...@@ -4,20 +4,20 @@ ...@@ -4,20 +4,20 @@
Introduction Introduction
============ ============
The IEEE 802.15.4 working group focuses on standardization of bottom The IEEE 802.15.4 working group focuses on standardization of the bottom
two layers: Medium Access Control (MAC) and Physical (PHY). And there two layers: Medium Access Control (MAC) and Physical access (PHY). And there
are mainly two options available for upper layers: are mainly two options available for upper layers:
- ZigBee - proprietary protocol from the ZigBee Alliance - ZigBee - proprietary protocol from the ZigBee Alliance
- 6LoWPAN - IPv6 networking over low rate personal area networks - 6LoWPAN - IPv6 networking over low rate personal area networks
The linux-wpan project goal is to provide a complete implementation The goal of the Linux-wpan is to provide a complete implementation
of the IEEE 802.15.4 and 6LoWPAN protocols. IEEE 802.15.4 is a stack of the IEEE 802.15.4 and 6LoWPAN protocols. IEEE 802.15.4 is a stack
of protocols for organizing Low-Rate Wireless Personal Area Networks. of protocols for organizing Low-Rate Wireless Personal Area Networks.
The stack is composed of three main parts: The stack is composed of three main parts:
- IEEE 802.15.4 layer; We have chosen to use plain Berkeley socket API, - IEEE 802.15.4 layer; We have chosen to use plain Berkeley socket API,
the generic Linux networking stack to transfer IEEE 802.15.4 messages the generic Linux networking stack to transfer IEEE 802.15.4 data
and a special protocol over genetlink for configuration/management messages and a special protocol over netlink for configuration/management
- MAC - provides access to shared channel and reliable data delivery - MAC - provides access to shared channel and reliable data delivery
- PHY - represents device drivers - PHY - represents device drivers
...@@ -33,15 +33,13 @@ include/net/af_ieee802154.h header or in the special header ...@@ -33,15 +33,13 @@ include/net/af_ieee802154.h header or in the special header
in the userspace package (see either http://wpan.cakelab.org/ or the in the userspace package (see either http://wpan.cakelab.org/ or the
git tree at https://github.com/linux-wpan/wpan-tools). git tree at https://github.com/linux-wpan/wpan-tools).
One can use SOCK_RAW for passing raw data towards device xmit function. YMMV.
Kernel side Kernel side
============= =============
Like with WiFi, there are several types of devices implementing IEEE 802.15.4. 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 1) 'HardMAC'. The MAC layer is implemented in the device itself, the device
exports MLME and data API. exports a management (e.g. MLME) and data API.
2) 'SoftMAC' or just radio. These types of devices are just radio transceivers 2) 'SoftMAC' or just radio. These types of devices are just radio transceivers
possibly with some kinds of acceleration like automatic CRC computation and possibly with some kinds of acceleration like automatic CRC computation and
comparation, automagic ACK handling, address matching, etc. comparation, automagic ACK handling, address matching, etc.
...@@ -106,7 +104,7 @@ Fake drivers ...@@ -106,7 +104,7 @@ Fake drivers
In addition there is a driver available which simulates a real device with In addition there is a driver available which simulates a real device with
SoftMAC (fakelb - IEEE 802.15.4 loopback driver) interface. This option SoftMAC (fakelb - IEEE 802.15.4 loopback driver) interface. This option
provides possibility to test and debug stack without usage of real hardware. provides a possibility to test and debug the stack without usage of real hardware.
See sources in drivers/net/ieee802154 folder for more details. See sources in drivers/net/ieee802154 folder for more details.
...@@ -125,17 +123,15 @@ to support the IPv6 minimum MTU requirement [RFC2460], and stateless header ...@@ -125,17 +123,15 @@ to support the IPv6 minimum MTU requirement [RFC2460], and stateless header
compression for IPv6 datagrams (LOWPAN_HC1 and LOWPAN_HC2) to reduce the compression for IPv6 datagrams (LOWPAN_HC1 and LOWPAN_HC2) to reduce the
relatively large IPv6 and UDP headers down to (in the best case) several bytes. relatively large IPv6 and UDP headers down to (in the best case) several bytes.
In Semptember 2011 the standard update was published - [RFC6282]. In September 2011 the standard update was published - [RFC6282].
It deprecates HC1 and HC2 compression and defines IPHC encoding format which is It deprecates HC1 and HC2 compression and defines IPHC encoding format which is
used in this Linux implementation. used in this Linux implementation.
All the code related to 6lowpan you may find in files: net/6lowpan/* All the code related to 6lowpan you may find in files: net/6lowpan/*
and net/ieee802154/6lowpan/* and net/ieee802154/6lowpan/*
To setup 6lowpan interface you need (busybox release > 1.17.0): To setup a 6LoWPAN interface you need:
1. Add IEEE802.15.4 interface and initialize PANid; 1. Add IEEE802.15.4 interface and set channel and PAN ID;
2. Add 6lowpan interface by command like: 2. Add 6lowpan interface by command like:
# ip link add link wpan0 name lowpan0 type lowpan # ip link add link wpan0 name lowpan0 type lowpan
3. Set MAC (if needs): 3. Bring up 'lowpan0' interface
# ip link set lowpan0 address de:ad:be:ef:ca:fe:ba:be
4. Bring up 'lowpan0' interface
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment