ethernet: Make it possible for ethernet drivers to send/receive net_buffers.

This paves the way for a variety of more interesting interactions
between drivers and the stack which are currently not possible
(e.g. checksum offload, #18744). The main advantage for the moment
is that we will save a memcpy of the buffer on each send/receive.

Adapt the virtio_net driver so that at least one driver is using
the new interface. Network still seems to work OK with it.

Change-Id: Ic5832e4865e3e1bed7462583ca1ffd16418d7cab
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7912
Reviewed-by: waddlesplash <[email protected]>
This commit is contained in:
Augustin Cavalier
2024-07-30 17:03:36 +00:00
committed by waddlesplash
parent 60e949faf8
commit 1485e71d8c
3 changed files with 73 additions and 16 deletions
+4 -1
View File
@@ -23,8 +23,11 @@ enum {
ETHER_GETFRAMESIZE, /* get frame size (required) (int *) */
ETHER_SET_LINK_STATE_SEM,
/* pass over a semaphore to release on link state changes (sem_id *) */
ETHER_GET_LINK_STATE
ETHER_GET_LINK_STATE,
/* get line speed, quality, duplex mode, etc. (ether_link_state_t *) */
ETHER_SEND_NET_BUFFER, /* send a net_buffer */
ETHER_RECEIVE_NET_BUFFER, /* receive a net_buffer */
};