[dpdk-dev] [PATCH v6 00/25] user space vhost library

Huawei Xie huawei.xie at intel.com
Wed Oct 8 20:54:34 CEST 2014


This set of patches transforms and refactors vhost example to a user
space vhost library.
This library implements a user space vhost cuse driver, and provides
generic APIs for user space ethernet vSwitch to integrate us-vhost for
fast packet switching with guest virtio.

vhost lib consists of five APIs plus several helper routines
for feature disable/enable.
1) rte_vhost_driver_register initializes vhost driver.
2) rte_vhost_driver_callback_register registers the callbacks.
Callbacks are called from vhost driver when a virtio device is ready
to be added to the data processing core or is de-activated by guest.
3) rte_vhost_driver_session_start, a blocking API to start vhost
message handler session loop.
4) rte_vhost_enqueue_burst and rte_vhost_dequeue_burst for
enqueue/dequeue packets to/from virtio ring respectively.

v2) turn off vhost lib by default

v3) fixed checkpatch issues

v4) split the patch per thomas' requirement

v5) fine granularity split of the patch
    regenerate patches based on latest commit
    this patchset removes vhost example patches, which will be
 submitted later.

Huawei Xie (25):
  move src files from examples/vhost to lib/librte_vhost
  rename main.c to vhost_rxtx.c and virtio-net.h to rte_vhost_net.h
  keep virtio_dev_(merge_)rx, copy_from_mbuf_to_vring and virtio_dev_merge_tx; remove anything else in vhost_rxtx.c
  remove mac learning, mac/vlan, VMDQ and other switching related logic
  remove host memory region region related logic
  remove retry
  patch virtio_dev_merge_tx to make it return packets to app
  patch vhost_dev_merge_tx about buf_size
  add queue_id parameter to vhost rx/tx functions
  define PACKET_BURST
  rte_vhost_en/dequeue_burst API
  move virtio_net_config_ll strcture to virtio_net.c
  remove index
  call get_virtio_net_callbacks to get the ops in register_cuse_device
  rte_vhost_driver_register and rte_vhost_session_start API
  rte_vhost_callback_register API
  add debug print
  define VHOST_SUPPORTED_FEATURES
  header file cleanup
  static fix
  add priv field in virtio_net to store application specific context
  coding style fixes
  add TODO/FIXME
  add vhost support in Makefile

 config/common_linuxapp                       |    8 +
 examples/vhost/Makefile                      |   60 -
 examples/vhost/eventfd_link/Makefile         |   39 -
 examples/vhost/eventfd_link/eventfd_link.c   |  205 --
 examples/vhost/eventfd_link/eventfd_link.h   |   79 -
 examples/vhost/libvirt/qemu-wrap.py          |  367 ---
 examples/vhost/main.c                        | 3727 --------------------------
 examples/vhost/main.h                        |   86 -
 examples/vhost/vhost-net-cdev.c              |  367 ---
 examples/vhost/vhost-net-cdev.h              |   83 -
 examples/vhost/virtio-net.c                  | 1165 --------
 examples/vhost/virtio-net.h                  |  161 --
 lib/Makefile                                 |    1 +
 lib/librte_vhost/eventfd_link/Makefile       |   39 +
 lib/librte_vhost/eventfd_link/eventfd_link.c |  205 ++
 lib/librte_vhost/eventfd_link/eventfd_link.h |   79 +
 lib/librte_vhost/libvirt/qemu-wrap.py        |  367 +++
 lib/librte_vhost/rte_virtio_net.h            |  208 ++
 lib/librte_vhost/vhost-net-cdev.c            |  360 +++
 lib/librte_vhost/vhost-net-cdev.h            |  113 +
 lib/librte_vhost/vhost_rxtx.c                |  733 +++++
 lib/librte_vhost/virtio-net.c                | 1028 +++++++
 mk/rte.app.mk                                |    5 +
 23 files changed, 3146 insertions(+), 6339 deletions(-)
 delete mode 100644 examples/vhost/Makefile
 delete mode 100644 examples/vhost/eventfd_link/Makefile
 delete mode 100644 examples/vhost/eventfd_link/eventfd_link.c
 delete mode 100644 examples/vhost/eventfd_link/eventfd_link.h
 delete mode 100755 examples/vhost/libvirt/qemu-wrap.py
 delete mode 100644 examples/vhost/main.c
 delete mode 100644 examples/vhost/main.h
 delete mode 100644 examples/vhost/vhost-net-cdev.c
 delete mode 100644 examples/vhost/vhost-net-cdev.h
 delete mode 100644 examples/vhost/virtio-net.c
 delete mode 100644 examples/vhost/virtio-net.h
 create mode 100644 lib/librte_vhost/eventfd_link/Makefile
 create mode 100644 lib/librte_vhost/eventfd_link/eventfd_link.c
 create mode 100644 lib/librte_vhost/eventfd_link/eventfd_link.h
 create mode 100755 lib/librte_vhost/libvirt/qemu-wrap.py
 create mode 100644 lib/librte_vhost/rte_virtio_net.h
 create mode 100644 lib/librte_vhost/vhost-net-cdev.c
 create mode 100644 lib/librte_vhost/vhost-net-cdev.h
 create mode 100644 lib/librte_vhost/vhost_rxtx.c
 create mode 100644 lib/librte_vhost/virtio-net.c

-- 
1.8.1.4



More information about the dev mailing list