Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[net-diag] define child and Child IPv6 Address List TLV #8866

Merged
merged 1 commit into from
Jul 10, 2023

Conversation

abtink
Copy link
Member

@abtink abtink commented Mar 14, 2023

This commit contains multiple changes to Network Diagnostics modules.

It adds three new TLVs: Child TLV, Child IPv6 Address List TLV, and Neighbor TLV. Child TLV contains information about a child entry including RLOC16, extended MAC address, mode (rx-on-idle, FTD/MTD, full netdata, CSL-sync), timeout, age, supervision interval, CSL period and timeout, and link quality info such as RSS (last and average) and frame/message error rates. Neighbor TLV provides similar info for a router neighbor. The Child IPv6 Address List TLV allows to query a parent to get the list of IPv6 addresses registered by its MTD children.

The new TLVs can be requested in Network Diagnostic Get Query "d/dq" message to a router (unicast) or multiple routers (multicast). The router responds with one or more Network Diagnostic Get Answer "d/da" messages.

We allow multiple Answer messages to be sent in response to a Query. This is to support the case where a router has many children, and we want to avoid sending a large message that contains all of the TLVs for all of the children. Instead, we can send a sequence of Answer messages, each of which contains a subset of the TLVs.

Each Answer message includes an Answer TLV that indicates the index of the message in the sequence. The first Answer message has an index of 0, the second has an index of 1, and so on. The Answer TLV also indicates whether the message is the last one in the sequence, or if there are more Answer messages to come. Answer messages are sent in sequence, and the next one is not sent until we receive a successful CoAP ACK/response for the previous one.

This commit adds a Query ID TLV (with a 16-bit identifier as it value) that can be optionally included in a Query message. The Query ID is echoed back in all Answer messages associated with the same Query message. This allows a node that sends multiple Queries to distinguish between the received Answers.

This commit updates MeshDiag to use the newly added TLVs to query the child table or children IPv6 addresses of a router. New public OpenThread APIs under otMeshDiag are added for this, along with CLI commands and their documentation. A test-case is added to validate the newly added mechanism.


Related to SPEC-1151 and SPEC-1150.

@size-report
Copy link

size-report bot commented Mar 14, 2023

Size Report of OpenThread

Merging #8866 into main(37fb770).

name branch text data bss total
ot-cli-ftd_1.1 main 470696 760 64260 535716
#8866 472280 760 64268 537308
+/- +1584 0 +8 +1592
ot-cli-mtd_1.1 main 390488 760 54044 445292
#8866 390680 760 54044 445484
+/- +192 0 0 +192
ot-ncp-ftd_1.1 main 446220 760 59448 506428
#8866 447804 760 59456 508020
+/- +1584 0 +8 +1592
ot-ncp-mtd_1.1 main 370252 760 49240 420252
#8866 370444 760 49240 420444
+/- +192 0 0 +192
ot-rcp_1.1 main 60396 564 19964 80924
#8866 60396 564 19964 80924
+/- 0 0 0 0
libopenthread-cli-ftd.a_1.1 main 52544 0 8035 60579
#8866 52544 0 8035 60579
+/- 0 0 0 0
libopenthread-cli-mtd.a_1.1 main 43938 0 8027 51965
#8866 43938 0 8027 51965
+/- 0 0 0 0
libopenthread-ftd.a_1.1 main 245511 4 38782 284297
#8866 247377 4 38790 286171
+/- +1866 0 +8 +1874
libopenthread-mtd.a_1.1 main 180577 4 28574 209155
#8866 181043 4 28574 209621
+/- +466 0 0 +466
libopenthread-ncp-ftd.a_1.1 main 31549 0 5852 37401
#8866 31549 0 5852 37401
+/- 0 0 0 0
libopenthread-ncp-mtd.a_1.1 main 26541 0 5852 32393
#8866 26541 0 5852 32393
+/- 0 0 0 0
libopenthread-rcp.a_1.1 main 9028 0 4988 14016
#8866 9028 0 4988 14016
+/- 0 0 0 0
libopenthread-radio.a_1.1 main 18285 0 174 18459
#8866 18285 0 174 18459
+/- 0 0 0 0
ot-cli-ftd_1.3 main 493176 760 73756 567692
#8866 494792 760 73764 569316
+/- +1616 0 +8 +1624
ot-cli-mtd_1.3 main 405736 760 55284 461780
#8866 405912 760 55284 461956
+/- +176 0 0 +176
ot-ncp-ftd_1.3 main 467580 760 68936 537276
#8866 469148 760 68944 538852
+/- +1568 0 +8 +1576
ot-ncp-mtd_1.3 main 383988 760 50472 435220
#8866 384180 760 50472 435412
+/- +192 0 0 +192
ot-rcp_1.3 main 62768 564 20532 83864
#8866 62768 564 20532 83864
+/- 0 0 0 0
libopenthread-cli-ftd.a_1.3 main 55591 0 8035 63626
#8866 55591 0 8035 63626
+/- 0 0 0 0
libopenthread-cli-mtd.a_1.3 main 46252 0 8027 54279
#8866 46252 0 8027 54279
+/- 0 0 0 0
libopenthread-ftd.a_1.3 main 264042 4 47734 311780
#8866 265950 4 47742 313696
+/- +1908 0 +8 +1916
libopenthread-mtd.a_1.3 main 192248 4 29270 221522
#8866 192714 4 29270 221988
+/- +466 0 0 +466
libopenthread-ncp-ftd.a_1.3 main 33387 0 5852 39239
#8866 33387 0 5852 39239
+/- 0 0 0 0
libopenthread-ncp-mtd.a_1.3 main 27907 0 5852 33759
#8866 27907 0 5852 33759
+/- 0 0 0 0
libopenthread-rcp.a_1.3 main 9194 0 4988 14182
#8866 9194 0 4988 14182
+/- 0 0 0 0
libopenthread-radio.a_1.3 main 19200 0 206 19406
#8866 19200 0 206 19406
+/- 0 0 0 0

@codecov
Copy link

codecov bot commented Mar 14, 2023

Codecov Report

Merging #8866 (c9905fc) into main (5657335) will decrease coverage by 2.33%.
The diff coverage is 84.79%.

❗ Current head c9905fc differs from pull request most recent head 7381494. Consider uploading reports for the commit 7381494 to get more accurate results

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #8866      +/-   ##
==========================================
- Coverage   82.75%   80.43%   -2.33%     
==========================================
  Files         542      524      -18     
  Lines       74229    72501    -1728     
==========================================
- Hits        61430    58316    -3114     
- Misses      12799    14185    +1386     
Impacted Files Coverage Δ
src/cli/cli.hpp 100.00% <ø> (ø)
src/core/thread/network_diagnostic.hpp 71.42% <71.42%> (ø)
src/core/thread/network_diagnostic.cpp 82.05% <74.58%> (-2.51%) ⬇️
src/core/utils/mesh_diag.cpp 85.80% <82.80%> (+83.40%) ⬆️
src/cli/cli.cpp 79.31% <98.59%> (+5.00%) ⬆️
src/core/api/mesh_diag_api.cpp 92.30% <100.00%> (+92.30%) ⬆️
src/core/thread/network_diagnostic_tlvs.cpp 100.00% <100.00%> (ø)
src/core/thread/network_diagnostic_tlvs.hpp 100.00% <100.00%> (ø)

... and 129 files with indirect coverage changes

Copy link
Contributor

@EskoDijk EskoDijk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Provided some comments inline.
In general, would it be desired to keep this functionality out of a Thread 1.1 build and a 1.2 build? Since it's 1.3 functionality. If we include it in 1.1 builds then I wonder what the exact meaning of the "1.1" build flag has become.

include/openthread/mesh_diag.h Outdated Show resolved Hide resolved
uint16_t mSupervisionInterval; ///< Supervision interval in seconds. Zero to indicate not used.
int8_t mAverageRssi; ///< Average RSSI.
int8_t mLastRssi; ///< RSSI of last received frame.
uint16_t mFrameErrorRate; ///< Frame error rate (0xffff->100%). Zero if not known or supported.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It could be clarified that value 0 would also represent an actual error rate of 0, for both fields, in case the error rate tracking functionality is supported. My initial assumption was that 1 would represent a zero error rate because 0 is already taken for "not known or not supported".

Also the type of error is not really clear. This could be clarified maybe in the comment above the typedef since there is more space there. The comment there could, if needed, refer to another file where the type of error is more clearly explained. For example network_diagnostic_tlvs.hpp has an extensive comment for each field of the items we see here, including frame error rate and message error rate.

Type of error could be e.g. Tx failures only, Rx decoding/incomplete/checksum/security errors only, or both Tx/Rx stats combined in a single value.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes. Thanks. I agree Zero if not known can be confusing. I intended it as if you don't support error rate track, set then to zero, but we can use mSupportsErrRate flag to tell if the error rate values are valid, otherwise value should not matter and we should ignore them.

In the next push, I remove this and make it simpler. Also added a comment at the top to explain the error rate a bit more.

include/openthread/mesh_diag.h Outdated Show resolved Hide resolved
include/openthread/mesh_diag.h Outdated Show resolved Hide resolved
- Timeout (in seconds)
- Age (seconds since last heard)
- Supervision interval (in seconds)
- Number of queued message (in case sleepy)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- Number of queued message (in case sleepy)
- Number of queued messages (in case the child is sleepy)

src/core/thread/network_diagnostic_tlvs.hpp Outdated Show resolved Hide resolved
src/core/thread/network_diagnostic_tlvs.hpp Outdated Show resolved Hide resolved
src/core/thread/network_diagnostic_tlvs.hpp Outdated Show resolved Hide resolved
src/core/thread/network_diagnostic_tlvs.hpp Outdated Show resolved Hide resolved
src/core/thread/network_diagnostic_tlvs.hpp Outdated Show resolved Hide resolved
@abtink abtink changed the title [net-diag] define child TLV and mechanism to query child table [net-diag] define child and Child IPv6 Address List TLV Apr 11, 2023
src/cli/cli.cpp Outdated Show resolved Hide resolved
@abtink abtink force-pushed the mesh-diag/child-tlv branch 6 times, most recently from 06bf905 to 1e664ae Compare April 18, 2023 09:12
@abtink
Copy link
Member Author

abtink commented Apr 18, 2023

Pushed a new version of this PR. New changes are:

  • Adding "Answer TLV" to track index of Answer
  • Adding "Query ID TLV"
  • Mechanism to send Answer messages one by one (wait for the CoAP response/ack for previous one before sending the next one)
  • Relax/Fix some of the test script (some where strict in the sense that expected to see exact set of TLVs).

The commit log and PR description is also updated with more details.

@abtink
Copy link
Member Author

abtink commented May 9, 2023

Changes in new push:

@abtink
Copy link
Member Author

abtink commented May 18, 2023

New push to this PR:

  • It now include the MLE counters TLV from [net-diag] add TLV for MLE counters #9024.
  • Renamed to "Router Neighbor TLV" from "Neighbor TLV" (make it clear it is the routers)
  • Removed the device mode flags from "Router Neighbor TLV" (and related MeshDiag type).

src/cli/cli.cpp Dismissed Show dismissed Hide dismissed
@abtink abtink force-pushed the mesh-diag/child-tlv branch 2 times, most recently from 61328be to 903eb47 Compare May 25, 2023 20:44
@abtink
Copy link
Member Author

abtink commented Jun 13, 2023

In new push, rebased on main, addressed conflicts.

  • Used new Tlv helper method to simplify processing of TLVs in the received message.
  • Updated the function/method APIs to remove "This function/method/type ..".

src/core/utils/mesh_diag.hpp Outdated Show resolved Hide resolved
src/core/utils/mesh_diag.hpp Outdated Show resolved Hide resolved
src/core/utils/mesh_diag.hpp Outdated Show resolved Hide resolved
include/openthread/mesh_diag.h Outdated Show resolved Hide resolved
include/openthread/mesh_diag.h Outdated Show resolved Hide resolved
src/core/thread/network_diagnostic.hpp Outdated Show resolved Hide resolved
src/core/thread/network_diagnostic_tlvs.hpp Outdated Show resolved Hide resolved
src/core/thread/network_diagnostic_tlvs.hpp Outdated Show resolved Hide resolved
src/core/thread/network_diagnostic_tlvs.hpp Outdated Show resolved Hide resolved
src/core/thread/network_diagnostic_tlvs.hpp Outdated Show resolved Hide resolved
include/openthread/mesh_diag.h Outdated Show resolved Hide resolved
include/openthread/mesh_diag.h Outdated Show resolved Hide resolved
include/openthread/mesh_diag.h Outdated Show resolved Hide resolved
include/openthread/mesh_diag.h Outdated Show resolved Hide resolved
src/cli/README.md Outdated Show resolved Hide resolved
src/cli/cli.cpp Outdated Show resolved Hide resolved
src/cli/cli.cpp Outdated Show resolved Hide resolved
src/cli/cli.cpp Outdated Show resolved Hide resolved
Copy link
Member

@Vyrastas Vyrastas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, just one last nit

include/openthread/mesh_diag.h Outdated Show resolved Hide resolved
This commit contains multiple changes to Network Diagnostics
modules.

It adds new TLVs: Child TLV, Child IPv6 Address List TLV, Router
Neighbor TLV and MLE counters TLV.

Child TLV contains information about a child entry including RLOC16,
extended MAC address, mode (rx-on-idle, FTD/MTD, full netdata,
CSL-sync), timeout, age, supervision interval, CSL period and
timeout, and link quality info such as RSS (last and average) and
frame/message error rates. Neighbor TLV provides similar info for a
router neighbor. The Child IPv6 Address List TLV allows to query a
parent to get the list of IPv6 addresses registered by its MTD
children.

The new Child and Neighbor TLVs can be requested in Network Diagnostic
Get Query "d/dq" message to a router (unicast) or multiple routers
(multicast). The router responds with one or more Network Diagnostic
Get Answer "d/da" messages.

We allow multiple Answer messages to be sent in response to a Query.
This is to support the case where a router has many children, and we
want to avoid sending a large message that contains all of the TLVs
for all of the children. Instead, we can send a sequence of Answer
messages, each of which contains a subset of the TLVs.

Each Answer message includes an Answer TLV that indicates the index of
the message in the sequence. The first Answer message has an index of
0, the second has an index of 1, and so on. The Answer TLV also
indicates whether the message is the last one in the sequence, or if
there are more Answer messages to come. Answer messages are sent in
sequence, and the next one is not sent until we receive a successful
CoAP ACK/response for the previous one.

This commit adds a Query ID TLV (with a 16-bit identifier as it
value) that can be optionally included in a Query message. The Query
ID is echoed back in all Answer messages associated with the same
Query message. This allows a node that sends multiple Queries to
distinguish between the received Answers.

This commit updates `MeshDiag` to use the newly added TLVs
to query the child table or children IPv6 addresses of a router.
New public OpenThread APIs under `otMeshDiag` are added for this,
along with CLI commands and their documentation. A test-case is added
to validate the newly added mechanism.
@jwhui jwhui merged commit 1839f15 into openthread:main Jul 10, 2023
104 checks passed
lmnotran pushed a commit to SiliconLabs/openthread that referenced this pull request Oct 5, 2023
Merge in WMN_STACKS/openthread from task/openthread/update-openthread-stack to develop/23q2

* commit 'ff0f00b6f4220bfc319648e48ee723119e24d1c3': (31 commits)
  [mesh-forwarder] add time-in-queue statistics collection feature (openthread#9170)
  [net-diag] define Child, Neighbor, and Child IPv6 Address List TLVs (openthread#8866)
  github-actions: bump github/codeql-action from 2.3.5 to 2.20.3 (openthread#9265)
  [time] update DistantFuture/Past() to exclude value half range apart (openthread#9263)
  [commissioner] simplify and fix scheduling of expiration timer (openthread#9262)
  [test] fix unused returned value warning in `test_hdlc` (openthread#9256)
  Bump grpcio from 1.20.1 to 1.53.0 in /tools/harness-simulation/harness (openthread#9257)
  [cli] fix `childsupervision` commands documentation (openthread#9201)
  [posix] fix the snprintf buffer overflow issue (openthread#9251)
  [mac] remove duplicated method for getting the MAC frame length (openthread#9254)
  [spinel] return error from `SaveFrame` if not enough space is available (openthread#9244)
  github-actions: bump actions/setup-python from 4.6.0 to 4.6.1 (openthread#9252)
  [routing-manager] `PdPrefixManager` to clear prefix bits when extending length (openthread#9249)
  [ncp] keep timeout zero during ramp-down in spinel `ADDRESS_CACHE_TABLE` (openthread#9247)
  [csl] add APIs to retrieve status (openthread#8793)
  [address-resolver] implement ramp-down mechanism for retry delay (openthread#9162)
  [routing-manager] determine route preference from parent link quality (openthread#9080)
  [mesh-forwarder] only mark Key ID Mode 0 and 1 as secure
  [posix] fix missing `nullptr` pointer check (openthread#9179)
  [examples] remove example platform redirects (openthread#9246)
  ...
lmnotran pushed a commit to SiliconLabs/openthread that referenced this pull request Oct 5, 2023
…e3ff2-> e6df00d

Merge in WMN_STACKS/openthread from task/openthread/update-openthread-commit to develop/23q4

* commit 'f534edb76e71a7d3b9f08beaa1c97050eeaf215f': (118 commits)
  OPENTHREAD-3388: Add iid-list option to radio_url.
  [mesh-forwarder] add time-in-queue statistics collection feature (openthread#9170)
  [net-diag] define Child, Neighbor, and Child IPv6 Address List TLVs (openthread#8866)
  github-actions: bump github/codeql-action from 2.3.5 to 2.20.3 (openthread#9265)
  [time] update DistantFuture/Past() to exclude value half range apart (openthread#9263)
  [commissioner] simplify and fix scheduling of expiration timer (openthread#9262)
  [test] fix unused returned value warning in `test_hdlc` (openthread#9256)
  Bump grpcio from 1.20.1 to 1.53.0 in /tools/harness-simulation/harness (openthread#9257)
  [cli] fix `childsupervision` commands documentation (openthread#9201)
  [posix] fix the snprintf buffer overflow issue (openthread#9251)
  [mac] remove duplicated method for getting the MAC frame length (openthread#9254)
  [spinel] return error from `SaveFrame` if not enough space is available (openthread#9244)
  github-actions: bump actions/setup-python from 4.6.0 to 4.6.1 (openthread#9252)
  [routing-manager] `PdPrefixManager` to clear prefix bits when extending length (openthread#9249)
  [ncp] keep timeout zero during ramp-down in spinel `ADDRESS_CACHE_TABLE` (openthread#9247)
  [csl] add APIs to retrieve status (openthread#8793)
  [address-resolver] implement ramp-down mechanism for retry delay (openthread#9162)
  [routing-manager] determine route preference from parent link quality (openthread#9080)
  [mesh-forwarder] only mark Key ID Mode 0 and 1 as secure
  [posix] fix missing `nullptr` pointer check (openthread#9179)
  ...
superwhd pushed a commit to superwhd/openthread that referenced this pull request Oct 13, 2023
* upstream/main:
  [test] fix unused returned `error` warning in `test_message` (openthread#9496)
  [mesh-forwarder] remove message if no pending tx in `SendMessage()` (openthread#9495)
  [crypto-platform] fix build issue with mbedtls v3.5.0 (openthread#9492)
  [mle-router] add `RouterRoleTransition` nested class (openthread#9490)
  [routing-manager] include Stub Router flag in emitted RAs by BR (openthread#9486)
  [ip6] drop UDP datagrams from an untrusted origin to TMF port (openthread#9437)
  [mle] handle received Advertisements from `RxOnlyNeighbor` on FED (openthread#9484)
  [docs] fix typos in Doxygen documentation (openthread#9485)
  [mle] send data polls after Child ID Request ack (openthread#9264)
  [mle] simplify reattach on losing connectivity to leader (openthread#9479)
  [backbone-router] use `TimeTicker` directly to delay registration (openthread#9483)
  [bbr-local] simplify `AddService()` and its use (openthread#9477)
  [github-actions] fix the `codespell` version in `spell-check` job (openthread#9482)
  github-actions: bump actions/checkout from 4.0.0 to 4.1.0 (openthread#9476)
  [routing-manager] new config to use heap for `PrefixTable` entries (openthread#9455)
  [docs] Doxygen tags for CLI commands [`neighbor linkquality` — `networkidtimeout`]  (openthread#9466)
  [nd6] add `RaFlagsExtOption` and track flags in received RAs (openthread#9448)
  [mle] simplify `ProcessRouteTlv()` call in `HandleAdvertisement()` (openthread#9465)
  [joiner] check for non-zero joiner UDP port before electing a joiner router (openthread#9445)
  [posix] address coverity warning: argument cannot be negative (openthread#9453)
  [ip6] update where `HandlePayload()` check `message` is not null (openthread#9462)
  [script] exclude `ot_testing` and `__pycache__` when building the OTBR docker (openthread#9457)
  [docs] adding Doxygen tags for CLIs `mac retries direct` - `mac send` (openthread#9451)
  [docs] add Doxygen tags for CLI commands (`macfilter rss add`  - `macfilter rss remove`) (openthread#9442)
  [address-resolver] set minimum `kMaxNonEvictableSnoopedEntries` to `1` (openthread#9460)
  github-actions: bump github/codeql-action from 2.21.4 to 2.21.8 (openthread#9459)
  Revert "[nat64] enable discovering NAT64 AIL prefix for OpenWRT (openthread#9441)" (openthread#9458)
  [spinel] reset mState to kStateDisabled if recovering from kStateDisaled (openthread#9450)
  [tmf] set default snoop cache entry count to 1/16 of total (openthread#9440)
  [nat64] enable discovering NAT64 AIL prefix for OpenWRT (openthread#9441)
  [docs] add Doxygen tags for CLI commands (`macfilter` - `macfilter addr`) (openthread#9424)
  [border-agent] simplify `ForwardContext` allocation and ownership (openthread#9444)
  [posix] update the default channel masks in the configuration file (openthread#9443)
  [tcp] address uninitialized variable warning (openthread#9438)
  [cli] fix `ba state` output and conversion of state to string (openthread#9433)
  [border-agent] smaller enhancements (openthread#9432)
  github-actions: bump actions/checkout from 3.6.0 to 4.0.0 (openthread#9429)
  [spinel] save MAC frame counter to a local variable (openthread#9407)
  [posix] add channel mask configurations to configuration file (openthread#9391)
  [firewall] implement packet filtering in OT core (openthread#9402)
  [netdata] remove unallocated router ID entries on recovery after reset (openthread#9421)
  [posix] add a flag to turn posix multicast routing feature on/off (openthread#9412)
  [docs] add Doxygen tags for CLI commands (`tvcheck` - `unsecure`) (openthread#9419)
  [url] add methods to parse parameters from url (openthread#9392)
  [mac] fix channel switching issue during energy scan (openthread#9405)
  [address-resolver] remove cache entry if its RLOC16 is unreachable (openthread#9411)
  [include] remove include of core config file (openthread#9417)
  [csl] ignore zero valued CSL IE period (openthread#9414)
  [mac] document and adjust to standards based timing concepts (openthread#9322)
  github-actions: bump actions/setup-go from 4.0.1 to 4.1.0 (openthread#9413)
  [mle] suppress Announce response to orphan child on same channel and PAN ID (openthread#9388)
  [cli] add Doxygen tags to all `trel` commands (openthread#9406)
  [docs] CLI updates (openthread#9401)
  [srp-server] process completed update from proxy from taskelt (openthread#9398)
  [script] `check-size` to generate formatted table on push (openthread#9382)
  [data-poll-handler] reset tx attempts when replacing a frame (openthread#9397)
  github-actions: bump actions/checkout from 3.5.3 to 3.6.0 (openthread#9396)
  [link-metrics] implement link metrics manager (openthread#9375)
  [docs] added Doxygen tags to new CLIs (openthread#9384)
  [mle] add `OPENTHREAD_CONFIG_MLE_DEVICE_PROPERTY_LEADER_WEIGHT_ENABLE` (openthread#9387)
  [cli] fix RTT compiling issue (openthread#9385)
  [meshcop] print TLV State after receiving responses (openthread#9350)
  [core] add separate `neighbor.hpp`, `child.hpp`, and `router.hpp` (openthread#9376)
  [mesh-forwarder] update `aIp6Header` arg name to follow style guide (openthread#9378)
  github-actions: bump github/codeql-action from 2.20.3 to 2.21.4 (openthread#9377)
  [docs] add tags to new CLIs (openthread#9367)
  [script] update the `check-size` report (openthread#9368)
  [trel] bugfix for MAC security failure on key sequence change (openthread#9371)
  [cli] simplify `dataset` commands (openthread#9366)
  [docs] cli cmd doc updates (locate - log level) (openthread#9354)
  [tcplp] add support for TCP Fast Open (without cookie management) (openthread#9165)
  github-actions: bump step-security/harden-runner from 2.5.0 to 2.5.1 (openthread#9365)
  [mesh-forwarder] minimize use of default parameters in methods (openthread#9364)
  [posix] allow disabling CLI for daemon (openthread#9357)
  [dnssd-server] simplify resolving of query by proxy (openthread#9353)
  [dnssd-server] determine query type & simplify processing of query name (openthread#9349)
  [mac-frame] update `GenerateEnhAck()` to use `InitMacHeader()` (openthread#9338)
  [mle] reorganize MLE constants (openthread#9355)
  github-actions: bump actions/setup-python from 4.6.1 to 4.7.0 (openthread#9356)
  [mac-frame] update `InitMacFrame()` (openthread#9337)
  [cli] support RTT as cli interface (openthread#9148)
  [docs] added Doxygen tags to 4 CLIs (openthread#9352)
  [link-metrics] update link metrics callback parameter (openthread#9343)
  github-actions: bump docker/setup-buildx-action from 2.5.0 to 2.9.1 (openthread#9344)
  [posix] fix rcp reset flow in `ResetRcp` (openthread#9314)
  [mesh-forwarder] disallow new message eviction in `ApplyDirectTxQueueLimit()` (openthread#9348)
  [dns-client] handle multiple CNAME record in response (openthread#9339)
  [netdata] fix the source address check in `LeaderBase::RouteLookup()` (openthread#9335)
  [dnssd-server] simplifications and enhancements (openthread#9334)
  [dnssd-server] send response if `ResolveByUpstream()` fails (openthread#9331)
  [clang-tidy] fix `bugprone-too-small-loop-variable` warnings (openthread#9321)
  [spinel] networkInfo may not exist when recovering from RCP failure (openthread#9327)
  [mle] reorder `Mle` class member variables (openthread#9320)
  [thci] fix for ncs thci issues (openthread#9328)
  [docs] fix some typos (openthread#9324)
  github-actions: bump step-security/harden-runner from 2.4.1 to 2.5.0 (openthread#9325)
  [mle] change `protected` declarations as `private (openthread#9317)
  [mac-frame] check rx frame security level in `GenerateEnhAck()` (openthread#9315)
  [mle] update Avd trickle timer interval based on router neighbor count (openthread#9307)
  [link-metrics] verify neighbor state when processing messages (openthread#9311)
  [routing-manager] add `SetIfIndex` in `RoutingManager` (openthread#9305)
  [clang-tidy] move config to `.clang-tidy` file (openthread#9308)
  github-actions: bump step-security/harden-runner from 2.3.1 to 2.4.1 (openthread#9310)
  [srp-server] ensure `Host` is freed when committing with zero key-lease (openthread#9309)
  [cli] add docs for `detach` command (openthread#9303)
  [config] define separate project and platform core config header (openthread#9291)
  [mle] define separate `TxChallenge` and `RxChallenge` types (openthread#9304)
  [csl] update CSL public APIs to use microseconds unit for period (openthread#9285)
  [srp-server] simplify tracking of host key (openthread#9296)
  [srp-server] simplify `RemoveHost()` method (openthread#9295)
  [posix] loose check for NETLINK_EXT_ACK and NETLINK_CAP_ACK (openthread#9299)
  [posix] fix name of vendor-supplied target to `OT_POSIX_CONFIG_RCP_VENDOR_INTERFACE` (openthread#9297)
  [posix] replace RCP vendor extension find package with include command (openthread#9241)
  [random] remove mbedtls header from api (openthread#9286)
  [mle] simplify `HandleChildIdRequest()` (openthread#9292)
  [link-metrics] minimize the Link Metrics entry count for MTD (openthread#9188)
  [cmake] add macros to simplify CMake config definition (openthread#9288)
  [dnssd-server] skip additional records on a PTR query with multiple answers (openthread#9281)
  [posix] fix logging of netlink errors (openthread#9287)
  github-actions: bump docker/login-action from 2.1.0 to 2.2.0 (openthread#9289)
  [routing-manager] support Advertising PIO (AP) flag in published route (openthread#9274)
  [toranj] remove docs from test specific config headers (openthread#9276)
  [github-action] install `prettier@2.0.4` in `pretty` job (openthread#9279)
  [routing-manager] add `SetState()` in `OnLinkPrefixManager` (openthread#9273)
  [border-agent] fix struct typedef for `otBorderAgentId` (openthread#9277)
  [spinel] fix error code when waiting rcp response timeout (openthread#9278)
  [srp-server] simplify sub-type services (openthread#9208)
  [mle] ensure key sequence is updated in MLE responses (openthread#9271)
  [mesh-forwarder] add time-in-queue statistics collection feature (openthread#9170)
  [net-diag] define Child, Neighbor, and Child IPv6 Address List TLVs (openthread#8866)
  github-actions: bump github/codeql-action from 2.3.5 to 2.20.3 (openthread#9265)
  [time] update DistantFuture/Past() to exclude value half range apart (openthread#9263)
  [commissioner] simplify and fix scheduling of expiration timer (openthread#9262)
  [test] fix unused returned value warning in `test_hdlc` (openthread#9256)
  Bump grpcio from 1.20.1 to 1.53.0 in /tools/harness-simulation/harness (openthread#9257)
  [cli] fix `childsupervision` commands documentation (openthread#9201)
  [posix] fix the snprintf buffer overflow issue (openthread#9251)
  [mac] remove duplicated method for getting the MAC frame length (openthread#9254)
  [spinel] return error from `SaveFrame` if not enough space is available (openthread#9244)
  github-actions: bump actions/setup-python from 4.6.0 to 4.6.1 (openthread#9252)
  [routing-manager] `PdPrefixManager` to clear prefix bits when extending length (openthread#9249)
  [ncp] keep timeout zero during ramp-down in spinel `ADDRESS_CACHE_TABLE` (openthread#9247)
  [csl] add APIs to retrieve status (openthread#8793)
  [address-resolver] implement ramp-down mechanism for retry delay (openthread#9162)
  [routing-manager] determine route preference from parent link quality (openthread#9080)
  [mesh-forwarder] only mark Key ID Mode 0 and 1 as secure
  [posix] fix missing `nullptr` pointer check (openthread#9179)
  [examples] remove example platform redirects (openthread#9246)
  [build] cleanup autotools references (openthread#9242)
  [mac] move ack processing to `HandleTransmitDone()` (openthread#9245)
  [mle] delay router role downgrade on security policy change (openthread#9187)
  [dataset] add build option for `GenerateLocal` (openthread#9215)
  [dns] add `otDnsEncodeTxtData()` API (openthread#9214)
  [meshcop] fix compilation error mbedtls_base64_encode not defined (openthread#9206)
  [message] allow heap usage when using non-thread commissioning (openthread#9205)
  [build] remove autotools (openthread#9027)
  [message] remove child mask from message metadata in MTD (openthread#9213)
  [tmf] BRs default to 256 address cache entries (openthread#9078)
  [logging] fix print format related to infra netif logs (openthread#9212)
  [tests] properly configure operational dataset in BR tests (openthread#9209)
  [netdata] mechanism to detect & signal when network data gets full (openthread#9073)
  [toranj-cli] properly configure operational dataset (openthread#9207)
  [unit-test] properly configure operational dataset (openthread#9203)
  [srp-server] allow service instance label with dot character (openthread#9198)
  github-actions: bump ossf/scorecard-action from 2.1.3 to 2.2.0 (openthread#9204)
  [script] properly configure dataset in `check-posix-pty` (openthread#9202)
  [test] update unit test emulating radio (openthread#9200)
  [docs] add radio defgroup for proper documentation (openthread#9195)
  [csl] ensure child is synchronized when preparing a CSL transmission (openthread#9199)
  [otci] properly configure operational dataset (openthread#9190)
  [thread-cert] properly configure operational dataset (openthread#9189)
  [posix] add posix support for sending RA messages to routing manager (openthread#9160)
  [cli] expose `otLinkSetEnabled` (openthread#9193)
  github-actions: bump actions/checkout from 3.5.2 to 3.5.3 (openthread#9192)
  [expect] properly configure operational dataset (openthread#9183)
  [thci] revert spellcheck in THCI method names (openthread#9175)
  [coap] fix minor typo (openthread#9180)
  [netif] simplify signaling address events (openthread#9173)
  [mac] enable/disable radio together with MAC (openthread#9156)
  [cli] add command to get tcp results (openthread#9142)
  [radio] add radio statistics of tx/rx/sleep cycle (openthread#9071)
  [routing-manager] remove unnecessary `kOnMeshPrefixLength` decl (openthread#9176)
  [spinel] move `SpiFrame` implementation to spi_frame.hpp (openthread#9151)
  [cli] update `OutputEidCacheEntry()` (openthread#9171)
  [mesh-diag] fix initializing of `mEndOffset` in `ChildIterator` (openthread#9172)
  [routing-manager] require valid on-link prefix to be /64 (openthread#9167)
  [config] add `mesh_forwarder.h` config header file (openthread#9164)
  github-actions: bump codecov/codecov-action from 3.1.3 to 3.1.4 (openthread#9166)
  [spinel] move the `MultiFrameBuffer` implementation to multi_frame_buffer.hpp (openthread#9150)
  [mle] send unicast Link Request to 1.2 parent on router role promo (openthread#9154)
  [docs] cli cmd doc updates (mliid - multiradio neighbor) (openthread#9155)
  [toranj] update `build.sh` script to use Thread version 1.3.1 (openthread#9159)
  [csl] improved CSL debug logging (openthread#9040)
  [mle] restrict `otDeviceProperties` to version 1.3.1 or later (openthread#9157)
  [spinel] remove fetching the ncp dataset (openthread#9140)
  [cmake] fix OT_THREAD_VERSION comparison in CMake (openthread#9158)
  [bbr] simplify `DomainPrefixEvent` (openthread#9152)
  [routing-manager] initial PD support with platform generated RA (openthread#9050)
  [tlvs] new helper to find the start and end offsets of a TLV value (openthread#9144)
  [spinel] fix the non-virtual destructor error (openthread#9139)
  [posix] replace fd_sets with the mainloop context (openthread#9127)
  [logging] fix rtt logging not using defined buffer index (openthread#9133)
  [netif] use fix type to u8 for addr_gen_mode (openthread#9147)
  [mlr] use `Array<>` to track old registered MLR addresses (openthread#9134)
  [cli] add helper `ProcessEnableDisable()` methods (openthread#9138)
  [mle] simplify tracking of registered DUA address by child (openthread#9137)
  [posix] unify the spinel interface functions (openthread#9107)
  github-actions: bump actions/checkout from 3.3.0 to 3.5.2 (openthread#9132)
  [bbr] move BBR constants to related source files (openthread#9129)
  [cli] add CLI Backbone Router (`Bbr`) sub-module (openthread#9128)
  [sntp-client] smaller enhancements (openthread#9125)
  [github-actions] update ubuntu to 22.04 on `ot-commissioner` test (openthread#9130)
  [toranj] update `build.sh` script to use CMake for all builds (openthread#9115)
  [routing-manager] fix deprecating on-link prefix from inactive router (openthread#9121)
  [backbone-router] use `Clamp` to check MLR timeout value (openthread#9119)
  [core] use `Min()`, `Max()` to clip values (openthread#9117)
  [build] delete the removed child supervision config in `cmake-build` (openthread#9111)
  [posix] add unified platform API for setting NAT64 CIDR during runtime (openthread#8947)
  [link-quality] fix corner case of `ScaleRawValueToRssi` (openthread#9102)
  [posix] fix setting non-standard baudrate on mac (openthread#9090)
  [routing-manager] update logs (openthread#9095)
  [random] add `Fill<ObjectType>()` function (openthread#9097)
  [csl] fix 15.4-secured broadcast frames (openthread#9103)
  [posix] add Thread network default interface name configuration (openthread#9089)
  github-actions: bump github/codeql-action from 2.3.3 to 2.3.5 (openthread#9100)
  [radio] fix return code doc of link metrics api (openthread#9098)
  [docs] remove redundant "This method" and "This function" (openthread#9096)
  [cli] update documentation of `Process()` method in CLI sub-modules (openthread#9093)
  [cli] add CLI `MacFilter` sub-module (openthread#9088)
  [cli] add helper `OutputNat64Counters()` (openthread#9087)
  [tests] check whether the unreachable address is included in the DNS-SD response (openthread#9075)
  [uptime] requires UPTIME feature to be enabled on FTD build (openthread#9079)
  [alarm] `otPlatAlarm` requirements clarification (openthread#9067)
  [test] add code spell check and correct wrong spelling (openthread#9066)
  github-actions: bump actions/setup-go from 4.0.0 to 4.0.1 (openthread#9076)
  [notifier] add missing event in `EventToString()` (openthread#9072)
  [cli] add CLI DNS sub-module (openthread#9069)
  [core] add the instance id (openthread#9055)
  [cli] fix config check for "vendor" command (openthread#9068)
  [ncp] fix RegisterPeekPokeDelegates call (openthread#9064)
  [border-agent] set Border Agent ID via CLI (openthread#9049)
  [dns-client] new API resolve host and address (openthread#9054)
  [routing-manager] add `OmrPrefixManager` (openthread#9062)
  [csl] split min receive window into MHR ahead and after times (openthread#9041)
  [ip6] add `Tidy` method to `Ip6::Prefix` (openthread#9057)
  [cli] support adding vendor command list to cli apps (openthread#9001)
  [radio-spinel] add log on RCP timeout error during init (openthread#9059)
  [mle] echo back "Supervision TLV" in Child ID Response (openthread#9061)
  [tests] fix `routing_manager` unit tests (openthread#9053)
  [nat64] check OMR prefix when selecting favored NAT64 prefix (openthread#8995)
  github-actions: bump github/codeql-action from 2.2.12 to 2.3.3 (openthread#9051)

Change-Id: Ib37b5a0813cc447220c822928d6a88ce8f435249
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants