-
Notifications
You must be signed in to change notification settings - Fork 13.3k
Add a non-breaking extension to the OTA protocol for getting rid of UDP #6369
New issue
Have a question about this project? No Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “No 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? No Sign in to your account
Comments
While looking at esp8266#6348 and esp8266#6369, and after checking into lwIP sources, it appears that the tests in ClientContext::wait_until_sent() effectively wait for all acks on current output buffer. Comments are added.
(moved to OP) |
I would like to add my observations when chasing a missing "OK" response upon a successful authorization. It turned out that basically a router bug was responsible for the packet loss, but it seems to me slightly naive in the ArduinoOTA code to rely on the successful transmission of a single UDP packet. UDP is per se subject to packet losses, so at least the packets should be sent twice or thrice to increase the reliability. This was in the end what saved me from the bug, as the router (an AVM Fritzbox with OS 7.21) would only drop the very first packet. |
#7693 would have to be taken into consideration in this issue |
Per #6348 and #6351,
edit 21-02-27:
Title was: "Feature request: implement ClientContext::wait_until_acked()"
Per #7896, renaming to "OTA: Investigate workaround delay when receiving 'OK'" implemented by #6351.
edit 21-04-01:
It seemsClientContext::wait_until_sent()
is not sufficient for a fully terminated transmission.Per #7955
There are two OK in the ArduinoOTA protocol w/
espota.py
tool, one of them is UDP.Changed title to: Add a non-breaking extension to the OTA protocol for getting rid of UDP.
The text was updated successfully, but these errors were encountered: