-
Notifications
You must be signed in to change notification settings - Fork 13.3k
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
IP fragment re-assembly / maximum packet size #867
Comments
is the package is still send on the WiFi? |
IP reassembly is disabled in LwIP build options: On Fri, Oct 9, 2015 at 3:10 PM, Markus [email protected] wrote:
|
oO this is bad. |
Is it off for a reason ? I'm using Hyperion on a pi with my own UDP led driver to send UDP packets to the ESP. Is this likely to be fixed any time soon or should I rework my led protocol to workaround this issue. My view is we need a proper fix - There could be a hop with a tiny MTU which would make lots of UDP things unworkable. |
I suspect that enabling IP reassembly increases memory requirements Let me know if you need additional instructions on how to build LwIP. On Fri, Oct 9, 2015, 17:34 penfold42 [email protected] wrote:
|
I suspect this is why the next packet is delayed by 0.2sec, until the first one is acked and why noDelay == true does not work. |
+1 for getting this implemented as an option. I am seeing major issues with OTA failing over the Internet, I've used mqtt and http as transport and they both show the same type of random failures where the stream times out. |
Slightly related (But only slightly). I have had similar issues using vpn on linux debian of late. Connections happened OK and then when attempting to use them they would HTTP connected then failed to return pages or page content, SSH The issue turned out to be tcp related and the packet default MTU value. Setting the default MTU lower prevented the need to fragment and In the ESP's case I would imagine that the limiting factor is limited It might not be the above, but it is worth considering, maybe. Cheers Andy Kirby On 15/10/15 03:41, mtnbrit wrote:
|
I haven't yet, maybe another example for this project is the easiest way ? Right now it's a simple UDP socket listener to the drive a string of ws2812b LEDs. It listens on 3 ports to support 3 protocols. I've also written a UDP led driver fro Hyperion which gives me an effects engine and android/iPhone/web remote control |
For what it's worth, I'm getting OTA via http problems without fragmentation of any kind in effect. UDP packets larger than the size and relying on IP level fragmentation to get the job done is asking for problems. IPv6, for instance, doesn't even support fragmentation, and for good reason. I suggest you split your UDP packet into more than one frame, and include an LED offset or something if you need to do application-level fragmentation. |
That's exactly what I did - the third protocol option above. As of yesterday it's driving 600 LEDs as xmas lights on my balcony. |
Grats :) In my case, I'm trying to drive it with TCP, so I can't flood the system -- in theory, it will read as fast as it needs to and no faster. However, even though I am returning from loop() frequently, if I blast TCP data at this device, the hardware WDT gets me. Very, very strange. |
has anyone gotten the fragmented packets to work? |
@d-a-v I know very little of lwip, but from what I can tell, lwip2 still has fragmentation assembly disabled. Can you please confirm? Do you know the implications of enabling assembly? |
Fragmentation and reassembly are still disabled. (sorry for the delay) |
Cost: 2284 flash bytes for IP fragmentation(output) and IP reassembly(input). |
This is currently enabled with the lwIP-v2 w/ features and also with IPv6 options. |
Got a sketch driving ws2812 LEDs.
This works great until you scale up the number of LEDs until the Ido packet gets fragmented - about 1470 bytes.
My sketch never sees the incoming UDP packets at this point.
Is this a bug or a feature ?
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
The text was updated successfully, but these errors were encountered: