qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] [RFC PATCH 0/5] Introduce Intel 82574 GbE Controller Emulat


From: Leonid Bloch
Subject: [Qemu-devel] [RFC PATCH 0/5] Introduce Intel 82574 GbE Controller Emulation (e1000e)
Date: Sun, 25 Oct 2015 19:00:03 +0200

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 (5):
  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             |    2 +
 default-configs/pci.mak |    1 +
 hw/net/Makefile.objs    |    5 +-
 hw/net/e1000_regs.h     |  201 ++++-
 hw/net/e1000e.c         |  531 ++++++++++++
 hw/net/e1000e_core.c    | 2081 +++++++++++++++++++++++++++++++++++++++++++++++
 hw/net/e1000e_core.h    |  181 +++++
 hw/net/net_rx_pkt.c     |  273 +++++++
 hw/net/net_rx_pkt.h     |  241 ++++++
 hw/net/net_tx_pkt.c     |  606 ++++++++++++++
 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 ----
 include/net/eth.h       |   90 +-
 include/net/net.h       |    5 +
 net/eth.c               |  152 +++-
 tests/Makefile          |    4 +-
 trace-events            |   68 ++
 21 files changed, 4597 insertions(+), 1191 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]