qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [RFC PATCH v2 00/10] Introduce Intel 82574 GbE Controller E


From: Leonid Bloch
Subject: [Qemu-devel] [RFC PATCH v2 00/10] Introduce Intel 82574 GbE Controller Emulation (e1000e)
Date: Mon, 18 Jan 2016 19:35:40 +0200

Hello All,

This series is the latest code of the e1000e device emulation being developed.

Changes since v1:

1. Added support for all the device features:
  - Interrupt moderation.
  - RSS.
  - Multiqueue.
2. Simulated exact PCI/PCIe configuration space layout.
3. Made fixes needed to pass Microsoft's HW certification tests (HCK).

This series is still an RFC, because the following tasks are not done yet:

1. See which code can be shared between this device and the existing e1000 
device.
2. Rebase patches to the latest master (current base is v2.3.0).

Please share your thoughts,
Thanks, Dmitry.

===================

Hello qemu-devel,

This patch series is an RFC for the new networking device emulation
we're developing for QEMU.

This new device emulates the Intel 82574 GbE Controller and works
with unmodified Intel e1000e drivers from the Linux/Windows kernels.

The status of the current series is "Functional Device Ready, work
on Extended Features in Progress".

More precisely, these patches represent a functional device, which
is recognized by the standard Intel drivers, and is able to transfer
TX/RX packets with CSO/TSO offloads, according to the spec.

Extended features not supported yet (work in progress):
  1. TX/RX Interrupt moderation mechanisms
  2. RSS
  3. Full-featured multi-queue (use of multiqueued network backend)

Also, there will be some code refactoring and performance
optimization efforts.

This series was tested on Linux (Fedora 22) and Windows (2012R2)
guests, using Iperf, with TX/RX and TCP/UDP streams, and various
packet sizes.

More thorough testing, including data streams with different MTU
sizes, and Microsoft Certification (HLK) tests, are pending missing
features' development.

See commit messages (esp. "net: Introduce e1000e device emulation")
for more information about the development approaches and the
architecture options chosen for this device.

This series is based upon v2.3.0 tag of the upstream QEMU repository,
and it will be rebased to latest before the final submission.

Please share your thoughts - any feedback is highly welcomed :)

Best Regards,
Dmitry Fleytman.

Dmitry Fleytman (10):
  msix: make msix_clr_pending() visible for clients
  pci: Introduce function for PCI PM capability creation
  pcie: Add support for PCIe CAP v1
  pcie: Introduce function for DSN capability creation
  net: Introduce Toeplitz hash calculator
  net: Add macros for ETH address tracing
  net_pkt: Name vmxnet3 packet abstractions more generic
  net_pkt: Extend packet abstraction as requied by e1000e functionality
  e1000_regs: Add definitions for Intel 82574-specific bits
  net: Introduce e1000e device emulation

 MAINTAINERS                |   14 +
 default-configs/pci.mak    |    1 +
 hw/net/Makefile.objs       |    5 +-
 hw/net/e1000_regs.h        |  353 ++++-
 hw/net/e1000e.c            |  700 +++++++++
 hw/net/e1000e_core.c       | 3453 ++++++++++++++++++++++++++++++++++++++++++++
 hw/net/e1000e_core.h       |  230 +++
 hw/net/net_rx_pkt.c        |  536 +++++++
 hw/net/net_rx_pkt.h        |  353 +++++
 hw/net/net_tx_pkt.c        |  627 ++++++++
 hw/net/net_tx_pkt.h        |  191 +++
 hw/net/vmxnet3.c           |   80 +-
 hw/net/vmxnet_rx_pkt.c     |  187 ---
 hw/net/vmxnet_rx_pkt.h     |  174 ---
 hw/net/vmxnet_tx_pkt.c     |  567 --------
 hw/net/vmxnet_tx_pkt.h     |  148 --
 hw/pci/msix.c              |    2 +-
 hw/pci/pci.c               |   21 +
 hw/pci/pcie.c              |   96 +-
 include/hw/pci/msix.h      |    1 +
 include/hw/pci/pci.h       |    2 +
 include/hw/pci/pci_regs.h  |    4 +
 include/hw/pci/pcie.h      |    5 +
 include/hw/pci/pcie_regs.h |    8 +-
 include/net/checksum.h     |   49 +-
 include/net/eth.h          |  161 ++-
 include/net/net.h          |    5 +
 net/checksum.c             |    7 +-
 net/eth.c                  |  410 +++++-
 tests/Makefile             |    4 +-
 trace-events               |  195 +++
 31 files changed, 7350 insertions(+), 1239 deletions(-)
 create mode 100644 hw/net/e1000e.c
 create mode 100644 hw/net/e1000e_core.c
 create mode 100644 hw/net/e1000e_core.h
 create mode 100644 hw/net/net_rx_pkt.c
 create mode 100644 hw/net/net_rx_pkt.h
 create mode 100644 hw/net/net_tx_pkt.c
 create mode 100644 hw/net/net_tx_pkt.h
 delete mode 100644 hw/net/vmxnet_rx_pkt.c
 delete mode 100644 hw/net/vmxnet_rx_pkt.h
 delete mode 100644 hw/net/vmxnet_tx_pkt.c
 delete mode 100644 hw/net/vmxnet_tx_pkt.h

-- 
2.4.3




reply via email to

[Prev in Thread] Current Thread [Next in Thread]