Skip to content

Commit

Permalink
doc: openthread: Add documentation about Thread 1.4
Browse files Browse the repository at this point in the history
Add documentation about Thread 1.4 and change default version
from 1.3 to 1.4

Signed-off-by: Maciej Baczmanski <[email protected]>
  • Loading branch information
maciejbaczmanski authored and nordicjm committed Oct 22, 2024
1 parent 0e4a372 commit 59470df
Show file tree
Hide file tree
Showing 4 changed files with 67 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,8 @@ features:
Thread 1.2 - CSL Receiver: OPENTHREAD_CSL_RECEIVER
Thread 1.2 - Link Metrics: OPENTHREAD_LINK_METRICS_INITIATOR && OPENTHREAD_LINK_METRICS_SUBJECT
Thread 1.3 - Core: OPENTHREAD_THREAD_VERSION_1_3
Thread 1.4 - Core: OPENTHREAD_THREAD_VERSION_1_4
Thread 1.4 - DNS over TCP: OPENTHREAD_DNS_CLIENT_OVER_TCP
Thread - Full Thread Device (FTD): OPENTHREAD_FTD
Thread - Minimal Thread Device (MTD): OPENTHREAD_MTD
Thread FTD + Bluetooth LE multiprotocol: OPENTHREAD_FTD && BT
Expand Down
1 change: 1 addition & 0 deletions doc/nrf/links.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1192,6 +1192,7 @@
.. _`Thread Group members`: https://www.threadgroup.org/thread-group
.. _`Thread Group's certification information`: https://www.threadgroup.org/What-is-Thread/Certification
.. _`Thread 1.3.0 Features White Paper`: https://www.threadgroup.org/Portals/0/documents/support/Thread1.3.0WhitePaper_07192022_3990_1.pdf
.. _`Thread 1.4 Features White Paper`: https://www.threadgroup.org/Portals/0/Documents/Thread_1.4_Features_White_Paper_September_2024.pdf

.. _`Thread Group's Confluence wiki page`: https://threadgroup.atlassian.net/wiki/spaces/THREADTEST/pages/25900869/Supporting+Material

Expand Down
13 changes: 9 additions & 4 deletions doc/nrf/protocols/thread/configuring.rst
Original file line number Diff line number Diff line change
Expand Up @@ -103,15 +103,16 @@ See the following files for more options that you might want to change:
Thread Specification options
============================

The OpenThread stack can be configured to operate in compliance with either the Thread 1.1 Specification, the :ref:`Thread 1.2 Specification <thread_ug_supported_features_v12>`, or the :ref:`Thread 1.3 Specification <thread_ug_supported_features_v13>`.
The OpenThread stack can be configured to operate in compliance with either the Thread 1.1 Specification, the :ref:`Thread 1.2 Specification <thread_ug_supported_features_v12>`, the :ref:`Thread 1.3 Specification <thread_ug_supported_features_v13>`, or the :ref:`Thread 1.4 Specification <thread_ug_supported_features_v14>`.
You can change the stack version by using the following Kconfig options:

* :kconfig:option:`CONFIG_OPENTHREAD_THREAD_VERSION_1_1` - Selects the Thread stack version that is compliant with the Thread 1.1 Specification.
* :kconfig:option:`CONFIG_OPENTHREAD_THREAD_VERSION_1_2` - Selects the Thread stack version that is compliant with the Thread 1.2 Specification.
* :kconfig:option:`CONFIG_OPENTHREAD_THREAD_VERSION_1_3` - Selects the Thread stack version that is compliant with the Thread 1.3 Specification.
* :kconfig:option:`CONFIG_OPENTHREAD_THREAD_VERSION_1_4` - Selects the Thread stack version that is compliant with the Thread 1.4 Specification.
This option is enabled by default if no other option is selected.

By enabling support for Thread 1.2, you enable the following :ref:`thread_ug_supported_features_v12` in addition to the Thread 1.1 features:
By selecting support for Thread 1.2, you enable the following :ref:`thread_ug_supported_features_v12` in addition to the Thread 1.1 features:

* Coordinated Sampled Listening (CSL)
* Link Metrics Probing
Expand All @@ -120,12 +121,16 @@ By enabling support for Thread 1.2, you enable the following :ref:`thread_ug_sup
* Enhanced Frame Pending
* Enhanced Keep Alive

By selecting support for Thread 1.3, you enable the following features in addition to the :ref:`Thread 1.2 features <thread_ug_supported_features>`:
By selecting support for Thread 1.3, you enable the following :ref:`thread_ug_supported_features_v13` in addition to the :ref:`thread_ug_supported_features_v12`:

* Service Registration Protocol (SRP) client

By selecting support for Thread 1.4, you enable the following :ref:`thread_ug_supported_features_v14` in addition to the :ref:`thread_ug_supported_features_v13` and :ref:`thread_ug_supported_features_v12`:

* Enhanced Internet Connectivity
* Enhanced Network Diagnostics

For a list of all supported features in the |NCS|, see the :ref:`thread_ug_feature_sets`.
For more information about Thread 1.2 features, see the `Thread 1.2 Base Features`_ document.

.. _ug_thread_configuring_eui64:

Expand Down
60 changes: 55 additions & 5 deletions doc/nrf/protocols/thread/overview/supported_features.rst
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ Supported Thread features
:local:
:depth: 2

The OpenThread implementation of the Thread protocol supports all features defined in the Thread 1.3.0 Specification that are required for the Thread 1.3 Certification program:
The OpenThread implementation of the Thread protocol supports all features defined in the Thread 1.4 Specification that are required for the Thread 1.4 Certification program:

* All Thread networking layers:

Expand All @@ -26,13 +26,19 @@ The OpenThread implementation of the Thread protocol supports all features defin
* Multicast across Thread networks
* Thread Domain unicast addressing

* Features introduced with Thread 1.3.0:
* Features introduced with Thread 1.3:

* Service Registration Protocol (SRP) client
* Transport Control Protocol (TCP)

* Features introduced with Thread 1.4:

* Enhanced Internet Connectivity
* Enhanced Network Diagnostics
* Secure Commissioning at Scale with TCAT

In the |NCS|, you can choose which version of the Thread protocol to use in your application.
By default, the |NCS| supports Thread 1.3, which includes support for Thread 1.2.
By default, the |NCS| supports Thread 1.4, which includes support for Thread 1.3 and Thread 1.2.
You can enable and configure any Thread version by using :ref:`dedicated options <thread_ug_thread_specification_options>`.

.. _thread_ug_supported_features_v12:
Expand Down Expand Up @@ -151,7 +157,51 @@ An alternative TCP stack implementation incorporated from the OpenThread project

See the :file:`tcp.conf` configuration file in the :file:`snippets/tcp/` directory of the :ref:`ot_cli_sample` sample for an example how to enable the alternative TCP implementation.

Limitations for Thread 1.3 support
.. _thread_ug_supported_features_v14:

Thread 1.4 features
*******************

For more information about this Thread version, see the official `Thread 1.4 Features White Paper`_.

.. note::
See :ref:`thread_ug_thread_specification_options` for how to enable the 1.4 features that are currently available in the |NCS|.

Enhanced Internet Connectivity
==============================

Thread 1.4 introduces significant enhancements to how Thread devices can connect to the public internet.
This expansion is achieved through robust support for both IPv6 and IPv4, ensuring a future-proof compatibility with the existing internet infrastructure.

Enhanced Network Diagnostics
============================

The Enhanced Network Diagnostics added in Thread 1.4 include:

* EUI-64
* Thread Protocol Version and Thread Stack Version
* Vendor Name, Vendor Model, and Vendor Software Version
* Detailed Child information - for Thread Mesh Extenders only
* Child IPv6 Address List - for Thread Mesh Extenders only
* Mesh Extender (Router) Neighbors - for Thread Mesh Extenders only
* Mesh Link Establishment (MLE) Protocol Counters
* Vendor App URL
* A method ("Answer TLV") to split a particularly large diagnostic data set over multiple UDP messages

The entity collecting the Thread diagnostic information may itself be directly connected to a Thread network, for example situated on a Thread 1.4 Border Router.
The collected information can then be retrieved via an authenticated, secure connection from an app or back-end to this Border Router.
The entity could also be situated outside the Thread Network, collecting diagnostic information in the role of a Thread Commissioner - via a secured IPv6 link to a Thread Border Router.

Thread Commissioning over Authenticated TLS (TCAT)
==================================================

Thread 1.4 introduces TCAT to enable fast and secure commissioning of large volumes of Thread devices.
This feature uses an authenticated, certificate-based TLS session between the new Thread device and a commissioning tool/device.
TCAT support is optional and is expected to be used primarily in commercial (B2B) markets.

See the :file:`tcat.conf` configuration file in the :file:`snippets/tcat/` directory of the :ref:`ot_cli_sample` sample for an example how to enable the TCAT functionality.

Limitations for Thread 1.4 support
==================================

Transport Control Protocol (TCP) as defined by the Thread 1.3 Specification is only supported in experimental mode by the |NCS|.
Thread Commissioning over Authenticated TLS (TCAT) is an optional feature and is only supported in experimental mode by the |NCS|.

0 comments on commit 59470df

Please sign in to comment.