-
Notifications
You must be signed in to change notification settings - Fork 7.5k
Regression for net_offload API in net_if.c? #14479
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
Comments
When a device is an offloaded one and exposes a net_offload api implementation, the packets are not going through net_send_data() and thus not through net_if_send_data(), but instead directly through net_offload functions. So the commit you noted did not change anything. It's not L2 which is offloaded, is basically the full ip stack, so L3. net_offload API is used directly from net_context which in turn is used by socket. That said, offload is indeed in between right now due to net_context API changes. See #13618 |
@tbursztyka Well at least for our (offloading) device it definitely gets called, here's the backtrace:
it submits
Pretty sure that |
You are using the master as I can see, and net_offload does not work anymore yet there. See #13618, but on master net_context_sendto_new (which is then renamed to net_context_send in the mentioned PR) is not calling net_offload API thus why it ends up using the core stack path (net_send_data and all), which obviously does not work. It's going to be fixed by tomorrow, I just have myself to get back to my hw stash to verify it. |
Is it fixed? @nashif I certainly wouldn't classify this as low priority. The entire networking stack is currently unusable for us, and presumably for everyone else who relies on the |
@tautologyclub can you re-try with latest master? |
#13618 got merged. closing |
Confirmed to work, bangup job @tbursztyka 👍 |
In commit 9464ec3 the following was introduced:
Which feels sort of bogus when using offloading devices. As I understand it, it is more or less L2 that is offloaded. Our driver has a NULL
l2
field, which I at least THOUGHT was super standard when usingnet_offload
. So what happens is that when we reach this part of the function, a null pointer gets executed and the device resets without warning. Took a little while to track down, but this must be a bug right?I sort of get the impression that
net_offload
has taken a lot of hits with the recent versions. @andrewboie @andyross are listed as the code owners. Maybe you guys can chime in on the current state ofnet_offload
? There are no tests for net offloading from what I can see, which is a bit strange to me since a software-emulated device could be implemented quite easily.The text was updated successfully, but these errors were encountered: