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

Update session handle for Group message #11390

Merged

Conversation

jepenven-silabs
Copy link
Contributor

Problem

Change overview

Added constructor for group session handle

Testing

All current unit test are passing However none of them covers the incoming group message processing. #11389

@todo
Copy link

todo bot commented Nov 3, 2021

remove initialization once GroupDataProvider->Decrypt is implemented

FabricIndex fabricIndex = 0; // TODO : remove initialization once GroupDataProvider->Decrypt is implemented
// Credentials::GroupDataProvider * groups = Credentials::GetGroupDataProvider();
VerifyOrExit(!msg.IsNull(), ChipLogError(Inet, "Secure transport received NULL packet, discarding"));
VerifyOrExit(!payloadHeader.NeedsAck(), ChipLogError(Inet, "Group message received with ack request, discarding"));
// MCSP check
if (packetHeader.IsSecureSessionControlMsg())
{
if (packetHeader.GetDestinationNodeId().HasValue() && packetHeader.HasPrivacyFlag())
{


This comment was generated by todo based on a TODO comment in 049c582 in #11390. cc @jepenven-silabs.

@todo
Copy link

todo bot commented Nov 3, 2021

Implement MCSP check. Issue #11076

// TODO : Implement MCSP check. Issue #11076
// if (packetHeader.GetDestinationNodeId().Value() == ThisDeviceNodeID)
// {
// MCSP processing..


This comment was generated by todo based on a TODO comment in 049c582 in #11390. cc @jepenven-silabs.

@todo
Copy link

todo bot commented Nov 3, 2021

retrieve also the fabricIndex with the GroupDataProvider.

// TODO retrieve also the fabricIndex with the GroupDataProvider.
// VerifyOrExit(CHIP_NO_ERROR == groups->DecryptMessage(packetHeader, payloadHeader, msg),
// ChipLogError(Inet, "Secure transport received group message, but failed to decode it, discarding"));
if (isDuplicate == SessionManagerDelegate::DuplicateMessage::Yes)
{
ChipLogDetail(Inet,
"Received a duplicate message with MessageCounter:" ChipLogFormatMessageCounter
" on exchange " ChipLogFormatExchangeId,
packetHeader.GetMessageCounter(), ChipLogValueExchangeIdFromSentHeader(payloadHeader));


This comment was generated by todo based on a TODO comment in 049c582 in #11390. cc @jepenven-silabs.

src/messaging/ExchangeMgr.cpp Outdated Show resolved Hide resolved
src/messaging/ExchangeContext.cpp Outdated Show resolved Hide resolved
src/messaging/ExchangeMgr.cpp Outdated Show resolved Hide resolved
src/messaging/ExchangeMgr.cpp Outdated Show resolved Hide resolved
src/transport/SessionHandle.h Outdated Show resolved Hide resolved
@github-actions
Copy link

github-actions bot commented Nov 3, 2021

PR #11390: Size comparison from fe62374 to 049c582

Increases (35 builds for efr32, esp32, k32w, linux, mbed, nrfconnect, p6, qpg, telink)
platform target config section fe62374 049c582 change % change
efr32 lighting-app BRD4161A (read only) 737152 738052 900 0.1
.text 737144 738044 900 0.1
BRD4161A+rpc (read only) 726332 727232 900 0.1
.text 726324 727224 900 0.1
lock-app BRD4161A (read only) 716416 717316 900 0.1
.text 716408 717308 900 0.1
window-app BRD4161A (read only) 717332 718232 900 0.1
.text 717324 718224 900 0.1
esp32 all-clusters-app c3devkit (read only) 880670 880958 288 0.0
(read/write) 1308064 1308120 56 0.0
.flash.rodata 199776 199832 56 0.0
.flash.text 880670 880958 288 0.0
m5stack (read only) 911823 911987 164 0.0
(read/write) 427828 427884 56 0.0
.flash.rodata 208476 208532 56 0.0
.flash.text 911823 911987 164 0.0
k32w lighting-app k32w061+se05x+release (read/write) 699400 699708 308 0.0
.text 613872 614180 308 0.1
lock-app k32w061+debug (read/write) 591724 592016 292 0.0
.text 515716 516008 292 0.1
shell k32w061+debug (read/write) 657656 657948 292 0.0
.text 571024 571316 292 0.1
linux all-clusters-app debug (read only) 1691153 1691953 800 0.0
.rodata 139925 139989 64 0.0
.text 1417810 1418546 736 0.1
bridge-app debug+rpc (read only) 1287373 1288189 816 0.1
.rodata 111460 111524 64 0.1
.text 1080021 1080773 752 0.1
chip-tool debug (read only) 4422981 4423797 816 0.0
.rodata 226384 226448 64 0.0
.text 3928277 3929029 752 0.0
lighting-app debug+rpc (read only) 1548401 1549201 800 0.1
.rodata 130129 130193 64 0.0
.text 1284690 1285426 736 0.1
ota-provider-app debug (read only) 1243889 1244689 800 0.1
.rodata 112456 112520 64 0.1
.text 1035330 1036066 736 0.1
ota-requestor-app debug (read only) 1311169 1311969 800 0.1
.rodata 123344 123408 64 0.1
.text 1090034 1090770 736 0.1
shell debug (read only) 786641 787393 752 0.1
.rodata 77839 77871 32 0.0
.text 607314 608034 720 0.1
tv-app debug (read only) 1810537 1811337 800 0.0
.rodata 155528 155592 64 0.0
.text 1512722 1513458 736 0.0
mbed all-clusters-app CY8CPROTO_062_4343W+release (read/write) 2293160 2293488 328 0.0
.text 1255760 1256088 328 0.0
lighting-app CY8CPROTO_062_4343W+release (read/write) 2272728 2273056 328 0.0
.text 1235328 1235656 328 0.0
lock-app CY8CPROTO_062_4343W+release (read/write) 2250448 2250776 328 0.0
.text 1213048 1213376 328 0.0
shell CY8CPROTO_062_4343W+release (read/write) 2048368 2048704 336 0.0
.text 1010968 1011304 336 0.0
nrfconnect lighting-app nrf52840dk_nrf52840 (read/write) 861379 861707 328 0.0
rodata 96772 96844 72 0.1
text 577704 577964 260 0.0
nrf52840dk_nrf52840+rpc (read/write) 823755 824083 328 0.0
rodata 87948 88020 72 0.1
text 551888 552148 260 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 786418 786746 328 0.0
rodata 92028 92100 72 0.1
text 507164 507424 260 0.1
lock-app nrf52840dk_nrf52840 (read/write) 838083 838411 328 0.0
rodata 93140 93212 72 0.1
text 559180 559440 260 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 763382 763710 328 0.0
rodata 88448 88520 72 0.1
text 488732 488992 260 0.1
pump-app nrf52840dk_nrf52840 (read/write) 844195 844523 328 0.0
rodata 94852 94924 72 0.1
text 563360 563620 260 0.0
pump-controller-app nrf52840dk_nrf52840 (read/write) 837939 838267 328 0.0
rodata 93140 93212 72 0.1
text 558916 559176 260 0.0
shell nrf52840dk_nrf52840 (read/write) 775975 776251 276 0.0
rodata 72412 72464 52 0.1
text 519896 520128 232 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 691010 691286 276 0.0
rodata 67052 67104 52 0.1
text 440492 440724 232 0.1
p6 all-clusters-app default (read/write) 2300640 2301528 888 0.0
.text 1258904 1259792 888 0.1
lock-app default (read/write) 2213648 2214544 896 0.0
.text 1171912 1172808 896 0.1
qpg lighting-app qpg6100+debug (read only) 490700 491000 300 0.1
.text 485380 485680 300 0.1
lock-app qpg6100+debug (read only) 467040 467348 308 0.1
.text 461720 462028 308 0.1
telink lighting-app tlsr9518adk80d (read/write) 662894 663210 316 0.0
text 458058 458320 262 0.1
Decreases (2 builds for efr32)
platform target config section fe62374 049c582 change % change
efr32 lighting-app BRD4161A (read/write) 114588 114584 -4 -0.0
lock-app BRD4161A (read/write) 112404 112400 -4 -0.0
Full report (38 builds for efr32, esp32, k32w, linux, mbed, nrfconnect, p6, qpg, telink)
platform target config section fe62374 049c582 change % change
efr32 lighting-app BRD4161A (read only) 737152 738052 900 0.1
(read/write) 114588 114584 -4 -0.0
.bss 112828 112828 0 0.0
.data 1756 1756 0 0.0
.text 737144 738044 900 0.1
BRD4161A+rpc (read only) 726332 727232 900 0.1
(read/write) 131204 131204 0 0.0
.bss 129332 129332 0 0.0
.data 1872 1872 0 0.0
.text 726324 727224 900 0.1
lock-app BRD4161A (read only) 716416 717316 900 0.1
(read/write) 112404 112400 -4 -0.0
.bss 110684 110684 0 0.0
.data 1716 1716 0 0.0
.text 716408 717308 900 0.1
window-app BRD4161A (read only) 717332 718232 900 0.1
(read/write) 112724 112724 0 0.0
.bss 111004 111004 0 0.0
.data 1720 1720 0 0.0
.text 717324 718224 900 0.1
esp32 all-clusters-app c3devkit (read only) 880670 880958 288 0.0
(read/write) 1308064 1308120 56 0.0
.dram0.bss 58584 58584 0 0.0
.dram0.data 16464 16464 0 0.0
.flash.rodata 199776 199832 56 0.0
.flash.text 880670 880958 288 0.0
.iram0.text 57554 57554 0 0.0
m5stack (read only) 911823 911987 164 0.0
(read/write) 427828 427884 56 0.0
.dram0.bss 61088 61088 0 0.0
.dram0.data 32100 32100 0 0.0
.flash.rodata 208476 208532 56 0.0
.flash.text 911823 911987 164 0.0
.iram0.text 125115 125115 0 0.0
k32w lighting-app k32w061+se05x+release (read/write) 699400 699708 308 0.0
.bss 77824 77824 0 0.0
.data 1904 1904 0 0.0
.text 613872 614180 308 0.1
lock-app k32w061+debug (read/write) 591724 592016 292 0.0
.bss 68340 68340 0 0.0
.data 1868 1868 0 0.0
.text 515716 516008 292 0.1
shell k32w061+debug (read/write) 657656 657948 292 0.0
.bss 78992 78992 0 0.0
.data 1840 1840 0 0.0
.text 571024 571316 292 0.1
linux all-clusters-app debug (read only) 1691153 1691953 800 0.0
(read/write) 119696 119696 0 0.0
.bss 51120 51120 0 0.0
.data 1042 1042 0 0.0
.data.rel.ro 62272 62272 0 0.0
.dynamic 592 592 0 0.0
.got 4088 4088 0 0.0
.init 27 27 0 0.0
.init_array 536 536 0 0.0
.rodata 139925 139989 64 0.0
.text 1417810 1418546 736 0.1
bridge-app debug+rpc (read only) 1287373 1288189 816 0.1
(read/write) 69320 69320 0 0.0
.bss 35024 35024 0 0.0
.data 1568 1568 0 0.0
.data.rel.ro 27768 27768 0 0.0
.dynamic 592 592 0 0.0
.got 3952 3952 0 0.0
.init 27 27 0 0.0
.init_array 400 400 0 0.0
.rodata 111460 111524 64 0.1
.text 1080021 1080773 752 0.1
chip-tool debug (read only) 4422981 4423797 816 0.0
(read/write) 125888 125888 0 0.0
.bss 18224 18224 0 0.0
.data 2224 2224 0 0.0
.data.rel.ro 100032 100032 0 0.0
.dynamic 592 592 0 0.0
.got 4368 4368 0 0.0
.init 27 27 0 0.0
.init_array 424 424 0 0.0
.rodata 226384 226448 64 0.0
.text 3928277 3929029 752 0.0
lighting-app debug+rpc (read only) 1548401 1549201 800 0.1
(read/write) 102288 102288 0 0.0
.bss 40664 40664 0 0.0
.data 1170 1170 0 0.0
.data.rel.ro 55168 55168 0 0.0
.dynamic 608 608 0 0.0
.got 4112 4112 0 0.0
.init 27 27 0 0.0
.init_array 528 528 0 0.0
.rodata 130129 130193 64 0.0
.text 1284690 1285426 736 0.1
ota-provider-app debug (read only) 1243889 1244689 800 0.1
(read/write) 67488 67488 0 0.0
.bss 37088 37088 0 0.0
.data 752 752 0 0.0
.data.rel.ro 24568 24568 0 0.0
.dynamic 592 592 0 0.0
.got 4016 4016 0 0.0
.init 27 27 0 0.0
.init_array 440 440 0 0.0
.rodata 112456 112520 64 0.1
.text 1035330 1036066 736 0.1
ota-requestor-app debug (read only) 1311169 1311969 800 0.1
(read/write) 76808 76808 0 0.0
.bss 45344 45344 0 0.0
.data 816 816 0 0.0
.data.rel.ro 25512 25512 0 0.0
.dynamic 592 592 0 0.0
.got 3984 3984 0 0.0
.init 27 27 0 0.0
.init_array 512 512 0 0.0
.rodata 123344 123408 64 0.1
.text 1090034 1090770 736 0.1
shell debug (read only) 786641 787393 752 0.1
(read/write) 57600 57600 0 0.0
.bss 16040 16040 0 0.0
.data 242 242 0 0.0
.data.rel.ro 36816 36816 0 0.0
.dynamic 592 592 0 0.0
.got 3528 3528 0 0.0
.init 27 27 0 0.0
.init_array 336 336 0 0.0
.rodata 77839 77871 32 0.0
.text 607314 608034 720 0.1
tv-app debug (read only) 1810537 1811337 800 0.0
(read/write) 289912 289912 0 0.0
.bss 222736 222736 0 0.0
.data 2704 2704 0 0.0
.data.rel.ro 58824 58824 0 0.0
.dynamic 592 592 0 0.0
.got 4408 4408 0 0.0
.init 27 27 0 0.0
.init_array 608 608 0 0.0
.rodata 155528 155592 64 0.0
.text 1512722 1513458 736 0.0
mbed all-clusters-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2293160 2293488 328 0.0
.bss 179940 179940 0 0.0
.data 5216 5216 0 0.0
.heap 851288 851288 0 0.0
.text 1255760 1256088 328 0.0
lighting-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2272728 2273056 328 0.0
.bss 171980 171980 0 0.0
.data 5568 5568 0 0.0
.heap 858896 858896 0 0.0
.text 1235328 1235656 328 0.0
lock-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2250448 2250776 328 0.0
.bss 170876 170876 0 0.0
.data 5560 5560 0 0.0
.heap 860008 860008 0 0.0
.text 1213048 1213376 328 0.0
pigweed-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 1139744 1139744 0 0.0
.bss 11752 11752 0 0.0
.data 4368 4368 0 0.0
.heap 1020328 1020328 0 0.0
.text 103128 103128 0 0.0
shell CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2048368 2048704 336 0.0
.bss 156224 156224 0 0.0
.data 4960 4960 0 0.0
.heap 875264 875264 0 0.0
.text 1010968 1011304 336 0.0
nrfconnect lighting-app nrf52840dk_nrf52840 (read/write) 861379 861707 328 0.0
bss 111288 111288 0 0.0
rodata 96772 96844 72 0.1
text 577704 577964 260 0.0
nrf52840dk_nrf52840+rpc (read/write) 823755 824083 328 0.0
bss 107640 107640 0 0.0
rodata 87948 88020 72 0.1
text 551888 552148 260 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 786418 786746 328 0.0
bss 112664 112664 0 0.0
rodata 92028 92100 72 0.1
text 507164 507424 260 0.1
lock-app nrf52840dk_nrf52840 (read/write) 838083 838411 328 0.0
bss 110324 110324 0 0.0
rodata 93140 93212 72 0.1
text 559180 559440 260 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 763382 763710 328 0.0
bss 111732 111732 0 0.0
rodata 88448 88520 72 0.1
text 488732 488992 260 0.1
pigweed-app nrf52840dk_nrf52840 (read/write) 497323 497323 0 0.0
bss 51824 51824 0 0.0
rodata 45776 45776 0 0.0
text 339436 339436 0 0.0
pump-app nrf52840dk_nrf52840 (read/write) 844195 844523 328 0.0
bss 110460 110460 0 0.0
rodata 94852 94924 72 0.1
text 563360 563620 260 0.0
pump-controller-app nrf52840dk_nrf52840 (read/write) 837939 838267 328 0.0
bss 110360 110360 0 0.0
rodata 93140 93212 72 0.1
text 558916 559176 260 0.0
shell nrf52840dk_nrf52840 (read/write) 775975 776251 276 0.0
bss 109080 109080 0 0.0
rodata 72412 72464 52 0.1
text 519896 520128 232 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 691010 691286 276 0.0
bss 110060 110060 0 0.0
rodata 67052 67104 52 0.1
text 440492 440724 232 0.1
p6 all-clusters-app default (read/write) 2300640 2301528 888 0.0
.bss 107880 107880 0 0.0
.data 2520 2520 0 0.0
.heap 922944 922944 0 0.0
.text 1258904 1259792 888 0.1
lock-app default (read/write) 2213648 2214544 896 0.0
.bss 95680 95680 0 0.0
.data 2392 2392 0 0.0
.heap 935272 935272 0 0.0
.text 1171912 1172808 896 0.1
qpg lighting-app qpg6100+debug (read only) 490700 491000 300 0.1
(read/write) 114140 114140 0 0.0
.bss 50968 50968 0 0.0
.data 1004 1004 0 0.0
.text 485380 485680 300 0.1
lock-app qpg6100+debug (read only) 467040 467348 308 0.1
(read/write) 114144 114144 0 0.0
.bss 49912 49912 0 0.0
.data 960 960 0 0.0
.text 461720 462028 308 0.1
persistent-storage-app qpg6100+debug (read only) 153212 153212 0 0.0
(read/write) 114140 114140 0 0.0
.bss 18920 18920 0 0.0
.data 356 356 0 0.0
.text 147892 147892 0 0.0
telink lighting-app tlsr9518adk80d (read/write) 662894 663210 316 0.0
bss 69100 69100 0 0.0
noinit 33216 33216 0 0.0
text 458058 458320 262 0.1

@todo
Copy link

todo bot commented Nov 4, 2021

remove initialization once GroupDataProvider->Decrypt is implemented

FabricIndex fabricIndex = 0; // TODO : remove initialization once GroupDataProvider->Decrypt is implemented
// Credentials::GroupDataProvider * groups = Credentials::GetGroupDataProvider();
VerifyOrExit(!msg.IsNull(), ChipLogError(Inet, "Secure transport received NULL packet, discarding"));


This comment was generated by todo based on a TODO comment in 5096a39 in #11390. cc @jepenven-silabs.

@todo
Copy link

todo bot commented Nov 4, 2021

remove initialization once GroupDataProvider->Decrypt is implemented

FabricIndex fabricIndex = 0; // TODO : remove initialization once GroupDataProvider->Decrypt is implemented
// Credentials::GroupDataProvider * groups = Credentials::GetGroupDataProvider();
VerifyOrExit(!msg.IsNull(), ChipLogError(Inet, "Secure transport received NULL packet, discarding"));


This comment was generated by todo based on a TODO comment in 1d0ee4d in #11390. cc @jepenven-silabs.

@jepenven-silabs
Copy link
Contributor Author

@bzbarsky-apple @kghost Since this PR will indeed collide with PR #11266 I would suggest that we fix the conflicts once one of the two PR is merged.

Copy link
Contributor

@kghost kghost left a comment

Choose a reason for hiding this comment

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

You can go ahead with this PR, my PR still need some work to be ready.

src/transport/SessionHandle.h Show resolved Hide resolved
@todo
Copy link

todo bot commented Nov 5, 2021

remove initialization once GroupDataProvider->Decrypt is implemented

FabricIndex fabricIndex = 0; // TODO : remove initialization once GroupDataProvider->Decrypt is implemented
// Credentials::GroupDataProvider * groups = Credentials::GetGroupDataProvider();
VerifyOrExit(!msg.IsNull(), ChipLogError(Inet, "Secure transport received NULL packet, discarding"));


This comment was generated by todo based on a TODO comment in a9610f1 in #11390. cc @jepenven-silabs.

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 definition of Group session context and unencrypted session context to SessionHandle
5 participants