-
Notifications
You must be signed in to change notification settings - Fork 302
Zero-copy in the network stack #43
Comments
Go for it! :) |
So, you want a syscall (?) to send a memory range directly onto the network? |
Part of this has been implemented.
|
It is a buffer, it will be hard to impossible to remove that, unless you let the application specify its own. |
Yep, the thought was to add an option to specify the address - sort of like adding the network callback address. |
Is the buffer used for more than one packet? |
Are we talking about on-nic memory? Does the driver support this? If so how I did zero copy security systems in promiscuous mode back in my security The call back mechanism that exists should work well for such a design if
|
That buffer, We're talking about system memory here and the current drivers do not support on-nic memory. Heres what is currently happening when a packet comes it:
Here is what we want for zero-copy:
|
I think it would be an overall good solution if the application could specify it's own handlers for all interrupts (without overwriting the system ones). That would solve many problems. It would enable writing a task-switching mechanism and would enable some better mechanisms than polling. We also had exception handling then. |
At the moment the only two system interrupts are caused by the RTC and the network. Each of those supports an application defined callback so polling isn't required. |
Sorry, but I haven't had time yet to have a deeper look into BareMetalOS. Isn't there a Zero-Copy network "stack" then? |
At the moment BareMetal does not have zero-copy in its network stack. Also I took a look at the existing network drivers and they contain the dredded |
http://en.wikipedia.org/wiki/Zero-copy
The text was updated successfully, but these errors were encountered: