-
Notifications
You must be signed in to change notification settings - Fork 2.1k
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
[BUG] Pairing M5 failed - PacketBuffer: pool EMPTY after receiving Sigma3 message #23258
Comments
This likely the same cause as #23180, specifically, my comment here. In this situation, you're not seeing event queue overflows but PBUF overflow because the event queue is likely not the bottleneck here (i.e it's sized large enough such that it can weather the number of DNS messages being processed), but the PBUF pool isn't large enough to handle the mDNS packet deluge. |
Can you let me know what the value for |
I have also seen large numbers of IPv6 NA (Neighbour Announcement) around failure, not just mDNS. Packet capture at the Wi-Fi level on the link used by ESP-32 is rquired to debug further. There may be LWIP constants related to IPv6 that cause some of these overflows as well. |
I used the default: #define CHIP_DEVICE_CONFIG_MAX_EVENT_QUEUE_SIZE 100 |
The default is 25 no? With 100, that explains why you're seeing PBUF issues, since the event queue no longer is the limiting factor. |
- Embedded class devices on Wi-Fi networks can see large number of mDNS packets from normal network. If these arrive while device is processing CASE/PASE or any other long running system activity, the amount of queuing can overrun the packet buffer pools or event queues, which can cause very bad outcomes. - Filtering of packets can always be done by a product deep in its network stack. However, allowing some level of basic filtering for UDP packets (that cover most of the traffic that could be problematic and need queuing) for at least lwIP devices allows sharing code for filters that may be smarter. Follow-up PR will show an example hook-up to ESP32 Issue project-chip#23258 Issue project-chip#23180 This PR: - Adds generic EndpointQueueFilter.h, which is portable/testable on its own. - Adds hook-ups to UDPEndPointImplLwIP to run an EndpointQueueFilter on incoming packets Testing done: - Full unit test suite for the filtering framework and basic filter.
* Introduce basic UDP packet filtering scheme - Embedded class devices on Wi-Fi networks can see large number of mDNS packets from normal network. If these arrive while device is processing CASE/PASE or any other long running system activity, the amount of queuing can overrun the packet buffer pools or event queues, which can cause very bad outcomes. - Filtering of packets can always be done by a product deep in its network stack. However, allowing some level of basic filtering for UDP packets (that cover most of the traffic that could be problematic and need queuing) for at least lwIP devices allows sharing code for filters that may be smarter. Follow-up PR will show an example hook-up to ESP32 Issue #23258 Issue #23180 This PR: - Adds generic EndpointQueueFilter.h, which is portable/testable on its own. - Adds hook-ups to UDPEndPointImplLwIP to run an EndpointQueueFilter on incoming packets Testing done: - Full unit test suite for the filtering framework and basic filter. * Address review comments
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. |
Closing this as the memory related issues with M5 have been solved |
Reproduction steps
M5 snippet:
Bug prevalence
This was seen 1 in 20 pairing attempts
GitHub hash of the SDK that was being used
c279578
Platform
esp32
Platform Version(s)
ESP-IDF v4.4.2
Anything else?
M5-pairing-failed-empty-packet-buffer.txt
The text was updated successfully, but these errors were encountered: