From f75e2bb567bd4cbe7a0c8f79979e06ebaf0e4c1e Mon Sep 17 00:00:00 2001 From: Abtin Keshavarzian Date: Wed, 17 Jan 2024 07:23:20 -0800 Subject: [PATCH] [net-diag] handle `MleCounterTlv` in `AppendDiagTlv()` (#9777) Adds support for responding to `MleCounterTlv` in `AppendDiagTlv()` Processing the TLV is a received response is already implemented and supported. Updates `test-020-net-diag` to check query of MLE counters TLV. --- src/core/thread/network_diagnostic.cpp | 9 +++++++++ tests/toranj/cli/test-020-net-diag-vendor-info.py | 5 +++++ 2 files changed, 14 insertions(+) diff --git a/src/core/thread/network_diagnostic.cpp b/src/core/thread/network_diagnostic.cpp index 37f68534c..c331dc428 100644 --- a/src/core/thread/network_diagnostic.cpp +++ b/src/core/thread/network_diagnostic.cpp @@ -299,6 +299,15 @@ Error Server::AppendDiagTlv(uint8_t aTlvType, Message &aMessage) error = AppendMacCounters(aMessage); break; + case Tlv::kMleCounters: + { + MleCountersTlv tlv; + + tlv.Init(Get().GetCounters()); + error = tlv.AppendTo(aMessage); + break; + } + case Tlv::kVendorName: error = Tlv::Append(aMessage, GetVendorName()); break; diff --git a/tests/toranj/cli/test-020-net-diag-vendor-info.py b/tests/toranj/cli/test-020-net-diag-vendor-info.py index 6f205cd25..f923dde19 100755 --- a/tests/toranj/cli/test-020-net-diag-vendor-info.py +++ b/tests/toranj/cli/test-020-net-diag-vendor-info.py @@ -68,6 +68,7 @@ VENDOR_NAME_TLV = 25 VENDOR_MODEL_TLV = 26 VENDOR_SW_VERSION_TLV = 27 THREAD_STACK_VERSION_TLV = 28 +MLE_COUNTERS_TLV = 34 #- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Check setting vendor name, model, ans sw version @@ -176,6 +177,10 @@ for line in result[1:]: else: verify(False) +result = r2.cli('networkdiagnostic get', r1_rloc, MLE_COUNTERS_TLV) +print(len(result) >= 1) +verify(result[1].startswith("MLE Counters:")) + # ----------------------------------------------------------------------------------------------------------------------- # Test finished