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

Request unicast responses for resolving nodes when using minmdns #11635

Merged
merged 22 commits into from
Nov 15, 2021

Conversation

andy31415
Copy link
Contributor

@andy31415 andy31415 commented Nov 10, 2021

Problem

Requesting multicast replies will get throttled according to mDNS rfc. Chip-tool restarts on every operation, effectively forgetting mDNS responses (unless using the platform mdns where something like avahi/bonjour caches for us) and requesting mDNS discovery will result in throttling.

Change overview

Resolving nodes sets the 'reply via unicast' flag, disabling broadcast, making network traffic less chatty and bypassing throttling (chip-tool is much more responsive)

Additional changes for scripts to work:

  • specifically for linux, use network namespaces. reason is minmdns listens on 5353 and having 2 apps (chip-tool and all-clusters-app) competing for the same port does not work well when unicast is used. Darwin works because it uses mdns platform and that is centralized (no competing for the port). Using avahi on linux did not work and took too long to try to fix

  • disabled auto-formatting for test runner script - formatting hardener was both changing lines I never touched and tried to 'correct' lines that I explicitly did not want string-escaped.

Testing

Proviosioned an m5stack with this change in chip-tool (success) and toggled an on/off a few times (successfull and much more responsive and reliable than without this flag).

Unit tests on linux pass.

@andy31415
Copy link
Contributor Author

fast track: trivial change

@cecille
Copy link
Contributor

cecille commented Nov 10, 2021

Did you figure out why unicast responses weren't working on linux with chip-device-ctrl? Also, there's another spot in that file where we set answer via unicast to false.

@andy31415
Copy link
Contributor Author

Updated the browse-nodes code to also use unicast, however I am unsure how to test that bit.
Will retry with the provision + toggle logic.

@andy31415
Copy link
Contributor Author

Re-tested after changing unicast replies to other times. Always used m5stack, the following work with and without avahi running (to check for conflicts):

  • m5stack provisioning via chip tool
  • toggle via chip-tool
  • after setting m5stack to 'force wifi commsioning' I was able to use chip-device-ctrl and do discover -all and see the m5stack reply

watched traffic with wireshark and confirmed replies were unicast.

@github-actions
Copy link

github-actions bot commented Nov 10, 2021

PR #11635: Size comparison from a27a311 to fc0bac5

Increases (7 builds for efr32, linux, p6)
platform target config section a27a311 fc0bac5 change % change
efr32 lighting-app BRD4161A+rpc (read only) 730016 730040 24 0.0
.text 730008 730032 24 0.0
lock-app BRD4161A (read only) 721756 721764 8 0.0
.text 721748 721756 8 0.0
window-app BRD4161A (read only) 722668 722676 8 0.0
.text 722660 722668 8 0.0
linux chip-tool debug (read only) 4616445 4616469 24 0.0
.text 4103877 4103925 48 0.0
ota-requestor-app debug (read only) 1344673 1344681 8 0.0
.text 1121666 1121698 32 0.0
tv-app debug (read only) 1842881 1842905 24 0.0
.text 1542626 1542674 48 0.0
p6 lock-app default (read/write) 2211752 2211760 8 0.0
.text 1170016 1170024 8 0.0
Decreases (14 builds for k32w, linux, qpg, telink)
platform target config section a27a311 fc0bac5 change % change
k32w lighting-app k32w061+se05x+release (read/write) 699400 699396 -4 -0.0
.text 613680 613676 -4 -0.0
lock-app k32w061+debug (read/write) 592152 592132 -20 -0.0
.text 515928 515908 -20 -0.0
shell k32w061+debug (read/write) 657780 657760 -20 -0.0
.text 570796 570776 -20 -0.0
linux all-clusters-app debug (read only) 1699057 1698921 -136 -0.0
(read/write) 126464 126432 -32 -0.0
.data.rel.ro 62288 62256 -32 -0.1
.text 1426482 1426370 -112 -0.0
bridge-app debug+rpc (read only) 1298877 1298741 -136 -0.0
(read/write) 77296 77264 -32 -0.0
.data.rel.ro 27952 27928 -24 -0.1
.text 1091477 1091365 -112 -0.0
chip-tool debug (read/write) 135072 135040 -32 -0.0
.data.rel.ro 101424 101400 -24 -0.0
lighting-app debug+rpc (read only) 1558249 1558113 -136 -0.0
(read/write) 110408 110376 -32 -0.0
.data.rel.ro 55360 55328 -32 -0.1
.text 1295746 1295634 -112 -0.0
ota-provider-app debug (read only) 1260113 1259977 -136 -0.0
(read/write) 75656 75624 -32 -0.0
.data.rel.ro 24808 24776 -32 -0.1
.text 1050674 1050562 -112 -0.0
ota-requestor-app debug (read/write) 79424 79392 -32 -0.0
.data.rel.ro 26072 26040 -32 -0.1
shell debug (read only) 788537 788441 -96 -0.0
(read/write) 65640 65608 -32 -0.0
.data.rel.ro 36960 36928 -32 -0.1
.text 609074 609026 -48 -0.0
tv-app debug (read/write) 408248 408216 -32 -0.0
.data.rel.ro 59624 59600 -24 -0.0
qpg lighting-app qpg6100+debug (read only) 490692 490672 -20 -0.0
.text 485372 485352 -20 -0.0
lock-app qpg6100+debug (read only) 466920 466900 -20 -0.0
.text 461600 461580 -20 -0.0
telink lighting-app tlsr9518adk80d (read/write) 663446 663418 -28 -0.0
text 458676 458654 -22 -0.0
Full report (21 builds for efr32, k32w, linux, p6, qpg, telink)
platform target config section a27a311 fc0bac5 change % change
efr32 lighting-app BRD4161A (read only) 742476 742476 0 0.0
(read/write) 116280 116280 0 0.0
.bss 114500 114500 0 0.0
.data 1780 1780 0 0.0
.text 742468 742468 0 0.0
BRD4161A+rpc (read only) 730016 730040 24 0.0
(read/write) 132900 132900 0 0.0
.bss 131004 131004 0 0.0
.data 1896 1896 0 0.0
.text 730008 730032 24 0.0
lock-app BRD4161A (read only) 721756 721764 8 0.0
(read/write) 114096 114096 0 0.0
.bss 112356 112356 0 0.0
.data 1740 1740 0 0.0
.text 721748 721756 8 0.0
window-app BRD4161A (read only) 722668 722676 8 0.0
(read/write) 114420 114420 0 0.0
.bss 112676 112676 0 0.0
.data 1744 1744 0 0.0
.text 722660 722668 8 0.0
k32w lighting-app k32w061+se05x+release (read/write) 699400 699396 -4 -0.0
.bss 78012 78012 0 0.0
.data 1908 1908 0 0.0
.text 613680 613676 -4 -0.0
lock-app k32w061+debug (read/write) 592152 592132 -20 -0.0
.bss 68548 68548 0 0.0
.data 1876 1876 0 0.0
.text 515928 515908 -20 -0.0
shell k32w061+debug (read/write) 657780 657760 -20 -0.0
.bss 79340 79340 0 0.0
.data 1844 1844 0 0.0
.text 570796 570776 -20 -0.0
linux all-clusters-app debug (read only) 1699057 1698921 -136 -0.0
(read/write) 126464 126432 -32 -0.0
.bss 57904 57904 0 0.0
.data 1010 1010 0 0.0
.data.rel.ro 62288 62256 -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 139061 139061 0 0.0
.text 1426482 1426370 -112 -0.0
bridge-app debug+rpc (read only) 1298877 1298741 -136 -0.0
(read/write) 77296 77264 -32 -0.0
.bss 42800 42800 0 0.0
.data 1568 1568 0 0.0
.data.rel.ro 27952 27928 -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 110932 110932 0 0.0
.text 1091477 1091365 -112 -0.0
chip-tool debug (read only) 4616445 4616469 24 0.0
(read/write) 135072 135040 -32 -0.0
.bss 25960 25960 0 0.0
.data 2256 2256 0 0.0
.data.rel.ro 101424 101400 -24 -0.0
.dynamic 592 592 0 0.0
.got 4368 4368 0 0.0
.init 27 27 0 0.0
.init_array 432 432 0 0.0
.rodata 240746 240746 0 0.0
.text 4103877 4103925 48 0.0
lighting-app debug+rpc (read only) 1558249 1558113 -136 -0.0
(read/write) 110408 110376 -32 -0.0
.bss 48560 48560 0 0.0
.data 1202 1202 0 0.0
.data.rel.ro 55360 55328 -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 128369 128369 0 0.0
.text 1295746 1295634 -112 -0.0
ota-provider-app debug (read only) 1260113 1259977 -136 -0.0
(read/write) 75656 75624 -32 -0.0
.bss 44992 44992 0 0.0
.data 752 752 0 0.0
.data.rel.ro 24808 24776 -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 112615 112615 0 0.0
.text 1050674 1050562 -112 -0.0
ota-requestor-app debug (read only) 1344673 1344681 8 0.0
(read/write) 79424 79392 -32 -0.0
.bss 47456 47456 0 0.0
.data 816 816 0 0.0
.data.rel.ro 26072 26040 -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 123632 123632 0 0.0
.text 1121666 1121698 32 0.0
shell debug (read only) 788537 788441 -96 -0.0
(read/write) 65640 65608 -32 -0.0
.bss 23944 23944 0 0.0
.data 242 242 0 0.0
.data.rel.ro 36960 36928 -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 77519 77519 0 0.0
.text 609074 609026 -48 -0.0
tv-app debug (read only) 1842881 1842905 24 0.0
(read/write) 408248 408216 -32 -0.0
.bss 340232 340232 0 0.0
.data 2736 2736 0 0.0
.data.rel.ro 59624 59600 -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 155757 155757 0 0.0
.text 1542626 1542674 48 0.0
p6 all-clusters-app default (read/write) 2297136 2297136 0 0.0
.bss 112416 112416 0 0.0
.data 2520 2520 0 0.0
.heap 918408 918408 0 0.0
.text 1255400 1255400 0 0.0
lock-app default (read/write) 2211752 2211760 8 0.0
.bss 101264 101264 0 0.0
.data 2400 2400 0 0.0
.heap 929680 929680 0 0.0
.text 1170016 1170024 8 0.0
qpg lighting-app qpg6100+debug (read only) 490692 490672 -20 -0.0
(read/write) 114144 114144 0 0.0
.bss 51168 51168 0 0.0
.data 1008 1008 0 0.0
.text 485372 485352 -20 -0.0
lock-app qpg6100+debug (read only) 466920 466900 -20 -0.0
(read/write) 114140 114140 0 0.0
.bss 50112 50112 0 0.0
.data 964 964 0 0.0
.text 461600 461580 -20 -0.0
persistent-storage-app qpg6100+debug (read only) 105408 105408 0 0.0
(read/write) 114142 114142 0 0.0
.bss 8978 8978 0 0.0
.data 272 272 0 0.0
.text 100088 100088 0 0.0
telink lighting-app tlsr9518adk80d (read/write) 663446 663418 -28 -0.0
bss 69288 69288 0 0.0
noinit 33216 33216 0 0.0
text 458676 458654 -22 -0.0

@andy31415 andy31415 requested a review from cecille November 10, 2021 15:42
@woody-apple
Copy link
Contributor

Not sure this is a trivial change given this changes behavior?

mspang
mspang previously requested changes Nov 12, 2021
Copy link
Contributor

@mspang mspang left a comment

Choose a reason for hiding this comment

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

Please don't run tests as "root"

@mspang
Copy link
Contributor

mspang commented Nov 12, 2021

Please don't run tests as "root"

Refer to #2688

I don't want to rehash that entire discussion here. We don't need root.

@andy31415
Copy link
Contributor Author

Please don't run tests as "root"

Refer to #2688

I don't want to rehash that entire discussion here. We don't need root.

Please explain the request a bit more. Looked at #2688 and it seemed to request no root, however happy internally does root.
Ran rg -i sudo ./third_party/happy/repo on ToT right now and got a lot of hits.

Current script does not require root, however for commands it knows need root it will execute sudo unless current user is already root. You can run test_suite.sh without root (and withing -n) and it will run. It will not pass because minmdns was not built to be used the way the test is built (2 separate apps listening on the same mdns port).

@mspang
Copy link
Contributor

mspang commented Nov 12, 2021

#2688

Please don't run tests as "root"

Refer to #2688
I don't want to rehash that entire discussion here. We don't need root.

Please explain the request a bit more. Looked at #2688 and it seemed to request no root, however happy internally does root. Ran rg -i sudo ./third_party/happy/repo on ToT right now and got a lot of hits.

Please read it again and expand the whole discussion. I provided specific commands for running it without root and we have integrated those.

Current script does not require root, however for commands it knows need root it will execute sudo unless current user is already root. You can run test_suite.sh without root (and withing -n) and it will run. It will not pass because minmdns was not built to be used the way the test is built (2 separate apps listening on the same mdns port).

I don't agree with it and it is not necessary. We've had developers spend hours debugging cirque making global network configuration changes on their machine.

@mspang
Copy link
Contributor

mspang commented Nov 12, 2021

#2688

Please don't run tests as "root"

Refer to #2688
I don't want to rehash that entire discussion here. We don't need root.

Please explain the request a bit more. Looked at #2688 and it seemed to request no root, however happy internally does root. Ran rg -i sudo ./third_party/happy/repo on ToT right now and got a lot of hits.

Please read it again and expand the whole discussion. I provided specific commands for running it without root and we have integrated those.

Current script does not require root, however for commands it knows need root it will execute sudo unless current user is already root. You can run test_suite.sh without root (and withing -n) and it will run. It will not pass because minmdns was not built to be used the way the test is built (2 separate apps listening on the same mdns port).

I don't agree with it and it is not necessary. We've had developers spend hours debugging cirque making global network configuration changes on their machine.

Here's a link to the important part:
#2688 (comment)

@mspang mspang dismissed their stale review November 12, 2021 16:58

concern was addressed

@mspang
Copy link
Contributor

mspang commented Nov 12, 2021

#2688

Please don't run tests as "root"

Refer to #2688
I don't want to rehash that entire discussion here. We don't need root.

Please explain the request a bit more. Looked at #2688 and it seemed to request no root, however happy internally does root. Ran rg -i sudo ./third_party/happy/repo on ToT right now and got a lot of hits.

Please read it again and expand the whole discussion. I provided specific commands for running it without root and we have integrated those.

Current script does not require root, however for commands it knows need root it will execute sudo unless current user is already root. You can run test_suite.sh without root (and withing -n) and it will run. It will not pass because minmdns was not built to be used the way the test is built (2 separate apps listening on the same mdns port).

I don't agree with it and it is not necessary. We've had developers spend hours debugging cirque making global network configuration changes on their machine.

Here's a link to the important part: #2688 (comment)

Thanks

Copy link
Contributor

@mspang mspang left a comment

Choose a reason for hiding this comment

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

Test wrapper look changes looks good now.

I do have some concerns about the RFC compliance of the functional change (violates a SHOULD). But I understand the immediate need re: min MDNS.

Should we perhaps add some TODOs here? And note that making repairs to whatever is blocking use of avahi is an another solution.

@todo
Copy link

todo bot commented Nov 15, 2021

(andy314): IPv6 does Duplicate Address Detection even though

# TODO(andy314): IPv6 does Duplicate Address Detection even though
# we know these addresses are isolated. For a while IPv6 addresses
# will be in 'transitional' state and cannot be used.
#
# This sleep waits for the addresses to become 'global'. Ideally
# we should loop/wait here instead.
sleep 2
}
netns_cleanup() {
ip netns del app || true


This comment was generated by todo based on a TODO comment in 03f4d6a in #11635. cc @andy31415.

@github-actions
Copy link

github-actions bot commented Nov 15, 2021

PR #11635: Size comparison from 641aacd to 03f4d6a

Full report (38 builds for efr32, esp32, k32w, linux, mbed, nrfconnect, p6, qpg, telink)
platform target config section 641aacd 03f4d6a change % change
efr32 lighting-app BRD4161A (read only) 750088 750088 0 0.0
(read/write) 115940 115940 0 0.0
.bss 114140 114140 0 0.0
.data 1800 1800 0 0.0
.text 750080 750080 0 0.0
BRD4161A+rpc (read only) 737636 737636 0 0.0
(read/write) 132568 132568 0 0.0
.bss 130644 130644 0 0.0
.data 1924 1924 0 0.0
.text 737628 737628 0 0.0
lock-app BRD4161A (read only) 726752 726752 0 0.0
(read/write) 113724 113724 0 0.0
.bss 111964 111964 0 0.0
.data 1756 1756 0 0.0
.text 726744 726744 0 0.0
window-app BRD4161A (read only) 727744 727744 0 0.0
(read/write) 114044 114044 0 0.0
.bss 112284 112284 0 0.0
.data 1760 1760 0 0.0
.text 727736 727736 0 0.0
esp32 all-clusters-app c3devkit (read only) 826956 826956 0 0.0
(read/write) 1224466 1224466 0 0.0
.dram0.bss 57088 57088 0 0.0
.dram0.data 14092 14092 0 0.0
.flash.rodata 168040 168040 0 0.0
.flash.text 826956 826956 0 0.0
.iram0.text 61394 61394 0 0.0
m5stack (read only) 897631 897631 0 0.0
(read/write) 422624 422624 0 0.0
.dram0.bss 62184 62184 0 0.0
.dram0.data 34056 34056 0 0.0
.flash.rodata 195060 195060 0 0.0
.flash.text 892247 892247 0 0.0
.iram0.text 122987 122987 0 0.0
k32w lighting-app k32w061+se05x+release (read/write) 702540 702540 0 0.0
.bss 77508 77508 0 0.0
.data 1908 1908 0 0.0
.text 617324 617324 0 0.0
lock-app k32w061+debug (read/write) 593548 593548 0 0.0
.bss 68028 68028 0 0.0
.data 1876 1876 0 0.0
.text 517844 517844 0 0.0
shell k32w061+debug (read/write) 659232 659232 0 0.0
.bss 78820 78820 0 0.0
.data 1844 1844 0 0.0
.text 572768 572768 0 0.0
linux all-clusters-app debug (read only) 1722337 1722337 0 0.0
(read/write) 126816 126816 0 0.0
.bss 57776 57776 0 0.0
.data 1042 1042 0 0.0
.data.rel.ro 62720 62720 0 0.0
.dynamic 592 592 0 0.0
.got 4112 4112 0 0.0
.init 27 27 0 0.0
.init_array 552 552 0 0.0
.rodata 140277 140277 0 0.0
.text 1447842 1447842 0 0.0
bridge-app debug+rpc (read only) 1312741 1312741 0 0.0
(read/write) 77424 77424 0 0.0
.bss 42896 42896 0 0.0
.data 1568 1568 0 0.0
.data.rel.ro 27960 27960 0 0.0
.dynamic 592 592 0 0.0
.got 3984 3984 0 0.0
.init 27 27 0 0.0
.init_array 408 408 0 0.0
.rodata 111860 111860 0 0.0
.text 1103909 1103909 0 0.0
chip-tool debug (read only) 4921493 4921493 0 0.0
(read/write) 167208 167208 0 0.0
.bss 41192 41192 0 0.0
.data 2272 2272 0 0.0
.data.rel.ro 118256 118256 0 0.0
.dynamic 592 592 0 0.0
.got 4416 4416 0 0.0
.init 27 27 0 0.0
.init_array 472 472 0 0.0
.rodata 268242 268242 0 0.0
.text 4343605 4343605 0 0.0
lighting-app debug+rpc (read only) 1582281 1582281 0 0.0
(read/write) 110192 110192 0 0.0
.bss 48080 48080 0 0.0
.data 1234 1234 0 0.0
.data.rel.ro 55552 55552 0 0.0
.dynamic 608 608 0 0.0
.got 4136 4136 0 0.0
.init 27 27 0 0.0
.init_array 536 536 0 0.0
.rodata 129841 129841 0 0.0
.text 1317746 1317746 0 0.0
ota-provider-app debug (read only) 1267337 1267337 0 0.0
(read/write) 75176 75176 0 0.0
.bss 44512 44512 0 0.0
.data 784 784 0 0.0
.data.rel.ro 24776 24776 0 0.0
.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 113383 113383 0 0.0
.text 1057106 1057106 0 0.0
ota-requestor-app debug (read only) 1352009 1352009 0 0.0
(read/write) 78944 78944 0 0.0
.bss 46976 46976 0 0.0
.data 848 848 0 0.0
.data.rel.ro 26040 26040 0 0.0
.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 124208 124208 0 0.0
.text 1128402 1128402 0 0.0
shell debug (read only) 789081 789081 0 0.0
(read/write) 65064 65064 0 0.0
.bss 23400 23400 0 0.0
.data 242 242 0 0.0
.data.rel.ro 36928 36928 0 0.0
.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 77903 77903 0 0.0
.text 609282 609282 0 0.0
tv-app debug (read only) 1858569 1858569 0 0.0
(read/write) 407896 407896 0 0.0
.bss 339752 339752 0 0.0
.data 2768 2768 0 0.0
.data.rel.ro 59696 59696 0 0.0
.dynamic 592 592 0 0.0
.got 4432 4432 0 0.0
.init 27 27 0 0.0
.init_array 616 616 0 0.0
.rodata 157069 157069 0 0.0
.text 1556418 1556418 0 0.0
mbed all-clusters-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2292200 2292200 0 0.0
.bss 179692 179692 0 0.0
.data 5216 5216 0 0.0
.heap 851536 851536 0 0.0
.text 1254800 1254800 0 0.0
lighting-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2274688 2274688 0 0.0
.bss 172556 172556 0 0.0
.data 5576 5576 0 0.0
.heap 858312 858312 0 0.0
.text 1237288 1237288 0 0.0
lock-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2250128 2250128 0 0.0
.bss 171436 171436 0 0.0
.data 5568 5568 0 0.0
.heap 859440 859440 0 0.0
.text 1212728 1212728 0 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) 2048376 2048376 0 0.0
.bss 155912 155912 0 0.0
.data 4968 4968 0 0.0
.heap 875568 875568 0 0.0
.text 1010976 1010976 0 0.0
nrfconnect lighting-app nrf52840dk_nrf52840 (read/write) 865175 865175 0 0.0
bss 110964 110964 0 0.0
rodata 97080 97080 0 0.0
text 581516 581516 0 0.0
nrf52840dk_nrf52840+rpc (read/write) 827567 827567 0 0.0
bss 107320 107320 0 0.0
rodata 88272 88272 0 0.0
text 555688 555688 0 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 790234 790234 0 0.0
bss 112340 112340 0 0.0
rodata 92340 92340 0 0.0
text 510984 510984 0 0.0
lock-app nrf52840dk_nrf52840 (read/write) 840199 840199 0 0.0
bss 109988 109988 0 0.0
rodata 93144 93144 0 0.0
text 561616 561616 0 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 765514 765514 0 0.0
bss 111400 111400 0 0.0
rodata 88452 88452 0 0.0
text 491176 491176 0 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) 846327 846327 0 0.0
bss 110128 110128 0 0.0
rodata 94856 94856 0 0.0
text 565800 565800 0 0.0
pump-controller-app nrf52840dk_nrf52840 (read/write) 839903 839903 0 0.0
bss 110024 110024 0 0.0
rodata 93104 93104 0 0.0
text 561236 561236 0 0.0
shell nrf52840dk_nrf52840 (read/write) 775499 775499 0 0.0
bss 108736 108736 0 0.0
rodata 72160 72160 0 0.0
text 520020 520020 0 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 690554 690554 0 0.0
bss 109720 109720 0 0.0
rodata 66804 66804 0 0.0
text 440628 440628 0 0.0
p6 all-clusters-app default (read/write) 2301232 2301232 0 0.0
.bss 112680 112680 0 0.0
.data 2520 2520 0 0.0
.heap 918144 918144 0 0.0
.text 1259496 1259496 0 0.0
lock-app default (read/write) 2214704 2214704 0 0.0
.bss 101296 101296 0 0.0
.data 2400 2400 0 0.0
.heap 929648 929648 0 0.0
.text 1172968 1172968 0 0.0
qpg lighting-app qpg6100+debug (read only) 494216 494216 0 0.0
(read/write) 114144 114144 0 0.0
.bss 50640 50640 0 0.0
.data 1008 1008 0 0.0
.text 488896 488896 0 0.0
lock-app qpg6100+debug (read only) 468752 468752 0 0.0
(read/write) 114140 114140 0 0.0
.bss 49576 49576 0 0.0
.data 964 964 0 0.0
.text 463432 463432 0 0.0
persistent-storage-app qpg6100+debug (read only) 105408 105408 0 0.0
(read/write) 114142 114142 0 0.0
.bss 8978 8978 0 0.0
.data 272 272 0 0.0
.text 100088 100088 0 0.0
telink lighting-app tlsr9518adk80d (read/write) 667854 667854 0 0.0
bss 69320 69320 0 0.0
noinit 33216 33216 0 0.0
text 462372 462372 0 0.0

@cecille
Copy link
Contributor

cecille commented Nov 15, 2021

I'm OK with this in practice, but we will need some kind of developer PSA for this - given that chip-device-ctrl is still built as default minimal mdns (not sure about chip-tool), we'll probably end up with folks who are unable to resolve nodes because avahi is eating their packets. It's not that easy to kill either - just stopping the service isn't sufficient. It will come back even if the config isn't set that way. It's the zombie packet eater that won't die. As far as I can tell, you actually need to mask off the socket to stop the service from restarting itself. Not exactly intuitive and we're likely to lose a fair number of dev hours on that if we don't send out instructions and warnings far and wide.

@andy31415 andy31415 merged commit 7c47bed into project-chip:master Nov 15, 2021
PSONALl pushed a commit to PSONALl/connectedhomeip that referenced this pull request Dec 3, 2021
…ject-chip#11635)

* Request unicast responses for resolving nodes when using minmdns

* Set unicast answer to true in browse nodes as well

* Make unit tests use platform mdns: chip tool and all clusters all need to be mdns servers (because tv  commisioning) so having a single central point seems more correct than having several mdns servers

* Set the chip_mdns value as a string

* Escape quotes for platform mdns  build

* Revert platform mdns usage in tests: avahi does not properly work for testing (tried locally, could not get it to work but minimal can work, need to figure out how)

* Add support for using netns namespaces for unit test runs - check to see  if that makes linux unit tests happy

* Do not restyle test_suites.sh

* Some script cleanup

* Temporarely run the tests on ipv4 only until I figure out ipv6 multicast support

* Cleanup netns as a final step, just in case

* Move cleanup again - cleanup is added again post-netns setup

* Code review comments, enable ipv6 back

* Add note on why we stop restuling testsuites.sh

* Use unshare instead of sudo to run unit tests in namespaces

* Update remount logic to only apply for unshare environments

* Updated messaging logic

* Added a sleep for IPv6 and a comment as to why
@andy31415 andy31415 deleted the unicast_mdns_resolve branch June 14, 2023 12:24
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.

7 participants