From 7d08c73e7bdc39b10e5f2f5acdce700f17ffe962 Mon Sep 17 00:00:00 2001 From: Ed Swierk via Qemu-devel Date: Tue, 14 Nov 2017 15:23:33 -0800 Subject: e1000, e1000e: Move per-packet TX offload flags out of context state sum_needed and cptse flags are received from the guest within each transmit data descriptor. They are not part of the offload context; instead, they determine how to apply a previously received context to the packet being transmitted: - If cptse is set, perform both segmentation and checksum offload using the parameters in the TSO context; otherwise just do checksum offload. (Currently the e1000 device incorrectly stores only one context, which will be fixed in a subsequent patch.) - Depending on the bits set in sum_needed, possibly perform L4 checksum offload and/or IP checksum offload, using the parameters in the appropriate context. Move these flags out of struct e1000x_txd_props, which is otherwise dedicated to storing values from a context descriptor, and into the per-packet TX struct. Signed-off-by: Ed Swierk Signed-off-by: Jason Wang --- hw/net/e1000e_core.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'hw/net/e1000e_core.h') diff --git a/hw/net/e1000e_core.h b/hw/net/e1000e_core.h index 1ff6978ca1..7d8ff41890 100644 --- a/hw/net/e1000e_core.h +++ b/hw/net/e1000e_core.h @@ -71,6 +71,8 @@ struct E1000Core { e1000x_txd_props props; bool skip_cp; + unsigned char sum_needed; + bool cptse; struct NetTxPkt *tx_pkt; } tx[E1000E_NUM_QUEUES]; -- cgit v1.2.3