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

Fix MinMdns sending duplicate broadcast packets, add a debug menu on m5stack #10571

Merged
merged 4 commits into from
Oct 20, 2021

Conversation

andy31415
Copy link
Contributor

Problem

  1. Logic error for bound interface detection: udp->GetBoundInterface() is always null because we bind for address/port not by interface

  2. ESP32 listens on NULL inteface however interfaces have both IPv4 and IPv6 addresses, so broadcast sends will reply on both (since filter by interface without type), resulting in double mDNS broadcasts.

Change overview

  • add a m5stack debug action for 're-init'
  • fix interface detection: determine listening IP type without taking udp->GetBoundInterface() into account
  • Fix duplicate replies by only replying on the correct interface for the given destination ip address

Testing

Manually checked with wireshark.

Sending 'by interfaces' sends replies in both IPv4 and IPv6 targets even
though queries are received on a specific type. Since on dual stack we
listen on both IPv4 and IPv6 this results in double packet sending every
time.

Fix logic error: udp->GetBoundInterface() is never set in the current
code as we bind ip/port rather than interface.
@github-actions
Copy link

github-actions bot commented Oct 15, 2021

PR #10571: Size comparison from efc17de to 1262c94

16 builds
platform target config section efc17de 1262c94 change % change
k32w lock-app k32w061+debug .bss 69052 69052 0 0.0
.data 1864 1864 0 0.0
.text 515176 515176 0 0.0
shell k32w061+debug .bss 55080 55080 0 0.0
.data 672 672 0 0.0
.text 357172 357172 0 0.0
lighting-app k32w061+se05x+release .bss 78560 78560 0 0.0
.data 1900 1900 0 0.0
.text 613800 613800 0 0.0
linux all-clusters-app debug .bss 52176 52176 0 0.0
.data 978 978 0 0.0
.data.rel.ro 58432 58432 0 0.0
.dynamic 592 592 0 0.0
.got 4072 4072 0 0.0
.init 27 27 0 0.0
.init_array 512 512 0 0.0
.rodata 135989 135989 0 0.0
.text 1326066 1326082 16 0.0
chip-tool debug .bss 17552 17552 0 0.0
.data 1584 1584 0 0.0
.data.rel.ro 83312 83312 0 0.0
.dynamic 592 592 0 0.0
.got 4328 4328 0 0.0
.init 27 27 0 0.0
.init_array 416 416 0 0.0
.rodata 174560 174528 -32 -0.0
.text 2421973 2421973 0 0.0
ota-provider-app debug .bss 37472 37472 0 0.0
.data 752 752 0 0.0
.data.rel.ro 23176 23176 0 0.0
.dynamic 592 592 0 0.0
.got 4008 4008 0 0.0
.init 27 27 0 0.0
.init_array 440 440 0 0.0
.rodata 109848 109816 -32 -0.0
.text 1009314 1009346 32 0.0
ota-requestor-app debug .bss 205728 205728 0 0.0
.data 752 752 0 0.0
.data.rel.ro 24488 24488 0 0.0
.dynamic 592 592 0 0.0
.got 4136 4136 0 0.0
.init 27 27 0 0.0
.init_array 512 512 0 0.0
.rodata 127896 127896 0 0.0
.text 1128626 1128658 32 0.0
shell debug .bss 16072 16072 0 0.0
.data 242 242 0 0.0
.data.rel.ro 35120 35120 0 0.0
.dynamic 592 592 0 0.0
.got 3496 3496 0 0.0
.init 27 27 0 0.0
.init_array 336 336 0 0.0
.rodata 71855 71855 0 0.0
.text 568898 568882 -16 -0.0
tv-app debug .bss 216368 216368 0 0.0
.data 2032 2032 0 0.0
.data.rel.ro 55536 55536 0 0.0
.dynamic 592 592 0 0.0
.got 4400 4400 0 0.0
.init 27 27 0 0.0
.init_array 608 608 0 0.0
.rodata 151464 151464 0 0.0
.text 1462818 1462834 16 0.0
bridge-app debug+rpc .bss 52880 52880 0 0.0
.data 976 976 0 0.0
.data.rel.ro 25496 25496 0 0.0
.dynamic 592 592 0 0.0
.got 3944 3944 0 0.0
.init 27 27 0 0.0
.init_array 400 400 0 0.0
.rodata 110484 110460 -24 -0.0
.text 1050821 1050837 16 0.0
lighting-app debug+rpc .bss 42200 42200 0 0.0
.data 1106 1106 0 0.0
.data.rel.ro 52240 52240 0 0.0
.dynamic 608 608 0 0.0
.got 4104 4104 0 0.0
.init 27 27 0 0.0
.init_array 528 528 0 0.0
.rodata 127665 127633 -32 -0.0
.text 1252226 1252258 32 0.0
p6 lock-app default .bss 68216 68216 0 0.0
.data 2416 2416 0 0.0
.heap 962712 962712 0 0.0
.text 1126280 1126256 -24 -0.0
qpg lighting-app qpg6100+debug .bss 53536 53536 0 0.0
.data 996 996 0 0.0
.text 486104 486104 0 0.0
lock-app qpg6100+debug .bss 52488 52488 0 0.0
.data 952 952 0 0.0
.text 462352 462352 0 0.0
persistent-storage-app qpg6100+debug .bss 17778 17778 0 0.0
.data 280 280 0 0.0
.text 102704 102704 0 0.0
telink lighting-app tlsr9518adk80d bss 70984 70984 0 0.0
noinit 33216 33216 0 0.0
text 458146 458146 0 0.0
6 builds
platform target config section efc17de 1262c94 change % change
efr32 lighting-app BRD4161A .bss 118020 118020 0 0.0
.data 1800 1800 0 0.0
.text 782420 782420 0 0.0
lock-app BRD4161A .bss 115892 115892 0 0.0
.data 1760 1760 0 0.0
.text 761724 761724 0 0.0
window-app BRD4161A .bss 116212 116212 0 0.0
.data 1764 1764 0 0.0
.text 762632 762632 0 0.0
lighting-app BRD4161A+rpc .bss 131348 131348 0 0.0
.data 1852 1852 0 0.0
.text 762148 762148 0 0.0
mbed lighting-app CY8CPROTO_062_4343W+release .bss 172148 172148 0 0.0
.data 5464 5464 0 0.0
.heap 858832 858832 0 0.0
.text 1219384 1219360 -24 -0.0
lock-app CY8CPROTO_062_4343W+release .bss 171084 171084 0 0.0
.data 5432 5432 0 0.0
.heap 859928 859928 0 0.0
.text 1197440 1197416 -24 -0.0
2 builds
platform target config section efc17de 1262c94 change % change
esp32 all-clusters-app c3devkit .dram0.bss 60280 60280 0 0.0
.dram0.data 16192 16192 0 0.0
.flash.rodata 198624 198600 -24 -0.0
.flash.text 870142 870150 8 0.0
.iram0.text 57330 57330 0 0.0
m5stack .dram0.bss 62776 62776 0 0.0
.dram0.data 32084 32084 0 0.0
.flash.rodata 207056 207360 304 0.1
.flash.text 900507 901691 1184 0.1
.iram0.text 125115 125115 0 0.0
10 builds
platform target config section efc17de 1262c94 change % change
nrfconnect lighting-app nrf52840dk_nrf52840 bss 112316 112316 0 0.0
rodata 97528 97528 0 0.0
text 577428 577428 0 0.0
lock-app nrf52840dk_nrf52840 bss 111348 111348 0 0.0
rodata 94028 94028 0 0.0
text 558928 558928 0 0.0
pigweed-app nrf52840dk_nrf52840 bss 51772 51772 0 0.0
rodata 45772 45772 0 0.0
text 339392 339392 0 0.0
pump-app nrf52840dk_nrf52840 bss 111416 111416 0 0.0
rodata 95008 95008 0 0.0
text 562084 562084 0 0.0
pump-controller-app nrf52840dk_nrf52840 bss 111356 111356 0 0.0
rodata 94088 94088 0 0.0
text 558720 558720 0 0.0
shell nrf52840dk_nrf52840 bss 107316 107316 0 0.0
rodata 71640 71640 0 0.0
text 518908 518908 0 0.0
lighting-app nrf52840dk_nrf52840+rpc bss 108556 108556 0 0.0
rodata 88320 88320 0 0.0
text 550632 550632 0 0.0
nrf5340dk_nrf5340_cpuapp bss 113688 113688 0 0.0
rodata 92772 92772 0 0.0
text 506888 506888 0 0.0
lock-app nrf5340dk_nrf5340_cpuapp bss 112720 112720 0 0.0
rodata 89284 89284 0 0.0
text 488380 488380 0 0.0
shell nrf5340dk_nrf5340_cpuapp bss 108300 108300 0 0.0
rodata 66284 66284 0 0.0
text 439504 439504 0 0.0

@github-actions
Copy link

github-actions bot commented Oct 18, 2021

PR #10571: Size comparison from 5987dab to 82c1dc5

2 builds
platform target config section 5987dab 82c1dc5 change % change
p6 lock-app default .bss 68216 68216 0 0.0
.data 2416 2416 0 0.0
.heap 962712 962712 0 0.0
.text 1126440 1126416 -24 -0.0
telink lighting-app tlsr9518adk80d bss 71000 71000 0 0.0
noinit 33216 33216 0 0.0
text 458218 458218 0 0.0
32 builds
platform target config section 5987dab 82c1dc5 change % change
efr32 lighting-app BRD4161A .bss 118036 118036 0 0.0
.data 1800 1800 0 0.0
.text 782756 782756 0 0.0
lock-app BRD4161A .bss 115892 115892 0 0.0
.data 1760 1760 0 0.0
.text 761900 761900 0 0.0
window-app BRD4161A .bss 116212 116212 0 0.0
.data 1764 1764 0 0.0
.text 762824 762824 0 0.0
lighting-app BRD4161A+rpc .bss 131364 131364 0 0.0
.data 1852 1852 0 0.0
.text 762500 762500 0 0.0
esp32 all-clusters-app c3devkit .dram0.bss 60296 60296 0 0.0
.dram0.data 16192 16192 0 0.0
.flash.rodata 198784 198760 -24 -0.0
.flash.text 870190 870198 8 0.0
.iram0.text 57330 57330 0 0.0
m5stack .dram0.bss 62792 62792 0 0.0
.dram0.data 32084 32084 0 0.0
.flash.rodata 207216 207520 304 0.1
.flash.text 900559 901643 1084 0.1
.iram0.text 125115 125115 0 0.0
k32w lock-app k32w061+debug .bss 69052 69052 0 0.0
.data 1864 1864 0 0.0
.text 515336 515336 0 0.0
shell k32w061+debug .bss 55080 55080 0 0.0
.data 672 672 0 0.0
.text 357332 357332 0 0.0
lighting-app k32w061+se05x+release .bss 78576 78576 0 0.0
.data 1900 1900 0 0.0
.text 614120 614120 0 0.0
linux all-clusters-app debug .bss 52176 52176 0 0.0
.data 978 978 0 0.0
.data.rel.ro 58688 58688 0 0.0
.dynamic 592 592 0 0.0
.got 4072 4072 0 0.0
.init 27 27 0 0.0
.init_array 512 512 0 0.0
.rodata 135957 135957 0 0.0
.text 1327474 1327490 16 0.0
chip-tool debug .bss 17552 17552 0 0.0
.data 1584 1584 0 0.0
.data.rel.ro 84896 84896 0 0.0
.dynamic 592 592 0 0.0
.got 4336 4336 0 0.0
.init 27 27 0 0.0
.init_array 416 416 0 0.0
.rodata 176928 176896 -32 -0.0
.text 2458309 2458293 -16 -0.0
ota-provider-app debug .bss 37472 37472 0 0.0
.data 752 752 0 0.0
.data.rel.ro 23176 23176 0 0.0
.dynamic 592 592 0 0.0
.got 4008 4008 0 0.0
.init 27 27 0 0.0
.init_array 440 440 0 0.0
.rodata 109832 109800 -32 -0.0
.text 1010322 1010354 32 0.0
ota-requestor-app debug .bss 205728 205728 0 0.0
.data 752 752 0 0.0
.data.rel.ro 24488 24488 0 0.0
.dynamic 592 592 0 0.0
.got 4136 4136 0 0.0
.init 27 27 0 0.0
.init_array 512 512 0 0.0
.rodata 128328 128328 0 0.0
.text 1129634 1129666 32 0.0
shell debug .bss 16072 16072 0 0.0
.data 242 242 0 0.0
.data.rel.ro 35120 35120 0 0.0
.dynamic 592 592 0 0.0
.got 3496 3496 0 0.0
.init 27 27 0 0.0
.init_array 336 336 0 0.0
.rodata 71855 71823 -32 -0.0
.text 569858 569842 -16 -0.0
tv-app debug .bss 216400 216400 0 0.0
.data 2032 2032 0 0.0
.data.rel.ro 55872 55872 0 0.0
.dynamic 592 592 0 0.0
.got 4400 4400 0 0.0
.init 27 27 0 0.0
.init_array 608 608 0 0.0
.rodata 151848 151848 0 0.0
.text 1464210 1464226 16 0.0
bridge-app debug+rpc .bss 52912 52912 0 0.0
.data 976 976 0 0.0
.data.rel.ro 25784 25784 0 0.0
.dynamic 592 592 0 0.0
.got 3944 3944 0 0.0
.init 27 27 0 0.0
.init_array 400 400 0 0.0
.rodata 110452 110428 -24 -0.0
.text 1052229 1052261 32 0.0
lighting-app debug+rpc .bss 42232 42232 0 0.0
.data 1106 1106 0 0.0
.data.rel.ro 52496 52496 0 0.0
.dynamic 608 608 0 0.0
.got 4104 4104 0 0.0
.init 27 27 0 0.0
.init_array 528 528 0 0.0
.rodata 127665 127633 -32 -0.0
.text 1253634 1253666 32 0.0
mbed lighting-app CY8CPROTO_062_4343W+release .bss 172164 172164 0 0.0
.data 5464 5464 0 0.0
.heap 858816 858816 0 0.0
.text 1219736 1219776 40 0.0
lock-app CY8CPROTO_062_4343W+release .bss 171084 171084 0 0.0
.data 5432 5432 0 0.0
.heap 859928 859928 0 0.0
.text 1197632 1197672 40 0.0
nrfconnect lighting-app nrf52840dk_nrf52840 bss 112332 112332 0 0.0
rodata 97688 97688 0 0.0
text 577560 577560 0 0.0
lock-app nrf52840dk_nrf52840 bss 111348 111348 0 0.0
rodata 94028 94028 0 0.0
text 559060 559060 0 0.0
pigweed-app nrf52840dk_nrf52840 bss 51772 51772 0 0.0
rodata 45772 45772 0 0.0
text 339392 339392 0 0.0
pump-app nrf52840dk_nrf52840 bss 111416 111416 0 0.0
rodata 95008 95008 0 0.0
text 562216 562216 0 0.0
pump-controller-app nrf52840dk_nrf52840 bss 111356 111356 0 0.0
rodata 94088 94088 0 0.0
text 558852 558852 0 0.0
shell nrf52840dk_nrf52840 bss 107316 107316 0 0.0
rodata 71640 71640 0 0.0
text 519032 519032 0 0.0
lighting-app nrf52840dk_nrf52840+rpc bss 108572 108572 0 0.0
rodata 88480 88480 0 0.0
text 550764 550764 0 0.0
nrf5340dk_nrf5340_cpuapp bss 113704 113704 0 0.0
rodata 92932 92932 0 0.0
text 507020 507020 0 0.0
lock-app nrf5340dk_nrf5340_cpuapp bss 112720 112720 0 0.0
rodata 89284 89284 0 0.0
text 488516 488516 0 0.0
shell nrf5340dk_nrf5340_cpuapp bss 108300 108300 0 0.0
rodata 66284 66284 0 0.0
text 439632 439632 0 0.0
qpg lighting-app qpg6100+debug .bss 53552 53552 0 0.0
.data 996 996 0 0.0
.text 486432 486432 0 0.0
lock-app qpg6100+debug .bss 52488 52488 0 0.0
.data 952 952 0 0.0
.text 462520 462520 0 0.0
persistent-storage-app qpg6100+debug .bss 17778 17778 0 0.0
.data 280 280 0 0.0
.text 102704 102704 0 0.0

@github-actions
Copy link

Size increase report for "esp32-example-build" from 5987dab

File Section File VM
chip-all-clusters-app.elf .flash.text 8 8
chip-all-clusters-app.elf .flash.rodata -24 -24
Full report output
BLOAT REPORT

Files found only in the build output:
    report.csv

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

sections,vmsize,filesize
.debug_str,0,25
.strtab,0,25
[Unmapped],0,16
.debug_abbrev,0,13
.debug_frame,0,12
.flash.text,8,8
.shstrtab,0,3
.riscv.attributes,0,-1
.flash.rodata,-24,-24
.debug_loc,0,-59
.debug_ranges,0,-104
.debug_info,0,-106
.debug_line,0,-132


@andy31415 andy31415 merged commit 7c7e5c7 into project-chip:master Oct 20, 2021
@andy31415 andy31415 deleted the fix_duplicate_broadcast branch October 28, 2021 14:04
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.

6 participants