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

Make access control cluster attributes nullable #13608

Closed

Conversation

mlepage-google
Copy link
Contributor

Couldn't do this before as the tooling and/or generated code was not up to it.
Now it seems to be able to handle the list attributes being nullable.

Problem

Access Control cluster attributes should be nullable. This couldn't be done when they were created
as the tooling and generated code were not up to it.

Change overview

Now that this is feasible, make the attributes in access-control-cluster.xml nullable.

Testing

Built and ran all-clusters-app on Linux with REPL to try null lists
as well as lists with items.

Couldn't do this before as the tooling and/or generated code was not up to it.
Now it seems to be able to handle the list attributes being nullable.
@mlepage-google
Copy link
Contributor Author

Ideally related PR #13607 is merged first, though I think this will be OK if it does go in beforehand, it just won't actually handle null as an attribute value until it does, it'll just complain with an error if you try.

@github-actions
Copy link

github-actions bot commented Jan 14, 2022

PR #13608: Size comparison from a11413e to f6431f3

Increases (1 build for linux)
platform target config section a11413e f6431f3 change % change
linux chip-tool-ipv6only arm64 (read only) 8042100 8043380 1280 0.0
.text 6833684 6834964 1280 0.0
Decreases (5 builds for efr32, p6, qpg, telink)
platform target config section a11413e f6431f3 change % change
efr32 lighting-app BRD4161A (read only) 834852 832564 -2288 -0.3
.text 834844 832556 -2288 -0.3
BRD4161A+rpc (read only) 822232 819960 -2272 -0.3
.text 822224 819952 -2272 -0.3
p6 light-app default (read/write) 2329688 2327416 -2272 -0.1
.text 1287952 1285680 -2272 -0.2
qpg lighting-app qpg6105+debug (read only) 563984 562296 -1688 -0.3
.text 558664 556976 -1688 -0.3
telink lighting-app tlsr9518adk80d (read/write) 840778 838810 -1968 -0.2
text 587748 586002 -1746 -0.3
Full report (14 builds for efr32, k32w, linux, p6, qpg, telink)
platform target config section a11413e f6431f3 change % change
efr32 lighting-app BRD4161A (read only) 834852 832564 -2288 -0.3
(read/write) 127628 127628 0 0.0
.bss 125744 125744 0 0.0
.data 1884 1884 0 0.0
.text 834844 832556 -2288 -0.3
BRD4161A+rpc (read only) 822232 819960 -2272 -0.3
(read/write) 144288 144288 0 0.0
.bss 142304 142304 0 0.0
.data 1984 1984 0 0.0
.text 822224 819952 -2272 -0.3
window-app BRD4161A (read only) 805424 805424 0 0.0
(read/write) 126320 126320 0 0.0
.bss 124480 124480 0 0.0
.data 1836 1836 0 0.0
.text 805416 805416 0 0.0
k32w light k32w061+release (read/write) 657920 657920 0 0.0
.bss 77136 77136 0 0.0
.data 1852 1852 0 0.0
.text 573132 573132 0 0.0
lock k32w061+release (read/write) 661796 661796 0 0.0
.bss 77432 77432 0 0.0
.data 1872 1872 0 0.0
.text 576692 576692 0 0.0
linux chip-tool-ipv6only arm64 (read only) 8042100 8043380 1280 0.0
(read/write) 370641 370641 0 0.0
.bss 55217 55217 0 0.0
.data 1096 1096 0 0.0
.data.rel.ro 245856 245856 0 0.0
.dynamic 560 560 0 0.0
.got 64776 64776 0 0.0
.init 24 24 0 0.0
.init_array 168 168 0 0.0
.rodata 419420 419420 0 0.0
.text 6833684 6834964 1280 0.0
thermostat-no-ble arm64 (read only) 2042108 2042108 0 0.0
(read/write) 145969 145969 0 0.0
.bss 65089 65089 0 0.0
.data 880 880 0 0.0
.data.rel.ro 73016 73016 0 0.0
.dynamic 560 560 0 0.0
.got 4048 4048 0 0.0
.init 24 24 0 0.0
.init_array 304 304 0 0.0
.rodata 129884 129884 0 0.0
.text 1697632 1697632 0 0.0
p6 all-clusters-app default (read/write) 2404384 2404384 0 0.0
.bss 117492 117492 0 0.0
.data 2600 2600 0 0.0
.text 1362648 1362648 0 0.0
light-app default (read/write) 2329688 2327416 -2272 -0.1
.bss 106064 106064 0 0.0
.data 2392 2392 0 0.0
.text 1287952 1285680 -2272 -0.2
lock-app default (read/write) 2298712 2298712 0 0.0
.bss 104920 104920 0 0.0
.data 2344 2344 0 0.0
.text 1256976 1256976 0 0.0
qpg lighting-app qpg6105+debug (read only) 563984 562296 -1688 -0.3
(read/write) 146940 146940 0 0.0
.bss 89960 89960 0 0.0
.data 1048 1048 0 0.0
.text 558664 556976 -1688 -0.3
lock-app qpg6105+debug (read only) 515484 515484 0 0.0
(read/write) 146936 146936 0 0.0
.bss 88584 88584 0 0.0
.data 972 972 0 0.0
.text 510164 510164 0 0.0
persistent-storage-app qpg6105+debug (read only) 106848 106848 0 0.0
(read/write) 146940 146940 0 0.0
.bss 38512 38512 0 0.0
.data 288 288 0 0.0
.text 101528 101528 0 0.0
telink lighting-app tlsr9518adk80d (read/write) 840778 838810 -1968 -0.2
bss 87316 87316 0 0.0
noinit 37160 37160 0 0.0
text 587748 586002 -1746 -0.3

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.

I don't quite follow this change. These are not marked nullable in the spec...

@@ -67,13 +67,13 @@ limitations under the License.
and enforce Access Control for the Node’s endpoints and their associated
cluster instances.</description>
<!-- Base data types -->
<attribute side="server" code="0x0000" define="ACL" type="ARRAY" entryType="AccessControlEntry" writable="true">
<attribute side="server" code="0x0000" define="ACL" type="ARRAY" entryType="AccessControlEntry" isNullable="true" writable="true">
Copy link
Contributor

Choose a reason for hiding this comment

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

This is not nullable in the spec. Why are we marking it nullable?

@github-actions
Copy link

github-actions bot commented Jan 15, 2022

PR #13608: Size comparison from a11413e to d439875

Increases (1 build for linux)
platform target config section a11413e d439875 change % change
linux chip-tool-ipv6only arm64 (read only) 8042100 8043380 1280 0.0
.text 6833684 6834964 1280 0.0
Decreases (1 build for esp32)
platform target config section a11413e d439875 change % change
esp32 all-clusters-app m5stack (read only) 960883 960867 -16 -0.0
.flash.text 955499 955483 -16 -0.0
Full report (32 builds for efr32, esp32, k32w, linux, mbed, nrfconnect, p6, qpg, telink)
platform target config section a11413e d439875 change % change
efr32 lighting-app BRD4161A (read only) 834852 834852 0 0.0
(read/write) 127628 127628 0 0.0
.bss 125744 125744 0 0.0
.data 1884 1884 0 0.0
.text 834844 834844 0 0.0
BRD4161A+rpc (read only) 822232 822232 0 0.0
(read/write) 144288 144288 0 0.0
.bss 142304 142304 0 0.0
.data 1984 1984 0 0.0
.text 822224 822224 0 0.0
window-app BRD4161A (read only) 805424 805424 0 0.0
(read/write) 126320 126320 0 0.0
.bss 124480 124480 0 0.0
.data 1836 1836 0 0.0
.text 805416 805416 0 0.0
esp32 all-clusters-app c3devkit (read only) 912094 912094 0 0.0
(read/write) 1316682 1316682 0 0.0
.dram0.bss 70520 70520 0 0.0
.dram0.data 14284 14284 0 0.0
.flash.rodata 178384 178384 0 0.0
.flash.text 912094 912094 0 0.0
.iram0.text 62056 62056 0 0.0
m5stack (read only) 960883 960867 -16 -0.0
(read/write) 448840 448840 0 0.0
.dram0.bss 74976 74976 0 0.0
.dram0.data 34064 34064 0 0.0
.flash.rodata 207672 207672 0 0.0
.flash.text 955499 955483 -16 -0.0
.iram0.text 123399 123399 0 0.0
k32w light k32w061+release (read/write) 657920 657920 0 0.0
.bss 77136 77136 0 0.0
.data 1852 1852 0 0.0
.text 573132 573132 0 0.0
lock k32w061+release (read/write) 661796 661796 0 0.0
.bss 77432 77432 0 0.0
.data 1872 1872 0 0.0
.text 576692 576692 0 0.0
linux chip-tool-ipv6only arm64 (read only) 8042100 8043380 1280 0.0
(read/write) 370641 370641 0 0.0
.bss 55217 55217 0 0.0
.data 1096 1096 0 0.0
.data.rel.ro 245856 245856 0 0.0
.dynamic 560 560 0 0.0
.got 64776 64776 0 0.0
.init 24 24 0 0.0
.init_array 168 168 0 0.0
.rodata 419420 419420 0 0.0
.text 6833684 6834964 1280 0.0
thermostat-no-ble arm64 (read only) 2042108 2042108 0 0.0
(read/write) 145969 145969 0 0.0
.bss 65089 65089 0 0.0
.data 880 880 0 0.0
.data.rel.ro 73016 73016 0 0.0
.dynamic 560 560 0 0.0
.got 4048 4048 0 0.0
.init 24 24 0 0.0
.init_array 304 304 0 0.0
.rodata 129884 129884 0 0.0
.text 1697632 1697632 0 0.0
mbed all-clusters-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2349856 2349856 0 0.0
.bss 189220 189220 0 0.0
.data 5320 5320 0 0.0
.text 1312432 1312432 0 0.0
lighting-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2334504 2334504 0 0.0
.bss 180760 180760 0 0.0
.data 5568 5568 0 0.0
.text 1297104 1297104 0 0.0
lock-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2304848 2304848 0 0.0
.bss 179768 179768 0 0.0
.data 5544 5544 0 0.0
.text 1267448 1267448 0 0.0
pigweed-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 1139712 1139712 0 0.0
.bss 11756 11756 0 0.0
.data 4368 4368 0 0.0
.text 103096 103096 0 0.0
shell CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2054464 2054464 0 0.0
.bss 156876 156876 0 0.0
.data 4864 4864 0 0.0
.text 1017064 1017064 0 0.0
nrfconnect lighting-app nrf52840dk_nrf52840 (read/write) 943403 943403 0 0.0
bss 119628 119628 0 0.0
rodata 108824 108824 0 0.0
text 637376 637376 0 0.0
nrf52840dk_nrf52840+rpc (read/write) 928883 928883 0 0.0
bss 116672 116672 0 0.0
rodata 101272 101272 0 0.0
text 632772 632772 0 0.0
nrf52840dongle_nrf52840 (read/write) 994079 994079 0 0.0
bss 122472 122472 0 0.0
rodata 113576 113576 0 0.0
text 669576 669576 0 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 853242 853242 0 0.0
bss 116416 116416 0 0.0
rodata 101996 101996 0 0.0
text 554300 554300 0 0.0
lock-app nrf52840dk_nrf52840 (read/write) 912763 912763 0 0.0
bss 118784 118784 0 0.0
rodata 103792 103792 0 0.0
text 612824 612824 0 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 822830 822830 0 0.0
bss 115600 115600 0 0.0
rodata 97016 97016 0 0.0
text 529784 529784 0 0.0
pigweed-app nrf52840dk_nrf52840 (read/write) 541835 541835 0 0.0
bss 52588 52588 0 0.0
rodata 50104 50104 0 0.0
text 376940 376940 0 0.0
pump-app nrf52840dk_nrf52840 (read/write) 915627 915627 0 0.0
bss 118548 118548 0 0.0
rodata 104152 104152 0 0.0
text 615480 615480 0 0.0
pump-controller-app nrf52840dk_nrf52840 (read/write) 910715 910715 0 0.0
bss 118572 118572 0 0.0
rodata 103264 103264 0 0.0
text 611404 611404 0 0.0
shell nrf52840dk_nrf52840 (read/write) 798655 798655 0 0.0
bss 109776 109776 0 0.0
rodata 78388 78388 0 0.0
text 533992 533992 0 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 711470 711470 0 0.0
bss 107664 107664 0 0.0
rodata 72688 72688 0 0.0
text 451668 451668 0 0.0
p6 all-clusters-app default (read/write) 2404384 2404384 0 0.0
.bss 117492 117492 0 0.0
.data 2600 2600 0 0.0
.text 1362648 1362648 0 0.0
light-app default (read/write) 2329688 2329688 0 0.0
.bss 106064 106064 0 0.0
.data 2392 2392 0 0.0
.text 1287952 1287952 0 0.0
lock-app default (read/write) 2298712 2298712 0 0.0
.bss 104920 104920 0 0.0
.data 2344 2344 0 0.0
.text 1256976 1256976 0 0.0
qpg lighting-app qpg6105+debug (read only) 563984 563984 0 0.0
(read/write) 146940 146940 0 0.0
.bss 89960 89960 0 0.0
.data 1048 1048 0 0.0
.text 558664 558664 0 0.0
lock-app qpg6105+debug (read only) 515484 515484 0 0.0
(read/write) 146936 146936 0 0.0
.bss 88584 88584 0 0.0
.data 972 972 0 0.0
.text 510164 510164 0 0.0
persistent-storage-app qpg6105+debug (read only) 106848 106848 0 0.0
(read/write) 146940 146940 0 0.0
.bss 38512 38512 0 0.0
.data 288 288 0 0.0
.text 101528 101528 0 0.0
telink lighting-app tlsr9518adk80d (read/write) 840778 840778 0 0.0
bss 87316 87316 0 0.0
noinit 37160 37160 0 0.0
text 587748 587748 0 0.0

@mlepage-google
Copy link
Contributor Author

The attributes were originally nullable in the spec, but I see they lost it at some point before we settled on final spec. I'll withdraw this PR.

@mlepage-google mlepage-google deleted the nullable-attributes branch February 15, 2022 15:06
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.

2 participants