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 DecodeMRPParametersIfPresent() and ParseSigma1() methods static + fix for TLV reading corner case #36956

Open
wants to merge 7 commits into
base: master
Choose a base branch
from

Conversation

Alami-Amine
Copy link
Contributor

@Alami-Amine Alami-Amine commented Jan 3, 2025

Changes in the PR:

  1. decoupling DecodeMRPParametersIfPresent() from class state and making it static; this is needed to make the factored out TLV Parsing Functions in CASESession and PASESession self-contained and indepedent of class state.

  2. Fix for Corner Case in DecodeMRPParametersIfPresent: If the received TLV-encoded SessionParameters structure contains extra TLV elements not known by the receiver (newly added to the specification) but is not terminated with an EndOfContainer element, we must ENSURE that ExitContainer is called to ensure that an error is triggered.

  3. Added Unit Tests, which also covers above Corner case.

  4. Change the name of DecodeMRPParametersIfPresent() to DecodeSessionParametersIfPresent() since it is not ONLY decoding MRP but also other Session Parameters (I believe in Matter 1.2 Session Parameters only Included MRP hence the name?)

  5. Make ParseSigma1() static and completely self-contained.

Testing

  • Added a Unit Test

          So this is pre-existing, but it looks like the Sigma1 message is partially parsed into parsedSigma1 and partially into the `mRemoteSessionParams` member?

         Followup (do not do this in this PR): we should be passing a `SessionParameters &` to ParseSigma1, and I suspect that method should eventually become a static method that does not touch any class state at all.  There are other places where it does touch state right now, though...

Originally posted by @bzbarsky-apple in #36679 (comment)

Copy link

Review changes with  SemanticDiff

Copy link

github-actions bot commented Jan 3, 2025

PR #36956: Size comparison from 1b4c56c to 1e3e1a2

Full report (69 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, linux, nrfconnect, nxp, psoc6, qpg, stm32, telink, tizen)
platform target config section 1b4c56c 1e3e1a2 change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1354914 1355076 162 0.0
RAM 104160 104160 0 0.0
bl702 lighting-app bl702+eth FLASH 652136 652172 36 0.0
RAM 25353 25353 0 0.0
bl702+wifi FLASH 829740 829776 36 0.0
RAM 14093 14093 0 0.0
bl706+mfd+rpc+littlefs FLASH 1058212 1058248 36 0.0
RAM 23933 23933 0 0.0
bl702l lighting-app bl702l+mfd+littlefs FLASH 979330 979366 36 0.0
RAM 16596 16596 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 840208 840208 0 0.0
RAM 123696 123696 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 825748 825748 0 0.0
RAM 125584 125584 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 772568 772560 -8 -0.0
RAM 114060 114060 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 756748 756748 0 0.0
RAM 114260 114260 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 540049 540053 4 0.0
RAM 205800 205800 0 0.0
lock CC3235SF_LAUNCHXL FLASH 574217 574213 -4 -0.0
RAM 205944 205944 0 0.0
cyw30739 light CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 681745 681745 0 0.0
RAM 78756 78756 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 701597 701597 0 0.0
RAM 81396 81396 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 701597 701597 0 0.0
RAM 81396 81396 0 0.0
CYW930739M2EVB-02 unknown 2040 2040 0 0.0
FLASH 658525 658525 0 0.0
RAM 73824 73824 0 0.0
light-switch CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 618369 618369 0 0.0
RAM 71748 71748 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 637997 637997 0 0.0
RAM 74292 74292 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 637997 637997 0 0.0
RAM 74292 74292 0 0.0
lock CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 637769 637769 0 0.0
RAM 74756 74756 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 657477 657477 0 0.0
RAM 77300 77300 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 657477 657477 0 0.0
RAM 77300 77300 0 0.0
thermostat CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 614389 614389 0 0.0
RAM 68844 68844 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 634241 634241 0 0.0
RAM 71476 71476 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 634241 634241 0 0.0
RAM 71476 71476 0 0.0
efr32 lock-app BRD4187C FLASH 932676 932676 0 0.0
RAM 160228 160228 0 0.0
BRD4338a FLASH 747160 747184 24 0.0
RAM 233356 233356 0 0.0
window-app BRD4187C FLASH 1025592 1025624 32 0.0
RAM 128332 128332 0 0.0
esp32 all-clusters-app c3devkit DRAM 95352 95352 0 0.0
FLASH 1541940 1541978 38 0.0
IRAM 82552 82552 0 0.0
m5stack DRAM 116332 116332 0 0.0
FLASH 1548142 1548194 52 0.0
IRAM 117039 117039 0 0.0
linux air-purifier-app debug unknown 4752 4752 0 0.0
FLASH 2730137 2730271 134 0.0
RAM 133096 133096 0 0.0
all-clusters-app debug unknown 5560 5560 0 0.0
FLASH 6018726 6018868 142 0.0
RAM 524024 524024 0 0.0
all-clusters-minimal-app debug unknown 5456 5456 0 0.0
FLASH 5355204 5355346 142 0.0
RAM 243008 243008 0 0.0
bridge-app debug unknown 5472 5472 0 0.0
FLASH 4703618 4703760 142 0.0
RAM 221760 221760 0 0.0
chip-tool debug unknown 5992 5992 0 0.0
FLASH 12868552 12868694 142 0.0
RAM 582650 582650 0 0.0
chip-tool-ipv6only arm64 unknown 21408 21408 0 0.0
FLASH 10997296 10997344 48 0.0
RAM 633664 633664 0 0.0
fabric-admin debug unknown 5816 5816 0 0.0
FLASH 11274263 11274405 142 0.0
RAM 582994 582994 0 0.0
fabric-bridge-app debug unknown 4728 4728 0 0.0
FLASH 4528852 4528994 142 0.0
RAM 208880 208880 0 0.0
fabric-sync debug unknown 4968 4968 0 0.0
FLASH 5639429 5639573 144 0.0
RAM 475912 475912 0 0.0
lighting-app debug+rpc+ui unknown 6136 6136 0 0.0
FLASH 5639409 5639537 128 0.0
RAM 232008 232008 0 0.0
lock-app debug unknown 5408 5408 0 0.0
FLASH 4751986 4752128 142 0.0
RAM 208008 208008 0 0.0
ota-provider-app debug unknown 4768 4768 0 0.0
FLASH 4378612 4378754 142 0.0
RAM 201696 201696 0 0.0
ota-requestor-app debug unknown 4720 4720 0 0.0
FLASH 4517520 4517662 142 0.0
RAM 206280 206280 0 0.0
shell debug unknown 4248 4248 0 0.0
FLASH 3036685 3036829 144 0.0
RAM 160736 160736 0 0.0
thermostat-no-ble arm64 unknown 9584 9584 0 0.0
FLASH 4118968 4119016 48 0.0
RAM 246296 246296 0 0.0
tv-app debug unknown 5736 5736 0 0.0
FLASH 5988693 5988837 144 0.0
RAM 599344 599344 0 0.0
tv-casting-app debug unknown 5320 5320 0 0.0
FLASH 11094621 11094749 128 0.0
RAM 695608 695608 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 918100 918092 -8 -0.0
RAM 143332 143332 0 0.0
nrf7002dk_nrf5340_cpuapp FLASH 890592 890628 36 0.0
RAM 141519 141519 0 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 FLASH 852164 852156 -8 -0.0
RAM 142244 142244 0 0.0
nxp contact k32w0+release FLASH 585952 585952 0 0.0
RAM 71112 71112 0 0.0
mcxw71+release FLASH 600512 600504 -8 -0.0
RAM 63208 63208 0 0.0
light k32w0+release FLASH 612716 612700 -16 -0.0
RAM 70504 70504 0 0.0
k32w1+release FLASH 686920 686912 -8 -0.0
RAM 48840 48840 0 0.0
lock mcxw71+release FLASH 763264 763256 -8 -0.0
RAM 70876 70876 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1647500 1647516 16 0.0
RAM 212128 212128 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1555132 1555164 32 0.0
RAM 208944 208944 0 0.0
light cy8ckit_062s2_43012 FLASH 1470236 1470268 32 0.0
RAM 200912 200912 0 0.0
lock cy8ckit_062s2_43012 FLASH 1467956 1467988 32 0.0
RAM 225272 225272 0 0.0
qpg lighting-app qpg6105+debug FLASH 664328 664328 0 0.0
RAM 105456 105456 0 0.0
lock-app qpg6105+debug FLASH 622156 622156 0 0.0
RAM 99908 99908 0 0.0
stm32 light STM32WB5MM-DK FLASH 485080 485080 0 0.0
RAM 144912 144912 0 0.0
telink bridge-app tlsr9258a FLASH 683636 683674 38 0.0
RAM 91248 91248 0 0.0
contact-sensor-app tlsr9528a_retention FLASH 623876 623914 38 0.0
RAM 31488 31488 0 0.0
light-app-ota-compress-lzma-shell-factory-data tl3218x FLASH 772786 772824 38 0.0
RAM 49348 49348 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 711318 711356 38 0.0
RAM 73544 73544 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 628322 628360 38 0.0
RAM 142180 142180 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 814340 814378 38 0.0
RAM 99724 99724 0 0.0
tizen all-clusters-app arm unknown 5160 5160 0 0.0
FLASH 1780984 1780980 -4 -0.0
RAM 93684 93684 0 0.0
chip-tool-ubsan arm unknown 10848 10848 0 0.0
FLASH 18003494 18003142 -352 -0.0
RAM 7858000 7858040 40 0.0

@Alami-Amine Alami-Amine changed the title Aa/decode params Make DecodeMRPParametersIfPresent() and ParseSigma1() methods static Jan 3, 2025
@Alami-Amine Alami-Amine marked this pull request as ready for review January 3, 2025 17:26
outParsedSigma1.initiatorMrpParamsPresent = true;
ReturnErrorOnFailure(DecodeSessionParametersIfPresent(AsTlvContextTag(Sigma1Tags::kInitiatorSessionParams), tlvReader,
outParsedSigma1.initiatorSessionParams));
outParsedSigma1.initiatorSessionParamsPresent = true;
Copy link
Contributor

Choose a reason for hiding this comment

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

Should this also set outParsedSigma1.initiatorSessionParamsPresent to false if the params are not in fact present? Is it allowed to reuse a ParsedSigma1 for multiple calls to this function? Seems like the answers should be "yes" and "maybe" respectively....

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 believe that a certain instance of ParsedSigma1 will never be reused for another call to ParseSigma1(), since ParsedSigma1 is declared on the stack inside HandleSigma1() which only calls ParseSigma1() once, if we were to call HandleSigma1() again, an instance of ParsedSigma1 will have gone out of scope, or am I missing something?

Copy link
Contributor

@tehampson tehampson Jan 6, 2025

Choose a reason for hiding this comment

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

Should this also set outParsedSigma1.initiatorSessionParamsPresent to false if the params are not in fact present?

I am guessing we are setting this to true because if (err == CHIP_NO_ERROR && tlvReader.GetTag() == AsTlvContextTag(Sigma1Tags::kInitiatorSessionParams)). I guess the corner case is that the initiator set this to an empty struct. In this corner case is the logic of setting outParsedSigma1.initiatorSessionParamsPresent to true correct? If so maybe renaming initiatorSessionParamsPresent to initiatorSessionParamStructPresent or something to that affect.

Is it allowed to reuse a ParsedSigma1 for multiple calls to this function?

It looks like ParsedSigma1 is protected (private, but also accessible by test so protected)


Edit: For the first question there is also the corner case is that initiator set Sigma1Tags::kInitiatorSessionParams, but within that structure it has a field that something else doesn't understand (ie, new matter device communicating with older matter device that doesn't know about future parameters in the Session Params struct)

Copy link
Contributor

Choose a reason for hiding this comment

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

since ParsedSigma1 is declared on the stack inside HandleSigma1

But the whole point of a separate method like this is that it might be called from places that are not HandleSigma1, no? But if the intent is that callers must always use a fresh ParsedSigma1 when calling this function, that seems fine but should be documented.

Copy link
Contributor Author

@Alami-Amine Alami-Amine Jan 7, 2025

Choose a reason for hiding this comment

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

@bzbarsky-apple well the point of this method was mostly to improve testability. So all other callers will be Test Code, I assume we shouldn't make such a decision just for Test Code.
I added a note in the .h

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@tehampson

  1. a related question to your 1st Corner case: is it an issue if we set mRemoteSessionParams to empty parameters though? if it isn't, I agree to change to initiatorSessionParamStructPresent since its clearer

  2. corner case 2: I believe this is already handled within DecodeSessionParametersIfPresent() and improved with this PR: since if the old matter device receives an additional TLV element within the SessionParameters that it doesnt recognize: we would get CHIP_NO_ERROR at exit, and then we would call ExitContainer, and within ParseSigma1() that same sequence will happen. is that what you meant?

Copy link
Contributor

Choose a reason for hiding this comment

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

Essentially, today with your PR, both corner cases I mention do the same thing were it uses the default SessionParameter values. I don't have any strong opinions on this and am okay with how things are done in your PR. But we can technically detect the first one and return an error if we would like. This can also be done in a follow up PR is we are to head in that direction.

@bzbarsky-apple do you have an opinion on what should happen if the initiator has an empty struct (corner case 1?

Essentially my comment on the two corner cases was more a discussion of what should initiatorSessionParamPresent, or whatever we end up calling it, be set to and what are we trying to do with it. If in both the corner cases I am talking initiatorSessionParamPresent is set to true, then what you have done in the PR is correct. I only brought up the corner case because Boris was asking about when it should be set to false

src/protocols/secure_channel/PairingSession.h Outdated Show resolved Hide resolved
…nParameters struct has extra TLV elements that were added to the spec, Yet the TLV struct is not

terminated with an EndOfContainer Element.
In this Case, we should make sure that ExitContainer so that an Error is triggered.
@Alami-Amine Alami-Amine changed the title Make DecodeMRPParametersIfPresent() and ParseSigma1() methods static Make DecodeMRPParametersIfPresent() and ParseSigma1() methods static + fix for corner case Jan 6, 2025
Copy link

github-actions bot commented Jan 6, 2025

PR #36956: Size comparison from bba390a to 144b4c1

Full report (11 builds for cc13x4_26x4, cc32xx, qpg, stm32, tizen)
platform target config section bba390a 144b4c1 change % change
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 840208 840216 8 0.0
RAM 123696 123696 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 825748 825756 8 0.0
RAM 125584 125584 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 772568 772568 0 0.0
RAM 114060 114060 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 756748 756756 8 0.0
RAM 114260 114260 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 540049 540061 12 0.0
RAM 205800 205800 0 0.0
lock CC3235SF_LAUNCHXL FLASH 574217 574221 4 0.0
RAM 205944 205944 0 0.0
qpg lighting-app qpg6105+debug FLASH 664328 664336 8 0.0
RAM 105456 105456 0 0.0
lock-app qpg6105+debug FLASH 622156 622164 8 0.0
RAM 99908 99908 0 0.0
stm32 light STM32WB5MM-DK FLASH 485080 485088 8 0.0
RAM 144912 144912 0 0.0
tizen all-clusters-app arm unknown 5160 5160 0 0.0
FLASH 1780980 1781020 40 0.0
RAM 93684 93684 0 0.0
chip-tool-ubsan arm unknown 10848 10848 0 0.0
FLASH 18003494 18003214 -280 -0.0
RAM 7858000 7858060 60 0.0

Copy link

github-actions bot commented Jan 6, 2025

PR #36956: Size comparison from bba390a to d77c3ea

Full report (14 builds for cc13x4_26x4, cc32xx, nrfconnect, qpg, stm32, tizen)
platform target config section bba390a d77c3ea change % change
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 840208 840216 8 0.0
RAM 123696 123696 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 825748 825756 8 0.0
RAM 125584 125584 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 772568 772568 0 0.0
RAM 114060 114060 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 756748 756756 8 0.0
RAM 114260 114260 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 540049 540061 12 0.0
RAM 205800 205800 0 0.0
lock CC3235SF_LAUNCHXL FLASH 574217 574221 4 0.0
RAM 205944 205944 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 918100 918104 4 0.0
RAM 143332 143332 0 0.0
nrf7002dk_nrf5340_cpuapp FLASH 890592 890628 36 0.0
RAM 141519 141519 0 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 FLASH 852164 852168 4 0.0
RAM 142244 142244 0 0.0
qpg lighting-app qpg6105+debug FLASH 664328 664336 8 0.0
RAM 105456 105456 0 0.0
lock-app qpg6105+debug FLASH 622156 622164 8 0.0
RAM 99908 99908 0 0.0
stm32 light STM32WB5MM-DK FLASH 485080 485088 8 0.0
RAM 144912 144912 0 0.0
tizen all-clusters-app arm unknown 5160 5160 0 0.0
FLASH 1780980 1781020 40 0.0
RAM 93684 93684 0 0.0
chip-tool-ubsan arm unknown 10848 10848 0 0.0
FLASH 18003494 18003214 -280 -0.0
RAM 7858000 7858060 60 0.0

Copy link

github-actions bot commented Jan 6, 2025

PR #36956: Size comparison from bba390a to 4cdfd0f

Full report (69 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, linux, nrfconnect, nxp, psoc6, qpg, stm32, telink, tizen)
platform target config section bba390a 4cdfd0f change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1354914 1355082 168 0.0
RAM 104160 104160 0 0.0
bl702 lighting-app bl702+eth FLASH 652136 652146 10 0.0
RAM 25353 25353 0 0.0
bl702+wifi FLASH 829740 829750 10 0.0
RAM 14093 14093 0 0.0
bl706+mfd+rpc+littlefs FLASH 1058212 1058222 10 0.0
RAM 23933 23933 0 0.0
bl702l lighting-app bl702l+mfd+littlefs FLASH 979330 979340 10 0.0
RAM 16596 16596 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 840208 840216 8 0.0
RAM 123696 123696 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 825748 825756 8 0.0
RAM 125584 125584 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 772568 772568 0 0.0
RAM 114060 114060 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 756748 756756 8 0.0
RAM 114260 114260 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 540049 540061 12 0.0
RAM 205800 205800 0 0.0
lock CC3235SF_LAUNCHXL FLASH 574217 574221 4 0.0
RAM 205944 205944 0 0.0
cyw30739 light CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 681745 681753 8 0.0
RAM 78756 78756 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 701597 701605 8 0.0
RAM 81396 81396 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 701597 701605 8 0.0
RAM 81396 81396 0 0.0
CYW930739M2EVB-02 unknown 2040 2040 0 0.0
FLASH 658525 658533 8 0.0
RAM 73824 73824 0 0.0
light-switch CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 618369 618377 8 0.0
RAM 71748 71748 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 637997 638005 8 0.0
RAM 74292 74292 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 637997 638005 8 0.0
RAM 74292 74292 0 0.0
lock CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 637769 637777 8 0.0
RAM 74756 74756 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 657477 657485 8 0.0
RAM 77300 77300 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 657477 657485 8 0.0
RAM 77300 77300 0 0.0
thermostat CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 614389 614397 8 0.0
RAM 68844 68844 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 634241 634249 8 0.0
RAM 71476 71476 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 634241 634249 8 0.0
RAM 71476 71476 0 0.0
efr32 lock-app BRD4187C FLASH 932676 932676 0 0.0
RAM 160228 160228 0 0.0
BRD4338a FLASH 747160 747184 24 0.0
RAM 233356 233356 0 0.0
window-app BRD4187C FLASH 1025592 1025624 32 0.0
RAM 128332 128332 0 0.0
esp32 all-clusters-app c3devkit DRAM 95352 95352 0 0.0
FLASH 1541940 1541972 32 0.0
IRAM 82552 82552 0 0.0
m5stack DRAM 116332 116332 0 0.0
FLASH 1548142 1548186 44 0.0
IRAM 117039 117039 0 0.0
linux air-purifier-app debug unknown 4752 4752 0 0.0
FLASH 2730137 2730443 306 0.0
RAM 133096 133096 0 0.0
all-clusters-app debug unknown 5560 5560 0 0.0
FLASH 6018726 6019040 314 0.0
RAM 524024 524024 0 0.0
all-clusters-minimal-app debug unknown 5456 5456 0 0.0
FLASH 5355204 5355518 314 0.0
RAM 243008 243008 0 0.0
bridge-app debug unknown 5472 5472 0 0.0
FLASH 4703618 4703932 314 0.0
RAM 221760 221760 0 0.0
chip-tool debug unknown 5992 5992 0 0.0
FLASH 12868552 12868866 314 0.0
RAM 582650 582650 0 0.0
chip-tool-ipv6only arm64 unknown 21408 21408 0 0.0
FLASH 10997296 10997472 176 0.0
RAM 633664 633664 0 0.0
fabric-admin debug unknown 5816 5816 0 0.0
FLASH 11274263 11274577 314 0.0
RAM 582994 582994 0 0.0
fabric-bridge-app debug unknown 4728 4728 0 0.0
FLASH 4528852 4529166 314 0.0
RAM 208880 208880 0 0.0
fabric-sync debug unknown 4968 4968 0 0.0
FLASH 5639429 5639749 320 0.0
RAM 475912 475912 0 0.0
lighting-app debug+rpc+ui unknown 6136 6136 0 0.0
FLASH 5639409 5639713 304 0.0
RAM 232008 232008 0 0.0
lock-app debug unknown 5408 5408 0 0.0
FLASH 4751986 4752300 314 0.0
RAM 208008 208008 0 0.0
ota-provider-app debug unknown 4768 4768 0 0.0
FLASH 4378612 4378926 314 0.0
RAM 201696 201696 0 0.0
ota-requestor-app debug unknown 4720 4720 0 0.0
FLASH 4517520 4517834 314 0.0
RAM 206280 206280 0 0.0
shell debug unknown 4248 4248 0 0.0
FLASH 3036685 3036989 304 0.0
RAM 160736 160736 0 0.0
thermostat-no-ble arm64 unknown 9584 9584 0 0.0
FLASH 4118968 4119144 176 0.0
RAM 246296 246296 0 0.0
tv-app debug unknown 5736 5736 0 0.0
FLASH 5988693 5989013 320 0.0
RAM 599344 599344 0 0.0
tv-casting-app debug unknown 5320 5320 0 0.0
FLASH 11094621 11094925 304 0.0
RAM 695608 695608 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 918100 918104 4 0.0
RAM 143332 143332 0 0.0
nrf7002dk_nrf5340_cpuapp FLASH 890592 890628 36 0.0
RAM 141519 141519 0 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 FLASH 852164 852168 4 0.0
RAM 142244 142244 0 0.0
nxp contact k32w0+release FLASH 585952 585968 16 0.0
RAM 71112 71112 0 0.0
mcxw71+release FLASH 600512 600512 0 0.0
RAM 63208 63208 0 0.0
light k32w0+release FLASH 612716 612716 0 0.0
RAM 70504 70504 0 0.0
k32w1+release FLASH 686920 686920 0 0.0
RAM 48840 48840 0 0.0
lock mcxw71+release FLASH 763264 763264 0 0.0
RAM 70876 70876 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1647500 1647532 32 0.0
RAM 212128 212128 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1555132 1555164 32 0.0
RAM 208944 208944 0 0.0
light cy8ckit_062s2_43012 FLASH 1470236 1470268 32 0.0
RAM 200912 200912 0 0.0
lock cy8ckit_062s2_43012 FLASH 1467956 1468004 48 0.0
RAM 225272 225272 0 0.0
qpg lighting-app qpg6105+debug FLASH 664328 664336 8 0.0
RAM 105456 105456 0 0.0
lock-app qpg6105+debug FLASH 622156 622164 8 0.0
RAM 99908 99908 0 0.0
stm32 light STM32WB5MM-DK FLASH 485080 485088 8 0.0
RAM 144912 144912 0 0.0
telink bridge-app tlsr9258a FLASH 683636 683664 28 0.0
RAM 91248 91248 0 0.0
contact-sensor-app tlsr9528a_retention FLASH 623876 623904 28 0.0
RAM 31488 31488 0 0.0
light-app-ota-compress-lzma-shell-factory-data tl3218x FLASH 772786 772814 28 0.0
RAM 49348 49348 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 711318 711346 28 0.0
RAM 73544 73544 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 628322 628350 28 0.0
RAM 142180 142180 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 814340 814368 28 0.0
RAM 99724 99724 0 0.0
tizen all-clusters-app arm unknown 5160 5160 0 0.0
FLASH 1780980 1781020 40 0.0
RAM 93684 93684 0 0.0
chip-tool-ubsan arm unknown 10848 10848 0 0.0
FLASH 18003494 18003214 -280 -0.0
RAM 7858000 7858060 60 0.0

Copy link

github-actions bot commented Jan 7, 2025

PR #36956: Size comparison from bba390a to c6018c1

Full report (47 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, linux, nrfconnect, psoc6, qpg, stm32, telink, tizen)
platform target config section bba390a c6018c1 change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1354914 1355082 168 0.0
RAM 104160 104160 0 0.0
bl702 lighting-app bl702+eth FLASH 652136 652146 10 0.0
RAM 25353 25353 0 0.0
bl702+wifi FLASH 829740 829750 10 0.0
RAM 14093 14093 0 0.0
bl706+mfd+rpc+littlefs FLASH 1058212 1058222 10 0.0
RAM 23933 23933 0 0.0
bl702l lighting-app bl702l+mfd+littlefs FLASH 979330 979340 10 0.0
RAM 16596 16596 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 840208 840216 8 0.0
RAM 123696 123696 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 825748 825756 8 0.0
RAM 125584 125584 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 772568 772568 0 0.0
RAM 114060 114060 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 756748 756756 8 0.0
RAM 114260 114260 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 540049 540061 12 0.0
RAM 205800 205800 0 0.0
lock CC3235SF_LAUNCHXL FLASH 574217 574221 4 0.0
RAM 205944 205944 0 0.0
cyw30739 light CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 681745 681753 8 0.0
RAM 78756 78756 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 701597 701605 8 0.0
RAM 81396 81396 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 701597 701605 8 0.0
RAM 81396 81396 0 0.0
CYW930739M2EVB-02 unknown 2040 2040 0 0.0
FLASH 658525 658533 8 0.0
RAM 73824 73824 0 0.0
light-switch CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 618369 618377 8 0.0
RAM 71748 71748 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 637997 638005 8 0.0
RAM 74292 74292 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 637997 638005 8 0.0
RAM 74292 74292 0 0.0
lock CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 637769 637777 8 0.0
RAM 74756 74756 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 657477 657485 8 0.0
RAM 77300 77300 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 657477 657485 8 0.0
RAM 77300 77300 0 0.0
thermostat CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 614389 614397 8 0.0
RAM 68844 68844 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 634241 634249 8 0.0
RAM 71476 71476 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 634241 634249 8 0.0
RAM 71476 71476 0 0.0
efr32 lock-app BRD4187C FLASH 932676 932676 0 0.0
RAM 160228 160228 0 0.0
BRD4338a FLASH 747160 747184 24 0.0
RAM 233356 233356 0 0.0
window-app BRD4187C FLASH 1025592 1025624 32 0.0
RAM 128332 128332 0 0.0
linux chip-tool-ipv6only arm64 unknown 21408 21408 0 0.0
FLASH 10997296 10997472 176 0.0
RAM 633664 633664 0 0.0
thermostat-no-ble arm64 unknown 9584 9584 0 0.0
FLASH 4118968 4119144 176 0.0
RAM 246296 246296 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 918100 918104 4 0.0
RAM 143332 143332 0 0.0
nrf7002dk_nrf5340_cpuapp FLASH 890592 890628 36 0.0
RAM 141519 141519 0 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 FLASH 852164 852168 4 0.0
RAM 142244 142244 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1647500 1647532 32 0.0
RAM 212128 212128 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1555132 1555164 32 0.0
RAM 208944 208944 0 0.0
light cy8ckit_062s2_43012 FLASH 1470236 1470268 32 0.0
RAM 200912 200912 0 0.0
lock cy8ckit_062s2_43012 FLASH 1467956 1468004 48 0.0
RAM 225272 225272 0 0.0
qpg lighting-app qpg6105+debug FLASH 664328 664336 8 0.0
RAM 105456 105456 0 0.0
lock-app qpg6105+debug FLASH 622156 622164 8 0.0
RAM 99908 99908 0 0.0
stm32 light STM32WB5MM-DK FLASH 485080 485088 8 0.0
RAM 144912 144912 0 0.0
telink bridge-app tlsr9258a FLASH 683636 683664 28 0.0
RAM 91248 91248 0 0.0
contact-sensor-app tlsr9528a_retention FLASH 623876 623904 28 0.0
RAM 31488 31488 0 0.0
light-app-ota-compress-lzma-shell-factory-data tl3218x FLASH 772786 772814 28 0.0
RAM 49348 49348 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 711318 711346 28 0.0
RAM 73544 73544 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 628322 628350 28 0.0
RAM 142180 142180 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 814340 814368 28 0.0
RAM 99724 99724 0 0.0
tizen all-clusters-app arm unknown 5160 5160 0 0.0
FLASH 1780980 1781020 40 0.0
RAM 93684 93684 0 0.0
chip-tool-ubsan arm unknown 10848 10848 0 0.0
FLASH 18003494 18003214 -280 -0.0
RAM 7858000 7858060 60 0.0

@Alami-Amine Alami-Amine changed the title Make DecodeMRPParametersIfPresent() and ParseSigma1() methods static + fix for corner case Make DecodeMRPParametersIfPresent() and ParseSigma1() methods static + fix for TLV reading corner case Jan 7, 2025
Copy link

github-actions bot commented Jan 7, 2025

PR #36956: Size comparison from bba390a to a50db92

Full report (69 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, linux, nrfconnect, nxp, psoc6, qpg, stm32, telink, tizen)
platform target config section bba390a a50db92 change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1354914 1355082 168 0.0
RAM 104160 104160 0 0.0
bl702 lighting-app bl702+eth FLASH 652136 652146 10 0.0
RAM 25353 25353 0 0.0
bl702+wifi FLASH 829740 829750 10 0.0
RAM 14093 14093 0 0.0
bl706+mfd+rpc+littlefs FLASH 1058212 1058222 10 0.0
RAM 23933 23933 0 0.0
bl702l lighting-app bl702l+mfd+littlefs FLASH 979330 979340 10 0.0
RAM 16596 16596 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 840208 840216 8 0.0
RAM 123696 123696 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 825748 825756 8 0.0
RAM 125584 125584 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 772568 772568 0 0.0
RAM 114060 114060 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 756748 756756 8 0.0
RAM 114260 114260 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 540049 540061 12 0.0
RAM 205800 205800 0 0.0
lock CC3235SF_LAUNCHXL FLASH 574217 574221 4 0.0
RAM 205944 205944 0 0.0
cyw30739 light CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 681745 681753 8 0.0
RAM 78756 78756 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 701597 701605 8 0.0
RAM 81396 81396 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 701597 701605 8 0.0
RAM 81396 81396 0 0.0
CYW930739M2EVB-02 unknown 2040 2040 0 0.0
FLASH 658525 658533 8 0.0
RAM 73824 73824 0 0.0
light-switch CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 618369 618377 8 0.0
RAM 71748 71748 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 637997 638005 8 0.0
RAM 74292 74292 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 637997 638005 8 0.0
RAM 74292 74292 0 0.0
lock CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 637769 637777 8 0.0
RAM 74756 74756 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 657477 657485 8 0.0
RAM 77300 77300 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 657477 657485 8 0.0
RAM 77300 77300 0 0.0
thermostat CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 614389 614397 8 0.0
RAM 68844 68844 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 634241 634249 8 0.0
RAM 71476 71476 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 634241 634249 8 0.0
RAM 71476 71476 0 0.0
efr32 lock-app BRD4187C FLASH 932676 932676 0 0.0
RAM 160228 160228 0 0.0
BRD4338a FLASH 747160 747184 24 0.0
RAM 233356 233356 0 0.0
window-app BRD4187C FLASH 1025592 1025624 32 0.0
RAM 128332 128332 0 0.0
esp32 all-clusters-app c3devkit DRAM 95352 95352 0 0.0
FLASH 1541940 1541988 48 0.0
IRAM 82552 82552 0 0.0
m5stack DRAM 116332 116332 0 0.0
FLASH 1548142 1548202 60 0.0
IRAM 117039 117039 0 0.0
linux air-purifier-app debug unknown 4752 4752 0 0.0
FLASH 2730137 2730443 306 0.0
RAM 133096 133096 0 0.0
all-clusters-app debug unknown 5560 5560 0 0.0
FLASH 6018726 6019040 314 0.0
RAM 524024 524024 0 0.0
all-clusters-minimal-app debug unknown 5456 5456 0 0.0
FLASH 5355204 5355518 314 0.0
RAM 243008 243008 0 0.0
bridge-app debug unknown 5472 5472 0 0.0
FLASH 4703618 4703932 314 0.0
RAM 221760 221760 0 0.0
chip-tool debug unknown 5992 5992 0 0.0
FLASH 12868552 12868866 314 0.0
RAM 582650 582650 0 0.0
chip-tool-ipv6only arm64 unknown 21408 21408 0 0.0
FLASH 10997296 10997472 176 0.0
RAM 633664 633664 0 0.0
fabric-admin debug unknown 5816 5816 0 0.0
FLASH 11274263 11274577 314 0.0
RAM 582994 582994 0 0.0
fabric-bridge-app debug unknown 4728 4728 0 0.0
FLASH 4528852 4529166 314 0.0
RAM 208880 208880 0 0.0
fabric-sync debug unknown 4968 4968 0 0.0
FLASH 5639429 5639749 320 0.0
RAM 475912 475912 0 0.0
lighting-app debug+rpc+ui unknown 6136 6136 0 0.0
FLASH 5639409 5639713 304 0.0
RAM 232008 232008 0 0.0
lock-app debug unknown 5408 5408 0 0.0
FLASH 4751986 4752300 314 0.0
RAM 208008 208008 0 0.0
ota-provider-app debug unknown 4768 4768 0 0.0
FLASH 4378612 4378926 314 0.0
RAM 201696 201696 0 0.0
ota-requestor-app debug unknown 4720 4720 0 0.0
FLASH 4517520 4517834 314 0.0
RAM 206280 206280 0 0.0
shell debug unknown 4248 4248 0 0.0
FLASH 3036685 3036989 304 0.0
RAM 160736 160736 0 0.0
thermostat-no-ble arm64 unknown 9584 9584 0 0.0
FLASH 4118968 4119144 176 0.0
RAM 246296 246296 0 0.0
tv-app debug unknown 5736 5736 0 0.0
FLASH 5988693 5989013 320 0.0
RAM 599344 599344 0 0.0
tv-casting-app debug unknown 5320 5320 0 0.0
FLASH 11094621 11094925 304 0.0
RAM 695608 695608 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 918100 918104 4 0.0
RAM 143332 143332 0 0.0
nrf7002dk_nrf5340_cpuapp FLASH 890592 890628 36 0.0
RAM 141519 141519 0 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 FLASH 852164 852168 4 0.0
RAM 142244 142244 0 0.0
nxp contact k32w0+release FLASH 585952 585968 16 0.0
RAM 71112 71112 0 0.0
mcxw71+release FLASH 600512 600512 0 0.0
RAM 63208 63208 0 0.0
light k32w0+release FLASH 612716 612716 0 0.0
RAM 70504 70504 0 0.0
k32w1+release FLASH 686920 686920 0 0.0
RAM 48840 48840 0 0.0
lock mcxw71+release FLASH 763264 763264 0 0.0
RAM 70876 70876 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1647500 1647532 32 0.0
RAM 212128 212128 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1555132 1555164 32 0.0
RAM 208944 208944 0 0.0
light cy8ckit_062s2_43012 FLASH 1470236 1470268 32 0.0
RAM 200912 200912 0 0.0
lock cy8ckit_062s2_43012 FLASH 1467956 1468004 48 0.0
RAM 225272 225272 0 0.0
qpg lighting-app qpg6105+debug FLASH 664328 664336 8 0.0
RAM 105456 105456 0 0.0
lock-app qpg6105+debug FLASH 622156 622164 8 0.0
RAM 99908 99908 0 0.0
stm32 light STM32WB5MM-DK FLASH 485080 485088 8 0.0
RAM 144912 144912 0 0.0
telink bridge-app tlsr9258a FLASH 683636 683664 28 0.0
RAM 91248 91248 0 0.0
contact-sensor-app tlsr9528a_retention FLASH 623876 623904 28 0.0
RAM 31488 31488 0 0.0
light-app-ota-compress-lzma-shell-factory-data tl3218x FLASH 772786 772814 28 0.0
RAM 49348 49348 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 711318 711346 28 0.0
RAM 73544 73544 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 628322 628350 28 0.0
RAM 142180 142180 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 814340 814368 28 0.0
RAM 99724 99724 0 0.0
tizen all-clusters-app arm unknown 5160 5160 0 0.0
FLASH 1780980 1781020 40 0.0
RAM 93684 93684 0 0.0
chip-tool-ubsan arm unknown 10848 10848 0 0.0
FLASH 18003494 18003214 -280 -0.0
RAM 7858000 7858060 60 0.0

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