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

[ICD]Trigger resubscription when receiving check-in and subscription has not yet become abnormal #37831

Open
wants to merge 9 commits into
base: master
Choose a base branch
from

Conversation

yunhanw-google
Copy link
Contributor

@yunhanw-google yunhanw-google commented Mar 1, 2025

If the server sends out check-in message, and there is no reschedule subscription yet in client side at the same time, it means current client does not realize subscription has gone, and we should forcibly timeout current subscription, and schedule a new one.

In addition, a check-in activates the subscription during the 'lit inactive' to 'sit' transition. For clients subscribed with the operating mode attribute, a transition to 'sit' only requires updating the operating mode, we don't need reactivate the subscription, in this PR, we remove this unnecessary logic in OnPeerTypeChange

fixes #28343

Testing

Drafting

Copy link

github-actions bot commented Mar 1, 2025

PR #37831: Size comparison from 649c341 to 059658e

Full report (1 build for stm32)
platform target config section 649c341 059658e change % change
stm32 light STM32WB5MM-DK FLASH 459904 459928 24 0.0
RAM 141472 141472 0 0.0

@@ -484,6 +484,7 @@ CHIP_ERROR ReadClient::GenerateDataVersionFilterList(DataVersionFilterIBs::Build

void ReadClient::OnActiveModeNotification()
{
// Note: this API only works when issuing subscription via SendAutoResubscribeRequest.
Copy link
Contributor

Choose a reason for hiding this comment

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

So hold on. When not doing auto-resubscribe, do we want to ignore this call, or still close ourselves even though it's fatal?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I think the whole OnActiveModeNotification is designed for auto-resubscription stuff, if they are not using OnActiveModeNotification, it is really application consumer's responsibility to decide how to manipulate close and retry logic when receiving check-in message, and application consumer need implement their CheckInDelegate and not call InteracitonModelEngine::OnActiveModeNotification.

I think we should ignore this call when not using auto-resubscription.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

just update code to reflect this change.

Comment on lines 497 to 498
// If the server sends out check-in message, and there is no reschedule subscription yet in client side at the same time, it means
// current client does not realize subscription has gone, and we should forcibly timeout current subscription, and schedule a new one.
Copy link
Contributor

Choose a reason for hiding this comment

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

So the thing is: per spec, the check-in target and the thing whose subscription the server checks for might be different nodes. And in practice this is actually going to happen, I can guarantee that.

So it's entirely possible for this subscription to be just fine and yet for a check-in message to arrive because some other subscription from a different node is not fine.

I assume we're already surfacing check-in messages to the SDK API consumer? If so, they would need to retrigger subscriptions as needed. Or we need some way to configure this behavior, at the very least, because the right thing to do here depends on information this code does not have.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

yes, we have already surfacing check-in messages to the SDK API consumer, it is consumer's reponsibility to retrigger subscription as need, they can mimic OnActiveModeNotification behavior to configure their behavior.

Copy link
Contributor Author

@yunhanw-google yunhanw-google Mar 2, 2025

Choose a reason for hiding this comment

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

So the thing is: per spec, the check-in target and the thing whose subscription the server checks for might be different nodes. And in practice this is actually going to happen, I can guarantee that.

If subscription from node A is and good, register node for check-in is for nodeB, check-in message would never arrive at nodeA, right? since server send check-in message based upon registered node.
Unless we allow that multiple nodes reside in same client device?

if yes, maybe we need add one more check between ICDClientInfo::check_in_node against the node id extracted from readClient in InteractionModelEngine:: OnActiveModeNotification? it seems we cannot get mLocalNodeId from SecureSession?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

just updated code to reflect the above change.

Copy link
Contributor

@bzbarsky-apple bzbarsky-apple Mar 5, 2025

Choose a reason for hiding this comment

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

If subscription from node A is and good, register node for check-in is for nodeB, check-in message would never arrive at nodeA, right?

Wrong scenario. The correct scenario is that node A is check-in target and has a subscription but that is NOT the subscription check-in is tracking. Node B is the one the check-in is tracking and that one is dead. Node A will receive the check-in, because Node B is not subscribed, and the right action is to prod Node B (or maybe Node C, depending) in the app, not tear down A's perfectly OK subscription.

Point being: ReadClient does not have the information to make this decision; the application does.

@github-actions github-actions bot added controller icd Intermittently Connected Devices labels Mar 2, 2025
Copy link

github-actions bot commented Mar 2, 2025

PR #37831: Size comparison from 649c341 to cfcf399

Full report (74 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, linux, nrfconnect, nxp, psoc6, qpg, stm32, telink, tizen)
platform target config section 649c341 cfcf399 change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1096862 1096756 -106 -0.0
RAM 94842 94842 0 0.0
bl702 lighting-app bl702+eth FLASH 651836 651730 -106 -0.0
RAM 33509 33509 0 0.0
bl702+wifi FLASH 829108 829002 -106 -0.0
RAM 22233 22233 0 0.0
bl706+mfd+rpc+littlefs FLASH 1061504 1061398 -106 -0.0
RAM 32157 32157 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 892348 892242 -106 -0.0
RAM 26896 26896 0 0.0
lighting-app bl702l+mfd+littlefs FLASH 975244 975138 -106 -0.0
RAM 24644 24644 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 817216 817144 -72 -0.0
RAM 120272 120272 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 826136 826064 -72 -0.0
RAM 125368 125368 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 773020 772948 -72 -0.0
RAM 113740 113740 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 757296 757224 -72 -0.0
RAM 113948 113948 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 540758 540686 -72 -0.0
RAM 205128 205128 0 0.0
lock CC3235SF_LAUNCHXL FLASH 574882 574810 -72 -0.0
RAM 205376 205376 0 0.0
cyw30739 light CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 658933 658853 -80 -0.0
RAM 75412 75412 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 678785 678713 -72 -0.0
RAM 78052 78052 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 678785 678713 -72 -0.0
RAM 78052 78052 0 0.0
CYW930739M2EVB-02 unknown 2040 2040 0 0.0
FLASH 635717 635637 -80 -0.0
RAM 70480 70480 0 0.0
light-switch CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 619173 619093 -80 -0.0
RAM 71652 71652 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 638809 638729 -80 -0.0
RAM 74196 74196 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 638809 638729 -80 -0.0
RAM 74196 74196 0 0.0
lock CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 638661 638589 -72 -0.0
RAM 74660 74660 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 658377 658313 -64 -0.0
RAM 77204 77204 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 658377 658313 -64 -0.0
RAM 77204 77204 0 0.0
thermostat CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 615001 614929 -72 -0.0
RAM 68748 68748 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 634853 634789 -64 -0.0
RAM 71388 71388 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 634853 634789 -64 -0.0
RAM 71388 71388 0 0.0
efr32 lock-app BRD4187C FLASH 939760 939680 -80 -0.0
RAM 159920 159920 0 0.0
BRD4338a FLASH 732744 732680 -64 -0.0
RAM 234828 234828 0 0.0
window-app BRD4187C FLASH 1032200 1032112 -88 -0.0
RAM 128024 128024 0 0.0
esp32 all-clusters-app c3devkit DRAM 98736 98736 0 0.0
FLASH 1591770 1591662 -108 -0.0
IRAM 83820 83820 0 0.0
m5stack DRAM 117516 117516 0 0.0
FLASH 1558614 1558534 -80 -0.0
IRAM 117039 117039 0 0.0
linux air-purifier-app debug unknown 4752 4752 0 0.0
FLASH 2653555 2653327 -228 -0.0
RAM 112304 112304 0 0.0
all-clusters-app debug unknown 5560 5560 0 0.0
FLASH 5973942 5973776 -166 -0.0
RAM 516568 516568 0 0.0
all-clusters-minimal-app debug unknown 5456 5456 0 0.0
FLASH 5299944 5299750 -194 -0.0
RAM 222488 222488 0 0.0
bridge-app debug unknown 5472 5472 0 0.0
FLASH 4652292 4652098 -194 -0.0
RAM 201344 201344 0 0.0
camera-app debug unknown 5456 5456 0 0.0
FLASH 4675460 4675262 -198 -0.0
RAM 195792 195792 0 0.0
chip-tool debug unknown 6112 6112 0 0.0
FLASH 13305205 13306251 1046 0.0
RAM 603456 603456 0 0.0
chip-tool-ipv6only arm64 unknown 21976 21976 0 0.0
FLASH 11498088 11499128 1040 0.0
RAM 656136 656136 0 0.0
fabric-admin debug unknown 5800 5800 0 0.0
FLASH 11569967 11571027 1060 0.0
RAM 603240 603240 0 0.0
fabric-bridge-app debug unknown 4720 4720 0 0.0
FLASH 4455890 4455664 -226 -0.0
RAM 188168 188168 0 0.0
fabric-sync debug unknown 4976 4976 0 0.0
FLASH 5572837 5573909 1072 0.0
RAM 471600 471600 0 0.0
lighting-app debug+rpc+ui unknown 6184 6184 0 0.0
FLASH 5519105 5519121 16 0.0
RAM 205168 205168 0 0.0
lock-app debug unknown 5424 5424 0 0.0
FLASH 4692142 4691916 -226 -0.0
RAM 192344 192344 0 0.0
ota-provider-app debug unknown 4760 4760 0 0.0
FLASH 4314320 4314126 -194 -0.0
RAM 181000 181000 0 0.0
ota-requestor-app debug unknown 4712 4712 0 0.0
FLASH 4444672 4444446 -226 -0.0
RAM 185488 185488 0 0.0
shell debug unknown 4240 4240 0 0.0
FLASH 2982540 2982380 -160 -0.0
RAM 145688 145688 0 0.0
thermostat-no-ble arm64 unknown 9448 9448 0 0.0
FLASH 4141880 4141592 -288 -0.0
RAM 229840 229840 0 0.0
tv-app debug unknown 5752 5752 0 0.0
FLASH 5911717 5911525 -192 -0.0
RAM 595032 595032 0 0.0
tv-casting-app debug unknown 5320 5320 0 0.0
FLASH 11475693 11475501 -192 -0.0
RAM 718672 718672 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 913676 913596 -80 -0.0
RAM 142909 142909 0 0.0
nrf7002dk_nrf5340_cpuapp FLASH 904420 904360 -60 -0.0
RAM 125245 125245 0 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 FLASH 850456 850464 8 0.0
RAM 141271 141271 0 0.0
nxp contact k32w0+release FLASH 587440 587360 -80 -0.0
RAM 70980 70980 0 0.0
mcxw71+release FLASH 601264 601176 -88 -0.0
RAM 63096 63096 0 0.0
light k32w0+release FLASH 613172 613092 -80 -0.0
RAM 70268 70268 0 0.0
k32w1+release FLASH 685888 685808 -80 -0.0
RAM 48584 48584 0 0.0
lock mcxw71+release FLASH 750096 750024 -72 -0.0
RAM 67500 67500 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1658220 1658156 -64 -0.0
RAM 212344 212344 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1562460 1562388 -72 -0.0
RAM 208560 208560 0 0.0
light cy8ckit_062s2_43012 FLASH 1441276 1441204 -72 -0.0
RAM 197296 197296 0 0.0
lock cy8ckit_062s2_43012 FLASH 1470164 1470092 -72 -0.0
RAM 224960 224960 0 0.0
qpg lighting-app qpg6105+debug FLASH 663836 663764 -72 -0.0
RAM 105156 105156 0 0.0
lock-app qpg6105+debug FLASH 622304 622224 -80 -0.0
RAM 99768 99768 0 0.0
stm32 light STM32WB5MM-DK FLASH 459904 459832 -72 -0.0
RAM 141472 141472 0 0.0
telink bridge-app tl7218x FLASH 669256 669178 -78 -0.0
RAM 90752 90752 0 0.0
contact-sensor-app tlsr9528a_retention FLASH 622118 622040 -78 -0.0
RAM 31488 31488 0 0.0
light-app-ota-compress-lzma-shell-factory-data tl3218x FLASH 760904 760826 -78 -0.0
RAM 40420 40420 0 0.0
light-app-ota-shell-factory-data tl7218x FLASH 754012 753934 -78 -0.0
RAM 97540 97540 0 0.0
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 681062 680984 -78 -0.0
RAM 52192 52192 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 709620 709542 -78 -0.0
RAM 73400 73400 0 0.0
light-switch-app-ota-shell-factory-data tl3218x_retention FLASH 702170 702092 -78 -0.0
RAM 37664 37664 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 601736 601658 -78 -0.0
RAM 137360 137360 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 789028 788950 -78 -0.0
RAM 96388 96388 0 0.0
tizen all-clusters-app arm unknown 5144 5144 0 0.0
FLASH 1770756 1770648 -108 -0.0
RAM 94152 94152 0 0.0
chip-tool-ubsan arm unknown 11492 11492 0 0.0
FLASH 18984862 18987134 2272 0.0
RAM 8306668 8307928 1260 0.0

Copy link

github-actions bot commented Mar 7, 2025

PR #37831: Size comparison from 36a1bbd to 0eed745

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 36a1bbd 0eed745 change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1098140 1098028 -112 -0.0
RAM 94866 94866 0 0.0
bl702 lighting-app bl702+eth FLASH 653118 653006 -112 -0.0
RAM 33533 33533 0 0.0
bl702+wifi FLASH 830390 830278 -112 -0.0
RAM 22257 22257 0 0.0
bl706+mfd+rpc+littlefs FLASH 1062788 1062676 -112 -0.0
RAM 32181 32181 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 893630 893518 -112 -0.0
RAM 26920 26920 0 0.0
lighting-app bl702l+mfd+littlefs FLASH 976526 976414 -112 -0.0
RAM 24668 24668 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 818184 818096 -88 -0.0
RAM 120296 120296 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 827104 827016 -88 -0.0
RAM 125392 125392 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 773972 773884 -88 -0.0
RAM 113764 113764 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 758248 758160 -88 -0.0
RAM 113972 113972 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 541758 541678 -80 -0.0
RAM 205152 205152 0 0.0
lock CC3235SF_LAUNCHXL FLASH 575866 575778 -88 -0.0
RAM 205400 205400 0 0.0
cyw30739 light CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 659885 659797 -88 -0.0
RAM 75436 75436 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 679745 679657 -88 -0.0
RAM 78076 78076 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 679745 679657 -88 -0.0
RAM 78076 78076 0 0.0
CYW930739M2EVB-02 unknown 2040 2040 0 0.0
FLASH 636677 636589 -88 -0.0
RAM 70504 70504 0 0.0
light-switch CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 620133 620045 -88 -0.0
RAM 71676 71676 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 639769 639681 -88 -0.0
RAM 74220 74220 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 639769 639681 -88 -0.0
RAM 74220 74220 0 0.0
lock CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 639621 639541 -80 -0.0
RAM 74684 74684 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 659337 659257 -80 -0.0
RAM 77228 77228 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 659337 659257 -80 -0.0
RAM 77228 77228 0 0.0
thermostat CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 615961 615881 -80 -0.0
RAM 68772 68772 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 635821 635741 -80 -0.0
RAM 71412 71412 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 635821 635741 -80 -0.0
RAM 71412 71412 0 0.0
efr32 lock-app BRD4187C FLASH 940680 940600 -80 -0.0
RAM 159944 159944 0 0.0
BRD4338a FLASH 734360 734280 -80 -0.0
RAM 234856 234856 0 0.0
window-app BRD4187C FLASH 1033232 1033136 -96 -0.0
RAM 128048 128048 0 0.0
esp32 all-clusters-app c3devkit DRAM 98728 98728 0 0.0
FLASH 1594328 1594208 -120 -0.0
IRAM 83820 83820 0 0.0
m5stack DRAM 117524 117524 0 0.0
FLASH 1560882 1560790 -92 -0.0
IRAM 117039 117039 0 0.0
linux air-purifier-app debug unknown 4752 4752 0 0.0
FLASH 2658609 2658373 -236 -0.0
RAM 112304 112304 0 0.0
all-clusters-app debug unknown 5560 5560 0 0.0
FLASH 5980218 5980042 -176 -0.0
RAM 516760 516760 0 0.0
all-clusters-minimal-app debug unknown 5456 5456 0 0.0
FLASH 5316602 5316398 -204 -0.0
RAM 222680 222680 0 0.0
bridge-app debug unknown 5472 5472 0 0.0
FLASH 4630392 4630188 -204 -0.0
RAM 201000 201000 0 0.0
camera-app debug unknown 5456 5456 0 0.0
FLASH 4680486 4680278 -208 -0.0
RAM 195808 195808 0 0.0
camera-controller debug unknown 5776 5776 0 0.0
FLASH 11315673 11315465 -208 -0.0
RAM 596304 596304 0 0.0
chip-tool debug unknown 6112 6112 0 0.0
FLASH 13338515 13338783 268 0.0
RAM 605184 605184 0 0.0
chip-tool-ipv6only arm64 unknown 22072 22072 0 0.0
FLASH 11524744 11525016 272 0.0
RAM 657904 657904 0 0.0
fabric-admin debug unknown 5800 5800 0 0.0
FLASH 11609301 11609601 300 0.0
RAM 604968 604968 0 0.0
fabric-bridge-app debug unknown 4720 4720 0 0.0
FLASH 4461378 4461142 -236 -0.0
RAM 188200 188200 0 0.0
fabric-sync debug unknown 4976 4976 0 0.0
FLASH 5578501 5578789 288 0.0
RAM 472032 472032 0 0.0
lighting-app debug+rpc+ui unknown 6192 6192 0 0.0
FLASH 5524689 5524689 0 0.0
RAM 205168 205168 0 0.0
lock-app debug unknown 5424 5424 0 0.0
FLASH 4697168 4696932 -236 -0.0
RAM 192360 192360 0 0.0
ota-provider-app debug unknown 4760 4760 0 0.0
FLASH 4319314 4319110 -204 -0.0
RAM 181016 181016 0 0.0
ota-requestor-app debug unknown 4712 4712 0 0.0
FLASH 4449698 4449462 -236 -0.0
RAM 185504 185504 0 0.0
shell debug unknown 4240 4240 0 0.0
FLASH 2956924 2956748 -176 -0.0
RAM 145456 145456 0 0.0
thermostat-no-ble arm64 unknown 9456 9456 0 0.0
FLASH 4145752 4145448 -304 -0.0
RAM 229848 229848 0 0.0
tv-app debug unknown 5752 5752 0 0.0
FLASH 5917365 5917157 -208 -0.0
RAM 595464 595464 0 0.0
tv-casting-app debug unknown 5320 5320 0 0.0
FLASH 11510173 11509965 -208 -0.0
RAM 720736 720736 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 915736 915644 -92 -0.0
RAM 142881 142881 0 0.0
nrf7002dk_nrf5340_cpuapp FLASH 908784 908716 -68 -0.0
RAM 125221 125221 0 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 FLASH 852556 852556 0 0.0
RAM 141243 141243 0 0.0
nxp contact k32w0+release FLASH 588288 588208 -80 -0.0
RAM 71004 71004 0 0.0
mcxw71+release FLASH 603512 603416 -96 -0.0
RAM 63144 63144 0 0.0
light k32w0+release FLASH 614084 613988 -96 -0.0
RAM 70292 70292 0 0.0
k32w1+release FLASH 687608 687520 -88 -0.0
RAM 72056 72056 0 0.0
lock mcxw71+release FLASH 752376 752288 -88 -0.0
RAM 67556 67556 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1661284 1661204 -80 -0.0
RAM 212344 212344 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1565564 1565476 -88 -0.0
RAM 208560 208560 0 0.0
light cy8ckit_062s2_43012 FLASH 1442300 1442228 -72 -0.0
RAM 197320 197320 0 0.0
lock cy8ckit_062s2_43012 FLASH 1471196 1471124 -72 -0.0
RAM 224984 224984 0 0.0
qpg lighting-app qpg6105+debug FLASH 664796 664708 -88 -0.0
RAM 105180 105180 0 0.0
lock-app qpg6105+debug FLASH 623256 623168 -88 -0.0
RAM 99792 99792 0 0.0
stm32 light STM32WB5MM-DK FLASH 460872 460784 -88 -0.0
RAM 141496 141496 0 0.0
telink bridge-app tl7218x FLASH 665678 665586 -92 -0.0
RAM 90712 90712 0 0.0
contact-sensor-app tlsr9528a_retention FLASH 623260 623168 -92 -0.0
RAM 31488 31488 0 0.0
light-app-ota-compress-lzma-shell-factory-data tl3218x FLASH 762034 761942 -92 -0.0
RAM 40420 40420 0 0.0
light-app-ota-shell-factory-data tl7218x FLASH 755142 755050 -92 -0.0
RAM 97540 97540 0 0.0
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 682192 682100 -92 -0.0
RAM 52192 52192 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 710750 710658 -92 -0.0
RAM 73400 73400 0 0.0
light-switch-app-ota-shell-factory-data tl3218x_retention FLASH 703300 703208 -92 -0.0
RAM 37664 37664 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 602870 602778 -92 -0.0
RAM 138640 138640 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 790158 790066 -92 -0.0
RAM 96388 96388 0 0.0
tizen all-clusters-app arm unknown 5152 5152 0 0.0
FLASH 1782840 1782732 -108 -0.0
RAM 94168 94168 0 0.0
chip-tool-ubsan arm unknown 11536 11536 0 0.0
FLASH 19055430 19055590 160 0.0
RAM 8332308 8332372 64 0.0

Copy link
Contributor

@bzbarsky-apple bzbarsky-apple left a comment

Choose a reason for hiding this comment

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

Requesting changes because the code does not make sense and clearly needs testing.

Copy link

github-actions bot commented Mar 10, 2025

PR #37831: Size comparison from 36a1bbd to 180d135

Increases above 0.2%:

platform target config section 36a1bbd 180d135 change % change
tizen chip-tool-ubsan arm RAM 8332308 8355300 22992 0.3
Full report (29 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, nrfconnect, qpg, stm32, telink, tizen)
platform target config section 36a1bbd 180d135 change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1098140 1098156 16 0.0
RAM 94866 94866 0 0.0
bl702 lighting-app bl702+eth FLASH 653118 653134 16 0.0
RAM 33533 33533 0 0.0
bl702+wifi FLASH 830390 830406 16 0.0
RAM 22257 22257 0 0.0
bl706+mfd+rpc+littlefs FLASH 1062788 1062804 16 0.0
RAM 32181 32181 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 893630 893646 16 0.0
RAM 26920 26920 0 0.0
lighting-app bl702l+mfd+littlefs FLASH 976526 976542 16 0.0
RAM 24668 24668 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 818184 818144 -40 -0.0
RAM 120296 120296 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 827104 827064 -40 -0.0
RAM 125392 125392 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 773972 773924 -48 -0.0
RAM 113764 113764 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 758248 758200 -48 -0.0
RAM 113972 113972 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 541758 541726 -32 -0.0
RAM 205152 205152 0 0.0
lock CC3235SF_LAUNCHXL FLASH 575866 575826 -40 -0.0
RAM 205400 205400 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 915736 915668 -68 -0.0
RAM 142881 142881 0 0.0
nrf7002dk_nrf5340_cpuapp FLASH 908784 908760 -24 -0.0
RAM 125221 125221 0 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 FLASH 852556 852600 44 0.0
RAM 141243 141243 0 0.0
qpg lighting-app qpg6105+debug FLASH 664796 664756 -40 -0.0
RAM 105180 105180 0 0.0
lock-app qpg6105+debug FLASH 623256 623216 -40 -0.0
RAM 99792 99792 0 0.0
stm32 light STM32WB5MM-DK FLASH 460872 460832 -40 -0.0
RAM 141496 141496 0 0.0
telink bridge-app tl7218x FLASH 665678 665642 -36 -0.0
RAM 90712 90712 0 0.0
contact-sensor-app tlsr9528a_retention FLASH 623260 623224 -36 -0.0
RAM 31488 31488 0 0.0
light-app-ota-compress-lzma-shell-factory-data tl3218x FLASH 762034 761998 -36 -0.0
RAM 40420 40420 0 0.0
light-app-ota-shell-factory-data tl7218x FLASH 755142 755106 -36 -0.0
RAM 97540 97540 0 0.0
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 682192 682160 -32 -0.0
RAM 52192 52192 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 710750 710718 -32 -0.0
RAM 73400 73400 0 0.0
light-switch-app-ota-shell-factory-data tl3218x_retention FLASH 703300 703268 -32 -0.0
RAM 37664 37664 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 602870 602834 -36 -0.0
RAM 138640 138640 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 790158 790122 -36 -0.0
RAM 96388 96388 0 0.0
tizen all-clusters-app arm unknown 5152 5152 0 0.0
FLASH 1782840 1783148 308 0.0
RAM 94168 94168 0 0.0
chip-tool-ubsan arm unknown 11536 11560 24 0.2
FLASH 19055430 19093366 37936 0.2
RAM 8332308 8355300 22992 0.3

Copy link

github-actions bot commented Mar 11, 2025

PR #37831: Size comparison from b56134c to 090d9b7

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 b56134c 090d9b7 change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1098268 1098156 -112 -0.0
RAM 94866 94866 0 0.0
bl702 lighting-app bl702+eth FLASH 653246 653134 -112 -0.0
RAM 33533 33533 0 0.0
bl702+wifi FLASH 830518 830406 -112 -0.0
RAM 22257 22257 0 0.0
bl706+mfd+rpc+littlefs FLASH 1062916 1062804 -112 -0.0
RAM 32181 32181 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 893758 893646 -112 -0.0
RAM 26920 26920 0 0.0
lighting-app bl702l+mfd+littlefs FLASH 976654 976542 -112 -0.0
RAM 24668 24668 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 818232 818144 -88 -0.0
RAM 120296 120296 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 827152 827064 -88 -0.0
RAM 125392 125392 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 774012 773924 -88 -0.0
RAM 113764 113764 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 758288 758200 -88 -0.0
RAM 113972 113972 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 541806 541726 -80 -0.0
RAM 205152 205152 0 0.0
lock CC3235SF_LAUNCHXL FLASH 575906 575826 -80 -0.0
RAM 205400 205400 0 0.0
cyw30739 light CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 659925 659845 -80 -0.0
RAM 75436 75436 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 679785 679705 -80 -0.0
RAM 78076 78076 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 679785 679705 -80 -0.0
RAM 78076 78076 0 0.0
CYW930739M2EVB-02 unknown 2040 2040 0 0.0
FLASH 636717 636637 -80 -0.0
RAM 70504 70504 0 0.0
light-switch CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 620173 620069 -104 -0.0
RAM 71676 71676 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 639809 639705 -104 -0.0
RAM 74220 74220 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 639809 639705 -104 -0.0
RAM 74220 74220 0 0.0
lock CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 639669 639581 -88 -0.0
RAM 74684 74684 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 659385 659297 -88 -0.0
RAM 77228 77228 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 659385 659297 -88 -0.0
RAM 77228 77228 0 0.0
thermostat CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 616009 615921 -88 -0.0
RAM 68772 68772 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 635869 635781 -88 -0.0
RAM 71412 71412 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 635869 635781 -88 -0.0
RAM 71412 71412 0 0.0
efr32 lock-app BRD4187C FLASH 940744 940632 -112 -0.0
RAM 159944 159944 0 0.0
BRD4338a FLASH 734408 734328 -80 -0.0
RAM 234856 234856 0 0.0
window-app BRD4187C FLASH 1033296 1033200 -96 -0.0
RAM 128048 128048 0 0.0
esp32 all-clusters-app c3devkit DRAM 98728 98728 0 0.0
FLASH 1594350 1594228 -122 -0.0
IRAM 83820 83820 0 0.0
m5stack DRAM 117524 117524 0 0.0
FLASH 1560958 1560874 -84 -0.0
IRAM 117039 117039 0 0.0
linux air-purifier-app debug unknown 4752 4752 0 0.0
FLASH 2659171 2658839 -332 -0.0
RAM 112304 112304 0 0.0
all-clusters-app debug unknown 5560 5560 0 0.0
FLASH 5980720 5980432 -288 -0.0
RAM 516696 516696 0 0.0
all-clusters-minimal-app debug unknown 5456 5456 0 0.0
FLASH 5317164 5316832 -332 -0.0
RAM 222680 222680 0 0.0
bridge-app debug unknown 5472 5472 0 0.0
FLASH 4630952 4630620 -332 -0.0
RAM 201000 201000 0 0.0
camera-app debug unknown 5456 5456 0 0.0
FLASH 4681036 4680748 -288 -0.0
RAM 195808 195808 0 0.0
camera-controller debug unknown 5776 5776 0 0.0
FLASH 11345553 11345281 -272 -0.0
RAM 597312 597312 0 0.0
chip-tool debug unknown 6112 6112 0 0.0
FLASH 13365611 13365769 158 0.0
RAM 605952 605952 0 0.0
chip-tool-ipv6only arm64 unknown 22120 22120 0 0.0
FLASH 11551400 11551544 144 0.0
RAM 658632 658632 0 0.0
fabric-admin debug unknown 5800 5800 0 0.0
FLASH 11636803 11636961 158 0.0
RAM 605736 605736 0 0.0
fabric-bridge-app debug unknown 4720 4720 0 0.0
FLASH 4461940 4461608 -332 -0.0
RAM 188200 188200 0 0.0
fabric-sync debug unknown 4976 4976 0 0.0
FLASH 5579029 5579173 144 0.0
RAM 471968 471968 0 0.0
lighting-app debug+rpc+ui unknown 6192 6192 0 0.0
FLASH 5525249 5525249 0 0.0
RAM 205168 205168 0 0.0
lock-app debug unknown 5424 5424 0 0.0
FLASH 4697728 4697396 -332 -0.0
RAM 192360 192360 0 0.0
ota-provider-app debug unknown 4760 4760 0 0.0
FLASH 4319874 4319542 -332 -0.0
RAM 181016 181016 0 0.0
ota-requestor-app debug unknown 4712 4712 0 0.0
FLASH 4450258 4449926 -332 -0.0
RAM 185504 185504 0 0.0
shell debug unknown 4240 4240 0 0.0
FLASH 2957484 2957196 -288 -0.0
RAM 145456 145456 0 0.0
thermostat-no-ble arm64 unknown 9456 9456 0 0.0
FLASH 4146808 4146504 -304 -0.0
RAM 229848 229848 0 0.0
tv-app debug unknown 5752 5752 0 0.0
FLASH 5917909 5917637 -272 -0.0
RAM 595400 595400 0 0.0
tv-casting-app debug unknown 5320 5320 0 0.0
FLASH 11538125 11537853 -272 -0.0
RAM 721744 721744 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 915768 915668 -100 -0.0
RAM 142881 142881 0 0.0
nrf7002dk_nrf5340_cpuapp FLASH 908836 908760 -76 -0.0
RAM 125221 125221 0 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 FLASH 852600 852600 0 0.0
RAM 141243 141243 0 0.0
nxp contact k32w0+release FLASH 588336 588256 -80 -0.0
RAM 71004 71004 0 0.0
mcxw71+release FLASH 603560 603464 -96 -0.0
RAM 63144 63144 0 0.0
light k32w0+release FLASH 614132 614036 -96 -0.0
RAM 70292 70292 0 0.0
k32w1+release FLASH 687648 687560 -88 -0.0
RAM 72056 72056 0 0.0
lock mcxw71+release FLASH 752424 752336 -88 -0.0
RAM 67556 67556 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1661316 1661236 -80 -0.0
RAM 212344 212344 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1565612 1565524 -88 -0.0
RAM 208560 208560 0 0.0
light cy8ckit_062s2_43012 FLASH 1442348 1442276 -72 -0.0
RAM 197320 197320 0 0.0
lock cy8ckit_062s2_43012 FLASH 1471244 1471172 -72 -0.0
RAM 224984 224984 0 0.0
qpg lighting-app qpg6105+debug FLASH 664844 664756 -88 -0.0
RAM 105180 105180 0 0.0
lock-app qpg6105+debug FLASH 623304 623216 -88 -0.0
RAM 99792 99792 0 0.0
stm32 light STM32WB5MM-DK FLASH 460920 460832 -88 -0.0
RAM 141496 141496 0 0.0
telink bridge-app tl7218x FLASH 665734 665642 -92 -0.0
RAM 90712 90712 0 0.0
contact-sensor-app tlsr9528a_retention FLASH 623316 623224 -92 -0.0
RAM 31488 31488 0 0.0
light-app-ota-compress-lzma-shell-factory-data tl3218x FLASH 762090 761998 -92 -0.0
RAM 40420 40420 0 0.0
light-app-ota-shell-factory-data tl7218x FLASH 755198 755106 -92 -0.0
RAM 97540 97540 0 0.0
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 682248 682160 -88 -0.0
RAM 52192 52192 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 710806 710718 -88 -0.0
RAM 73400 73400 0 0.0
light-switch-app-ota-shell-factory-data tl3218x_retention FLASH 703356 703268 -88 -0.0
RAM 37664 37664 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 602926 602834 -92 -0.0
RAM 138640 138640 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 790214 790122 -92 -0.0
RAM 96388 96388 0 0.0
tizen all-clusters-app arm unknown 5152 5152 0 0.0
FLASH 1783240 1783148 -92 -0.0
RAM 94168 94168 0 0.0
chip-tool-ubsan arm unknown 11560 11560 0 0.0
FLASH 1909284 19093366 520 0.0
RAM 8355068 8355300 232 0.0

yunhanw-google and others added 9 commits March 10, 2025 19:45
--When sit transition to lit, check-in would be sent and activate the subscription. if any client subscribe to operating mode, and detect it becoems sit,
just update the operating mode, there is no need to re-activate the subscription.
If caseTag for current subscription does not match with the one set in ICDManagementCluster::RegisterClient for check-in,
when receiving check-in message, OnActiveModeNotification would do nothing for current subscription.
Copy link

github-actions bot commented Mar 11, 2025

PR #37831: Size comparison from b56134c to 6a97e2c

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 b56134c 6a97e2c change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1098268 1098156 -112 -0.0
RAM 94866 94866 0 0.0
bl702 lighting-app bl702+eth FLASH 653246 653134 -112 -0.0
RAM 33533 33533 0 0.0
bl702+wifi FLASH 830518 830406 -112 -0.0
RAM 22257 22257 0 0.0
bl706+mfd+rpc+littlefs FLASH 1062916 1062804 -112 -0.0
RAM 32181 32181 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 893758 893646 -112 -0.0
RAM 26920 26920 0 0.0
lighting-app bl702l+mfd+littlefs FLASH 976654 976542 -112 -0.0
RAM 24668 24668 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 818232 818144 -88 -0.0
RAM 120296 120296 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 827152 827064 -88 -0.0
RAM 125392 125392 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 774012 773924 -88 -0.0
RAM 113764 113764 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 758288 758200 -88 -0.0
RAM 113972 113972 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 541806 541726 -80 -0.0
RAM 205152 205152 0 0.0
lock CC3235SF_LAUNCHXL FLASH 575906 575826 -80 -0.0
RAM 205400 205400 0 0.0
cyw30739 light CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 659925 659845 -80 -0.0
RAM 75436 75436 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 679785 679705 -80 -0.0
RAM 78076 78076 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 679785 679705 -80 -0.0
RAM 78076 78076 0 0.0
CYW930739M2EVB-02 unknown 2040 2040 0 0.0
FLASH 636717 636637 -80 -0.0
RAM 70504 70504 0 0.0
light-switch CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 620173 620069 -104 -0.0
RAM 71676 71676 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 639809 639705 -104 -0.0
RAM 74220 74220 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 639809 639705 -104 -0.0
RAM 74220 74220 0 0.0
lock CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 639669 639581 -88 -0.0
RAM 74684 74684 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 659385 659297 -88 -0.0
RAM 77228 77228 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 659385 659297 -88 -0.0
RAM 77228 77228 0 0.0
thermostat CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 616009 615921 -88 -0.0
RAM 68772 68772 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 635869 635781 -88 -0.0
RAM 71412 71412 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 635869 635781 -88 -0.0
RAM 71412 71412 0 0.0
efr32 lock-app BRD4187C FLASH 940744 940632 -112 -0.0
RAM 159944 159944 0 0.0
BRD4338a FLASH 734408 734328 -80 -0.0
RAM 234856 234856 0 0.0
window-app BRD4187C FLASH 1033296 1033200 -96 -0.0
RAM 128048 128048 0 0.0
esp32 all-clusters-app c3devkit DRAM 98728 98728 0 0.0
FLASH 1594350 1594228 -122 -0.0
IRAM 83820 83820 0 0.0
m5stack DRAM 117524 117524 0 0.0
FLASH 1560958 1560874 -84 -0.0
IRAM 117039 117039 0 0.0
linux air-purifier-app debug unknown 4752 4752 0 0.0
FLASH 2659171 2658839 -332 -0.0
RAM 112304 112304 0 0.0
all-clusters-app debug unknown 5560 5560 0 0.0
FLASH 5980720 5980432 -288 -0.0
RAM 516696 516696 0 0.0
all-clusters-minimal-app debug unknown 5456 5456 0 0.0
FLASH 5317164 5316832 -332 -0.0
RAM 222680 222680 0 0.0
bridge-app debug unknown 5472 5472 0 0.0
FLASH 4630952 4630620 -332 -0.0
RAM 201000 201000 0 0.0
camera-app debug unknown 5456 5456 0 0.0
FLASH 4681036 4680748 -288 -0.0
RAM 195808 195808 0 0.0
camera-controller debug unknown 5776 5776 0 0.0
FLASH 11345553 11345281 -272 -0.0
RAM 597312 597312 0 0.0
chip-tool debug unknown 6112 6112 0 0.0
FLASH 13365611 13365769 158 0.0
RAM 605952 605952 0 0.0
chip-tool-ipv6only arm64 unknown 22120 22120 0 0.0
FLASH 11551400 11551544 144 0.0
RAM 658632 658632 0 0.0
fabric-admin debug unknown 5800 5800 0 0.0
FLASH 11636803 11636961 158 0.0
RAM 605736 605736 0 0.0
fabric-bridge-app debug unknown 4720 4720 0 0.0
FLASH 4461940 4461608 -332 -0.0
RAM 188200 188200 0 0.0
fabric-sync debug unknown 4976 4976 0 0.0
FLASH 5579029 5579173 144 0.0
RAM 471968 471968 0 0.0
lighting-app debug+rpc+ui unknown 6192 6192 0 0.0
FLASH 5525249 5525249 0 0.0
RAM 205168 205168 0 0.0
lock-app debug unknown 5424 5424 0 0.0
FLASH 4697728 4697396 -332 -0.0
RAM 192360 192360 0 0.0
ota-provider-app debug unknown 4760 4760 0 0.0
FLASH 4319874 4319542 -332 -0.0
RAM 181016 181016 0 0.0
ota-requestor-app debug unknown 4712 4712 0 0.0
FLASH 4450258 4449926 -332 -0.0
RAM 185504 185504 0 0.0
shell debug unknown 4240 4240 0 0.0
FLASH 2957484 2957196 -288 -0.0
RAM 145456 145456 0 0.0
thermostat-no-ble arm64 unknown 9456 9456 0 0.0
FLASH 4146808 4146504 -304 -0.0
RAM 229848 229848 0 0.0
tv-app debug unknown 5752 5752 0 0.0
FLASH 5917909 5917637 -272 -0.0
RAM 595400 595400 0 0.0
tv-casting-app debug unknown 5320 5320 0 0.0
FLASH 11538125 11537853 -272 -0.0
RAM 721744 721744 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 915768 915668 -100 -0.0
RAM 142881 142881 0 0.0
nrf7002dk_nrf5340_cpuapp FLASH 908836 908760 -76 -0.0
RAM 125221 125221 0 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 FLASH 852600 852600 0 0.0
RAM 141243 141243 0 0.0
nxp contact k32w0+release FLASH 588336 588256 -80 -0.0
RAM 71004 71004 0 0.0
mcxw71+release FLASH 603560 603464 -96 -0.0
RAM 63144 63144 0 0.0
light k32w0+release FLASH 614132 614036 -96 -0.0
RAM 70292 70292 0 0.0
k32w1+release FLASH 687648 687560 -88 -0.0
RAM 72056 72056 0 0.0
lock mcxw71+release FLASH 752424 752336 -88 -0.0
RAM 67556 67556 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1661316 1661236 -80 -0.0
RAM 212344 212344 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1565612 1565524 -88 -0.0
RAM 208560 208560 0 0.0
light cy8ckit_062s2_43012 FLASH 1442348 1442276 -72 -0.0
RAM 197320 197320 0 0.0
lock cy8ckit_062s2_43012 FLASH 1471244 1471172 -72 -0.0
RAM 224984 224984 0 0.0
qpg lighting-app qpg6105+debug FLASH 664844 664756 -88 -0.0
RAM 105180 105180 0 0.0
lock-app qpg6105+debug FLASH 623304 623216 -88 -0.0
RAM 99792 99792 0 0.0
stm32 light STM32WB5MM-DK FLASH 460920 460832 -88 -0.0
RAM 141496 141496 0 0.0
telink bridge-app tl7218x FLASH 665734 665642 -92 -0.0
RAM 90712 90712 0 0.0
contact-sensor-app tlsr9528a_retention FLASH 623316 623224 -92 -0.0
RAM 31488 31488 0 0.0
light-app-ota-compress-lzma-shell-factory-data tl3218x FLASH 762090 761998 -92 -0.0
RAM 40420 40420 0 0.0
light-app-ota-shell-factory-data tl7218x FLASH 755198 755106 -92 -0.0
RAM 97540 97540 0 0.0
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 682248 682160 -88 -0.0
RAM 52192 52192 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 710806 710718 -88 -0.0
RAM 73400 73400 0 0.0
light-switch-app-ota-shell-factory-data tl3218x_retention FLASH 703356 703268 -88 -0.0
RAM 37664 37664 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 602926 602834 -92 -0.0
RAM 138640 138640 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 790214 790122 -92 -0.0
RAM 96388 96388 0 0.0
tizen all-clusters-app arm unknown 5152 5152 0 0.0
FLASH 1783240 1783148 -92 -0.0
RAM 94168 94168 0 0.0
chip-tool-ubsan arm unknown 11560 11560 0 0.0
FLASH 1909284 19093366 520 0.0
RAM 8355068 8355300 232 0.0

// called, either mEventPathParamsListSize or mAttributePathParamsListSize is not 0.
VerifyOrReturn(mReadPrepareParams.mEventPathParamsListSize != 0 || mReadPrepareParams.mAttributePathParamsListSize != 0);

// If mCatsMatchCheckIn is true, it means cats used in icd registration matches with the one in current subscription,
Copy link
Contributor

Choose a reason for hiding this comment

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

Matches which side? Should be "our side of the current subscription" or something, right?

But do we really want to push this off onto the API client? Or just examine the fabric table?

And if we do push this off onto the API client, as this PR does, then should this boolean just be mResetSubscriptionOnCheckin?

Copy link
Contributor Author

@yunhanw-google yunhanw-google Mar 11, 2025

Choose a reason for hiding this comment

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

If we are going with fabrictable path, then we can get fabricTable from interaction model engine, is it controller's fabric table? then use get fabricId via FabricIndex readClient::GetFabricIndex() const { return mPeer.GetFabricIndex(); }, but it is peer's fabric index instead of controller's fabric index, how can we get the controller's fabric index? further we can get cats via FetchCATs(mFabricIndex, cats).

// If the peer is no longer LIT, try to wake up the subscription and do resubscribe when necessary.
if (!mIsPeerLIT)
{
OnActiveModeNotification();
Copy link
Contributor

Choose a reason for hiding this comment

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

So I am trying to understand why it's OK to remove this. The reason this seems to be here is that it's envisioning us having two subscriptions, one of which (call it A) is watching for peer type change and one of which (call it B) is IsInactiveICDSubscription(). When the transition to SIT is observed, B will no longer get any OnActiveModeNotifications, so how will it get out of the "inactive ICD subscription" state?

Of course if A does not exist and we just have B, and it's in the "inactive ICD subscription" state and then the server changes to A SIT, I think we just get stuck; that seems to be a hole in the whole logic of this stuff, including the spec?

Copy link
Contributor Author

@yunhanw-google yunhanw-google Mar 11, 2025

Choose a reason for hiding this comment

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

Yes, we get stuck, it is also spec issue, the whole scenario is as below
Assume we have one inactive wildcard subscription between controller and ICD device. When ICD transitions from LIT to SIT, check-in message is sent to controller, and controller activate the sleepy subscription, right? then the operation mode attribute is changed, OnPeerTypeChange is called so that OnActiveModeNotification is called again and this subscription would be recreated again with the changes on this PR. Here It seems OnActiveModeNotification is invoked by check-in message and subscribed operation mode attribute change.

Of course if A does not exist and we just have B, and it's in the "inactive ICD subscription" state and then the server changes to A SIT, I think we just get stuck; that seems to be a hole in the whole logic of this stuff, including the spec?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

You are right, the current change does not work on the below scenario

So I am trying to understand why it's OK to remove this. The reason this seems to be here is that it's envisioning us having two subscriptions, one of which (call it A) is watching for peer type change and one of which (call it B) is IsInactiveICDSubscription(). When the transition to SIT is observed, B will no longer get any OnActiveModeNotifications, so how will it get out of the "inactive ICD subscription" state?

Comment on lines +360 to +362
* If the server sends out check-in message, and there is a active tracked active subscription in client side at the same time,
* it means current client does not realize this tracked subscription has gone, and we should forcibly timeout current
* subscription, and schedule a new one.
Copy link
Contributor

Choose a reason for hiding this comment

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

This comment does not match what the API actually does, really.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
app controller icd Intermittently Connected Devices review - pending
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[ICD] Fix corner cases where multiple reports are emitted on entering active mode
3 participants