> On 19 Jan 2016, at 05:48 AM, Jason Wang <jasow...@redhat.com> wrote: > > > > On 01/19/2016 01:35 AM, Leonid Bloch wrote: >> 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. > > Hi: > > Do you have a public git tree for easier reviewing?
Hi, Yes, see here: https://github.com/daynix/qemu-e1000e/commits/e1000e-v2 <https://github.com/daynix/qemu-e1000e/commits/e1000e-v2> Branch e1000e-v2. ~Dmitry > > Thanks > >> >> =================== >> >> 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