We are adding a new device named igb, yet another Intel NIC. As the new implementation derives from e1000e, overhaul e1000e implementation first. e1000 has many commonalities with e1000e so we also apply the corresponding changes to the device if possible.
This was spun off from: https://patchew.org/QEMU/20230112095743.20123-1-akihiko.od...@daynix.com/ The changes from the series are as follows: - Fixed code alignment in e1000.c. (Philippe Mathieu-Daudé) - "e1000: Configure ResettableClass" and e1000e's corresponding patch was based on the old version so they are now updated. (Philippe Mathieu-Daudé) - Added "e1000e: Remove extra pointer indirection" The series was composed on patches submitted earlier for e1000e. The below are links to Patchew: 03: https://patchew.org/QEMU/20221103060103.83363-1-akihiko.od...@daynix.com/ 04: https://patchew.org/QEMU/20221125135254.54760-1-akihiko.od...@daynix.com/ 05: https://patchew.org/QEMU/20221119054913.103803-1-akihiko.od...@daynix.com/ 06: https://patchew.org/QEMU/20221119055304.105500-1-akihiko.od...@daynix.com/ 08 includes: https://patchew.org/QEMU/20221119060156.110010-1-akihiko.od...@daynix.com/ 10: https://patchew.org/QEMU/20221125140105.55925-1-akihiko.od...@daynix.com/ 11: https://patchew.org/QEMU/20221125142608.58919-1-akihiko.od...@daynix.com/ 13: https://patchew.org/QEMU/20221201095351.63392-1-akihiko.od...@daynix.com/ 14: https://patchew.org/QEMU/20221201100113.64387-1-akihiko.od...@daynix.com/ 15: https://patchew.org/QEMU/20230107143328.102534-1-akihiko.od...@daynix.com/ 20: https://patchew.org/QEMU/20230114025339.4874-1-akihiko.od...@daynix.com/ V3 -> V4: - Fixed iov cursor update in "hw/net/net_tx_pkt: Implement TCP segmentation". - Fixed UDP checksumming in "hw/net/net_tx_pkt: Implement TCP segmentation". - Added "hw/net/net_tx_pkt: Check the payload length". - Added "e1000e: Do not assert when MSI-X is disabled later". V2 -> V3: - List tests/qtest/libqos/e1000e.h in MAINTAINERS. (Thomas Huth) V1 -> V2: - Rebased to commit fcb7e040f5c69ca1f0678f991ab5354488a9e192. - Added "net: Check L4 header size". - Added "e1000x: Alter the signature of e1000x_is_vlan_packet". - Added "net: Strip virtio-net header when dumping". - Added "hw/net/net_tx_pkt: Automatically determine if virtio-net header is used". - Added "hw/net/net_rx_pkt: Remove net_rx_pkt_has_virt_hdr". - Added "e1000e: Perform software segmentation for loopback". - Added "hw/net/net_tx_pkt: Implement TCP segmentation" - Added "MAINTAINERS: Add Akihiko Odaki as a e1000e reviewer". - Added "MAINTAINERS: Add e1000e test files". Akihiko Odaki (28): e1000e: Fix the code style hw/net: Add more MII definitions fsl_etsec: Use hw/net/mii.h e1000: Use hw/net/mii.h e1000: Mask registers when writing e1000e: Mask registers when writing e1000: Use more constant definitions e1000e: Use more constant definitions e1000: Use memcpy to intialize registers e1000e: Use memcpy to intialize registers e1000e: Remove pending interrupt flags e1000e: Improve software reset e1000: Configure ResettableClass e1000e: Configure ResettableClass e1000e: Introduce e1000_rx_desc_union e1000e: Set MII_ANER_NWAY e1000e: Remove extra pointer indirection net: Check L4 header size e1000x: Alter the signature of e1000x_is_vlan_packet net: Strip virtio-net header when dumping hw/net/net_tx_pkt: Automatically determine if virtio-net header is used hw/net/net_rx_pkt: Remove net_rx_pkt_has_virt_hdr e1000e: Perform software segmentation for loopback hw/net/net_tx_pkt: Implement TCP segmentation hw/net/net_tx_pkt: Check the payload length e1000e: Do not assert when MSI-X is disabled later MAINTAINERS: Add Akihiko Odaki as a e1000e reviewer MAINTAINERS: Add e1000e test files MAINTAINERS | 4 + hw/net/e1000.c | 254 ++++++++--------- hw/net/e1000_regs.h | 61 +--- hw/net/e1000e.c | 88 +++--- hw/net/e1000e_core.c | 588 ++++++++++++++++++++------------------- hw/net/e1000e_core.h | 68 +++-- hw/net/e1000x_common.c | 12 +- hw/net/e1000x_common.h | 56 ++-- hw/net/fsl_etsec/etsec.c | 11 +- hw/net/fsl_etsec/etsec.h | 17 -- hw/net/fsl_etsec/miim.c | 5 +- hw/net/net_rx_pkt.c | 12 +- hw/net/net_rx_pkt.h | 20 +- hw/net/net_tx_pkt.c | 332 ++++++++++++++++------ hw/net/net_tx_pkt.h | 27 +- hw/net/trace-events | 5 +- hw/net/virtio-net.c | 2 +- hw/net/vmxnet3.c | 32 +-- include/hw/net/mii.h | 14 +- include/net/eth.h | 5 - include/net/net.h | 6 + net/dump.c | 11 +- net/eth.c | 27 -- net/net.c | 18 ++ net/tap.c | 16 ++ 25 files changed, 917 insertions(+), 774 deletions(-) -- 2.39.1