diff options
| author | Akihiko Odaki <akihiko.odaki@daynix.com> | 2023-02-23 19:20:08 +0900 |
|---|---|---|
| committer | Jason Wang <jasowang@redhat.com> | 2023-03-10 15:35:38 +0800 |
| commit | ffbd2dbd8e647b68406179697c06d2668438b789 (patch) | |
| tree | 4c71cb5af8144620a45549e1f99133047a888a79 /hw/net/net_rx_pkt.h | |
| parent | aac8f89dba870bb263d05bb84c3d64e0204be092 (diff) | |
| download | focaccia-qemu-ffbd2dbd8e647b68406179697c06d2668438b789.tar.gz focaccia-qemu-ffbd2dbd8e647b68406179697c06d2668438b789.zip | |
e1000e: Perform software segmentation for loopback
e1000e didn't perform software segmentation for loopback if virtio-net header is enabled, which is wrong. To fix the problem, introduce net_tx_pkt_send_custom(), which allows the caller to specify whether offloading should be assumed or not. net_tx_pkt_send_custom() also allows the caller to provide a custom sending function. Packets with virtio-net headers and ones without virtio-net headers will be provided at the same time so the function can choose the preferred version. In case of e1000e loopback, it prefers to have virtio-net headers as they allows to skip the checksum verification if VIRTIO_NET_HDR_F_DATA_VALID is set. Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com> Signed-off-by: Jason Wang <jasowang@redhat.com>
Diffstat (limited to 'hw/net/net_rx_pkt.h')
| -rw-r--r-- | hw/net/net_rx_pkt.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/hw/net/net_rx_pkt.h b/hw/net/net_rx_pkt.h index 7277907a22..8b69ddb2da 100644 --- a/hw/net/net_rx_pkt.h +++ b/hw/net/net_rx_pkt.h @@ -313,6 +313,14 @@ void net_rx_pkt_set_vhdr_iovec(struct NetRxPkt *pkt, const struct iovec *iov, int iovcnt); /** + * unset vhdr data from packet context + * + * @pkt: packet + * + */ +void net_rx_pkt_unset_vhdr(struct NetRxPkt *pkt); + +/** * save packet type in packet context * * @pkt: packet |