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

Cherry-pick TC-RR-1.1 (and dependencies) in SVE2 branch #22076

Closed

Conversation

tcarmelveilleux
Copy link
Contributor

Problem

  • TC-RR-1.1 is a mandatory test for SVE2. It must be pushable to SVE image

Fixes #21736

Change overview

  • This PR cherry-picks the 3 commits needed to run TC-RR-1.1 in SVE2 branch

Testing

  • TC-RR-1.1 passes against chip-all-clusters-app Linux on sve2 branch with this PR, and against master as well

mrjerryjohns and others added 3 commits August 22, 2022 10:38
* CertificateAuthority + Manager support in Python

This shifts the logic in the existing FabricAdmin that manages a given
Root CA to its own CertificateAuthority class. This now permits a more
spec-aligned structure that has a CertificateAuthorityManager that
manages a set of CertificateAuthority instances, each associated with a
single Root PK. Each of those manages a list of FabricAdmins
adminstering a fabric within that CA, which in turn manage a list of
ChipDeviceController instances within that fabric.

These now permit passing in separate PersistentStorage instances so that
it is more flexible/easier to sand-box each CA's storage constructs,
which makes it easier to integrate with chip-tool's INI files.

The PersistentStorage construct has been updated to permit both storage
to file as well as just a 'soft' cache.

* Review feedback
* Python CAT Value support for Controllers

* Review feedback
* Introduce initial TC-RR-1.1

- TC-RR-1.1 is a critical test to validate multi-fabric
  behavior is stable and actually works. The test, broadly,
  validates most of the minimas of the core elements of the spec,
  including ACL entries, certificate sizes, number of CASE
  sessions and subscriptions, number of paths, etc.

Issue project-chip#21736

- This PR introduces the core test and all associated minor
  changes to infrastructure to make it work.
- Still TODO:
  - More extensive cert size maximization (closer to 400 TLV bytes)
  - Add controller and commissionee CAT tags (test is 95% equivalent
    to test plan, but a couple ACL fields differ because of this, in
    ways that don't detract from proving what needs proving
  - Validation that local/peer session IDs have not changed. This is
    not technically needed with the SDK as-is based on the methodology
    but it would future-proof the test against some future optimizations
    that may change subscription behavior in a way that the test would
    not validate CASE sessions remain.
  - Clean-up more after the test, so that a factory reset before/after
    is not needed.

Testing done:
- Passes on Linux against all-clusters, all-clusters-minimal and
  lighting app, with both minimal mdns and Avahi.
- Passes on some other platforms (not named here)

To run within SDK (from scratch: the build steps can be skipped thereafter):

- In one terminal:
  - Build chip-lighting-app linux
  - `clear && rm -f kvs1 && out/debug/standalone/chip-lighting-app --discriminator 1234 --KVS kvs1 --trace_decode 1`

- In another terminal:
  - Build
    - `rm -rf out/python*`
    - `scripts/build_python.sh -m platform -i separate`
  - Run
    - `source ./out/python_env/bin/activate`
    - `python3 src/python_testing/TC_RR_1_1.py --commissioning-method on-network --long-discriminator 1234 --passcode 20202021`
      - Add `--bool-arg skip_user_label_cluster_steps:true` to the end of the command line
        if your DUT has broken UserLabel clusters (but if you have those, fix them :)

* More work towards CAT tags

* Address review comments

* Fixed CAT tag testing

* Update src/controller/python/chip/utils/CommissioningBuildingBlocks.py

Co-authored-by: Jerry Johns <[email protected]>
@@ -358,6 +358,12 @@ CHIP_ERROR CHIPCommand::InitializeCommissioner(std::string key, chip::FabricId f
// store the credentials in persistent storage, and
// generate when not available in the storage.
ReturnLogErrorOnFailure(mCommissionerStorage.Init(key.c_str()));
if (mUseMaxSizedCerts.HasValue())
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Hold-off on merging this PR until we have tested docker image.

@github-actions
Copy link

github-actions bot commented Aug 22, 2022

PR #22076: Size comparison from 5471b35 to cb23aaa

Increases above 0.2%:

platform target config section 5471b35 cb23aaa change % change
linux tv-app debug (read only) 3173737 3181353 7616 0.2
.text 2725138 2732690 7552 0.3
tv-casting-app debug (read only) 5454273 5489665 35392 0.6
.text 4840402 4875218 34816 0.7
Increases (8 builds for bl602, cyw30739, linux, telink)
platform target config section 5471b35 cb23aaa change % change
bl602 lighting-app bl602+rpc .text 1082792 1082796 4 0.0
cyw30739 ota-requestor-no-progress-logging cyw930739m2evb_01 (read/write) 599018 599026 8 0.0
.app_xip_area 476372 476380 8 0.0
linux chip-tool debug (read only) 10856377 10864665 8288 0.1
(read/write) 650880 650912 32 0.0
.data.rel.ro 615864 615896 32 0.0
.rodata 562229 562453 224 0.0
.text 8788404 8796372 7968 0.1
chip-tool-ipv6only arm64 (read only) 10245244 10248412 3168 0.0
(read/write) 698689 698721 32 0.0
.data.rel.ro 643392 643424 32 0.0
.rodata 492924 493148 224 0.0
.text 8115220 8118068 2848 0.0
tv-app debug (read only) 3173737 3181353 7616 0.2
.rodata 258856 258920 64 0.0
.text 2725138 2732690 7552 0.3
tv-casting-app debug (read only) 5454273 5489665 35392 0.6
(read/write) 160048 160112 64 0.0
.bss 51448 51480 32 0.1
.data.rel.ro 99736 99768 32 0.0
.rodata 343217 343697 480 0.1
.text 4840402 4875218 34816 0.7
telink light-switch-app tlsr9518adk80d (read/write) 808800 808808 8 0.0
text 571346 571350 4 0.0
lighting-app tlsr9518adk80d (read/write) 830736 830744 8 0.0
text 589436 589438 2 0.0
Full report (43 builds for bl602, cc13x2_26x2, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, p6, telink)
platform target config section 5471b35 cb23aaa change % change
bl602 lighting-app bl602 (read/write) 1383882 1383882 0 0.0
.bss 120290 120290 0 0.0
.data 4480 4480 0 0.0
.text 1051036 1051036 0 0.0
bl602+rpc (read/write) 1429394 1429394 0 0.0
.bss 127730 127730 0 0.0
.data 4600 4600 0 0.0
.text 1082792 1082796 4 0.0
cc13x2_26x2 all-clusters-app LP_CC2652R7 (read only) 672379 672379 0 0.0
(read/write) 179132 179132 0 0.0
.bss 74404 74404 0 0.0
.data 3372 3372 0 0.0
.rodata 88747 88747 0 0.0
.text 583316 583316 0 0.0
all-clusters-minimal-app LP_CC2652R7 (read only) 637763 637763 0 0.0
(read/write) 157980 157980 0 0.0
.bss 73692 73692 0 0.0
.data 3372 3372 0 0.0
.rodata 77979 77979 0 0.0
.text 559460 559460 0 0.0
lock-ftd LP_CC2652R7 (read only) 674095 674095 0 0.0
(read/write) 167632 167632 0 0.0
.bss 71508 71508 0 0.0
.data 3296 3296 0 0.0
.rodata 76671 76671 0 0.0
.text 596944 596944 0 0.0
lock-mtd LP_CC2652R7 (read only) 656839 656839 0 0.0
(read/write) 180576 180576 0 0.0
.bss 67196 67196 0 0.0
.data 3296 3296 0 0.0
.rodata 101759 101759 0 0.0
.text 554600 554600 0 0.0
pump-app LP_CC2652R7 (read only) 684767 684767 0 0.0
(read/write) 157768 157768 0 0.0
.bss 71548 71548 0 0.0
.data 3296 3296 0 0.0
.rodata 89959 89959 0 0.0
.text 594324 594324 0 0.0
pump-controller-app LP_CC2652R7 (read only) 669259 669259 0 0.0
(read/write) 173396 173396 0 0.0
.bss 71668 71668 0 0.0
.data 3292 3292 0 0.0
.rodata 85515 85515 0 0.0
.text 583264 583264 0 0.0
shell LP_CC2652R7 (read only) 665062 665062 0 0.0
(read/write) 181968 181968 0 0.0
.bss 76724 76724 0 0.0
.data 3376 3376 0 0.0
.rodata 85694 85694 0 0.0
.text 579052 579052 0 0.0
cyw30739 light cyw930739m2evb_01 (read/write) 586070 586070 0 0.0
.app_xip_area 462704 462704 0 0.0
.bss 65800 65800 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) 591886 591886 0 0.0
.app_xip_area 463736 463736 0 0.0
.bss 70584 70584 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) 599018 599026 8 0.0
.app_xip_area 476372 476380 8 0.0
.bss 65112 65112 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) 1101124 1101124 0 0.0
.bss 133404 133404 0 0.0
.data 2068 2068 0 0.0
.text 965628 965628 0 0.0
BRD4161A+rpc (read/write) 1155392 1155392 0 0.0
.bss 150092 150092 0 0.0
.data 2280 2280 0 0.0
.text 1003000 1003000 0 0.0
BRD4161A+rs911x (read/write) 990264 990264 0 0.0
.bss 162728 162728 0 0.0
.data 2056 2056 0 0.0
.text 825460 825460 0 0.0
lock-app BRD4161A+wf200 (read/write) 1139828 1139828 0 0.0
.bss 145904 145904 0 0.0
.data 2064 2064 0 0.0
.text 991840 991840 0 0.0
window-app BRD4161A (read/write) 1092580 1092580 0 0.0
.bss 134844 134844 0 0.0
.data 2096 2096 0 0.0
.text 955620 955620 0 0.0
esp32 all-clusters-app c3devkit (read only) 1029982 1029982 0 0.0
(read/write) 1488674 1488674 0 0.0
.dram0.bss 70864 70864 0 0.0
.dram0.data 14600 14600 0 0.0
.flash.rodata 217776 217776 0 0.0
.flash.text 1029982 1029982 0 0.0
.iram0.text 62902 62902 0 0.0
m5stack (read only) 1083331 1083331 0 0.0
(read/write) 490632 490632 0 0.0
.dram0.bss 76376 76376 0 0.0
.dram0.data 34144 34144 0 0.0
.flash.rodata 248116 248116 0 0.0
.flash.text 1077947 1077947 0 0.0
.iram0.text 123267 123267 0 0.0
k32w light k32w0+release (read/write) 645476 645476 0 0.0
.bss 70232 70232 0 0.0
.data 2044 2044 0 0.0
.text 570472 570472 0 0.0
lock k32w0+release (read/write) 703028 703028 0 0.0
.bss 70704 70704 0 0.0
.data 2052 2052 0 0.0
.text 627544 627544 0 0.0
linux all-clusters-app debug (read only) 3034081 3034081 0 0.0
(read/write) 155920 155920 0 0.0
.bss 61888 61888 0 0.0
.data 2096 2096 0 0.0
.data.rel.ro 85560 85560 0 0.0
.dynamic 608 608 0 0.0
.got 4568 4568 0 0.0
.init 27 27 0 0.0
.init_array 1160 1160 0 0.0
.rodata 274443 274443 0 0.0
.text 2580562 2580562 0 0.0
all-clusters-minimal-app debug (read only) 2873937 2873937 0 0.0
(read/write) 147624 147624 0 0.0
.bss 61152 61152 0 0.0
.data 2064 2064 0 0.0
.data.rel.ro 78120 78120 0 0.0
.dynamic 608 608 0 0.0
.got 4488 4488 0 0.0
.init 27 27 0 0.0
.init_array 1152 1152 0 0.0
.rodata 274635 274635 0 0.0
.text 2422930 2422930 0 0.0
bridge-app debug+rpc (read only) 2372777 2372777 0 0.0
(read/write) 127584 127584 0 0.0
.bss 50656 50656 0 0.0
.data 3600 3600 0 0.0
.data.rel.ro 67464 67464 0 0.0
.dynamic 608 608 0 0.0
.got 4392 4392 0 0.0
.init 27 27 0 0.0
.init_array 824 824 0 0.0
.rodata 203432 203432 0 0.0
.text 2006722 2006722 0 0.0
chip-tool debug (read only) 10856377 10864665 8288 0.1
(read/write) 650880 650912 32 0.0
.bss 25240 25240 0 0.0
.data 3266 3266 0 0.0
.data.rel.ro 615864 615896 32 0.0
.dynamic 608 608 0 0.0
.got 5096 5096 0 0.0
.init 27 27 0 0.0
.init_array 768 768 0 0.0
.rodata 562229 562453 224 0.0
.text 8788404 8796372 7968 0.1
chip-tool-ipv6only arm64 (read only) 10245244 10248412 3168 0.0
(read/write) 698689 698721 32 0.0
.bss 33297 33297 0 0.0
.data 3272 3272 0 0.0
.data.rel.ro 643392 643424 32 0.0
.dynamic 560 560 0 0.0
.got 13768 13768 0 0.0
.init 24 24 0 0.0
.init_array 192 192 0 0.0
.rodata 492924 493148 224 0.0
.text 8115220 8118068 2848 0.0
lighting-app debug+rpc (read only) 2596777 2596777 0 0.0
(read/write) 130176 130176 0 0.0
.bss 49760 49760 0 0.0
.data 2096 2096 0 0.0
.data.rel.ro 72360 72360 0 0.0
.dynamic 608 608 0 0.0
.got 4392 4392 0 0.0
.init 27 27 0 0.0
.init_array 920 920 0 0.0
.rodata 220208 220208 0 0.0
.text 2205858 2205858 0 0.0
lock-app debug (read only) 2580689 2580689 0 0.0
(read/write) 125512 125512 0 0.0
.bss 48288 48288 0 0.0
.data 1712 1712 0 0.0
.data.rel.ro 69512 69512 0 0.0
.dynamic 608 608 0 0.0
.got 4464 4464 0 0.0
.init 27 27 0 0.0
.init_array 896 896 0 0.0
.rodata 237264 237264 0 0.0
.text 2176770 2176770 0 0.0
ota-provider-app debug (read only) 2357849 2357849 0 0.0
(read/write) 118976 118976 0 0.0
.bss 47808 47808 0 0.0
.data 1936 1936 0 0.0
.data.rel.ro 63336 63336 0 0.0
.dynamic 608 608 0 0.0
.got 4488 4488 0 0.0
.init 27 27 0 0.0
.init_array 760 760 0 0.0
.rodata 209240 209240 0 0.0
.text 1985138 1985138 0 0.0
ota-requestor-app debug (read only) 2523049 2523049 0 0.0
(read/write) 127320 127320 0 0.0
.bss 50336 50336 0 0.0
.data 2304 2304 0 0.0
.data.rel.ro 68728 68728 0 0.0
.dynamic 608 608 0 0.0
.got 4480 4480 0 0.0
.init 27 27 0 0.0
.init_array 848 848 0 0.0
.rodata 216000 216000 0 0.0
.text 2134482 2134482 0 0.0
shell debug (read only) 2602369 2602369 0 0.0
(read/write) 142040 142040 0 0.0
.bss 57800 57800 0 0.0
.data 1264 1264 0 0.0
.data.rel.ro 77160 77160 0 0.0
.dynamic 608 608 0 0.0
.got 4136 4136 0 0.0
.init 27 27 0 0.0
.init_array 1032 1032 0 0.0
.rodata 234546 234546 0 0.0
.text 2209474 2209474 0 0.0
thermostat-no-ble arm64 (read only) 2356996 2356996 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 140524 140524 0 0.0
.text 1978752 1978752 0 0.0
tv-app debug (read only) 3173737 3181353 7616 0.2
(read/write) 257968 257968 0 0.0
.bss 167480 167480 0 0.0
.data 4736 4736 0 0.0
.data.rel.ro 79184 79184 0 0.0
.dynamic 608 608 0 0.0
.got 4856 4856 0 0.0
.init 27 27 0 0.0
.init_array 1072 1072 0 0.0
.rodata 258856 258920 64 0.0
.text 2725138 2732690 7552 0.3
tv-casting-app debug (read only) 5454273 5489665 35392 0.6
(read/write) 160048 160112 64 0.0
.bss 51448 51480 32 0.1
.data 2432 2432 0 0.0
.data.rel.ro 99736 99768 32 0.0
.dynamic 608 608 0 0.0
.got 4776 4776 0 0.0
.init 27 27 0 0.0
.init_array 1040 1040 0 0.0
.rodata 343217 343697 480 0.1
.text 4840402 4875218 34816 0.7
mbed lock-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2454328 2454328 0 0.0
.bss 215076 215076 0 0.0
.data 5872 5872 0 0.0
.text 1416972 1416972 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 (read/write) 1180067 1180067 0 0.0
bss 143759 143759 0 0.0
rodata 143268 143268 0 0.0
text 814084 814084 0 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 (read/write) 1159927 1159927 0 0.0
bss 142996 142996 0 0.0
rodata 134944 134944 0 0.0
text 803072 803072 0 0.0
p6 all-clusters-app default (read only) 880984 880984 0 0.0
(read/write) 1699348 1699348 0 0.0
.bss 149704 149704 0 0.0
.data 2656 2656 0 0.0
.text 1538600 1538600 0 0.0
all-clusters-minimal-app default (read only) 881704 881704 0 0.0
(read/write) 1643356 1643356 0 0.0
.bss 148984 148984 0 0.0
.data 2656 2656 0 0.0
.text 1483328 1483328 0 0.0
light-app default (read only) 890048 890048 0 0.0
(read/write) 1560644 1560644 0 0.0
.bss 140848 140848 0 0.0
.data 2448 2448 0 0.0
.text 1408960 1408960 0 0.0
lock-app default (read only) 885552 885552 0 0.0
(read/write) 1597924 1597924 0 0.0
.bss 145328 145328 0 0.0
.data 2464 2464 0 0.0
.text 1441744 1441744 0 0.0
telink light-switch-app tlsr9518adk80d (read/write) 808800 808808 8 0.0
bss 71480 71480 0 0.0
noinit 43488 43488 0 0.0
text 571346 571350 4 0.0
lighting-app tlsr9518adk80d (read/write) 830736 830744 8 0.0
bss 72336 72336 0 0.0
noinit 43488 43488 0 0.0
text 589436 589438 2 0.0

@stale
Copy link

stale bot commented Aug 31, 2022

This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs.

@stale stale bot added the stale Stale issue or PR label Aug 31, 2022
@andy31415
Copy link
Contributor

No need for this in SVE branch at this time.

@andy31415 andy31415 closed this Sep 7, 2022
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.

3 participants