diff options
author | alex.bluesman.smirnov@gmail.com <alex.bluesman.smirnov@gmail.com> | 2012-05-15 16:50:31 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-05-16 15:17:08 -0400 |
commit | dd456d45d7edd01f4054818dd404ec61ca55cbc1 (patch) | |
tree | 9eaf69de2a98899bde52378145598c17cb02d96b /Documentation | |
parent | e1e49b641387b85098b05dc92b792c9ef01c2075 (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.txt | 75 |
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 | ||
5 | Introduction | 5 | Introduction |
6 | ============ | 6 | ============ |
7 | The IEEE 802.15.4 working group focuses on standartization of bottom | ||
8 | two layers: Medium Accsess Control (MAC) and Physical (PHY). And there | ||
9 | are 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 | ||
8 | The Linux-ZigBee project goal is to provide complete implementation | 13 | The Linux-ZigBee project goal is to provide complete implementation |
9 | of IEEE 802.15.4 / ZigBee / 6LoWPAN protocols. IEEE 802.15.4 is a stack | 14 | of IEEE 802.15.4 and 6LoWPAN protocols. IEEE 802.15.4 is a stack |
10 | of protocols for organizing Low-Rate Wireless Personal Area Networks. | 15 | of protocols for organizing Low-Rate Wireless Personal Area Networks. |
11 | 16 | ||
12 | Currently only IEEE 802.15.4 layer is implemented. We have chosen | 17 | The stack is composed of three main parts: |
13 | to 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, |
14 | to 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 |
15 | for 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 | ||
18 | Socket API | 25 | Socket API |
@@ -29,15 +36,6 @@ or git tree at git://linux-zigbee.git.sourceforge.net/gitroot/linux-zigbee). | |||
29 | One can use SOCK_RAW for passing raw data towards device xmit function. YMMV. | 36 | One can use SOCK_RAW for passing raw data towards device xmit function. YMMV. |
30 | 37 | ||
31 | 38 | ||
32 | MLME - MAC Level Management | ||
33 | ============================ | ||
34 | |||
35 | Most of IEEE 802.15.4 MLME interfaces are directly mapped on netlink commands. | ||
36 | See the include/net/nl802154.h header. Our userspace tools package | ||
37 | (see above) provides CLI configuration utility for radio interfaces and simple | ||
38 | coordinator for IEEE 802.15.4 networks as an example users of MLME protocol. | ||
39 | |||
40 | |||
41 | Kernel side | 39 | Kernel side |
42 | ============= | 40 | ============= |
43 | 41 | ||
@@ -51,6 +49,15 @@ Like with WiFi, there are several types of devices implementing IEEE 802.15.4. | |||
51 | Those types of devices require different approach to be hooked into Linux kernel. | 49 | Those types of devices require different approach to be hooked into Linux kernel. |
52 | 50 | ||
53 | 51 | ||
52 | MLME - MAC Level Management | ||
53 | ============================ | ||
54 | |||
55 | Most of IEEE 802.15.4 MLME interfaces are directly mapped on netlink commands. | ||
56 | See the include/net/nl802154.h header. Our userspace tools package | ||
57 | (see above) provides CLI configuration utility for radio interfaces and simple | ||
58 | coordinator for IEEE 802.15.4 networks as an example users of MLME protocol. | ||
59 | |||
60 | |||
54 | HardMAC | 61 | HardMAC |
55 | ======= | 62 | ======= |
56 | 63 | ||
@@ -73,11 +80,47 @@ We provide an example of simple HardMAC driver at drivers/ieee802154/fakehard.c | |||
73 | SoftMAC | 80 | SoftMAC |
74 | ======= | 81 | ======= |
75 | 82 | ||
76 | We are going to provide intermediate layer implementing IEEE 802.15.4 MAC | 83 | The MAC is the middle layer in the IEEE 802.15.4 Linux stack. This moment it |
77 | in software. This is currently WIP. | 84 | provides interface for drivers registration and management of slave interfaces. |
85 | |||
86 | NOTE: Currently the only monitor device type is supported - it's IEEE 802.15.4 | ||
87 | stack interface for network sniffers (e.g. WireShark). | ||
88 | |||
89 | This layer is going to be extended soon. | ||
78 | 90 | ||
79 | See header include/net/mac802154.h and several drivers in drivers/ieee802154/. | 91 | See header include/net/mac802154.h and several drivers in drivers/ieee802154/. |
80 | 92 | ||
93 | |||
94 | Device drivers API | ||
95 | ================== | ||
96 | |||
97 | The 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 | |||
111 | Moreover IEEE 802.15.4 device operations structure should be filled. | ||
112 | |||
113 | Fake drivers | ||
114 | ============ | ||
115 | |||
116 | In addition there are two drivers available which simulate real devices with | ||
117 | HardMAC (fakehard) and SoftMAC (fakelb - IEEE 802.15.4 loopback driver) | ||
118 | interfaces. This option provides possibility to test and debug stack without | ||
119 | usage of real hardware. | ||
120 | |||
121 | See sources in drivers/ieee802154 folder for more details. | ||
122 | |||
123 | |||
81 | 6LoWPAN Linux implementation | 124 | 6LoWPAN Linux implementation |
82 | ============================ | 125 | ============================ |
83 | 126 | ||