Skip to content

Commit 9864d03

Browse files
fg-cfhcarlescufi
authored andcommitted
doc: openthread: integrate ot/ieee802154 docs
Integrates and cross-references OpenThread and native IEEE 802.15.4 docs as they share a common driver layer. While OpenThread is of course not an IEEE 802.15.4 subsystem API it is still included in the ieee802154 documentation group, purely for convenience to the documentation readers. For organizational purposes OT is considered a separate area of maintenance and therefore keeps its dedicated documentation page - but the two subsystems now cross-reference each other for convenience. Signed-off-by: Florian Grandel <[email protected]>
1 parent 80fc350 commit 9864d03

File tree

4 files changed

+59
-20
lines changed

4 files changed

+59
-20
lines changed

doc/connectivity/networking/api/ieee802154.rst

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,10 @@ Whenever sections from the standard are cited in the documentation, they refer
3232
to IEEE 802.15.4-2020 section, table and figure numbering - unless otherwise
3333
specified.
3434

35-
Zephyr supports bot native IEEE 802.15.4 and Thread with 6LoWPAN. The Thread
36-
implementation is based on `OpenThread <https://openthread.io/>`_. The IPv6
37-
header compression in 6LoWPAN is shared among native IEEE 802.15.4, OpenThread
38-
and the Bluetooth IPSP (IP support profile).
35+
Zephyr supports both, native IEEE 802.15.4 and Thread, with 6LoWPAN. Zephyr's
36+
:ref:`thread_protocol_interface` implementation is based on `OpenThread
37+
<https://openthread.io/>`_. The IPv6 header compression in 6LoWPAN is shared
38+
among native IEEE 802.15.4 and the Bluetooth IPSP (IP support profile).
3939

4040
API Reference
4141
*************
@@ -85,3 +85,13 @@ network layers (L3+), its socket and network context abstractions. This API is
8585
therefore of interest to IEEE 802.15.4 **subsystem contributors** only.
8686

8787
.. doxygengroup:: ieee802154_l2
88+
89+
OpenThread L2 Adaptation Layer API
90+
==================================
91+
92+
Zephyr's OpenThread L2 platform adaptation layer glues the external OpenThread
93+
stack together with Zephyr's IEEE 802.15.4 protocol agnostic driver API. This
94+
API is of interest to OpenThread L2 **subsystem contributors** only.
95+
96+
The OpenThread API is part of the :ref:`thread_protocol_interface` subsystem and
97+
documented there.

doc/connectivity/networking/api/thread.rst

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,3 +40,25 @@ which provide out-of-the-box configuration for OpenThread. To enable OpenThread
4040
support in these samples, build them with ``overlay-ot.conf`` overlay config file.
4141
See :zephyr:code-sample:`sockets-echo-server` and :zephyr:code-sample:`sockets-echo-client`
4242
samples for details.
43+
44+
Thread related APIs
45+
*******************
46+
47+
OpenThread Driver API
48+
========================
49+
50+
OpenThread L2 uses Zephyr's protocol agnostic IEEE 802.15.4 driver API
51+
internally. This API is of interest to **driver developers** that want to
52+
support OpenThread.
53+
54+
The driver API is part of the :ref:`ieee802154_driver_api` subsystem and
55+
documented there.
56+
57+
OpenThread L2 Adaptation Layer API
58+
==================================
59+
60+
Zephyr's OpenThread L2 platform adaptation layer glues the external OpenThread
61+
stack together with Zephyr's IEEE 802.15.4 protocol agnostic driver API. This
62+
API is of interest to OpenThread L2 **subsystem contributors** only.
63+
64+
.. doxygengroup:: openthread

include/zephyr/net/ieee802154.h

Lines changed: 21 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -23,19 +23,24 @@ extern "C" {
2323
#endif
2424

2525
/**
26-
* @defgroup ieee802154 IEEE 802.15.4 APIs
26+
* @defgroup ieee802154 IEEE 802.15.4 and Thread APIs
2727
* @ingroup connectivity
2828
*
29-
* @brief IEEE 802.15.4 L2, configuration and driver APIs
29+
* @brief IEEE 802.15.4 native and OpenThread L2, configuration, management and
30+
* driver APIs
3031
*
31-
* @details The IEEE 802.15.4 subsystem API comprises the native IEEE 802.15.4
32-
* L2 subsystem ("Soft" MAC), a mostly vendor and protocol agnostic driver API
33-
* shared between the OpenThread and native L2 stacks ("Hard" MAC and PHY) as
34-
* well as several APIs to configure the subsystem (shell, net management,
35-
* Kconfig, devicetree, etc.).
32+
* @details The IEEE 802.15.4 and Thread subsystems comprise the OpenThread L2
33+
* subsystem, the native IEEE 802.15.4 L2 subsystem ("Soft" MAC), a mostly
34+
* vendor and protocol agnostic driver API shared between the OpenThread and
35+
* native L2 stacks ("Hard" MAC and PHY) as well as several APIs to configure
36+
* the subsystem (shell, net management, Kconfig, devicetree, etc.).
3637
*
37-
* The IEEE 802.15.4 subsystem APIs are exposed at different levels and address
38-
* several audiences:
38+
* The **OpenThread subsystem API** integrates the external <a
39+
* href="https://openthread.io">OpenThread</a> stack into Zephyr. It builds upon
40+
* Zephyr's native IEEE 802.15.4 driver API.
41+
*
42+
* The **native IEEE 802.15.4 subsystem APIs** are exposed at different levels
43+
* and address several audiences:
3944
* - shell (end users, application developers):
4045
* - a set of IEEE 802.15.4 shell commands (see `shell> ieee802154 help`)
4146
* - application API (application developers):
@@ -51,18 +56,20 @@ extern "C" {
5156
* - Network Management: runtime configuration of the IEEE 802.15.4
5257
* protocols stack at the MAC (L2) and PHY (L1) levels
5358
* (see @ref ieee802154_mgmt),
54-
* - driver API (driver maintainers/contributors):
55-
* - see @ref ieee802154_driver
56-
* - a basic, mostly PHY-level driver API to be implemented by all drivers,
57-
* - several "hard MAC" (hardware/firmware offloading) extension points for
58-
* performance critical or timing sensitive aspects of the protocol
5959
* - L2 integration (subsystem contributors):
6060
* - see @ref ieee802154_l2
6161
* - implementation of Zephyr's internal L2-level socket and network context
6262
* abstractions (context/socket operations, see @ref net_l2),
6363
* - protocol-specific extension to the interface structure (see @ref net_if)
6464
* - protocol-specific extensions to the network packet structure
6565
* (see @ref net_pkt),
66+
*
67+
* - OpenThread and native IEEE 802.15.4 share a common **driver API** (driver
68+
* maintainers/contributors):
69+
* - see @ref ieee802154_driver
70+
* - a basic, mostly PHY-level driver API to be implemented by all drivers,
71+
* - several "hard MAC" (hardware/firmware offloading) extension points for
72+
* performance critical or timing sensitive aspects of the protocol
6673
*/
6774

6875
/**

include/zephyr/net/openthread.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
*/
66

77
/** @file
8-
* @brief OpenThread l2 stack public header
8+
* @brief OpenThread L2 stack public header
99
*/
1010

1111
#ifndef ZEPHYR_INCLUDE_NET_OPENTHREAD_H_
@@ -14,7 +14,7 @@
1414
/**
1515
* @brief OpenThread Layer 2 abstraction layer
1616
* @defgroup openthread OpenThread L2 abstraction layer
17-
* @ingroup networking
17+
* @ingroup ieee802154
1818
* @{
1919
*/
2020

0 commit comments

Comments
 (0)