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

Update Binding cluster requirement in device type to align with the spec #22119

Merged
merged 3 commits into from
Aug 25, 2022
Merged

Update Binding cluster requirement in device type to align with the spec #22119

merged 3 commits into from
Aug 25, 2022

Conversation

yufengwangca
Copy link
Contributor

@yufengwangca yufengwangca commented Aug 23, 2022

Problem

What is being fixed? Examples:

  • Binding cluster is defined as one of optional base clusters on the server side, each device type definition SHALL include this cluster without explicitly specification. I saw some device types have included this cluster, but not all of them conform to the Binding cluster requirement in the spec.

https://github.com/CHIP-Specifications/connectedhomeip-spec/blob/master/src/device_types/BaseDeviceType.adoc

  • Binding cluster is defined as Server side cluster, and it is not mandatory, so we should turn off this cluster AND do not allow user to turn it on at the client side, and turn off this cluster but allow user to turn it on at the server side.
<include cluster="Binding" client="false" server="false" clientLocked="true" serverLocked="false">
           <requireAttribute>BINDING</requireAttribute>
</include

Change overview

Update Binding cluster requirement in device type to align with the spec

Testing

How was this tested? (at least one bullet point required)

  • Conform to spec

@github-actions github-actions bot added the app label Aug 24, 2022
@github-actions
Copy link

github-actions bot commented Aug 24, 2022

PR #22119: Size comparison from 82d974b to 318f94c

Increases (3 builds for bl602, cc13x2_26x2, psoc6)
platform target config section 82d974b 318f94c change % change
bl602 lighting-app bl602+rpc (read/write) 1429298 1429306 8 0.0
.text 1082572 1082576 4 0.0
cc13x2_26x2 all-clusters-app LP_CC2652R7 (read/write) 178660 178668 8 0.0
psoc6 all-clusters-minimal cy8ckit_062s2_43012 .debug_info 26381431 26381432 1 0.0
Decreases (6 builds for bl602, cc13x2_26x2, cyw30739, esp32, psoc6, telink)
platform target config section 82d974b 318f94c change % change
bl602 lighting-app bl602 (read/write) 1383650 1383642 -8 -0.0
.text 1050816 1050812 -4 -0.0
cc13x2_26x2 all-clusters-app LP_CC2652R7 (read only) 672835 672827 -8 -0.0
.text 583684 583676 -8 -0.0
cyw30739 light cyw930739m2evb_01 (read/write) 586586 586578 -8 -0.0
.app_xip_area 463244 463236 -8 -0.0
esp32 all-clusters-app c3devkit (read only) 1031040 1031038 -2 -0.0
.flash.text 1031040 1031038 -2 -0.0
psoc6 all-clusters cy8ckit_062s2_43012 .debug_info 2664473 26644735 -1 -0.0
telink light-switch-app tlsr9518adk80d text 571026 571024 -2 -0.0
Full report (32 builds for bl602, cc13x2_26x2, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, psoc6, telink)
platform target config section 82d974b 318f94c change % change
bl602 lighting-app bl602 (read/write) 1383650 1383642 -8 -0.0
.bss 120266 120266 0 0.0
.data 4480 4480 0 0.0
.text 1050816 1050812 -4 -0.0
bl602+rpc (read/write) 1429298 1429306 8 0.0
.bss 127706 127706 0 0.0
.data 4600 4600 0 0.0
.text 1082572 1082576 4 0.0
cc13x2_26x2 all-clusters-app LP_CC2652R7 (read only) 672835 672827 -8 -0.0
(read/write) 178660 178668 8 0.0
.bss 74388 74388 0 0.0
.data 3372 3372 0 0.0
.rodata 88835 88835 0 0.0
.text 583684 583676 -8 -0.0
all-clusters-minimal-app LP_CC2652R7 (read only) 637555 637555 0 0.0
(read/write) 157948 157948 0 0.0
.bss 73660 73660 0 0.0
.data 3372 3372 0 0.0
.rodata 77979 77979 0 0.0
.text 559252 559252 0 0.0
lock-ftd LP_CC2652R7 (read only) 673919 673919 0 0.0
(read/write) 167784 167784 0 0.0
.bss 71484 71484 0 0.0
.data 3296 3296 0 0.0
.rodata 76671 76671 0 0.0
.text 596768 596768 0 0.0
lock-mtd LP_CC2652R7 (read only) 656687 656687 0 0.0
(read/write) 180704 180704 0 0.0
.bss 67172 67172 0 0.0
.data 3296 3296 0 0.0
.rodata 101767 101767 0 0.0
.text 554440 554440 0 0.0
pump-app LP_CC2652R7 (read only) 684551 684551 0 0.0
(read/write) 157960 157960 0 0.0
.bss 71524 71524 0 0.0
.data 3296 3296 0 0.0
.rodata 89927 89927 0 0.0
.text 594140 594140 0 0.0
pump-controller-app LP_CC2652R7 (read only) 669059 669059 0 0.0
(read/write) 173572 173572 0 0.0
.bss 71644 71644 0 0.0
.data 3292 3292 0 0.0
.rodata 85483 85483 0 0.0
.text 583096 583096 0 0.0
shell LP_CC2652R7 (read only) 665526 665526 0 0.0
(read/write) 181488 181488 0 0.0
.bss 76708 76708 0 0.0
.data 3376 3376 0 0.0
.rodata 85782 85782 0 0.0
.text 579428 579428 0 0.0
cyw30739 light cyw930739m2evb_01 (read/write) 586586 586578 -8 -0.0
.app_xip_area 463244 463236 -8 -0.0
.bss 65776 65776 0 0.0
.data 744 744 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
lock cyw930739m2evb_01 (read/write) 592346 592346 0 0.0
.app_xip_area 464220 464220 0 0.0
.bss 70560 70560 0 0.0
.data 748 748 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
ota-requestor-no-progress-logging cyw930739m2evb_01 (read/write) 599450 599450 0 0.0
.app_xip_area 476828 476828 0 0.0
.bss 65088 65088 0 0.0
.data 716 716 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
efr32 lighting-app BRD4161A (read/write) 1107316 1107316 0 0.0
.bss 136332 136332 0 0.0
.data 2072 2072 0 0.0
.text 968892 968892 0 0.0
BRD4161A+rpc (read/write) 971396 971396 0 0.0
.bss 150844 150844 0 0.0
.data 2252 2252 0 0.0
.text 818276 818276 0 0.0
BRD4161A+rs911x (read/write) 999928 999928 0 0.0
.bss 169088 169088 0 0.0
.data 2056 2056 0 0.0
.text 828764 828764 0 0.0
lock-app BRD4161A+wf200 (read/write) 1149196 1149196 0 0.0
.bss 152168 152168 0 0.0
.data 2064 2064 0 0.0
.text 994944 994944 0 0.0
window-app BRD4161A (read/write) 1098580 1098580 0 0.0
.bss 137772 137772 0 0.0
.data 2096 2096 0 0.0
.text 958692 958692 0 0.0
esp32 all-clusters-app c3devkit (read only) 1031040 1031038 -2 -0.0
(read/write) 1489610 1489610 0 0.0
.dram0.bss 71144 71144 0 0.0
.dram0.data 14600 14600 0 0.0
.flash.rodata 218424 218424 0 0.0
.flash.text 1031040 1031038 -2 -0.0
.iram0.text 62902 62902 0 0.0
m5stack (read only) 1084175 1084175 0 0.0
(read/write) 491528 491528 0 0.0
.dram0.bss 76648 76648 0 0.0
.dram0.data 34144 34144 0 0.0
.flash.rodata 248740 248740 0 0.0
.flash.text 1078791 1078791 0 0.0
.iram0.text 123267 123267 0 0.0
k32w light k32w0+release (read/write) 646516 646516 0 0.0
.bss 70400 70400 0 0.0
.data 2068 2068 0 0.0
.text 571320 571320 0 0.0
lock k32w0+release (read/write) 704012 704012 0 0.0
.bss 70864 70864 0 0.0
.data 2076 2076 0 0.0
.text 628344 628344 0 0.0
linux chip-tool-ipv6only arm64 (read only) 10260660 10260660 0 0.0
(read/write) 699169 699169 0 0.0
.bss 33297 33297 0 0.0
.data 3272 3272 0 0.0
.data.rel.ro 643848 643848 0 0.0
.dynamic 560 560 0 0.0
.got 13784 13784 0 0.0
.init 24 24 0 0.0
.init_array 192 192 0 0.0
.rodata 493508 493508 0 0.0
.text 8128996 8128996 0 0.0
thermostat-no-ble arm64 (read only) 2356644 2356644 0 0.0
(read/write) 141825 141825 0 0.0
.bss 55345 55345 0 0.0
.data 1672 1672 0 0.0
.data.rel.ro 75984 75984 0 0.0
.dynamic 560 560 0 0.0
.got 5048 5048 0 0.0
.init 24 24 0 0.0
.init_array 408 408 0 0.0
.rodata 140588 140588 0 0.0
.text 1978336 1978336 0 0.0
mbed lock-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2454312 2454312 0 0.0
.bss 215044 215044 0 0.0
.data 5872 5872 0 0.0
.text 1416956 1416956 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 (read/write) 1180591 1180591 0 0.0
bss 143745 143745 0 0.0
rodata 143328 143328 0 0.0
text 814560 814560 0 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 (read/write) 1159675 1159675 0 0.0
bss 142972 142972 0 0.0
rodata 134916 134916 0 0.0
text 802968 802968 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 (read only) 881000 881000 0 0.0
(read/write) 1700692 1700692 0 0.0
.ARM.attributes 46 46 0 0.0
.ARM.exidx 8 8 0 0.0
.bss 149688 149688 0 0.0
.comment 204 204 0 0.0
.copy.table 24 24 0 0.0
.cy_m0p_image 6216 6216 0 0.0
.cy_sharedmem 8 8 0 0.0
.data 2656 2656 0 0.0
.debug_abbrev 1217526 1217526 0 0.0
.debug_aranges 111544 111544 0 0.0
.debug_frame 372400 372400 0 0.0
.debug_info 2664473 26644735 -1 -0.0
.debug_line 3646957 3646957 0 0.0
.debug_loc 3561998 3561998 0 0.0
.debug_ranges 336696 336696 0 0.0
.debug_str 3393533 3393533 0 0.0
.heap 881000 881000 0 0.0
.noinit 148 148 0 0.0
.ramVectors 736 736 0 0.0
.shstrtab 288 288 0 0.0
.stab 156 156 0 0.0
.stabstr 335 335 0 0.0
.stack_dummy 4096 4096 0 0.0
.strtab 569137 569137 0 0.0
.symtab 420320 420320 0 0.0
.text 1539960 1539960 0 0.0
.zero.table 8 8 0 0.0
text 0 0 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 (read only) 881736 881736 0 0.0
(read/write) 1643884 1643884 0 0.0
.ARM.attributes 46 46 0 0.0
.ARM.exidx 8 8 0 0.0
.bss 148952 148952 0 0.0
.comment 204 204 0 0.0
.copy.table 24 24 0 0.0
.cy_m0p_image 6216 6216 0 0.0
.cy_sharedmem 8 8 0 0.0
.data 2656 2656 0 0.0
.debug_abbrev 1209365 1209365 0 0.0
.debug_aranges 111016 111016 0 0.0
.debug_frame 375480 375480 0 0.0
.debug_info 26381431 26381432 1 0.0
.debug_line 3667361 3667361 0 0.0
.debug_loc 3549635 3549635 0 0.0
.debug_ranges 335312 335312 0 0.0
.debug_str 3382522 3382522 0 0.0
.heap 881736 881736 0 0.0
.noinit 148 148 0 0.0
.ramVectors 736 736 0 0.0
.shstrtab 288 288 0 0.0
.stab 156 156 0 0.0
.stabstr 335 335 0 0.0
.stack_dummy 4096 4096 0 0.0
.strtab 533611 533611 0 0.0
.symtab 406912 406912 0 0.0
.text 1483888 1483888 0 0.0
.zero.table 0 0 0 0.0
8 8 0 0.0
light cy8ckit_062s2_43012 (read only) 890080 890080 0 0.0
(read/write) 1561132 1561132 0 0.0
.ARM.attributes 46 46 0 0.0
.ARM.exidx 8 8 0 0.0
.bss 140816 140816 0 0.0
.comment 204 204 0 0.0
.copy.table 24 24 0 0.0
.cy_m0p_image 6216 6216 0 0.0
.cy_sharedmem 8 8 0 0.0
.data 2448 2448 0 0.0
.debug_abbrev 1044038 1044038 0 0.0
.debug_aranges 103184 103184 0 0.0
.debug_frame 345724 345724 0 0.0
.debug_info 2184598 2184598 0 0.0
.debug_line 3238540 3238540 0 0.0
.debug_loc 3249150 3249150 0 0.0
.debug_ranges 301152 301152 0 0.0
.debug_str 3188616 3188616 0 0.0
.heap 890080 890080 0 0.0
.noinit 148 148 0 0.0
.ramVectors 736 736 0 0.0
.shstrtab 288 288 0 0.0
.stab 156 156 0 0.0
.stabstr 335 335 0 0.0
.stack_dummy 4096 4096 0 0.0
.strtab 466892 466892 0 0.0
.symtab 373968 373968 0 0.0
.text 1409480 1409480 0 0.0
.zero.table 0 0 0 0.0
8 8 0 0.0
lock cy8ckit_062s2_43012 (read only) 885584 885584 0 0.0
(read/write) 1598372 1598372 0 0.0
.ARM.attributes 46 46 0 0.0
.ARM.exidx 8 8 0 0.0
.bss 145296 145296 0 0.0
.comment 204 204 0 0.0
.copy.table 24 24 0 0.0
.cy_m0p_image 6216 6216 0 0.0
.cy_sharedmem 8 8 0 0.0
.data 2464 2464 0 0.0
.debug_abbrev 1051210 1051210 0 0.0
.debug_aranges 103856 103856 0 0.0
.debug_frame 348548 348548 0 0.0
.debug_info 22199261 22199261 0 0.0
.debug_line 3247103 3247103 0 0.0
.debug_loc 3289002 3289002 0 0.0
.debug_ranges 304496 304496 0 0.0
.debug_str 3216047 3216047 0 0.0
.heap 885584 885584 0 0.0
.noinit 148 148 0 0.0
.ramVectors 736 736 0 0.0
.shstrtab 288 288 0 0.0
.stab 156 156 0 0.0
.stabstr 335 335 0 0.0
.stack_dummy 4096 4096 0 0.0
.strtab 473107 473107 0 0.0
.symtab 377152 377152 0 0.0
.text 1442224 1442224 0 0.0
.zero.table 0 0 0 0.0
8 8 0 0.0
telink light-switch-app tlsr9518adk80d (read/write) 808416 808416 0 0.0
bss 71448 71448 0 0.0
noinit 43488 43488 0 0.0
text 571026 571024 -2 -0.0
lighting-app tlsr9518adk80d (read/write) 830392 830392 0 0.0
bss 72304 72304 0 0.0
noinit 43488 43488 0 0.0
text 589150 589150 0 0.0

@yufengwangca yufengwangca enabled auto-merge (squash) August 24, 2022 17:51
@yufengwangca yufengwangca merged commit 150d741 into project-chip:master Aug 25, 2022
@yufengwangca yufengwangca deleted the pr/device/xml branch August 25, 2022 19:49
@bzbarsky-apple
Copy link
Contributor

Binding cluster is defined as Server side cluster, and it is not mandatory

The base device type requirements are, as far as I can tell:

  1. Binding server is required for any device that is a Simple device and includes a client side of a cluster.
  2. It's disallowed for all other device types.

There is no optionality here except when the client side of a cluster is optionally allowed.

andy31415 pushed a commit that referenced this pull request Sep 1, 2022
…pec (#22286)

* Revert "Update Binding cluster requirement in device type to align with the spec (#22119)"

This reverts commit 150d741.

* Update Binding cluster requirement in device type to align with the spec

* Include Binding cluster to all-cluster-app
isiu-apple pushed a commit to isiu-apple/connectedhomeip that referenced this pull request Sep 16, 2022
…pec (project-chip#22119)

* Update matter-devices.xml to align with the device library spec

* Update Binding cluster requirement in device type to align with the spec
isiu-apple pushed a commit to isiu-apple/connectedhomeip that referenced this pull request Sep 16, 2022
…pec (project-chip#22286)

* Revert "Update Binding cluster requirement in device type to align with the spec (project-chip#22119)"

This reverts commit 150d741.

* Update Binding cluster requirement in device type to align with the spec

* Include Binding cluster to all-cluster-app
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.

Audit matter-devices.xml for sanity
3 participants