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

[IM] Add empty command Support[TE3] #6989

Closed

Conversation

erjiaqing
Copy link
Contributor

@erjiaqing erjiaqing commented May 20, 2021

Problem

We don't have support for empty command body / status code only in IM.

Summary of Changes

  • Add support to empty command support per spec(See tests below)
  • Update command codegen
  • Adjust some error code

Tests

$ chip-device-ctrl
CHIP:CTL: SyncSetKeyValue on ExampleOpCredsCAKey
CHIP:IN: TransportMgr initialized
CHIP:DIS: Init admin pairing table with server storage.
CHIP:IN: local node id is 0x000000000001b669
CHIP:ZCL: Using ZAP configuration...
CHIP:ZCL: deactivate report event
CHIP:CTL: Getting operational keys
CHIP:CTL: Generating operational certificate for the controller
CHIP:CTL: Getting root certificate for the controller from the issuer
CHIP:CTL: SyncSetKeyValue on CHIPAdmin0
CHIP:CTL: Generating credentials
CHIP:CTL: Loaded credentials successfully
CHIP:DL: CHIP task running
CHIP:DL: Platform main loop started.
Chip Device Controller Shell

chip-device-ctrl > connect -ip 172.16.243.173 20202021 1
Device is assigned with nodeid = 1
CHIP:BLE: Assigned local session key ID 0
CHIP:BLE: Sent PBKDF param request
CHIP:CTL: SyncSetKeyValue on StartKeyID
CHIP:EM: Received message of type 33 and protocolId 0
CHIP:BLE: Received PBKDF param response
CHIP:BLE: Sent spake2p msg1
CHIP:EM: Received message of type 35 and protocolId 0
CHIP:BLE: Received spake2p msg2
CHIP:BLE: Peer assigned session key ID 0
CHIP:BLE: Sent spake2p msg3
CHIP:IN: New pairing for device 0x0000000000000001, key 0!!
CHIP:CTL: Remote device completed SPAKE2+ handshake

CHIP:CTL: Sending OpCSR request to 0x1f5f3f0 device
CHIP:DMG: ICR moving to [Initialize]
CHIP:DMG: ICR moving to [AddCommand]
CHIP:IN: Secure message was encrypted: Msg ID 1
CHIP:IN: Sending msg from 0x000000000001b669 to 0x0000000000000001 at utc time: 279380120 msec
CHIP:IN: Sending secure msg on generic transport
CHIP:IN: Secure msg send status No Error
CHIP:DMG: ICR moving to [   Sending]
CHIP:CTL: Sent OpCSR request, waiting for the CSR
CHIP:IN: Secure transport received message destined to node ID (112233)
CHIP:IN: Setting fabricID 1 on admin.
CHIP:IN: Since admin was modified, persisting changes to KVS
CHIP:CTL: SyncSetKeyValue on CHIPAdmin0
CHIP:EM: Received message of type 9 and protocolId 327680
CHIP:DMG: InvokeCommand =
CHIP:DMG: {
CHIP:DMG:       CommandList =
CHIP:DMG:       [
CHIP:DMG:               CommandDataElement =
CHIP:DMG:               {
CHIP:DMG:                       CommandPath =
CHIP:DMG:                       {
CHIP:DMG:                               EndpointId = 0x0,
CHIP:DMG:                               ClusterId = 0x3e,
CHIP:DMG:                               CommandId = 0x5,
CHIP:DMG:                       },
CHIP:DMG: 
CHIP:DMG:                       CommandData = 
CHIP:DMG:                       {
CHIP:DMG:                               0x0 = [
CHIP:DMG:                                       0x30, 0x81, 0xc9, 0x30, 0x70, 0x2, 0x1, 0x0, 0x30, 0xe, 0x31, 0xc, 0x30, 0xa, 0x6, 0x3, 0x55, 0x4, 0xa, 0xc, 0x3, 0x43, 0x53, 0x52, 0x30, 0x59, 0x30, 0x13, 0x6, 0x7, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x2, 0x1, 0x6, 0x8, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x3,
CHIP:DMG:                       ]
CHIP:DMG:                               0x1 = [
CHIP:DMG:                                       0x3d, 0x8f, 0xc7, 0x26, 0xfa, 0x79, 0x9e, 0x5e, 0x84, 0xca, 0x74, 0xd9, 0x2f, 0xc7, 0x8b, 0xb7, 0xe, 0x30, 0x88, 0xd3, 0x17, 0x96, 0x2c, 0x88, 0x3d, 0xaf, 0xd1, 0xeb, 0xfd, 0x2f, 0xdd, 0x25, 
CHIP:DMG:                       ]
CHIP:DMG:                               0x2 = [
CHIP:DMG: 
CHIP:DMG:                       ]
CHIP:DMG:                               0x3 = [
CHIP:DMG: 
CHIP:DMG:                       ]
CHIP:DMG:                               0x4 = [
CHIP:DMG: 
CHIP:DMG:                       ]
CHIP:DMG:                               0x5 = [
CHIP:DMG: 
CHIP:DMG:                       ]
CHIP:DMG:                       },
CHIP:DMG:               },
CHIP:DMG: 
CHIP:DMG:       ],
CHIP:DMG: 
CHIP:DMG: }
CHIP:ZCL: Received Cluster Command: Cluster=3e Command=5 Endpoint=0

Note command specified response command still contains path

CHIP:ZCL: OpCSRResponse:
CHIP:ZCL:   CSR: 204
CHIP:ZCL:   CSRNonce: 32
CHIP:ZCL:   VendorReserved1: 0
CHIP:ZCL:   VendorReserved2: 0
CHIP:ZCL:   VendorReserved3: 0
CHIP:ZCL:   Signature: 0
CHIP:CTL: Received certificate signing request from the device
CHIP:CTL: Generating operational certificate for device 1
CHIP:CTL: Getting intermediate CA certificate from the issuer
CHIP:CTL: GetIntermediateCACertificate returned 4190
CHIP:CTL: Intermediate CA is not needed
CHIP:CTL: Sending operational certificate to the device. Op Cert Len 253, ICA Cert Len 0
CHIP:DMG: ICR moving to [Initialize]
CHIP:DMG: ICR moving to [AddCommand]
CHIP:IN: Secure message was encrypted: Msg ID 2
CHIP:IN: Sending msg from 0x000000000001b669 to 0x0000000000000001 at utc time: 279380135 msec
CHIP:IN: Sending secure msg on generic transport
CHIP:IN: Secure msg send status No Error
CHIP:DMG: ICR moving to [   Sending]
CHIP:CTL: Sent operational certificate to the device
CHIP:EM: Sending Standalone Ack for MsgId:00000001
CHIP:IN: Secure message was encrypted: Msg ID 3
CHIP:IN: Sending msg from 0x000000000001b669 to 0x0000000000000001 at utc time: 279380135 msec
CHIP:IN: Sending secure msg on generic transport
CHIP:IN: Secure msg send status No Error
CHIP:EM: Flushed pending ack for MsgId:00000001
CHIP:ZCL: DefaultResponse:
CHIP:ZCL:   Transaction: 0x7f091b8ec5c8
CHIP:ZCL:   status: EMBER_ZCL_STATUS_SUCCESS (0x00)
CHIP:ZCL: emberAfDefaultResponseCallback: Missing success callback
CHIP:ZCL: emberAfDefaultResponseCallback: Missing failure callback
CHIP:DMG: ICR moving to [Uninitiali]
CHIP:IN: Secure transport received message destined to node ID (112233)
CHIP:EM: Received message of type 9 and protocolId 327680
CHIP:DMG: InvokeCommand =
CHIP:DMG: {
CHIP:DMG:       CommandList =
CHIP:DMG:       [
CHIP:DMG:               CommandDataElement =
CHIP:DMG:               {
CHIP:DMG:                       StatusElement =
CHIP:DMG:                       {
CHIP:DMG:                               GeneralCode = 0x0,
CHIP:DMG:                               ProtocolId = 0x5,
CHIP:DMG:                               protocolCode = 0x0,
CHIP:DMG:                       },
CHIP:DMG: 
CHIP:DMG:               },
CHIP:DMG: 
CHIP:DMG:       ],
CHIP:DMG: 
CHIP:DMG: }

Note this command element no longer contains path

SetCommandIndexStatus commandHandle=139677093775096 commandIndex=1
CHIP:EM: Sending Standalone Ack for MsgId:00000002
CHIP:IN: Secure message was encrypted: Msg ID 4
CHIP:IN: Sending msg from 0x000000000001b669 to 0x0000000000000001 at utc time: 279380139 msec
CHIP:IN: Sending secure msg on generic transport
CHIP:IN: Secure msg send status No Error
CHIP:EM: Flushed pending ack for MsgId:00000002
CHIP:ZCL: DefaultResponse:
CHIP:ZCL:   Transaction: 0x7f091b8ec6f8
CHIP:ZCL:   status: EMBER_ZCL_STATUS_SUCCESS (0x00)
CHIP:CTL: Device confirmed that it has received the operational certificate
CHIP:CTL: Sending root certificate to the device
CHIP:DMG: ICR moving to [Initialize]
CHIP:DMG: ICR moving to [AddCommand]
CHIP:IN: Secure message was encrypted: Msg ID 5
CHIP:IN: Sending msg from 0x000000000001b669 to 0x0000000000000001 at utc time: 279380139 msec
CHIP:IN: Sending secure msg on generic transport
CHIP:IN: Secure msg send status No Error
CHIP:DMG: ICR moving to [   Sending]
CHIP:CTL: Sent root certificate to the device
CHIP:DMG: ICR moving to [Uninitiali]
CHIP:IN: Secure transport received message destined to node ID (112233)
CHIP:EM: Received message of type 9 and protocolId 327680
CHIP:DMG: InvokeCommand =
CHIP:DMG: {
CHIP:DMG:       CommandList =
CHIP:DMG:       [
CHIP:DMG:               CommandDataElement =
CHIP:DMG:               {
CHIP:DMG:                       StatusElement =
CHIP:DMG:                       {
CHIP:DMG:                               GeneralCode = 0x0,
CHIP:DMG:                               ProtocolId = 0x5,
CHIP:DMG:                               protocolCode = 0x0,
CHIP:DMG:                       },
CHIP:DMG: 
CHIP:DMG:               },
CHIP:DMG: 
CHIP:DMG:       ],
CHIP:DMG: 
CHIP:DMG: }

Note this command element no longer contains path

SetCommandIndexStatus commandHandle=139677093774792 commandIndex=1
CHIP:EM: Sending Standalone Ack for MsgId:00000003
CHIP:IN: Secure message was encrypted: Msg ID 6
CHIP:IN: Sending msg from 0x000000000001b669 to 0x0000000000000001 at utc time: 279380143 msec
CHIP:IN: Sending secure msg on generic transport
CHIP:IN: Secure msg send status No Error
CHIP:EM: Flushed pending ack for MsgId:00000003
CHIP:ZCL: DefaultResponse:
CHIP:ZCL:   Transaction: 0x7f091b8ec5c8
CHIP:ZCL:   status: EMBER_ZCL_STATUS_SUCCESS (0x00)
CHIP:CTL: Device confirmed that it has received the root certificate
CHIP:CTL: Operational credentials provisioned on device 0x1f5f3f0
CHIP:CTL: SyncSetKeyValue on PairedDevice1
CHIP:CTL: SyncSetKeyValue on ListPairedDevices0
CHIP:CTL: SyncSetKeyValue on StartKeyID
Secure Session to Device Established
CHIP:DMG: ICR moving to [Uninitiali]
Device temporary node id (**this does not match spec**): 1
chip-device-ctrl > zcl OnOff On 1 1 0
CHIP:DMG: ICR moving to [Initialize]
CHIP:DMG: ICR moving to [AddCommand]
CHIP:IN: Connection from 'UDP:172.16.243.173:11097' expired
CHIP:CTL: OnConnectionExpired was called for unknown device, ignoring it.
CHIP:IN: New pairing for device 0x0000000000000001, key 0!!
CHIP:IN: Secure message was encrypted: Msg ID 1
CHIP:IN: Sending msg from 0x000000000001b669 to 0x0000000000000001 at utc time: 279386910 msec
CHIP:IN: Sending secure msg on generic transport
CHIP:IN: Secure msg send status No Error
CHIP:DMG: ICR moving to [   Sending]
CHIP:IN: Secure transport received message destined to node ID (112233)
CHIP:EM: Received message of type 9 and protocolId 327680
CHIP:DMG: InvokeCommand =
CHIP:DMG: {
CHIP:DMG:       CommandList =
CHIP:DMG:       [
CHIP:DMG:               CommandDataElement =
CHIP:DMG:               {
CHIP:DMG:                       StatusElement =
CHIP:DMG:                       {
CHIP:DMG:                               GeneralCode = 0x0,
CHIP:DMG:                               ProtocolId = 0x5,
CHIP:DMG:                               protocolCode = 0x0,
CHIP:DMG:                       },
CHIP:DMG: 
CHIP:DMG:               },
CHIP:DMG: 
CHIP:DMG:       ],
CHIP:DMG: 
CHIP:DMG: }

Note this command element no longer contains path

SetCommandIndexStatus commandHandle=139677093774792 commandIndex=1
CHIP:EM: Sending Standalone Ack for MsgId:00000004
CHIP:IN: Secure message was encrypted: Msg ID 2
CHIP:IN: Sending msg from 0x000000000001b669 to 0x0000000000000001 at utc time: 279386913 msec
CHIP:IN: Sending secure msg on generic transport
CHIP:IN: Secure msg send status No Error
CHIP:EM: Flushed pending ack for MsgId:00000004
CHIP:ZCL: DefaultResponse:
CHIP:ZCL:   Transaction: 0x7f091b8ec5c8
CHIP:ZCL:   status: EMBER_ZCL_STATUS_SUCCESS (0x00)
CHIP:ZCL: emberAfDefaultResponseCallback: Missing success callback
CHIP:ZCL: emberAfDefaultResponseCallback: Missing failure callback
CHIP:DMG: ICR moving to [Uninitiali]
Received command status response:
Container: 
    GeneralCode = 0
    ProtocolId = 5
    ProtocolCode = 0
    CommandIndex = 1
chip-device-ctrl > zcl OnOff On 1 0 0
CHIP:DMG: ICR moving to [Initialize]
CHIP:DMG: ICR moving to [AddCommand]
CHIP:IN: Secure message was encrypted: Msg ID 3
CHIP:IN: Sending msg from 0x000000000001b669 to 0x0000000000000001 at utc time: 279405629 msec
CHIP:IN: Sending secure msg on generic transport
CHIP:IN: Secure msg send status No Error
CHIP:DMG: ICR moving to [   Sending]
CHIP:IN: Secure transport received message destined to node ID (112233)
CHIP:EM: Received message of type 9 and protocolId 327680
CHIP:DMG: InvokeCommand =
CHIP:DMG: {
CHIP:DMG:       CommandList =
CHIP:DMG:       [
CHIP:DMG:               CommandDataElement =
CHIP:DMG:               {
CHIP:DMG:                       StatusElement =
CHIP:DMG:                       {
CHIP:DMG:                               GeneralCode = 0xc,
CHIP:DMG:                               ProtocolId = 0x0,
CHIP:DMG:                               protocolCode = 0xffff,
CHIP:DMG:                       },
CHIP:DMG: 
CHIP:DMG:               },
CHIP:DMG: 
CHIP:DMG:       ],
CHIP:DMG: 
CHIP:DMG: }

Note this command element no longer contains path

SetCommandIndexStatus commandHandle=139677093774792 commandIndex=1
CHIP:ZCL: DefaultResponse:
CHIP:ZCL:   Transaction: 0x7f091b8ec5c8
CHIP:ZCL:   status: EMBER_ZCL_STATUS_FAILURE (0x01)
CHIP:ZCL: emberAfDefaultResponseCallback: Missing success callback
CHIP:ZCL: emberAfDefaultResponseCallback: Missing failure callback
CHIP:EM: Sending Standalone Ack for MsgId:00000005
CHIP:IN: Secure message was encrypted: Msg ID 4
CHIP:IN: Sending msg from 0x000000000001b669 to 0x0000000000000001 at utc time: 279405634 msec
CHIP:IN: Sending secure msg on generic transport
CHIP:IN: Secure msg send status No Error
CHIP:EM: Flushed pending ack for MsgId:00000005
CHIP:ZCL: DefaultResponse:
CHIP:ZCL:   Transaction: 0x7f091b8ec5c8
CHIP:ZCL:   status: EMBER_ZCL_STATUS_SUCCESS (0x00)
CHIP:ZCL: emberAfDefaultResponseCallback: Missing success callback
CHIP:ZCL: emberAfDefaultResponseCallback: Missing failure callback
Received command status response:
CHIP:DMG: ICR moving to [Uninitiali]
Container: 
    GeneralCode = 12
    ProtocolId = 0
    ProtocolCode = 65535
    CommandIndex = 1
chip-device-ctrl > 

Device side:

...
CHIP:DMG: ICR moving to [Initialize]
CHIP:DMG: InvokeCommand =                    
CHIP:DMG: {                      
CHIP:DMG:       CommandList =                                                                    
CHIP:DMG:       [                                                                                
CHIP:DMG:               CommandDataElement =                                                     
CHIP:DMG:               {         
CHIP:DMG:                       CommandPath =
CHIP:DMG:                       {             
CHIP:DMG:                               EndpointId = 0x1,                                        
CHIP:DMG:                               ClusterId = 0x6,                                         
CHIP:DMG:                               CommandId = 0x1,                                                                                                                                           
CHIP:DMG:                       },                                                                                                                                                                 
CHIP:DMG:                           
CHIP:DMG:               },                     
CHIP:DMG:                                                                                        
CHIP:DMG:       ],                                                                               
CHIP:DMG:                               
CHIP:DMG: }                         
CHIP:DMG: Received empty command for cluster 6
CHIP:ZCL: Received Cluster Command: Cluster=6 Command=1 Endpoint=1          
CHIP:ZCL: On/Off set value: 1 1                                                                  
CHIP:ZCL: Toggle on/off from 0 to 1                                                                                                                                                                
CHIP:DMG: ICR moving to [AddCommand]
....

Note it does not contains command body

Fixes #6988

@yunhanw-google yunhanw-google changed the title [IM] Add empty command Support [IM] Add empty command Support[TE3] May 20, 2021
Copy link
Contributor

@yunhanw-google yunhanw-google left a comment

Choose a reason for hiding this comment

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

Just run the technical review, it looks good to me, thanks to add this support

src/app/CommandSender.cpp Outdated Show resolved Hide resolved
src/app/CommandSender.cpp Outdated Show resolved Hide resolved
@erjiaqing erjiaqing force-pushed the error-on-invalid-endpoint branch from cbf47fb to 5b47041 Compare May 20, 2021 07:37
@pullapprove pullapprove bot requested review from chrisdecenzo and jelderton May 20, 2021 07:44
@@ -84,5 +86,11 @@ void ResetEmberAfObjects()
}

} // namespace Compatibility

CHIP_ERROR CheckIfClusterCommandExists(chip::ClusterId aClusterId, chip::CommandId aCommandId, chip::EndpointId aEndPointId)
Copy link
Contributor

Choose a reason for hiding this comment

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

This method doesn't seem to do what it claims to do. Are you going to change it in the future? If so, please add some "TODO" comment.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Added a TODO comment.
@mrjerryjohns I remembered that your design for Command dispatch / Encoding covered this part (Endpoint - Cluster - Command catalog)?

@erjiaqing erjiaqing force-pushed the error-on-invalid-endpoint branch from 1350bee to 61c3244 Compare May 20, 2021 14:42
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.

The commit message for the first commit doesn't make sense. What does "cluster not enabled on cluster" mean?

More generally, I don't understand what this is trying to implement. CommandStatusIB absolutely contains a path in the spec. Is this trying to implement a StatusResponse response instead of an InvokeResponse? Or something else? Please clearly explain in the commit message what is actually being done here, in terms of the spec.

And this needs tests.

chip::app::CommandPathParams returnStatusParam = { imCompatibilityEmberApsFrame.sourceEndpoint,
chip::app::CommandPathParams returnStatusParam = { imCompatibilityEmberApsFrame.destinationEndpoint,
Copy link
Contributor

Choose a reason for hiding this comment

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

This change doesn't look right... Why is it being made?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Just for this change: the imCompatibilityEmberApsFrame refers to the ApsFrame struct we built for ember command handlers.
In zigbee, the commands have "Source Endpoint", and in CHIP we no longer have it (see above, the source endpoint is fixed to 1). So the destinationEndpoint here refers to the endpoint on the server, which matches the spec -- the endpoint where this status comes from.


CHIP_ERROR CheckIfClusterCommandExists(chip::ClusterId aClusterId, chip::CommandId aCommandId, chip::EndpointId aEndPointId)
{
return emberAfContainsServerWithMfgCode(aEndPointId, aClusterId, 0x0) ? CHIP_NO_ERROR : CHIP_ERROR_INVALID_PROFILE_ID;
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
return emberAfContainsServerWithMfgCode(aEndPointId, aClusterId, 0x0) ? CHIP_NO_ERROR : CHIP_ERROR_INVALID_PROFILE_ID;
return emberAfContainsServer(aEndPointId, aClusterId) ? CHIP_NO_ERROR : CHIP_ERROR_INVALID_PROFILE_ID;

@bzbarsky-apple
Copy link
Contributor

One other thing: The encoding spec currently has InvokeRequestMessage take an "Array of CommandDataElement", with CommandDataElement being either Data or StatusCode. This doesn't match how InvokeRequest actually works in the interaction model, afaict; it can never have StatusCode there. The encoding spec is pretty far off here and needs to be fixed.

For InvokeResponse, there can be a status, but that status includes a path in the IM spec (see CommandStatusIB), if we get far enough that we are actually ending up with an InvokeResponse at all.

@erjiaqing erjiaqing force-pushed the error-on-invalid-endpoint branch from 61c3244 to 27b8b5c Compare May 20, 2021 16:07
erjiaqing added 3 commits May 21, 2021 00:13
The current code may return wrong success or unexpected error code when
one cluster is not enabled on endpoint, this commit added a function
thay will query cluster from ember cluster catalog, the function will be
replaced by cluster catalog.
@erjiaqing erjiaqing force-pushed the error-on-invalid-endpoint branch from 27b8b5c to 0a70d55 Compare May 20, 2021 16:13
@yunhanw-google
Copy link
Contributor

considering there is spec conflict between IM data model spec and IM encoding spec, we would not merge this PR, and would file the ticket in spec side

@erjiaqing
Copy link
Contributor Author

As the first PR is bug fix only and not related to spec, it is submitted as seperate PR: #7002

@erjiaqing erjiaqing closed this May 20, 2021
@github-actions
Copy link

Size increase report for "nrfconnect-example-build" from dfb2285

File Section File VM
chip-lock.elf bss 0 32
chip-lock.elf device_handles -4 -4
chip-lock.elf rodata -16 -16
chip-lock.elf text -220 -220
Full report output
BLOAT REPORT

Files found only in the build output:
    report.csv

Comparing ./master_artifact/chip-lock.elf and ./pull_artifact/chip-lock.elf:

sections,vmsize,filesize
.debug_str,0,138
.strtab,0,91
.symtab,0,48
bss,32,0
.debug_frame,0,12
.debug_aranges,0,8
.shstrtab,0,1
device_handles,-4,-4
rodata,-16,-16
.debug_abbrev,0,-64
text,-220,-220
.debug_ranges,0,-480
.debug_line,0,-554
.debug_loc,0,-1510
.debug_info,0,-2198

Comparing ./master_artifact/chip-shell.elf and ./pull_artifact/chip-shell.elf:

sections,vmsize,filesize


@github-actions
Copy link

Size increase report for "esp32-example-build" from dfb2285

File Section File VM
chip-all-clusters-app.elf .dram0.bss 0 32
chip-all-clusters-app.elf .flash.rodata -8 -8
chip-all-clusters-app.elf .flash.text -1332 -1332
Full report output
BLOAT REPORT

Files found only in the build output:
    report.csv

Comparing ./master_artifact/chip-pigweed-app.elf and ./pull_artifact/chip-pigweed-app.elf:

sections,vmsize,filesize

Comparing ./master_artifact/chip-all-clusters-app.elf and ./pull_artifact/chip-all-clusters-app.elf:

sections,vmsize,filesize
.strtab,0,355
.debug_str,0,138
.symtab,0,64
.debug_frame,0,48
.dram0.bss,32,0
.debug_aranges,0,16
[Unmapped],0,8
.shstrtab,0,1
.xt.prop._ZTVN4chip11DeviceLayer37DeviceNetworkProvisioningDelegateImplE,0,-1
.flash.rodata,-8,-8
.debug_abbrev,0,-170
.debug_ranges,0,-1064
.flash.text,-1332,-1332
.debug_line,0,-5253
.debug_info,0,-7068
.debug_loc,0,-7390


@github-actions
Copy link

Size increase report for "gn_qpg6100-example-build" from dfb2285

File Section File VM
chip-qpg6100-lighting-example.out .bss 0 32
chip-qpg6100-lighting-example.out .heap 0 -32
chip-qpg6100-lighting-example.out .text -424 -424
Full report output
BLOAT REPORT

Files found only in the build output:
    report.csv

Comparing ./master_artifact/chip-qpg6100-lighting-example.out and ./pull_artifact/chip-qpg6100-lighting-example.out:

sections,vmsize,filesize
[Unmapped],0,424
.debug_str,0,141
.symtab,0,80
.strtab,0,63
.bss,32,0
.debug_aranges,0,8
.debug_frame,0,4
.shstrtab,0,1
.debug_ranges,0,-16
.debug_line,0,-27
.debug_abbrev,0,-31
.heap,-32,0
.text,-424,-424
.debug_loc,0,-2487
.debug_info,0,-4608

Comparing ./master_artifact/chip-qpg6100-lighting-example.out.map and ./pull_artifact/chip-qpg6100-lighting-example.out.map:

BLOAT EXECUTION FAILED WITH CODE 1:
bloaty: unknown file type for file './pull_artifact/chip-qpg6100-lighting-example.out.map'


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.

Add Empty Response support for IM command[TE3]
5 participants