connectedhomeip
ThreadNetworkDiagnostics: Encode the Extended address as an big-endian integer
#38472
Open

ThreadNetworkDiagnostics: Encode the Extended address as an big-endian integer #38472

wqx6 wants to merge 2 commits into project-chip:master from wqx6:thread_diag/fix_ext_addr
wqx6
wqx623 days ago

Encode the ExtendedAddress attribute in ThreadNetworkDiagnostics cluster following the SPEC change in CHIP-Specifications/connectedhomeip-spec#11513

Testing

Tested on ESP32-H2, using chip-tool to read the extended address and get the value 483378320754432673(0x06b54e058cb15aa1) and using openthread cli to get the extended address which is an octet string 06b54e058cb15aa1

wqx6 ThreadNetworkDiagnostics: Encode the Extended address as a big-endian…
49f97288
pullapprove pullapprove added review - pending
github-actions github-actions added app
github-actions
github-actions23 days ago (edited 23 days ago)

PR #38472: Size comparison from dc07b29 to 49f9728

Full report (75 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, linux, nrfconnect, nxp, psoc6, qpg, stm32, telink, tizen)
platform target config section dc07b29 49f9728 change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1098928 1098928 0 0.0
RAM 94850 94850 0 0.0
bl702 lighting-app bl702+eth FLASH 653844 653844 0 0.0
RAM 33533 33533 0 0.0
bl702+wifi FLASH 831096 831096 0 0.0
RAM 22257 22257 0 0.0
bl706+mfd+rpc+littlefs FLASH 1063620 1063620 0 0.0
RAM 32181 32181 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 894508 894508 0 0.0
RAM 26920 26920 0 0.0
lighting-app bl702l+mfd+littlefs FLASH 977296 977296 0 0.0
RAM 24668 24668 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 818796 818812 16 0.0
RAM 120288 120288 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 827756 827772 16 0.0
RAM 125384 125384 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 774800 774816 16 0.0
RAM 113756 113756 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 759100 759132 32 0.0
RAM 113972 113972 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 542474 542474 0 0.0
RAM 205144 205144 0 0.0
lock CC3235SF_LAUNCHXL FLASH 576438 576438 0 0.0
RAM 205392 205392 0 0.0
cyw30739 light CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 660813 660837 24 0.0
RAM 77260 77260 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 680673 680697 24 0.0
RAM 79900 79900 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 680673 680697 24 0.0
RAM 79900 79900 0 0.0
CYW930739M2EVB-02 unknown 2040 2040 0 0.0
FLASH 637597 637621 24 0.0
RAM 72328 72328 0 0.0
light-switch CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 620893 620917 24 0.0
RAM 73508 73508 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 640529 640553 24 0.0
RAM 76052 76052 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 640529 640553 24 0.0
RAM 76052 76052 0 0.0
lock CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 640341 640365 24 0.0
RAM 76508 76508 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 660057 660089 32 0.0
RAM 79052 79052 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 660057 660089 32 0.0
RAM 79052 79052 0 0.0
thermostat CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 616737 616761 24 0.0
RAM 70596 70596 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 636597 636621 24 0.0
RAM 73236 73236 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 636597 636621 24 0.0
RAM 73236 73236 0 0.0
efr32 lock-app BRD4187C FLASH 942008 942040 32 0.0
RAM 132008 132008 0 0.0
BRD4338a FLASH 735864 735864 0 0.0
RAM 206916 206916 0 0.0
window-app BRD4187C FLASH 1033632 1033696 64 0.0
RAM 128048 128048 0 0.0
esp32 all-clusters-app c3devkit DRAM 103408 103408 0 0.0
FLASH 1799410 1799410 0 0.0
IRAM 83846 83846 0 0.0
m5stack DRAM 121980 121980 0 0.0
FLASH 1765034 1765034 0 0.0
IRAM 117043 117043 0 0.0
linux air-purifier-app debug unknown 4848 4848 0 0.0
FLASH 2749687 2749687 0 0.0
RAM 114264 114264 0 0.0
all-clusters-app debug unknown 5656 5656 0 0.0
FLASH 6290652 6290652 0 0.0
RAM 532400 532400 0 0.0
all-clusters-minimal-app debug unknown 5528 5528 0 0.0
FLASH 5419840 5419840 0 0.0
RAM 224528 224528 0 0.0
bridge-app debug unknown 5544 5544 0 0.0
FLASH 4719680 4719680 0 0.0
RAM 202880 202880 0 0.0
camera-app debug unknown 8832 8832 0 0.0
FLASH 6787803 6787803 0 0.0
RAM 225200 225200 0 0.0
camera-controller debug unknown 9120 9120 0 0.0
FLASH 13890123 13890123 0 0.0
RAM 646352 646352 0 0.0
chip-tool debug unknown 6256 6256 0 0.0
FLASH 14317077 14317077 0 0.0
RAM 636544 636544 0 0.0
chip-tool-ipv6only arm64 unknown 39696 39696 0 0.0
FLASH 12349600 12349600 0 0.0
RAM 682720 682720 0 0.0
fabric-admin debug unknown 5936 5936 0 0.0
FLASH 12415827 12415827 0 0.0
RAM 635904 635904 0 0.0
fabric-bridge-app debug unknown 4800 4800 0 0.0
FLASH 4550444 4550444 0 0.0
RAM 190160 190160 0 0.0
fabric-sync debug unknown 5056 5056 0 0.0
FLASH 5690069 5690069 0 0.0
RAM 486664 486664 0 0.0
lighting-app debug+rpc+ui unknown 6264 6264 0 0.0
FLASH 5620433 5620433 0 0.0
RAM 207144 207144 0 0.0
lock-app debug unknown 5496 5496 0 0.0
FLASH 4788208 4788208 0 0.0
RAM 194272 194272 0 0.0
ota-provider-app debug unknown 4840 4840 0 0.0
FLASH 4407894 4407894 0 0.0
RAM 182992 182992 0 0.0
ota-requestor-app debug unknown 4792 4792 0 0.0
FLASH 4540234 4540234 0 0.0
RAM 187464 187464 0 0.0
shell debug unknown 4272 4272 0 0.0
FLASH 3055324 3055324 0 0.0
RAM 147824 147824 0 0.0
thermostat-no-ble arm64 unknown 9560 9560 0 0.0
FLASH 4206536 4206536 0 0.0
RAM 230856 230856 0 0.0
tv-app debug unknown 5832 5832 0 0.0
FLASH 6037173 6037173 0 0.0
RAM 610080 610080 0 0.0
tv-casting-app debug unknown 5416 5416 0 0.0
FLASH 12482861 12482861 0 0.0
RAM 754464 754464 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 917312 917340 28 0.0
RAM 167469 167469 0 0.0
nrf7002dk_nrf5340_cpuapp FLASH 909780 909780 0 0.0
RAM 145713 145713 0 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 FLASH 853840 853868 28 0.0
RAM 141223 141223 0 0.0
nxp contact k32w0+release FLASH 589256 589288 32 0.0
RAM 72836 72836 0 0.0
mcxw71+release FLASH 621208 621232 24 0.0
RAM 63172 63172 0 0.0
light k32w0+release FLASH 615028 615044 16 0.0
RAM 72132 72132 0 0.0
k32w1+release FLASH 705304 705336 32 0.0
RAM 72020 72020 0 0.0
lock mcxw71+release FLASH 770320 770344 24 0.0
RAM 67588 67588 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1662140 1662140 0 0.0
RAM 212352 212352 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1566396 1566396 0 0.0
RAM 208544 208544 0 0.0
light cy8ckit_062s2_43012 FLASH 1442692 1442692 0 0.0
RAM 197312 197312 0 0.0
lock cy8ckit_062s2_43012 FLASH 1471468 1471468 0 0.0
RAM 224976 224976 0 0.0
qpg lighting-app qpg6105+debug FLASH 665820 665852 32 0.0
RAM 105188 105188 0 0.0
lock-app qpg6105+debug FLASH 624104 624120 16 0.0
RAM 99816 99816 0 0.0
stm32 light STM32WB5MM-DK FLASH 463016 463040 24 0.0
RAM 141488 141488 0 0.0
telink bridge-app tl7218x FLASH 696146 696184 38 0.0
RAM 101860 101860 0 0.0
light-app-ota-compress-lzma-factory-data tl3218x FLASH 777962 778000 38 0.0
RAM 50120 50120 0 0.0
light-app-ota-compress-lzma-shell-factory-data tl3218x FLASH 768224 768264 40 0.0
RAM 40420 40420 0 0.0
light-app-ota-shell-factory-data tl7218x FLASH 784598 756724 -27874 -3.6
RAM 109308 97540 -11768 -10.8
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 705824 683752 -22072 -3.1
RAM 62620 51588 -11032 -17.6
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 742006 712202 -29804 -4.0
RAM 85808 73408 -12400 -14.5
light-switch-app-ota-shell-factory-data tl3218x_retention FLASH 709710 709748 38 0.0
RAM 37044 37044 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 603726 603726 0 0.0
RAM 148704 148704 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 819212 791726 -27486 -3.4
RAM 107568 96396 -11172 -10.4
tizen all-clusters-app arm unknown 5164 5164 0 0.0
FLASH 1801340 1801340 0 0.0
RAM 94528 94528 0 0.0
chip-tool-ubsan arm unknown 20272 20272 0 0.0
FLASH 20381086 20381086 0 0.0
RAM 8882592 8882592 0 0.0
bzbarsky-apple
bzbarsky-apple commented on 2025-04-24
Conversation is marked as resolved
Show resolved
src/app/clusters/thread-network-diagnostics-server/thread-network-diagnostics-provider.cpp
687 uint64_t extAddrBigEndian = 0;
688 for (size_t index = 0; index < sizeof(extAddress->m8); ++index)
689 {
690
extAddrBigEndian = extAddrBigEndian << 8;
691
extAddrBigEndian += extAddress->m8[index];
bzbarsky-apple16 days ago

Please just use our existing BigEndian reader bits: include CHIPEncoding.h and:

   encoder.Encode(Encoding::BigEndian::Get64(extAddress->m8));

maybe with a static_assert(sizeof(extAddress->m8) == 8, "Unexpected buffer size").

wqx614 days ago

Done

wqx6 review changes
12d90c0c
bzbarsky-apple
bzbarsky-apple approved these changes on 2025-05-05

Login to write a write a comment.

Login via GitHub

Reviewers
Assignees
No one assigned
Labels
Milestone