On 10/26/2015 01:00 AM, Leonid Bloch wrote: > 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.
Thanks for the series. Will go through this in next few days. Since 2.5 is in soft freeze, this looks a 2.6 material. > > 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 >