e1000, e1000e: Move per-packet TX offload flags out of context state
commit7d08c73e7bdc39b10e5f2f5acdce700f17ffe962
authorEd Swierk via Qemu-devel <qemu-devel@nongnu.org>
Tue, 14 Nov 2017 23:23:33 +0000 (14 15:23 -0800)
committerJason Wang <jasowang@redhat.com>
Fri, 22 Dec 2017 01:53:23 +0000 (22 09:53 +0800)
tree0fd1481f29ca9201afd24c30a6f500e554ded42e
parent43ab9a5376c95c61ae898a222c4d04bdf60e239b
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 <eswierk@skyportsystems.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
hw/net/e1000.c
hw/net/e1000e.c
hw/net/e1000e_core.c
hw/net/e1000e_core.h
hw/net/e1000x_common.h