diff options
-rw-r--r-- | Documentation/networking/ieee802154.txt | 76 | ||||
-rw-r--r-- | MAINTAINERS | 12 |
2 files changed, 88 insertions, 0 deletions
diff --git a/Documentation/networking/ieee802154.txt b/Documentation/networking/ieee802154.txt new file mode 100644 index 000000000000..a0280ad2edc9 --- /dev/null +++ b/Documentation/networking/ieee802154.txt | |||
@@ -0,0 +1,76 @@ | |||
1 | |||
2 | Linux IEEE 802.15.4 implementation | ||
3 | |||
4 | |||
5 | Introduction | ||
6 | ============ | ||
7 | |||
8 | 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 | ||
10 | of protocols for organizing Low-Rate Wireless Personal Area Networks. | ||
11 | |||
12 | Currently only IEEE 802.15.4 layer is implemented. We have choosen | ||
13 | to use plain Berkeley socket API, the generic Linux networking stack | ||
14 | to transfer IEEE 802.15.4 messages and a special protocol over genetlink | ||
15 | for configuration/management | ||
16 | |||
17 | |||
18 | Socket API | ||
19 | ========== | ||
20 | |||
21 | int sd = socket(PF_IEEE802154, SOCK_DGRAM, 0); | ||
22 | ..... | ||
23 | |||
24 | The address family, socket addresses etc. are defined in the | ||
25 | include/net/ieee802154/af_ieee802154.h header or in the special header | ||
26 | in our userspace package (see either linux-zigbee sourceforge download page | ||
27 | or git tree at git://linux-zigbee.git.sourceforge.net/gitroot/linux-zigbee). | ||
28 | |||
29 | One can use SOCK_RAW for passing raw data towards device xmit function. YMMV. | ||
30 | |||
31 | |||
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/ieee802154/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 | ||
42 | ============= | ||
43 | |||
44 | Like with WiFi, there are several types of devices implementing IEEE 802.15.4. | ||
45 | 1) 'HardMAC'. The MAC layer is implemented in the device itself, the device | ||
46 | exports MLME and data API. | ||
47 | 2) 'SoftMAC' or just radio. These types of devices are just radio transceivers | ||
48 | possibly with some kinds of acceleration like automatic CRC computation and | ||
49 | comparation, automagic ACK handling, address matching, etc. | ||
50 | |||
51 | Those types of devices require different approach to be hooked into Linux kernel. | ||
52 | |||
53 | |||
54 | HardMAC | ||
55 | ======= | ||
56 | |||
57 | See the header include/net/ieee802154/netdevice.h. You have to implement Linux | ||
58 | net_device, with .type = ARPHRD_IEEE802154. Data is exchanged with socket family | ||
59 | code via plain sk_buffs. The control block of sk_buffs will contain additional | ||
60 | info as described in the struct ieee802154_mac_cb. | ||
61 | |||
62 | To hook the MLME interface you have to populate the ml_priv field of your | ||
63 | net_device with a pointer to struct ieee802154_mlme_ops instance. All fields are | ||
64 | required. | ||
65 | |||
66 | We provide an example of simple HardMAC driver at drivers/ieee802154/fakehard.c | ||
67 | |||
68 | |||
69 | SoftMAC | ||
70 | ======= | ||
71 | |||
72 | We are going to provide intermediate layer impelementing IEEE 802.15.4 MAC | ||
73 | in software. This is currently WIP. | ||
74 | |||
75 | See header include/net/ieee802154/mac802154.h and several drivers in | ||
76 | drivers/ieee802154/ | ||
diff --git a/MAINTAINERS b/MAINTAINERS index 2f6a8fcfb1f2..a6df68fad9ba 100644 --- a/MAINTAINERS +++ b/MAINTAINERS | |||
@@ -2819,6 +2819,18 @@ L: linux1394-devel@lists.sourceforge.net | |||
2819 | S: Maintained | 2819 | S: Maintained |
2820 | F: drivers/ieee1394/raw1394* | 2820 | F: drivers/ieee1394/raw1394* |
2821 | 2821 | ||
2822 | IEEE 802.15.4 SUBSYSTEM | ||
2823 | P: Dmitry Eremin-Solenikov | ||
2824 | M: dbaryshkov@gmail.com | ||
2825 | P: Sergey Lapin | ||
2826 | M: slapin@ossfans.org | ||
2827 | L: linux-zigbee-devel@lists.sourceforge.net | ||
2828 | W: http://apps.sourceforge.net/trac/linux-zigbee | ||
2829 | T: git git://git.kernel.org/pub/scm/linux/kernel/git/lumag/lowpan.git | ||
2830 | S: Maintained | ||
2831 | F: net/ieee802154/ | ||
2832 | F: drivers/ieee801254/ | ||
2833 | |||
2822 | INTEGRITY MEASUREMENT ARCHITECTURE (IMA) | 2834 | INTEGRITY MEASUREMENT ARCHITECTURE (IMA) |
2823 | P: Mimi Zohar | 2835 | P: Mimi Zohar |
2824 | M: zohar@us.ibm.com | 2836 | M: zohar@us.ibm.com |