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

Remove event list attribute support in the SDK #35874

Merged
merged 4 commits into from
Oct 2, 2024

Conversation

andy31415
Copy link
Contributor

Specification marks it as deprecated (conformance D) and we have not actually supported it in previous releases.

For now remove all defines from implementing it. Client clusters still claim supported, so that may need further iteration.

Copy link

Review changes with SemanticDiff.

Copy link

github-actions bot commented Oct 2, 2024

PR #35874: Size comparison from 20200ee to bf7bfb5

Full report (3 builds for cc32xx, stm32)
platform target config section 20200ee bf7bfb5 change % change
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 616826 616802 -24 -0.0
RAM 205396 205396 0 0.0
lock CC3235SF_LAUNCHXL FLASH 656946 656930 -16 -0.0
RAM 205548 205548 0 0.0
stm32 light STM32WB5MM-DK FLASH 481768 481768 0 0.0
RAM 144692 144692 0 0.0

Copy link

github-actions bot commented Oct 2, 2024

PR #35874: Size comparison from 20200ee to 4f2a7e5

Full report (88 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, linux, nrfconnect, nxp, psoc6, qpg, stm32, telink, tizen)
platform target config section 20200ee 4f2a7e5 change % change
bl602 lighting-app bl602 FLASH 1280506 1280466 -40 -0.0
RAM 95808 95808 0 0.0
bl602+mfd FLASH 1308554 1308514 -40 -0.0
RAM 95464 95464 0 0.0
bl602+rpc FLASH 1335174 1335134 -40 -0.0
RAM 103784 103784 0 0.0
bl702 lighting-app bl702 FLASH 944880 944880 0 0.0
RAM 15105 15105 0 0.0
bl702+mfd FLASH 957334 957334 0 0.0
RAM 14769 14769 0 0.0
bl702+rpc FLASH 1051038 1051038 0 0.0
RAM 23661 23661 0 0.0
bl706-eth FLASH 658012 658012 0 0.0
RAM 24745 24745 0 0.0
bl706-wifi FLASH 824808 824808 0 0.0
RAM 13965 13965 0 0.0
bl702l lighting-app bl702l FLASH 961816 961816 0 0.0
RAM 16804 16804 0 0.0
bl702l+mfd FLASH 974578 974578 0 0.0
RAM 16468 16468 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 829492 829492 0 0.0
RAM 123300 123300 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 814568 814568 0 0.0
RAM 125172 125172 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 761116 761116 0 0.0
RAM 113664 113664 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 745352 745352 0 0.0
RAM 113856 113856 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 616826 616802 -24 -0.0
RAM 205396 205396 0 0.0
lock CC3235SF_LAUNCHXL FLASH 656946 656930 -16 -0.0
RAM 205548 205548 0 0.0
cyw30739 light CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 678461 678461 0 0.0
RAM 78516 78516 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 698313 698313 0 0.0
RAM 81148 81148 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 698313 698313 0 0.0
RAM 81148 81148 0 0.0
CYW930739M2EVB-02 unknown 2040 2040 0 0.0
FLASH 655249 655249 0 0.0
RAM 73584 73584 0 0.0
light-switch CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 614533 614533 0 0.0
RAM 71468 71468 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 634169 634169 0 0.0
RAM 74020 74020 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 634169 634169 0 0.0
RAM 74020 74020 0 0.0
lock CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 633837 633837 0 0.0
RAM 74516 74516 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 653553 653553 0 0.0
RAM 77068 77068 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 653553 653553 0 0.0
RAM 77068 77068 0 0.0
thermostat CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 609149 609149 0 0.0
RAM 68604 68604 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 629009 629009 0 0.0
RAM 71236 71236 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 629009 629009 0 0.0
RAM 71236 71236 0 0.0
efr32 lighting-app BRD4187C FLASH 933980 933980 0 0.0
RAM 135884 135884 0 0.0
lock-app BRD2605a FLASH 741824 741784 -40 -0.0
RAM 230240 230240 0 0.0
BRD4338a FLASH 742472 742448 -24 -0.0
RAM 230272 230272 0 0.0
window-app BRD4187C FLASH 1017128 1017088 -40 -0.0
RAM 127804 127804 0 0.0
esp32 all-clusters-app c3devkit DRAM 94080 94080 0 0.0
FLASH 1538296 1538296 0 0.0
IRAM 82538 82538 0 0.0
m5stack DRAM 115032 115032 0 0.0
FLASH 1548726 1548726 0 0.0
IRAM 117039 117039 0 0.0
linux air-purifier-app debug unknown 4688 4688 0 0.0
FLASH 2776191 2776135 -56 -0.0
RAM 129424 129424 0 0.0
all-clusters-app debug unknown 5528 5528 0 0.0
FLASH 6079684 6079628 -56 -0.0
RAM 507872 507872 0 0.0
all-clusters-minimal-app debug unknown 5424 5424 0 0.0
FLASH 5413484 5413428 -56 -0.0
RAM 241136 241136 0 0.0
bridge-app debug unknown 5408 5408 0 0.0
FLASH 4746902 4746846 -56 -0.0
RAM 218320 218320 0 0.0
chip-tool debug unknown 5960 5960 0 0.0
FLASH 12586212 12586154 -58 -0.0
RAM 556402 556402 0 0.0
chip-tool-ipv6only arm64 unknown 20560 20560 0 0.0
FLASH 11237680 11237616 -64 -0.0
RAM 606672 606672 0 0.0
fabric-admin debug unknown 5792 5792 0 0.0
FLASH 10939585 10939527 -58 -0.0
RAM 555418 555418 0 0.0
fabric-bridge-app debug unknown 4640 4640 0 0.0
FLASH 4569916 4569860 -56 -0.0
RAM 204888 204888 0 0.0
lighting-app debug+rpc+ui unknown 6056 6056 0 0.0
FLASH 5687777 5687713 -64 -0.0
RAM 228584 228584 0 0.0
lock-app debug unknown 5344 5344 0 0.0
FLASH 4796324 4796268 -56 -0.0
RAM 204392 204392 0 0.0
ota-provider-app debug unknown 4720 4720 0 0.0
FLASH 4425856 4425800 -56 -0.0
RAM 198128 198128 0 0.0
ota-requestor-app debug unknown 4656 4656 0 0.0
FLASH 4564704 4564648 -56 -0.0
RAM 202696 202696 0 0.0
shell debug unknown 4216 4216 0 0.0
FLASH 3106253 3106205 -48 -0.0
RAM 159216 159216 0 0.0
thermostat-no-ble arm64 unknown 9448 9448 0 0.0
FLASH 4314624 4314560 -64 -0.0
RAM 242816 242816 0 0.0
tv-app debug unknown 5624 5624 0 0.0
FLASH 6023797 6023733 -64 -0.0
RAM 581424 581424 0 0.0
tv-casting-app debug unknown 5208 5208 0 0.0
FLASH 10780829 10780765 -64 -0.0
RAM 644320 644320 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 914120 914120 0 0.0
RAM 142199 142199 0 0.0
nrf7002dk_nrf5340_cpuapp FLASH 884952 884952 0 0.0
RAM 140338 140338 0 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 FLASH 847540 847540 0 0.0
RAM 141093 141093 0 0.0
nxp contact k32w0+release FLASH 581880 581880 0 0.0
RAM 70784 70784 0 0.0
k32w1+release FLASH 596608 596608 0 0.0
RAM 63008 63008 0 0.0
mcxw71+release FLASH 596368 596368 0 0.0
RAM 63008 63008 0 0.0
light k32w0+release FLASH 618468 618468 0 0.0
RAM 70256 70256 0 0.0
k32w1+release FLASH 682568 682568 0 0.0
RAM 48648 48648 0 0.0
mcxw71+release FLASH 682584 682584 0 0.0
RAM 48648 48648 0 0.0
lock k32w1+release FLASH 704944 704944 0 0.0
RAM 67148 67148 0 0.0
mcxw71+release FLASH 704968 704968 0 0.0
RAM 67148 67148 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1646012 1645980 -32 -0.0
RAM 210888 210888 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1552052 1552036 -16 -0.0
RAM 207688 207688 0 0.0
light cy8ckit_062s2_43012 FLASH 1467804 1467788 -16 -0.0
RAM 200696 200696 0 0.0
lock cy8ckit_062s2_43012 FLASH 1464596 1464580 -16 -0.0
RAM 225048 225048 0 0.0
qpg lighting-app qpg6105+debug FLASH 660216 660216 0 0.0
RAM 105236 105236 0 0.0
lock-app qpg6105+debug FLASH 618236 618236 0 0.0
RAM 99704 99704 0 0.0
stm32 light STM32WB5MM-DK FLASH 481768 481768 0 0.0
RAM 144692 144692 0 0.0
telink air-quality-sensor-app tlsr9528a_retention FLASH 620608 620608 0 0.0
RAM 50488 50488 0 0.0
all-clusters-app tlsr9118bdk40d FLASH 687804 687804 0 0.0
RAM 148328 148328 0 0.0
all-clusters-minimal-app tlsr9528a FLASH 780796 780796 0 0.0
RAM 110280 110280 0 0.0
bridge-app tlsr9258a FLASH 680706 680706 0 0.0
RAM 91144 91144 0 0.0
contact-sensor-app tlsr9528a_retention FLASH 620372 620372 0 0.0
RAM 50440 50440 0 0.0
light-switch-app-ota-shell-factory-data tlsr9528a FLASH 708312 708312 0 0.0
RAM 73780 73780 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 625486 625486 0 0.0
RAM 144316 144316 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 811246 811246 0 0.0
RAM 98948 98948 0 0.0
lock-app-dfu tlsr9528a FLASH 656256 656256 0 0.0
RAM 66500 66500 0 0.0
ota-requestor-app tlsr9258a FLASH 696682 696682 0 0.0
RAM 90736 90736 0 0.0
pump-app-usb tlsr9518adk80d FLASH 634004 634004 0 0.0
RAM 55316 55316 0 0.0
pump-controller-app tlsr9518adk80d FLASH 611194 611194 0 0.0
RAM 52560 52560 0 0.0
shell tlsr9518adk80d FLASH 467862 467862 0 0.0
RAM 68168 68168 0 0.0
smoke_co_alarm-app tlsr9528a_retention FLASH 627502 627502 0 0.0
RAM 52160 52160 0 0.0
temperature-measurement-app-mars-ota tlsr9518adk80d FLASH 653330 653330 0 0.0
RAM 56108 56108 0 0.0
thermostat tlsr9518adk80d FLASH 637926 637926 0 0.0
RAM 52952 52952 0 0.0
window-covering tlsr9118bdk40d FLASH 524068 524068 0 0.0
RAM 97284 97284 0 0.0
tizen all-clusters-app arm unknown 4904 4904 0 0.0
FLASH 1725676 1725624 -52 -0.0
RAM 89076 89076 0 0.0
chip-tool-ubsan arm unknown 10368 10368 0 0.0
FLASH 17413810 17413698 -112 -0.0
RAM 7582032 7582000 -32 -0.0

@mergify mergify bot merged commit cbacbe3 into project-chip:master Oct 2, 2024
69 checks passed
@@ -806,20 +806,8 @@ Protocols::InteractionModel::Status CheckEventSupportStatus(const ConcreteEventP
return Status::UnsupportedCluster;
}

#if CHIP_CONFIG_ENABLE_EVENTLIST_ATTRIBUTE
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 spec still has a non-D requirement for this check to work (which we have been violating, clearly).... Do we need a spec issue raised here to remove that? @tcarmelveilleux

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Could you add a link (or section number) for this here?

Code-wise I believe we did not have eventlist enabled in most cases anyway, so the change did not change behaviour (except some NXP examples). In this case probably spec should be updated to not use something marked as deprecated.

Copy link
Contributor

Choose a reason for hiding this comment

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

The relevant spec section is "8.4.3.2. Incoming Read Request and Subscribe Request Action Processing" and it says:

  • Each request path in the EventRequests field SHALL be processed as follows:
    • If the path is a concrete path:
      ...
      • Else if the path indicates a cluster event that is not supported, an EventStatusIB SHALL be generated with the UNSUPPORTED_EVENT Status Code.

This has nothing to do with EventList in the spec, so the spec is not "using something marked as deprecated". The spec just expects the server to know what events are "supported".

In terms of the SDK, we implemented that spec-required support check on top of EventList support, because the same data is needed for both. And yes, with EventList not enabled we had a divergence from the spec but the theoretical plan for fixing that was to enable EventList sometime.

So as I see it, there are basically three options here:

  1. Keep just not matching the spec here, as we have all along.
  2. Figure out how to implement this spec-required check.
  3. Change the spec to not do this check.

Copy link
Contributor

Choose a reason for hiding this comment

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

I think 2 can be done. We can add AAI methods to list supported events, in addition to listing supported attributes. That would allow us to determine if an event is supported. I would argue that claiming it's supported when it will never be emitted is not a big deal for any client...

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Is there actual value for "2" ? Having event list metadata requires more code and metadata and the gain seems to be "disallow subscriptions for events that can never happen". But at the same time since events are emitted by the app, you do not even have assurance that events will ever be emitted. It seems we will default to apps just "select all possible events just in case".

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 would very much prefer that after 2 years we match spec to implementation here as this was promised at some point to also happen. The alternative seems to add overhead to people to define event metadata and require extra flash (even if minimal) to maintain logic for it.

yyzhong-g pushed a commit to yyzhong-g/connectedhomeip that referenced this pull request Dec 12, 2024
* Remove event list attribute support

* Restyle

* Restyled by clang-format

* Remove matter event list from defaults and from cmake builds

---------

Co-authored-by: Restyled.io <[email protected]>
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.

6 participants