-
-
Notifications
You must be signed in to change notification settings - Fork 79
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
[WIRE136] Network redesign #234
base: main
Are you sure you want to change the base?
Conversation
the issue solved is tcp window were missing and that was due to: - ACK were sent as soonas packets were received and not when they were consumed by the application layer - pbufs where not cleared correctly and following lwip indications
This reverts commit c2db54f.
@Eduardo-Lopes I think I solved the issues you were describing, if you can confirm me that. @JAndrassy I will for sure take a look at your work and take it into consideration for further deveplment, thanks for your work! |
Hi @andreagilardoni, |
@Eduardo-Lopes sorry, I forgot to add a part of the fix |
@andreagilardoni the DHCP is solved, but still there is connection loss when I stress test. |
@Eduardo-Lopes how are you performing stress tests? So that can better address the issue |
I just call a Python script that loops requesting the WebServer on C33. |
This will take some more time to debug, I think there is a memory leak somewhere I am missing. |
906bab9
to
ec5ea83
Compare
610c14c
to
c28b4bd
Compare
As the title states the objective of this PR is the redesign of the network stack of the portenta C33. This PR aims to solve multiple issues that affected reliability, performance and usability of networking.
The main issues addressed are the follwing:
This issue needs arduino/ArduinoCore-API#218 in order to completely fix memory leaking when using a class that is derived from
arduino::Client
.Since this work started as a task to address Ethernet bad performances and behavior it was mainly focused on the ethernet improvement. We were able to achieve a speed of ~80Mbit/s in Rx with some fine tuning of the libraries (this require high ram usage) by means of Rx zero copy capabilities of Ra6m5 controller. Wifi drivers were not taken into consideration that deeply, but there is room for improvement, i.e. by reducing the number of
memcpy
performed on buffers.Furthermore some aspects of the integration of lwip have been improved:
This issue is currently on draft, since there are still some imperfections, which are addressed in TODO and FIXME comments. Some will be addressed before this PR is merged and others are going to provide a path to follow for future improvements.