connectedhomeip
[Darwin] MTRDevice resub logic should reset backoff as needed
#37624
Merged

[Darwin] MTRDevice resub logic should reset backoff as needed #37624

jtung-apple
jtung-apple43 days ago

This change includes:

  • Added a backoff timer reset for when nodeLikelyReachable is true and we are doing / in the middle of a MTRDevice resubscription (as opposed to the ReadClient resubscription)
  • Moved the subscription reattempt below the ReleaseSession call, so that CASE establishment isn't potentially interrupted.

Testing

Tested with unit tests
Sanity testing locally with actual Matter device

jtung-apple [Darwin] MTRDevice resub logic should reset backoff as needed
9186e089
jtung-apple jtung-apple added darwin
jtung-apple jtung-apple requested a review 43 days ago
semanticdiff-com
semanticdiff-com43 days ago

Review changes with  SemanticDiff

pullapprove pullapprove added review - pending
woody-apple
woody-apple approved these changes on 2025-02-17
woody-apple woody-apple added fast track
bzbarsky-apple
bzbarsky-apple approved these changes on 2025-02-17
Conversation is marked as resolved
Show resolved
src/darwin/Framework/CHIP/MTRDevice_Concrete.mm
10621069 } errorHandler:nil /* not much we can do */];
10631070 }
1071
1072
// Reattempt subscription after the above ReleaseSession call to avoid churn
bzbarsky-apple43 days ago👍 1

This should probably more clearly explain why it's still "after" even though the ReleaseSession is async? Presumably because _reattemptSubscriptionNowIfNeededWithReason will also dispatch to the Matter queue?

github-actions
github-actions43 days ago (edited 43 days ago)

PR #37624: Size comparison from 7c1d6f7 to 9186e08

Full report (5 builds for cc32xx, stm32, tizen)
platform target config section 7c1d6f7 9186e08 change % change
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 538998 538998 0 0.0
RAM 205208 205208 0 0.0
lock CC3235SF_LAUNCHXL FLASH 572870 572870 0 0.0
RAM 205360 205360 0 0.0
stm32 light STM32WB5MM-DK FLASH 460008 460008 0 0.0
RAM 141568 141568 0 0.0
tizen all-clusters-app arm unknown 5104 5104 0 0.0
FLASH 1751824 1751824 0 0.0
RAM 93508 93508 0 0.0
chip-tool-ubsan arm unknown 11396 11396 0 0.0
FLASH 18683262 18683262 0 0.0
RAM 8181192 8181192 0 0.0
jtung-apple Improved code comment, per PR review
14a0c6fc
github-actions
github-actions43 days ago (edited 43 days ago)

PR #37624: Size comparison from 7c1d6f7 to 14a0c6f

Full report (69 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, linux, nxp, psoc6, qpg, stm32, telink, tizen)
platform target config section 7c1d6f7 14a0c6f change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1095544 1095544 0 0.0
RAM 94890 94890 0 0.0
bl702 lighting-app bl702+eth FLASH 652000 652000 0 0.0
RAM 33617 33617 0 0.0
bl702+wifi FLASH 828152 828152 0 0.0
RAM 22325 22325 0 0.0
bl706+mfd+rpc+littlefs FLASH 1061288 1061288 0 0.0
RAM 32269 32269 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 891998 891998 0 0.0
RAM 26896 26896 0 0.0
lighting-app bl702l+mfd+littlefs FLASH 975368 975368 0 0.0
RAM 24736 24736 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 815468 815468 0 0.0
RAM 120352 120352 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 824096 824096 0 0.0
RAM 125360 125360 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 771248 771248 0 0.0
RAM 113820 113820 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 755516 755516 0 0.0
RAM 114028 114028 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 538998 538998 0 0.0
RAM 205208 205208 0 0.0
lock CC3235SF_LAUNCHXL FLASH 572870 572870 0 0.0
RAM 205360 205360 0 0.0
cyw30739 light CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 656597 656597 0 0.0
RAM 75420 75420 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 676457 676457 0 0.0
RAM 78060 78060 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 676457 676457 0 0.0
RAM 78060 78060 0 0.0
CYW930739M2EVB-02 unknown 2040 2040 0 0.0
FLASH 633381 633381 0 0.0
RAM 70488 70488 0 0.0
light-switch CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 616213 616213 0 0.0
RAM 71532 71532 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 635849 635849 0 0.0
RAM 74076 74076 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 635849 635849 0 0.0
RAM 74076 74076 0 0.0
lock CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 635717 635717 0 0.0
RAM 74540 74540 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 655433 655433 0 0.0
RAM 77084 77084 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 655433 655433 0 0.0
RAM 77084 77084 0 0.0
thermostat CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 612065 612065 0 0.0
RAM 68628 68628 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 631925 631925 0 0.0
RAM 71268 71268 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 631925 631925 0 0.0
RAM 71268 71268 0 0.0
efr32 lock-app BRD4187C FLASH 937616 937616 0 0.0
RAM 159916 159916 0 0.0
BRD4338a FLASH 731696 731696 0 0.0
RAM 234772 234772 0 0.0
window-app BRD4187C FLASH 1030336 1030336 0 0.0
RAM 128020 128020 0 0.0
esp32 all-clusters-app c3devkit DRAM 97312 97312 0 0.0
FLASH 1581788 1581788 0 0.0
IRAM 83820 83820 0 0.0
m5stack DRAM 116100 116100 0 0.0
FLASH 1549762 1549762 0 0.0
IRAM 117039 117039 0 0.0
linux air-purifier-app debug unknown 4712 4712 0 0.0
FLASH 2649195 2649195 0 0.0
RAM 111600 111600 0 0.0
all-clusters-app debug unknown 5520 5520 0 0.0
FLASH 5915628 5915628 0 0.0
RAM 510416 510416 0 0.0
all-clusters-minimal-app debug unknown 5416 5416 0 0.0
FLASH 5263172 5263172 0 0.0
RAM 221528 221528 0 0.0
bridge-app debug unknown 5432 5432 0 0.0
FLASH 4621848 4621848 0 0.0
RAM 200264 200264 0 0.0
chip-tool debug unknown 6088 6088 0 0.0
FLASH 13071502 13071502 0 0.0
RAM 596482 596482 0 0.0
chip-tool-ipv6only arm64 unknown 21816 21816 0 0.0
FLASH 11138080 11138080 0 0.0
RAM 648184 648184 0 0.0
fabric-admin debug unknown 5776 5776 0 0.0
FLASH 11360283 11360283 0 0.0
RAM 596266 596266 0 0.0
fabric-bridge-app debug unknown 4680 4680 0 0.0
FLASH 4447170 4447170 0 0.0
RAM 187480 187480 0 0.0
fabric-sync debug unknown 4936 4936 0 0.0
FLASH 5564101 5564101 0 0.0
RAM 467024 467024 0 0.0
lighting-app debug+rpc+ui unknown 6104 6104 0 0.0
FLASH 5424961 5424961 0 0.0
RAM 204208 204208 0 0.0
lock-app debug unknown 5384 5384 0 0.0
FLASH 4681892 4681892 0 0.0
RAM 191216 191216 0 0.0
ota-provider-app debug unknown 4720 4720 0 0.0
FLASH 4300278 4300278 0 0.0
RAM 180184 180184 0 0.0
ota-requestor-app debug unknown 4672 4672 0 0.0
FLASH 4437654 4437654 0 0.0
RAM 184768 184768 0 0.0
shell debug unknown 4216 4216 0 0.0
FLASH 2950364 2950364 0 0.0
RAM 144040 144040 0 0.0
thermostat-no-ble arm64 unknown 9512 9512 0 0.0
FLASH 4040184 4040184 0 0.0
RAM 228552 228552 0 0.0
tv-app debug unknown 5712 5712 0 0.0
FLASH 5902981 5902981 0 0.0
RAM 590424 590424 0 0.0
tv-casting-app debug unknown 5288 5288 0 0.0
FLASH 11244045 11244045 0 0.0
RAM 710640 710640 0 0.0
nxp contact k32w0+release FLASH 585072 585072 0 0.0
RAM 70876 70876 0 0.0
mcxw71+release FLASH 600544 600544 0 0.0
RAM 63096 63096 0 0.0
light k32w0+release FLASH 611380 611380 0 0.0
RAM 70268 70268 0 0.0
k32w1+release FLASH 685848 685848 0 0.0
RAM 48680 48680 0 0.0
lock mcxw71+release FLASH 749360 749360 0 0.0
RAM 67500 67500 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1646868 1646868 0 0.0
RAM 211576 211576 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1553620 1553620 0 0.0
RAM 208392 208392 0 0.0
light cy8ckit_062s2_43012 FLASH 1439308 1439308 0 0.0
RAM 197144 197144 0 0.0
lock cy8ckit_062s2_43012 FLASH 1467508 1467508 0 0.0
RAM 224704 224704 0 0.0
qpg lighting-app qpg6105+debug FLASH 662436 662436 0 0.0
RAM 105220 105220 0 0.0
lock-app qpg6105+debug FLASH 620232 620232 0 0.0
RAM 99664 99664 0 0.0
stm32 light STM32WB5MM-DK FLASH 460008 460008 0 0.0
RAM 141568 141568 0 0.0
telink bridge-app tl7218x FLASH 665266 665266 0 0.0
RAM 90828 90828 0 0.0
contact-sensor-app tlsr9528a_retention FLASH 621948 621948 0 0.0
RAM 31488 31488 0 0.0
light-app-ota-shell-factory-data tl3218x FLASH 745458 745458 0 0.0
RAM 40496 40496 0 0.0
tl7218x FLASH 754014 754014 0 0.0
RAM 97632 97632 0 0.0
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 680718 680718 0 0.0
RAM 52192 52192 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 709280 709280 0 0.0
RAM 73400 73400 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 600836 600836 0 0.0
RAM 138912 138912 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 788968 788968 0 0.0
RAM 96488 96488 0 0.0
tizen all-clusters-app arm unknown 5104 5104 0 0.0
FLASH 1751824 1751824 0 0.0
RAM 93508 93508 0 0.0
chip-tool-ubsan arm unknown 11396 11396 0 0.0
FLASH 18683262 18683262 0 0.0
RAM 8181192 8181192 0 0.0
mergify mergify merged 9920a7fb into master 43 days ago

Login to write a write a comment.

Login via GitHub

Assignees
No one assigned
Labels
Milestone