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

Inet: Use constructors for Inet EndPoints #11584

Merged
merged 2 commits into from
Nov 10, 2021

Conversation

kpschoedel
Copy link
Contributor

Problem

Inet::TCPEndPoint and Inet::UDPEndPoint historically could not use
constructors because of System::ObjectPool limitations.

This is a step toward #7715 Virtualize System and Inet interfaces,
split off to reduce the complexity of an upcoming PR.

Change overview

Convert from Init() to constructors. Transitionally, the constructors
still call a per-implementation function InitImpl().

Incidentally renamed mAppState for consistency (it had been in
System::Object prior to #11428).

Testing

CI; no changes to functionality.

#### Problem

`Inet::TCPEndPoint` and `Inet::UDPEndPoint` historically could not use
constructors because of `System::ObjectPool` limitations.

Incidentally renamed `mAppState` for consistency (it had been in
`System::Object` prior to project-chip#11428).

This is a step toward project-chip#7715 _Virtualize System and Inet interfaces_,
split off to reduce the complexity of an upcoming PR.

#### Change overview

Convert from `Init()` to constructors. Transitionally, the constructors
still call a per-implementation function `InitImpl()`.

#### Testing

CI; no changes to functionality.
@github-actions
Copy link

github-actions bot commented Nov 9, 2021

PR #11584: Size comparison from 613f27f to a380423

Decreases (31 builds for efr32, esp32, k32w, linux, mbed, nrfconnect, qpg, telink)
platform target config section 613f27f a380423 change % change
efr32 lighting-app BRD4161A (read only) 742904 742896 -8 -0.0
.text 742896 742888 -8 -0.0
lock-app BRD4161A (read only) 722192 722176 -16 -0.0
.text 722184 722168 -16 -0.0
esp32 all-clusters-app c3devkit (read only) 880694 880670 -24 -0.0
.flash.text 880694 880670 -24 -0.0
m5stack (read only) 911847 911839 -8 -0.0
.flash.text 911847 911839 -8 -0.0
k32w lighting-app k32w061+se05x+release (read/write) 699648 699628 -20 -0.0
.text 613940 613920 -20 -0.0
lock-app k32w061+debug (read/write) 592360 592340 -20 -0.0
.text 516156 516136 -20 -0.0
shell k32w061+debug (read/write) 658016 657996 -20 -0.0
.text 571044 571024 -20 -0.0
linux all-clusters-app debug (read only) 1710601 1710433 -168 -0.0
(read/write) 126528 126496 -32 -0.0
.data.rel.ro 62352 62320 -32 -0.1
.text 1437346 1437202 -144 -0.0
bridge-app debug+rpc (read only) 1298253 1298085 -168 -0.0
(read/write) 77072 77040 -32 -0.0
.data.rel.ro 27760 27736 -24 -0.1
.text 1090821 1090677 -144 -0.0
chip-tool debug (read only) 4982309 4982141 -168 -0.0
.data.rel.ro 101184 101160 -24 -0.0
.text 4471397 4471253 -144 -0.0
lighting-app debug+rpc (read only) 1557945 1557777 -168 -0.0
(read/write) 110088 110056 -32 -0.0
.data.rel.ro 55168 55136 -32 -0.1
.text 1295410 1295266 -144 -0.0
ota-provider-app debug (read only) 1259721 1259553 -168 -0.0
(read/write) 75336 75304 -32 -0.0
.data.rel.ro 24616 24584 -32 -0.1
.text 1050258 1050114 -144 -0.0
ota-requestor-app debug (read only) 1344281 1344113 -168 -0.0
(read/write) 79104 79072 -32 -0.0
.data.rel.ro 25880 25848 -32 -0.1
.text 1121250 1121106 -144 -0.0
shell debug (read only) 789065 788841 -224 -0.0
(read/write) 65480 65448 -32 -0.0
.data.rel.ro 36816 36784 -32 -0.1
.text 609362 609186 -176 -0.0
tv-app debug (read only) 1842217 1842049 -168 -0.0
.data.rel.ro 59448 59424 -24 -0.0
.text 1541842 1541698 -144 -0.0
mbed all-clusters-app CY8CPROTO_062_4343W+release (read/write) 2290856 2290848 -8 -0.0
.text 1253456 1253448 -8 -0.0
lighting-app CY8CPROTO_062_4343W+release (read/write) 2270952 2270944 -8 -0.0
.text 1233552 1233544 -8 -0.0
lock-app CY8CPROTO_062_4343W+release (read/write) 2248672 2248600 -72 -0.0
.text 1211272 1211200 -72 -0.0
shell CY8CPROTO_062_4343W+release (read/write) 2048864 2048792 -72 -0.0
.text 1011464 1011392 -72 -0.0
nrfconnect lighting-app nrf52840dk_nrf52840 (read/write) 862155 862119 -36 -0.0
rodata 96924 96920 -4 -0.0
text 578128 578104 -24 -0.0
nrf52840dk_nrf52840+rpc (read/write) 824503 824467 -36 -0.0
rodata 88104 88100 -4 -0.0
text 552276 552252 -24 -0.0
nrf5340dk_nrf5340_cpuapp (read/write) 787162 787142 -20 -0.0
rodata 92180 92176 -4 -0.0
text 507600 507576 -24 -0.0
lock-app nrf52840dk_nrf52840 (read/write) 838831 838811 -20 -0.0
rodata 93296 93292 -4 -0.0
text 559612 559584 -28 -0.0
nrf5340dk_nrf5340_cpuapp (read/write) 764142 764106 -36 -0.0
rodata 88600 88596 -4 -0.0
text 489176 489148 -28 -0.0
pump-app nrf52840dk_nrf52840 (read/write) 844955 844935 -20 -0.0
rodata 95004 95000 -4 -0.0
text 563772 563748 -24 -0.0
pump-controller-app nrf52840dk_nrf52840 (read/write) 838699 838663 -36 -0.0
rodata 93292 93288 -4 -0.0
text 559348 559320 -28 -0.0
shell nrf52840dk_nrf52840 (read/write) 776431 776411 -20 -0.0
rodata 72564 72560 -4 -0.0
text 520004 519980 -24 -0.0
nrf5340dk_nrf5340_cpuapp (read/write) 691482 691446 -36 -0.0
rodata 67204 67200 -4 -0.0
text 440612 440588 -24 -0.0
qpg lighting-app qpg6100+debug (read only) 490776 490756 -20 -0.0
.text 485456 485436 -20 -0.0
lock-app qpg6100+debug (read only) 466988 466968 -20 -0.0
.text 461668 461648 -20 -0.0
telink lighting-app tlsr9518adk80d (read/write) 663750 663714 -36 -0.0
text 458596 458562 -34 -0.0
Full report (38 builds for efr32, esp32, k32w, linux, mbed, nrfconnect, p6, qpg, telink)
platform target config section 613f27f a380423 change % change
efr32 lighting-app BRD4161A (read only) 742904 742896 -8 -0.0
(read/write) 116268 116268 0 0.0
.bss 114484 114484 0 0.0
.data 1784 1784 0 0.0
.text 742896 742888 -8 -0.0
BRD4161A+rpc (read only) 730440 730440 0 0.0
(read/write) 132892 132892 0 0.0
.bss 130988 130988 0 0.0
.data 1900 1900 0 0.0
.text 730432 730432 0 0.0
lock-app BRD4161A (read only) 722192 722176 -16 -0.0
(read/write) 114084 114084 0 0.0
.bss 112340 112340 0 0.0
.data 1744 1744 0 0.0
.text 722184 722168 -16 -0.0
window-app BRD4161A (read only) 723088 723088 0 0.0
(read/write) 114412 114412 0 0.0
.bss 112660 112660 0 0.0
.data 1748 1748 0 0.0
.text 723080 723080 0 0.0
esp32 all-clusters-app c3devkit (read only) 880694 880670 -24 -0.0
(read/write) 1306536 1306536 0 0.0
.dram0.bss 58464 58464 0 0.0
.dram0.data 16472 16472 0 0.0
.flash.rodata 198360 198360 0 0.0
.flash.text 880694 880670 -24 -0.0
.iram0.text 57526 57526 0 0.0
m5stack (read only) 911847 911839 -8 -0.0
(read/write) 423864 423864 0 0.0
.dram0.bss 60968 60968 0 0.0
.dram0.data 32108 32108 0 0.0
.flash.rodata 204624 204624 0 0.0
.flash.text 911847 911839 -8 -0.0
.iram0.text 125115 125115 0 0.0
k32w lighting-app k32w061+se05x+release (read/write) 699648 699628 -20 -0.0
.bss 77996 77996 0 0.0
.data 1912 1912 0 0.0
.text 613940 613920 -20 -0.0
lock-app k32w061+debug (read/write) 592360 592340 -20 -0.0
.bss 68524 68524 0 0.0
.data 1880 1880 0 0.0
.text 516156 516136 -20 -0.0
shell k32w061+debug (read/write) 658016 657996 -20 -0.0
.bss 79324 79324 0 0.0
.data 1848 1848 0 0.0
.text 571044 571024 -20 -0.0
linux all-clusters-app debug (read only) 1710601 1710433 -168 -0.0
(read/write) 126528 126496 -32 -0.0
.bss 57872 57872 0 0.0
.data 1042 1042 0 0.0
.data.rel.ro 62352 62320 -32 -0.1
.dynamic 592 592 0 0.0
.got 4088 4088 0 0.0
.init 27 27 0 0.0
.init_array 552 552 0 0.0
.rodata 139765 139765 0 0.0
.text 1437346 1437202 -144 -0.0
bridge-app debug+rpc (read only) 1298253 1298085 -168 -0.0
(read/write) 77072 77040 -32 -0.0
.bss 42768 42768 0 0.0
.data 1568 1568 0 0.0
.data.rel.ro 27760 27736 -24 -0.1
.dynamic 592 592 0 0.0
.got 3952 3952 0 0.0
.init 27 27 0 0.0
.init_array 408 408 0 0.0
.rodata 111540 111540 0 0.0
.text 1090821 1090677 -144 -0.0
chip-tool debug (read only) 4982309 4982141 -168 -0.0
(read/write) 134688 134688 0 0.0
.bss 25840 25840 0 0.0
.data 2256 2256 0 0.0
.data.rel.ro 101184 101160 -24 -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 239760 239760 0 0.0
.text 4471397 4471253 -144 -0.0
lighting-app debug+rpc (read only) 1557945 1557777 -168 -0.0
(read/write) 110088 110056 -32 -0.0
.bss 48432 48432 0 0.0
.data 1202 1202 0 0.0
.data.rel.ro 55168 55136 -32 -0.1
.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 128977 128977 0 0.0
.text 1295410 1295266 -144 -0.0
ota-provider-app debug (read only) 1259721 1259553 -168 -0.0
(read/write) 75336 75304 -32 -0.0
.bss 44864 44864 0 0.0
.data 752 752 0 0.0
.data.rel.ro 24616 24584 -32 -0.1
.dynamic 592 592 0 0.0
.got 4016 4016 0 0.0
.init 27 27 0 0.0
.init_array 448 448 0 0.0
.rodata 113216 113216 0 0.0
.text 1050258 1050114 -144 -0.0
ota-requestor-app debug (read only) 1344281 1344113 -168 -0.0
(read/write) 79104 79072 -32 -0.0
.bss 47328 47328 0 0.0
.data 816 816 0 0.0
.data.rel.ro 25880 25848 -32 -0.1
.dynamic 592 592 0 0.0
.got 3992 3992 0 0.0
.init 27 27 0 0.0
.init_array 472 472 0 0.0
.rodata 124232 124232 0 0.0
.text 1121250 1121106 -144 -0.0
shell debug (read only) 789065 788841 -224 -0.0
(read/write) 65480 65448 -32 -0.0
.bss 23912 23912 0 0.0
.data 242 242 0 0.0
.data.rel.ro 36816 36784 -32 -0.1
.dynamic 592 592 0 0.0
.got 3528 3528 0 0.0
.init 27 27 0 0.0
.init_array 344 344 0 0.0
.rodata 78191 78191 0 0.0
.text 609362 609186 -176 -0.0
tv-app debug (read only) 1842217 1842049 -168 -0.0
(read/write) 407936 407936 0 0.0
.bss 340112 340112 0 0.0
.data 2736 2736 0 0.0
.data.rel.ro 59448 59424 -24 -0.0
.dynamic 592 592 0 0.0
.got 4408 4408 0 0.0
.init 27 27 0 0.0
.init_array 616 616 0 0.0
.rodata 156456 156456 0 0.0
.text 1541842 1541698 -144 -0.0
mbed all-clusters-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2290856 2290848 -8 -0.0
.bss 179436 179436 0 0.0
.data 5232 5232 0 0.0
.heap 851776 851776 0 0.0
.text 1253456 1253448 -8 -0.0
lighting-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2270952 2270944 -8 -0.0
.bss 172492 172492 0 0.0
.data 5584 5584 0 0.0
.heap 858368 858368 0 0.0
.text 1233552 1233544 -8 -0.0
lock-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2248672 2248600 -72 -0.0
.bss 171388 171388 0 0.0
.data 5568 5568 0 0.0
.heap 859488 859488 0 0.0
.text 1211272 1211200 -72 -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) 2048864 2048792 -72 -0.0
.bss 156456 156456 0 0.0
.data 4976 4976 0 0.0
.heap 875016 875016 0 0.0
.text 1011464 1011392 -72 -0.0
nrfconnect lighting-app nrf52840dk_nrf52840 (read/write) 862155 862119 -36 -0.0
bss 111460 111460 0 0.0
rodata 96924 96920 -4 -0.0
text 578128 578104 -24 -0.0
nrf52840dk_nrf52840+rpc (read/write) 824503 824467 -36 -0.0
bss 107812 107812 0 0.0
rodata 88104 88100 -4 -0.0
text 552276 552252 -24 -0.0
nrf5340dk_nrf5340_cpuapp (read/write) 787162 787142 -20 -0.0
bss 112832 112832 0 0.0
rodata 92180 92176 -4 -0.0
text 507600 507576 -24 -0.0
lock-app nrf52840dk_nrf52840 (read/write) 838831 838811 -20 -0.0
bss 110492 110492 0 0.0
rodata 93296 93292 -4 -0.0
text 559612 559584 -28 -0.0
nrf5340dk_nrf5340_cpuapp (read/write) 764142 764106 -36 -0.0
bss 111904 111904 0 0.0
rodata 88600 88596 -4 -0.0
text 489176 489148 -28 -0.0
pigweed-app nrf52840dk_nrf52840 (read/write) 497327 497327 0 0.0
bss 51824 51824 0 0.0
rodata 45780 45780 0 0.0
text 339436 339436 0 0.0
pump-app nrf52840dk_nrf52840 (read/write) 844955 844935 -20 -0.0
bss 110632 110632 0 0.0
rodata 95004 95000 -4 -0.0
text 563772 563748 -24 -0.0
pump-controller-app nrf52840dk_nrf52840 (read/write) 838699 838663 -36 -0.0
bss 110528 110528 0 0.0
rodata 93292 93288 -4 -0.0
text 559348 559320 -28 -0.0
shell nrf52840dk_nrf52840 (read/write) 776431 776411 -20 -0.0
bss 109280 109280 0 0.0
rodata 72564 72560 -4 -0.0
text 520004 519980 -24 -0.0
nrf5340dk_nrf5340_cpuapp (read/write) 691482 691446 -36 -0.0
bss 110264 110264 0 0.0
rodata 67204 67200 -4 -0.0
text 440612 440588 -24 -0.0
p6 all-clusters-app default (read/write) 2299528 2299528 0 0.0
.bss 112448 112448 0 0.0
.data 2536 2536 0 0.0
.heap 918360 918360 0 0.0
.text 1257792 1257792 0 0.0
lock-app default (read/write) 2212184 2212184 0 0.0
.bss 101256 101256 0 0.0
.data 2408 2408 0 0.0
.heap 929680 929680 0 0.0
.text 1170448 1170448 0 0.0
qpg lighting-app qpg6100+debug (read only) 490776 490756 -20 -0.0
(read/write) 114140 114140 0 0.0
.bss 51152 51152 0 0.0
.data 1012 1012 0 0.0
.text 485456 485436 -20 -0.0
lock-app qpg6100+debug (read only) 466988 466968 -20 -0.0
(read/write) 114144 114144 0 0.0
.bss 50096 50096 0 0.0
.data 968 968 0 0.0
.text 461668 461648 -20 -0.0
persistent-storage-app qpg6100+debug (read only) 153400 153400 0 0.0
(read/write) 114140 114140 0 0.0
.bss 19616 19616 0 0.0
.data 364 364 0 0.0
.text 148080 148080 0 0.0
telink lighting-app tlsr9518adk80d (read/write) 663750 663714 -36 -0.0
bss 69272 69272 0 0.0
noinit 33216 33216 0 0.0
text 458596 458562 -34 -0.0

@kpschoedel
Copy link
Contributor Author

Cirque failure looks real; will probably need to add a unit test case for initialization state.

@woody-apple
Copy link
Contributor

Looks like real Darwin failures too.

@bzbarsky-apple
Copy link
Contributor

@kpschoedel The Darwin failure is real. That test is starting a commissioner, then shutting it down, then starting one again. The log says:

2021-11-10T06:08:01.1970120Z 2021-11-10 06:07:59.733855+0000 xctest[68447:180508] [all] 🟢 [1636524479733] [68447:180508] CHIP: [DL] _Init
2021-11-10T06:08:01.1970960Z �[0;34m[1636524479733] [68447:180508] CHIP: [DL] _Init�[0m
2021-11-10T06:08:01.1972520Z 2021-11-10 06:07:59.733912+0000 xctest[68447:180508] [all] 🟢 [1636524479733] [68447:180508] CHIP: [IN] UDP::Init bind&listen port=5541
2021-11-10T06:08:01.1973870Z �[0;34m[1636524479733] [68447:180508] CHIP: [IN] UDP::Init bind&listen port=5541�[0m
2021-11-10T06:08:01.1975480Z 2021-11-10 06:07:59.733952+0000 xctest[68447:180508] [all] 🔵 [1636524479733] [68447:180508] CHIP: [IN] Failed to initialize Udp transport: ../../../../../../../../../../../work/connectedhomeip/connectedhomeip/src/inet/UDPEndPoint.cpp:1948: CHIP Error 0x00000003: Incorrect state
2021-11-10T06:08:01.1977840Z �[0;32m[1636524479733] [68447:180508] CHIP: [IN] Failed to initialize Udp transport: ../../../../../../../../../../../work/connectedhomeip/connectedhomeip/src/inet/UDPEndPoint.cpp:1948: CHIP Error 0x00000003: Incorrect state�[0m
2021-11-10T06:08:01.1979370Z 2021-11-10 06:07:59.733990+0000 xctest[68447:180508] Error: Init failure while initializing a commissioner
2021-11-10T06:08:04.1972440Z /Users/runner/work/connectedhomeip/connectedhomeip/src/darwin/Framework/CHIPTests/CHIPControllerTests.m:35: error: -[CHIPControllerTests testControllerLifecycle] : (([controller startup:nil vendorId:0 nocSigner:nil]) is true) failed

@andy31415 andy31415 merged commit 125ad20 into project-chip:master Nov 10, 2021
@kpschoedel kpschoedel deleted the x7715-endpoint-construct branch November 10, 2021 18:30
PSONALl pushed a commit to PSONALl/connectedhomeip that referenced this pull request Dec 3, 2021
* Inet: Use constructors for Inet EndPoints

#### Problem

`Inet::TCPEndPoint` and `Inet::UDPEndPoint` historically could not use
constructors because of `System::ObjectPool` limitations.

Incidentally renamed `mAppState` for consistency (it had been in
`System::Object` prior to project-chip#11428).

This is a step toward project-chip#7715 _Virtualize System and Inet interfaces_,
split off to reduce the complexity of an upcoming PR.

#### Change overview

Convert from `Init()` to constructors. Transitionally, the constructors
still call a per-implementation function `InitImpl()`.

#### Testing

CI; no changes to functionality.

* explicitly initialize all members
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.

5 participants