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

Fix UpdateNOC session invalidation and opcreds timing #20461

Merged
merged 4 commits into from
Jul 8, 2022

Conversation

tcarmelveilleux
Copy link
Contributor

Problem

Fixes #20379
Fixes #19132

Change overview

  • Fixes UpdateNOC expiring all sessions for the updated node
  • Adds FlushAcksRightAwayOnSlowCommand to CommandHandler to flush acks
    on slow commands
  • Adds Python tests for UpdateNOC behavior of session expiring
  • Adds ExpireSessions to Python for testing

Testing

  • Unit tests all pass
  • Cert tests pass
  • With the session clearing, previous Python tests failed, until
    I fixed them with the new ExpireSessions API
  • Observed standalone acks immediately sent on opcreds cluster commands

- UpdateNOC did not clear session of previous fabric like spec intended
  (project-chip#20379)
- All OpCreds cluster slow commands did not try to early-ack to avoid
  MRP timeouts (project-chip#19132)

Fixes project-chip#20379
Fixes project-chip#19132

This PR:

- Fixes UpdateNOC expiring all sessions for the updated node
- Adds `FlushAcksRightAwayOnSlowCommand` to CommandHandler to flush acks
  on slow commands
- Adds Python tests for UpdateNOC behavior of session expiring
- Adds `ExpireSessions` to Python for testing

Testing done:

- Unit tests all pass
- Cert tests pass
- With the session clearing, previous Python tests failed, until
  I fixed them with the new `ExpireSessions` API
- Observed standalone acks immediately sent on opcreds cluster commands
@github-actions
Copy link

github-actions bot commented Jul 7, 2022

PR #20461: Size comparison from 5810508 to 58a343c

Increases above 0.2%:

platform target config section 5810508 58a343c change % change
efr32 lighting-app BRD4161A+rpc (read/write) 151948 1135204 983256 647.1
Increases (29 builds for cc13x2_26x2, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, p6, telink)
platform target config section 5810508 58a343c change % change
cc13x2_26x2 all-clusters-app LP_CC2652R7 (read only) 665651 665803 152 0.0
.rodata 88067 88123 56 0.1
.text 577268 577364 96 0.0
all-clusters-minimal-app LP_CC2652R7 (read only) 631443 631611 168 0.0
.rodata 77307 77363 56 0.1
.text 553812 553924 112 0.0
lock-ftd LP_CC2652R7 (read only) 668551 668703 152 0.0
.rodata 76207 76263 56 0.1
.text 591864 591960 96 0.0
lock-mtd LP_CC2652R7 (read only) 617959 618111 152 0.0
.rodata 76087 76143 56 0.1
.text 541384 541480 96 0.0
pump-app LP_CC2652R7 (read only) 677695 677879 184 0.0
.rodata 88431 88495 64 0.1
.text 588780 588900 120 0.0
pump-controller-app LP_CC2652R7 (read only) 663527 663687 160 0.0
.rodata 84295 84359 64 0.1
.text 578752 578848 96 0.0
shell LP_CC2652R7 (read only) 658142 658310 168 0.0
.rodata 84846 84910 64 0.1
.text 572980 573084 104 0.0
cyw30739 light cyw930739m2evb_01 (read/write) 579134 579190 56 0.0
.app_xip_area 457904 457960 56 0.0
lock cyw930739m2evb_01 (read/write) 585070 585126 56 0.0
.app_xip_area 459104 459160 56 0.0
ota-requestor-no-progress-logging cyw930739m2evb_01 (read/write) 582206 582382 176 0.0
.app_xip_area 461824 462000 176 0.0
efr32 lighting-app BRD4161A (read/write) 1080652 1080876 224 0.0
.text 945588 945812 224 0.0
BRD4161A+rpc (read/write) 151948 1135204 983256 647.1
.text 983032 983248 216 0.0
BRD4161A+rs911x (read/write) 946756 946956 200 0.0
.text 803920 804120 200 0.0
lock-app BRD4161A+wf200 (read/write) 1127960 1128120 160 0.0
.text 981692 981852 160 0.0
window-app BRD4161A (read/write) 1074436 1074660 224 0.0
.text 937868 938092 224 0.0
esp32 all-clusters-app c3devkit (read only) 1019476 1019554 78 0.0
(read/write) 1485458 1485522 64 0.0
.flash.rodata 215344 215408 64 0.0
.flash.text 1019476 1019554 78 0.0
m5stack (read only) 1073383 1073467 84 0.0
(read/write) 487536 487592 56 0.0
.flash.rodata 245796 245852 56 0.0
.flash.text 1067999 1068083 84 0.0
k32w light k32w061+release (read/write) 658192 658288 96 0.0
.text 580884 580980 96 0.0
lock k32w061+release (read/write) 684964 685124 160 0.0
.text 607180 607340 160 0.0
linux thermostat-no-ble arm64 (read only) 2592644 2592932 288 0.0
.rodata 165348 165412 64 0.0
.text 2187520 2187744 224 0.0
mbed lock-app CY8CPROTO_062_4343W+release (read/write) 2447488 2447616 128 0.0
.text 1410132 1410260 128 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 (read/write) 1174495 1174667 172 0.0
rodata 141776 141836 60 0.0
text 810916 811032 116 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 (read/write) 1154691 1154863 172 0.0
rodata 133308 133368 60 0.0
text 800360 800480 120 0.0
p6 all-clusters-app default (read/write) 2563896 2564136 240 0.0
.text 1522160 1522400 240 0.0
all-clusters-minimal-app default (read/write) 2508952 2509176 224 0.0
.text 1467216 1467440 224 0.0
light-app default (read/write) 2439240 2439472 232 0.0
.text 1397504 1397736 232 0.0
lock-app default (read/write) 2466496 2466720 224 0.0
.text 1424760 1424984 224 0.0
telink light-switch-app tlsr9518adk80d (read/write) 796628 796784 156 0.0
text 565128 565222 94 0.0
lighting-app tlsr9518adk80d (read/write) 816464 816620 156 0.0
text 581452 581548 96 0.0
Decreases (5 builds for cc13x2_26x2)
platform target config section 5810508 58a343c change % change
cc13x2_26x2 all-clusters-app LP_CC2652R7 (read/write) 185572 185420 -152 -0.1
lock-ftd LP_CC2652R7 (read/write) 172816 172664 -152 -0.1
pump-app LP_CC2652R7 (read/write) 164520 164336 -184 -0.1
pump-controller-app LP_CC2652R7 (read/write) 178808 178648 -160 -0.1
shell LP_CC2652R7 (read/write) 188584 188416 -168 -0.1
Full report (30 builds for cc13x2_26x2, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, p6, telink)
platform target config section 5810508 58a343c change % change
cc13x2_26x2 all-clusters-app LP_CC2652R7 (read only) 665651 665803 152 0.0
(read/write) 185572 185420 -152 -0.1
.bss 74116 74116 0 0.0
.data 3356 3356 0 0.0
.rodata 88067 88123 56 0.1
.text 577268 577364 96 0.0
all-clusters-minimal-app LP_CC2652R7 (read only) 631443 631611 168 0.0
(read/write) 157684 157684 0 0.0
.bss 73412 73412 0 0.0
.data 3356 3356 0 0.0
.rodata 77307 77363 56 0.1
.text 553812 553924 112 0.0
lock-ftd LP_CC2652R7 (read only) 668551 668703 152 0.0
(read/write) 172816 172664 -152 -0.1
.bss 71148 71148 0 0.0
.data 3280 3280 0 0.0
.rodata 76207 76263 56 0.1
.text 591864 591960 96 0.0
lock-mtd LP_CC2652R7 (read only) 617959 618111 152 0.0
(read/write) 144264 144264 0 0.0
.bss 66868 66868 0 0.0
.data 3280 3280 0 0.0
.rodata 76087 76143 56 0.1
.text 541384 541480 96 0.0
pump-app LP_CC2652R7 (read only) 677695 677879 184 0.0
(read/write) 164520 164336 -184 -0.1
.bss 71228 71228 0 0.0
.data 3280 3280 0 0.0
.rodata 88431 88495 64 0.1
.text 588780 588900 120 0.0
pump-controller-app LP_CC2652R7 (read only) 663527 663687 160 0.0
(read/write) 178808 178648 -160 -0.1
.bss 71348 71348 0 0.0
.data 3276 3276 0 0.0
.rodata 84295 84359 64 0.1
.text 578752 578848 96 0.0
shell LP_CC2652R7 (read only) 658142 658310 168 0.0
(read/write) 188584 188416 -168 -0.1
.bss 76420 76420 0 0.0
.data 3360 3360 0 0.0
.rodata 84846 84910 64 0.1
.text 572980 573084 104 0.0
cyw30739 light cyw930739m2evb_01 (read/write) 579134 579190 56 0.0
.app_xip_area 457904 457960 56 0.0
.bss 64184 64184 0 0.0
.data 716 716 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
lock cyw930739m2evb_01 (read/write) 585070 585126 56 0.0
.app_xip_area 459104 459160 56 0.0
.bss 68912 68912 0 0.0
.data 720 720 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
ota-requestor-no-progress-logging cyw930739m2evb_01 (read/write) 582206 582382 176 0.0
.app_xip_area 461824 462000 176 0.0
.bss 63392 63392 0 0.0
.data 660 660 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
efr32 lighting-app BRD4161A (read/write) 1080652 1080876 224 0.0
.bss 132996 132996 0 0.0
.data 2048 2048 0 0.0
.text 945588 945812 224 0.0
BRD4161A+rpc (read/write) 151948 1135204 983256 647.1
.bss 149676 149676 0 0.0
.data 2260 2260 0 0.0
.text 983032 983248 216 0.0
BRD4161A+rs911x (read/write) 946756 946956 200 0.0
.bss 140768 140768 0 0.0
.data 2048 2048 0 0.0
.text 803920 804120 200 0.0
lock-app BRD4161A+wf200 (read/write) 1127960 1128120 160 0.0
.bss 144184 144184 0 0.0
.data 2060 2060 0 0.0
.text 981692 981852 160 0.0
window-app BRD4161A (read/write) 1074436 1074660 224 0.0
.bss 134468 134468 0 0.0
.data 2076 2076 0 0.0
.text 937868 938092 224 0.0
esp32 all-clusters-app c3devkit (read only) 1019476 1019554 78 0.0
(read/write) 1485458 1485522 64 0.0
.dram0.bss 70080 70080 0 0.0
.dram0.data 14600 14600 0 0.0
.flash.rodata 215344 215408 64 0.0
.flash.text 1019476 1019554 78 0.0
.iram0.text 62902 62902 0 0.0
m5stack (read only) 1073383 1073467 84 0.0
(read/write) 487536 487592 56 0.0
.dram0.bss 75600 75600 0 0.0
.dram0.data 34144 34144 0 0.0
.flash.rodata 245796 245852 56 0.0
.flash.text 1067999 1068083 84 0.0
.iram0.text 123267 123267 0 0.0
k32w light k32w061+release (read/write) 658192 658288 96 0.0
.bss 69516 69516 0 0.0
.data 1992 1992 0 0.0
.text 580884 580980 96 0.0
lock k32w061+release (read/write) 684964 685124 160 0.0
.bss 69980 69980 0 0.0
.data 2004 2004 0 0.0
.text 607180 607340 160 0.0
linux chip-tool-no-interactive-ipv6only arm64 (read only) 9986740 9986740 0 0.0
(read/write) 683569 683569 0 0.0
.bss 42609 42609 0 0.0
.data 1152 1152 0 0.0
.data.rel.ro 622480 622480 0 0.0
.dynamic 528 528 0 0.0
.got 13512 13512 0 0.0
.init 24 24 0 0.0
.init_array 192 192 0 0.0
.rodata 475828 475828 0 0.0
.text 7952564 7952564 0 0.0
thermostat-no-ble arm64 (read only) 2592644 2592932 288 0.0
(read/write) 158289 158289 0 0.0
.bss 65249 65249 0 0.0
.data 1704 1704 0 0.0
.data.rel.ro 83240 83240 0 0.0
.dynamic 528 528 0 0.0
.got 5072 5072 0 0.0
.init 24 24 0 0.0
.init_array 400 400 0 0.0
.rodata 165348 165412 64 0.0
.text 2187520 2187744 224 0.0
mbed lock-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2447488 2447616 128 0.0
.bss 213940 213940 0 0.0
.data 5872 5872 0 0.0
.text 1410132 1410260 128 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 (read/write) 1174495 1174667 172 0.0
bss 142900 142900 0 0.0
rodata 141776 141836 60 0.0
text 810916 811032 116 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 (read/write) 1154691 1154863 172 0.0
bss 142136 142136 0 0.0
rodata 133308 133368 60 0.0
text 800360 800480 120 0.0
p6 all-clusters-app default (read/write) 2563896 2564136 240 0.0
.bss 149120 149120 0 0.0
.data 2776 2776 0 0.0
.text 1522160 1522400 240 0.0
all-clusters-minimal-app default (read/write) 2508952 2509176 224 0.0
.bss 148400 148400 0 0.0
.data 2776 2776 0 0.0
.text 1467216 1467440 224 0.0
light-app default (read/write) 2439240 2439472 232 0.0
.bss 140456 140456 0 0.0
.data 2592 2592 0 0.0
.text 1397504 1397736 232 0.0
lock-app default (read/write) 2466496 2466720 224 0.0
.bss 140304 140304 0 0.0
.data 2600 2600 0 0.0
.text 1424760 1424984 224 0.0
telink light-switch-app tlsr9518adk80d (read/write) 796628 796784 156 0.0
bss 70576 70576 0 0.0
noinit 40416 40416 0 0.0
text 565128 565222 94 0.0
lighting-app tlsr9518adk80d (read/write) 816464 816620 156 0.0
bss 71420 71420 0 0.0
noinit 40416 40416 0 0.0
text 581452 581548 96 0.0

@github-actions
Copy link

github-actions bot commented Jul 8, 2022

PR #20461: Size comparison from 996f5f3 to 9f6b248

Increases above 0.2%:

platform target config section 996f5f3 9f6b248 change % change
efr32 lighting-app BRD4161A+rpc (read/write) 151948 1135204 983256 647.1
Increases (29 builds for cc13x2_26x2, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, p6, telink)
platform target config section 996f5f3 9f6b248 change % change
cc13x2_26x2 all-clusters-app LP_CC2652R7 (read only) 665651 665803 152 0.0
.rodata 88067 88123 56 0.1
.text 577268 577364 96 0.0
all-clusters-minimal-app LP_CC2652R7 (read only) 631443 631611 168 0.0
.rodata 77307 77363 56 0.1
.text 553812 553924 112 0.0
lock-ftd LP_CC2652R7 (read only) 668551 668703 152 0.0
.rodata 76207 76263 56 0.1
.text 591864 591960 96 0.0
lock-mtd LP_CC2652R7 (read only) 617959 618111 152 0.0
.rodata 76087 76143 56 0.1
.text 541384 541480 96 0.0
pump-app LP_CC2652R7 (read only) 677703 677879 176 0.0
.rodata 88431 88495 64 0.1
.text 588788 588900 112 0.0
pump-controller-app LP_CC2652R7 (read only) 663527 663687 160 0.0
.rodata 84295 84359 64 0.1
.text 578752 578848 96 0.0
shell LP_CC2652R7 (read only) 658150 658310 160 0.0
.rodata 84846 84910 64 0.1
.text 572988 573084 96 0.0
cyw30739 light cyw930739m2evb_01 (read/write) 579134 579190 56 0.0
.app_xip_area 457904 457960 56 0.0
lock cyw930739m2evb_01 (read/write) 585070 585126 56 0.0
.app_xip_area 459104 459160 56 0.0
ota-requestor-no-progress-logging cyw930739m2evb_01 (read/write) 582206 582374 168 0.0
.app_xip_area 461824 461992 168 0.0
efr32 lighting-app BRD4161A (read/write) 1080652 1080876 224 0.0
.text 945588 945812 224 0.0
BRD4161A+rpc (read/write) 151948 1135204 983256 647.1
.text 983032 983248 216 0.0
BRD4161A+rs911x (read/write) 946756 946956 200 0.0
.text 803920 804120 200 0.0
lock-app BRD4161A+wf200 (read/write) 1127960 1128120 160 0.0
.text 981692 981852 160 0.0
window-app BRD4161A (read/write) 1074436 1074660 224 0.0
.text 937868 938092 224 0.0
esp32 all-clusters-app c3devkit (read only) 1019472 1019554 82 0.0
(read/write) 1485458 1485522 64 0.0
.flash.rodata 215344 215408 64 0.0
.flash.text 1019472 1019554 82 0.0
m5stack (read only) 1073383 1073467 84 0.0
(read/write) 487536 487592 56 0.0
.flash.rodata 245796 245852 56 0.0
.flash.text 1067999 1068083 84 0.0
k32w light k32w061+release (read/write) 658192 658288 96 0.0
.text 580884 580980 96 0.0
lock k32w061+release (read/write) 684948 685124 176 0.0
.text 607164 607340 176 0.0
linux thermostat-no-ble arm64 (read only) 2592644 2592932 288 0.0
.rodata 165348 165412 64 0.0
.text 2187520 2187744 224 0.0
mbed lock-app CY8CPROTO_062_4343W+release (read/write) 2447488 2447680 192 0.0
.text 1410132 1410324 192 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 (read/write) 1174495 1174667 172 0.0
rodata 141776 141836 60 0.0
text 810916 811036 120 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 (read/write) 1154691 1154863 172 0.0
rodata 133308 133368 60 0.0
text 800360 800480 120 0.0
p6 all-clusters-app default (read/write) 2563896 2564136 240 0.0
.text 1522160 1522400 240 0.0
all-clusters-minimal-app default (read/write) 2508952 2509176 224 0.0
.text 1467216 1467440 224 0.0
light-app default (read/write) 2439240 2439472 232 0.0
.text 1397504 1397736 232 0.0
lock-app default (read/write) 2466496 2466720 224 0.0
.text 1424760 1424984 224 0.0
telink light-switch-app tlsr9518adk80d (read/write) 796628 796784 156 0.0
text 565128 565224 96 0.0
lighting-app tlsr9518adk80d (read/write) 816464 816620 156 0.0
text 581452 581548 96 0.0
Decreases (5 builds for cc13x2_26x2)
platform target config section 996f5f3 9f6b248 change % change
cc13x2_26x2 all-clusters-app LP_CC2652R7 (read/write) 185572 185420 -152 -0.1
lock-ftd LP_CC2652R7 (read/write) 172816 172664 -152 -0.1
pump-app LP_CC2652R7 (read/write) 164512 164336 -176 -0.1
pump-controller-app LP_CC2652R7 (read/write) 178808 178648 -160 -0.1
shell LP_CC2652R7 (read/write) 188576 188416 -160 -0.1
Full report (30 builds for cc13x2_26x2, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, p6, telink)
platform target config section 996f5f3 9f6b248 change % change
cc13x2_26x2 all-clusters-app LP_CC2652R7 (read only) 665651 665803 152 0.0
(read/write) 185572 185420 -152 -0.1
.bss 74116 74116 0 0.0
.data 3356 3356 0 0.0
.rodata 88067 88123 56 0.1
.text 577268 577364 96 0.0
all-clusters-minimal-app LP_CC2652R7 (read only) 631443 631611 168 0.0
(read/write) 157684 157684 0 0.0
.bss 73412 73412 0 0.0
.data 3356 3356 0 0.0
.rodata 77307 77363 56 0.1
.text 553812 553924 112 0.0
lock-ftd LP_CC2652R7 (read only) 668551 668703 152 0.0
(read/write) 172816 172664 -152 -0.1
.bss 71148 71148 0 0.0
.data 3280 3280 0 0.0
.rodata 76207 76263 56 0.1
.text 591864 591960 96 0.0
lock-mtd LP_CC2652R7 (read only) 617959 618111 152 0.0
(read/write) 144264 144264 0 0.0
.bss 66868 66868 0 0.0
.data 3280 3280 0 0.0
.rodata 76087 76143 56 0.1
.text 541384 541480 96 0.0
pump-app LP_CC2652R7 (read only) 677703 677879 176 0.0
(read/write) 164512 164336 -176 -0.1
.bss 71228 71228 0 0.0
.data 3280 3280 0 0.0
.rodata 88431 88495 64 0.1
.text 588788 588900 112 0.0
pump-controller-app LP_CC2652R7 (read only) 663527 663687 160 0.0
(read/write) 178808 178648 -160 -0.1
.bss 71348 71348 0 0.0
.data 3276 3276 0 0.0
.rodata 84295 84359 64 0.1
.text 578752 578848 96 0.0
shell LP_CC2652R7 (read only) 658150 658310 160 0.0
(read/write) 188576 188416 -160 -0.1
.bss 76420 76420 0 0.0
.data 3360 3360 0 0.0
.rodata 84846 84910 64 0.1
.text 572988 573084 96 0.0
cyw30739 light cyw930739m2evb_01 (read/write) 579134 579190 56 0.0
.app_xip_area 457904 457960 56 0.0
.bss 64184 64184 0 0.0
.data 716 716 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
lock cyw930739m2evb_01 (read/write) 585070 585126 56 0.0
.app_xip_area 459104 459160 56 0.0
.bss 68912 68912 0 0.0
.data 720 720 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
ota-requestor-no-progress-logging cyw930739m2evb_01 (read/write) 582206 582374 168 0.0
.app_xip_area 461824 461992 168 0.0
.bss 63392 63392 0 0.0
.data 660 660 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
efr32 lighting-app BRD4161A (read/write) 1080652 1080876 224 0.0
.bss 132996 132996 0 0.0
.data 2048 2048 0 0.0
.text 945588 945812 224 0.0
BRD4161A+rpc (read/write) 151948 1135204 983256 647.1
.bss 149676 149676 0 0.0
.data 2260 2260 0 0.0
.text 983032 983248 216 0.0
BRD4161A+rs911x (read/write) 946756 946956 200 0.0
.bss 140768 140768 0 0.0
.data 2048 2048 0 0.0
.text 803920 804120 200 0.0
lock-app BRD4161A+wf200 (read/write) 1127960 1128120 160 0.0
.bss 144184 144184 0 0.0
.data 2060 2060 0 0.0
.text 981692 981852 160 0.0
window-app BRD4161A (read/write) 1074436 1074660 224 0.0
.bss 134468 134468 0 0.0
.data 2076 2076 0 0.0
.text 937868 938092 224 0.0
esp32 all-clusters-app c3devkit (read only) 1019472 1019554 82 0.0
(read/write) 1485458 1485522 64 0.0
.dram0.bss 70080 70080 0 0.0
.dram0.data 14600 14600 0 0.0
.flash.rodata 215344 215408 64 0.0
.flash.text 1019472 1019554 82 0.0
.iram0.text 62902 62902 0 0.0
m5stack (read only) 1073383 1073467 84 0.0
(read/write) 487536 487592 56 0.0
.dram0.bss 75600 75600 0 0.0
.dram0.data 34144 34144 0 0.0
.flash.rodata 245796 245852 56 0.0
.flash.text 1067999 1068083 84 0.0
.iram0.text 123267 123267 0 0.0
k32w light k32w061+release (read/write) 658192 658288 96 0.0
.bss 69516 69516 0 0.0
.data 1992 1992 0 0.0
.text 580884 580980 96 0.0
lock k32w061+release (read/write) 684948 685124 176 0.0
.bss 69980 69980 0 0.0
.data 2004 2004 0 0.0
.text 607164 607340 176 0.0
linux chip-tool-no-interactive-ipv6only arm64 (read only) 9986740 9986740 0 0.0
(read/write) 683569 683569 0 0.0
.bss 42609 42609 0 0.0
.data 1152 1152 0 0.0
.data.rel.ro 622480 622480 0 0.0
.dynamic 528 528 0 0.0
.got 13512 13512 0 0.0
.init 24 24 0 0.0
.init_array 192 192 0 0.0
.rodata 475828 475828 0 0.0
.text 7952564 7952564 0 0.0
thermostat-no-ble arm64 (read only) 2592644 2592932 288 0.0
(read/write) 158289 158289 0 0.0
.bss 65249 65249 0 0.0
.data 1704 1704 0 0.0
.data.rel.ro 83240 83240 0 0.0
.dynamic 528 528 0 0.0
.got 5072 5072 0 0.0
.init 24 24 0 0.0
.init_array 400 400 0 0.0
.rodata 165348 165412 64 0.0
.text 2187520 2187744 224 0.0
mbed lock-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2447488 2447680 192 0.0
.bss 213940 213940 0 0.0
.data 5872 5872 0 0.0
.text 1410132 1410324 192 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 (read/write) 1174495 1174667 172 0.0
bss 142900 142900 0 0.0
rodata 141776 141836 60 0.0
text 810916 811036 120 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 (read/write) 1154691 1154863 172 0.0
bss 142136 142136 0 0.0
rodata 133308 133368 60 0.0
text 800360 800480 120 0.0
p6 all-clusters-app default (read/write) 2563896 2564136 240 0.0
.bss 149120 149120 0 0.0
.data 2776 2776 0 0.0
.text 1522160 1522400 240 0.0
all-clusters-minimal-app default (read/write) 2508952 2509176 224 0.0
.bss 148400 148400 0 0.0
.data 2776 2776 0 0.0
.text 1467216 1467440 224 0.0
light-app default (read/write) 2439240 2439472 232 0.0
.bss 140456 140456 0 0.0
.data 2592 2592 0 0.0
.text 1397504 1397736 232 0.0
lock-app default (read/write) 2466496 2466720 224 0.0
.bss 140304 140304 0 0.0
.data 2600 2600 0 0.0
.text 1424760 1424984 224 0.0
telink light-switch-app tlsr9518adk80d (read/write) 796628 796784 156 0.0
bss 70576 70576 0 0.0
noinit 40416 40416 0 0.0
text 565128 565224 96 0.0
lighting-app tlsr9518adk80d (read/write) 816464 816620 156 0.0
bss 71420 71420 0 0.0
noinit 40416 40416 0 0.0
text 581452 581548 96 0.0

@github-actions
Copy link

github-actions bot commented Jul 8, 2022

PR #20461: Size comparison from 996f5f3 to c893548

Increases above 0.2%:

platform target config section 996f5f3 c893548 change % change
efr32 lighting-app BRD4161A+rpc (read/write) 151948 1135060 983112 647.0
Increases (29 builds for cc13x2_26x2, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, p6, telink)
platform target config section 996f5f3 c893548 change % change
cc13x2_26x2 all-clusters-app LP_CC2652R7 (read only) 665651 665715 64 0.0
.text 577268 577332 64 0.0
all-clusters-minimal-app LP_CC2652R7 (read only) 631443 631523 80 0.0
.text 553812 553892 80 0.0
lock-ftd LP_CC2652R7 (read only) 668551 668615 64 0.0
.text 591864 591928 64 0.0
lock-mtd LP_CC2652R7 (read only) 617959 618023 64 0.0
.text 541384 541448 64 0.0
pump-app LP_CC2652R7 (read only) 677703 677767 64 0.0
.text 588788 588852 64 0.0
pump-controller-app LP_CC2652R7 (read only) 663527 663591 64 0.0
.text 578752 578816 64 0.0
shell LP_CC2652R7 (read only) 658150 658214 64 0.0
.text 572988 573052 64 0.0
cyw30739 light cyw930739m2evb_01 (read/write) 579134 579190 56 0.0
.app_xip_area 457904 457960 56 0.0
lock cyw930739m2evb_01 (read/write) 585070 585126 56 0.0
.app_xip_area 459104 459160 56 0.0
ota-requestor-no-progress-logging cyw930739m2evb_01 (read/write) 582206 582286 80 0.0
.app_xip_area 461824 461904 80 0.0
efr32 lighting-app BRD4161A (read/write) 1080652 1080748 96 0.0
.text 945588 945684 96 0.0
BRD4161A+rpc (read/write) 151948 1135060 983112 647.0
.text 983032 983104 72 0.0
BRD4161A+rs911x (read/write) 946756 946828 72 0.0
.text 803920 803992 72 0.0
lock-app BRD4161A+wf200 (read/write) 1127960 1128024 64 0.0
.text 981692 981756 64 0.0
window-app BRD4161A (read/write) 1074436 1074532 96 0.0
.text 937868 937964 96 0.0
esp32 all-clusters-app c3devkit (read only) 1019472 1019536 64 0.0
.flash.text 1019472 1019536 64 0.0
m5stack (read only) 1073383 1073439 56 0.0
.flash.text 1067999 1068055 56 0.0
k32w light k32w061+release (read/write) 658192 658256 64 0.0
.text 580884 580948 64 0.0
lock k32w061+release (read/write) 684948 685028 80 0.0
.text 607164 607244 80 0.0
linux thermostat-no-ble arm64 (read only) 2592644 2592836 192 0.0
.text 2187520 2187712 192 0.0
mbed lock-app CY8CPROTO_062_4343W+release (read/write) 2447488 2447552 64 0.0
.text 1410132 1410196 64 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 (read/write) 1174495 1174559 64 0.0
text 810916 810992 76 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 (read/write) 1154691 1154767 76 0.0
text 800360 800440 80 0.0
p6 all-clusters-app default (read/write) 2563896 2564008 112 0.0
.text 1522160 1522272 112 0.0
all-clusters-minimal-app default (read/write) 2508952 2509048 96 0.0
.text 1467216 1467312 96 0.0
light-app default (read/write) 2439240 2439344 104 0.0
.text 1397504 1397608 104 0.0
lock-app default (read/write) 2466496 2466592 96 0.0
.text 1424760 1424856 96 0.0
telink light-switch-app tlsr9518adk80d (read/write) 796628 796688 60 0.0
text 565128 565188 60 0.0
lighting-app tlsr9518adk80d (read/write) 816464 816524 60 0.0
text 581452 581514 62 0.0
Decreases (6 builds for cc13x2_26x2, nrfconnect)
platform target config section 996f5f3 c893548 change % change
cc13x2_26x2 all-clusters-app LP_CC2652R7 (read/write) 185572 185508 -64 -0.0
lock-ftd LP_CC2652R7 (read/write) 172816 172752 -64 -0.0
pump-app LP_CC2652R7 (read/write) 164512 164448 -64 -0.0
pump-controller-app LP_CC2652R7 (read/write) 178808 178744 -64 -0.0
shell LP_CC2652R7 (read/write) 188576 188512 -64 -0.0
nrfconnect all-clusters-minimal-app nrf52840dk_nrf52840 rodata 133308 133304 -4 -0.0
Full report (30 builds for cc13x2_26x2, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, p6, telink)
platform target config section 996f5f3 c893548 change % change
cc13x2_26x2 all-clusters-app LP_CC2652R7 (read only) 665651 665715 64 0.0
(read/write) 185572 185508 -64 -0.0
.bss 74116 74116 0 0.0
.data 3356 3356 0 0.0
.rodata 88067 88067 0 0.0
.text 577268 577332 64 0.0
all-clusters-minimal-app LP_CC2652R7 (read only) 631443 631523 80 0.0
(read/write) 157684 157684 0 0.0
.bss 73412 73412 0 0.0
.data 3356 3356 0 0.0
.rodata 77307 77307 0 0.0
.text 553812 553892 80 0.0
lock-ftd LP_CC2652R7 (read only) 668551 668615 64 0.0
(read/write) 172816 172752 -64 -0.0
.bss 71148 71148 0 0.0
.data 3280 3280 0 0.0
.rodata 76207 76207 0 0.0
.text 591864 591928 64 0.0
lock-mtd LP_CC2652R7 (read only) 617959 618023 64 0.0
(read/write) 144264 144264 0 0.0
.bss 66868 66868 0 0.0
.data 3280 3280 0 0.0
.rodata 76087 76087 0 0.0
.text 541384 541448 64 0.0
pump-app LP_CC2652R7 (read only) 677703 677767 64 0.0
(read/write) 164512 164448 -64 -0.0
.bss 71228 71228 0 0.0
.data 3280 3280 0 0.0
.rodata 88431 88431 0 0.0
.text 588788 588852 64 0.0
pump-controller-app LP_CC2652R7 (read only) 663527 663591 64 0.0
(read/write) 178808 178744 -64 -0.0
.bss 71348 71348 0 0.0
.data 3276 3276 0 0.0
.rodata 84295 84295 0 0.0
.text 578752 578816 64 0.0
shell LP_CC2652R7 (read only) 658150 658214 64 0.0
(read/write) 188576 188512 -64 -0.0
.bss 76420 76420 0 0.0
.data 3360 3360 0 0.0
.rodata 84846 84846 0 0.0
.text 572988 573052 64 0.0
cyw30739 light cyw930739m2evb_01 (read/write) 579134 579190 56 0.0
.app_xip_area 457904 457960 56 0.0
.bss 64184 64184 0 0.0
.data 716 716 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
lock cyw930739m2evb_01 (read/write) 585070 585126 56 0.0
.app_xip_area 459104 459160 56 0.0
.bss 68912 68912 0 0.0
.data 720 720 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
ota-requestor-no-progress-logging cyw930739m2evb_01 (read/write) 582206 582286 80 0.0
.app_xip_area 461824 461904 80 0.0
.bss 63392 63392 0 0.0
.data 660 660 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
efr32 lighting-app BRD4161A (read/write) 1080652 1080748 96 0.0
.bss 132996 132996 0 0.0
.data 2048 2048 0 0.0
.text 945588 945684 96 0.0
BRD4161A+rpc (read/write) 151948 1135060 983112 647.0
.bss 149676 149676 0 0.0
.data 2260 2260 0 0.0
.text 983032 983104 72 0.0
BRD4161A+rs911x (read/write) 946756 946828 72 0.0
.bss 140768 140768 0 0.0
.data 2048 2048 0 0.0
.text 803920 803992 72 0.0
lock-app BRD4161A+wf200 (read/write) 1127960 1128024 64 0.0
.bss 144184 144184 0 0.0
.data 2060 2060 0 0.0
.text 981692 981756 64 0.0
window-app BRD4161A (read/write) 1074436 1074532 96 0.0
.bss 134468 134468 0 0.0
.data 2076 2076 0 0.0
.text 937868 937964 96 0.0
esp32 all-clusters-app c3devkit (read only) 1019472 1019536 64 0.0
(read/write) 1485458 1485458 0 0.0
.dram0.bss 70080 70080 0 0.0
.dram0.data 14600 14600 0 0.0
.flash.rodata 215344 215344 0 0.0
.flash.text 1019472 1019536 64 0.0
.iram0.text 62902 62902 0 0.0
m5stack (read only) 1073383 1073439 56 0.0
(read/write) 487536 487536 0 0.0
.dram0.bss 75600 75600 0 0.0
.dram0.data 34144 34144 0 0.0
.flash.rodata 245796 245796 0 0.0
.flash.text 1067999 1068055 56 0.0
.iram0.text 123267 123267 0 0.0
k32w light k32w061+release (read/write) 658192 658256 64 0.0
.bss 69516 69516 0 0.0
.data 1992 1992 0 0.0
.text 580884 580948 64 0.0
lock k32w061+release (read/write) 684948 685028 80 0.0
.bss 69980 69980 0 0.0
.data 2004 2004 0 0.0
.text 607164 607244 80 0.0
linux chip-tool-no-interactive-ipv6only arm64 (read only) 9986740 9986740 0 0.0
(read/write) 683569 683569 0 0.0
.bss 42609 42609 0 0.0
.data 1152 1152 0 0.0
.data.rel.ro 622480 622480 0 0.0
.dynamic 528 528 0 0.0
.got 13512 13512 0 0.0
.init 24 24 0 0.0
.init_array 192 192 0 0.0
.rodata 475828 475828 0 0.0
.text 7952564 7952564 0 0.0
thermostat-no-ble arm64 (read only) 2592644 2592836 192 0.0
(read/write) 158289 158289 0 0.0
.bss 65249 65249 0 0.0
.data 1704 1704 0 0.0
.data.rel.ro 83240 83240 0 0.0
.dynamic 528 528 0 0.0
.got 5072 5072 0 0.0
.init 24 24 0 0.0
.init_array 400 400 0 0.0
.rodata 165348 165348 0 0.0
.text 2187520 2187712 192 0.0
mbed lock-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2447488 2447552 64 0.0
.bss 213940 213940 0 0.0
.data 5872 5872 0 0.0
.text 1410132 1410196 64 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 (read/write) 1174495 1174559 64 0.0
bss 142900 142900 0 0.0
rodata 141776 141776 0 0.0
text 810916 810992 76 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 (read/write) 1154691 1154767 76 0.0
bss 142136 142136 0 0.0
rodata 133308 133304 -4 -0.0
text 800360 800440 80 0.0
p6 all-clusters-app default (read/write) 2563896 2564008 112 0.0
.bss 149120 149120 0 0.0
.data 2776 2776 0 0.0
.text 1522160 1522272 112 0.0
all-clusters-minimal-app default (read/write) 2508952 2509048 96 0.0
.bss 148400 148400 0 0.0
.data 2776 2776 0 0.0
.text 1467216 1467312 96 0.0
light-app default (read/write) 2439240 2439344 104 0.0
.bss 140456 140456 0 0.0
.data 2592 2592 0 0.0
.text 1397504 1397608 104 0.0
lock-app default (read/write) 2466496 2466592 96 0.0
.bss 140304 140304 0 0.0
.data 2600 2600 0 0.0
.text 1424760 1424856 96 0.0
telink light-switch-app tlsr9518adk80d (read/write) 796628 796688 60 0.0
bss 70576 70576 0 0.0
noinit 40416 40416 0 0.0
text 565128 565188 60 0.0
lighting-app tlsr9518adk80d (read/write) 816464 816524 60 0.0
bss 71420 71420 0 0.0
noinit 40416 40416 0 0.0
text 581452 581514 62 0.0

@mrjerryjohns
Copy link
Contributor

mrjerryjohns commented Jul 8, 2022

Do you think it's worthwhile adding methods to DeviceCommissioner to UpdateNOC that will automatically handle the three stages of updating the NOC, releasing the operational proxy, and expiring the session on the controller? That would ensure a consistent state on both the commissioner and target in the way of valid CASE sessions, etc that clients don't have to get wrong.

@tcarmelveilleux
Copy link
Contributor Author

Do you think it's worthwhile adding methods to DeviceCommissioner to UpdateNOC that will automatically handle the three stages of updating the NOC, releasing the operational proxy, and expiring the session on the controller? That would ensure a consistent state on both the commissioner and target in the way of valid CASE sessions, etc that clients don't have to get wrong.

No, we should NOT do that, since there may be other constraints/reasons. The caller has the APIs they need to build.

@tcarmelveilleux tcarmelveilleux merged commit c3cd004 into project-chip:master Jul 8, 2022
github-actions bot pushed a commit that referenced this pull request Jul 8, 2022
* Fix UpdateNOC session invalidation and opcreds timing

- UpdateNOC did not clear session of previous fabric like spec intended
  (#20379)
- All OpCreds cluster slow commands did not try to early-ack to avoid
  MRP timeouts (#19132)

Fixes #20379
Fixes #19132

This PR:

- Fixes UpdateNOC expiring all sessions for the updated node
- Adds `FlushAcksRightAwayOnSlowCommand` to CommandHandler to flush acks
  on slow commands
- Adds Python tests for UpdateNOC behavior of session expiring
- Adds `ExpireSessions` to Python for testing

Testing done:

- Unit tests all pass
- Cert tests pass
- With the session clearing, previous Python tests failed, until
  I fixed them with the new `ExpireSessions` API
- Observed standalone acks immediately sent on opcreds cluster commands

* Restyled

* Removed leftover debug
andy31415 pushed a commit that referenced this pull request Jul 9, 2022
* Fix UpdateNOC session invalidation and opcreds timing

- UpdateNOC did not clear session of previous fabric like spec intended
  (#20379)
- All OpCreds cluster slow commands did not try to early-ack to avoid
  MRP timeouts (#19132)

Fixes #20379
Fixes #19132

This PR:

- Fixes UpdateNOC expiring all sessions for the updated node
- Adds `FlushAcksRightAwayOnSlowCommand` to CommandHandler to flush acks
  on slow commands
- Adds Python tests for UpdateNOC behavior of session expiring
- Adds `ExpireSessions` to Python for testing

Testing done:

- Unit tests all pass
- Cert tests pass
- With the session clearing, previous Python tests failed, until
  I fixed them with the new `ExpireSessions` API
- Observed standalone acks immediately sent on opcreds cluster commands

* Restyled

* Removed leftover debug

Co-authored-by: Tennessee Carmel-Veilleux <tennessee.carmelveilleux@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
4 participants