aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
authoralex.bluesman.smirnov@gmail.com <alex.bluesman.smirnov@gmail.com>2012-05-15 16:50:31 -0400
committerDavid S. Miller <davem@davemloft.net>2012-05-16 15:17:08 -0400
commitdd456d45d7edd01f4054818dd404ec61ca55cbc1 (patch)
tree9eaf69de2a98899bde52378145598c17cb02d96b /Documentation
parente1e49b641387b85098b05dc92b792c9ef01c2075 (diff)
Documentation/networking/ieee802154: update MAC chapter
Update the documentation according to latest changes. Signed-off-by: Alexander Smirnov <alex.bluesman.smirnov@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/networking/ieee802154.txt75
1 files changed, 59 insertions, 16 deletions
diff --git a/Documentation/networking/ieee802154.txt b/Documentation/networking/ieee802154.txt
index 1dc1c24a7547..703cf4370c79 100644
--- a/Documentation/networking/ieee802154.txt
+++ b/Documentation/networking/ieee802154.txt
@@ -4,15 +4,22 @@
4 4
5Introduction 5Introduction
6============ 6============
7The IEEE 802.15.4 working group focuses on standartization of bottom
8two layers: Medium Accsess Control (MAC) and Physical (PHY). And there
9are mainly two options available for upper layers:
10 - ZigBee - proprietary protocol from ZigBee Alliance
11 - 6LowPAN - IPv6 networking over low rate personal area networks
7 12
8The Linux-ZigBee project goal is to provide complete implementation 13The Linux-ZigBee project goal is to provide complete implementation
9of IEEE 802.15.4 / ZigBee / 6LoWPAN protocols. IEEE 802.15.4 is a stack 14of IEEE 802.15.4 and 6LoWPAN protocols. IEEE 802.15.4 is a stack
10of protocols for organizing Low-Rate Wireless Personal Area Networks. 15of protocols for organizing Low-Rate Wireless Personal Area Networks.
11 16
12Currently only IEEE 802.15.4 layer is implemented. We have chosen 17The stack is composed of three main parts:
13to use plain Berkeley socket API, the generic Linux networking stack 18 - IEEE 802.15.4 layer; We have chosen to use plain Berkeley socket API,
14to transfer IEEE 802.15.4 messages and a special protocol over genetlink 19 the generic Linux networking stack to transfer IEEE 802.15.4 messages
15for configuration/management 20 and a special protocol over genetlink for configuration/management
21 - MAC - provides access to shared channel and reliable data delivery
22 - PHY - represents device drivers
16 23
17 24
18Socket API 25Socket API
@@ -29,15 +36,6 @@ or git tree at git://linux-zigbee.git.sourceforge.net/gitroot/linux-zigbee).
29One can use SOCK_RAW for passing raw data towards device xmit function. YMMV. 36One can use SOCK_RAW for passing raw data towards device xmit function. YMMV.
30 37
31 38
32MLME - MAC Level Management
33============================
34
35Most of IEEE 802.15.4 MLME interfaces are directly mapped on netlink commands.
36See the include/net/nl802154.h header. Our userspace tools package
37(see above) provides CLI configuration utility for radio interfaces and simple
38coordinator for IEEE 802.15.4 networks as an example users of MLME protocol.
39
40
41Kernel side 39Kernel side
42============= 40=============
43 41
@@ -51,6 +49,15 @@ Like with WiFi, there are several types of devices implementing IEEE 802.15.4.
51Those types of devices require different approach to be hooked into Linux kernel. 49Those types of devices require different approach to be hooked into Linux kernel.
52 50
53 51
52MLME - MAC Level Management
53============================
54
55Most of IEEE 802.15.4 MLME interfaces are directly mapped on netlink commands.
56See the include/net/nl802154.h header. Our userspace tools package
57(see above) provides CLI configuration utility for radio interfaces and simple
58coordinator for IEEE 802.15.4 networks as an example users of MLME protocol.
59
60
54HardMAC 61HardMAC
55======= 62=======
56 63
@@ -73,11 +80,47 @@ We provide an example of simple HardMAC driver at drivers/ieee802154/fakehard.c
73SoftMAC 80SoftMAC
74======= 81=======
75 82
76We are going to provide intermediate layer implementing IEEE 802.15.4 MAC 83The MAC is the middle layer in the IEEE 802.15.4 Linux stack. This moment it
77in software. This is currently WIP. 84provides interface for drivers registration and management of slave interfaces.
85
86NOTE: Currently the only monitor device type is supported - it's IEEE 802.15.4
87stack interface for network sniffers (e.g. WireShark).
88
89This layer is going to be extended soon.
78 90
79See header include/net/mac802154.h and several drivers in drivers/ieee802154/. 91See header include/net/mac802154.h and several drivers in drivers/ieee802154/.
80 92
93
94Device drivers API
95==================
96
97The include/net/mac802154.h defines following functions:
98 - struct ieee802154_dev *ieee802154_alloc_device
99 (size_t priv_size, struct ieee802154_ops *ops):
100 allocation of IEEE 802.15.4 compatible device
101
102 - void ieee802154_free_device(struct ieee802154_dev *dev):
103 freeing allocated device
104
105 - int ieee802154_register_device(struct ieee802154_dev *dev):
106 register PHY in the system
107
108 - void ieee802154_unregister_device(struct ieee802154_dev *dev):
109 freeing registered PHY
110
111Moreover IEEE 802.15.4 device operations structure should be filled.
112
113Fake drivers
114============
115
116In addition there are two drivers available which simulate real devices with
117HardMAC (fakehard) and SoftMAC (fakelb - IEEE 802.15.4 loopback driver)
118interfaces. This option provides possibility to test and debug stack without
119usage of real hardware.
120
121See sources in drivers/ieee802154 folder for more details.
122
123
816LoWPAN Linux implementation 1246LoWPAN Linux implementation
82============================ 125============================
83 126