From patchwork Thu Jan 9 11:00:16 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matan Azrad X-Patchwork-Id: 64338 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 0939AA04F9; Thu, 9 Jan 2020 12:00:57 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 494561DC6F; Thu, 9 Jan 2020 12:00:47 +0100 (CET) Received: from mellanox.co.il (mail-il-dmz.mellanox.com [193.47.165.129]) by dpdk.org (Postfix) with ESMTP id EA6C51DC60 for ; Thu, 9 Jan 2020 12:00:40 +0100 (CET) Received: from Internal Mail-Server by MTLPINE1 (envelope-from asafp@mellanox.com) with ESMTPS (AES256-SHA encrypted); 9 Jan 2020 13:00:36 +0200 Received: from pegasus07.mtr.labs.mlnx (pegasus07.mtr.labs.mlnx [10.210.16.112]) by labmailer.mlnx (8.13.8/8.13.8) with ESMTP id 009B0ZLk013007; Thu, 9 Jan 2020 13:00:36 +0200 From: Matan Azrad To: Maxime Coquelin , Tiwei Bie , Zhihong Wang , Xiao Wang Cc: Ferruh Yigit , dev@dpdk.org, Thomas Monjalon , Andrew Rybchenko Date: Thu, 9 Jan 2020 11:00:16 +0000 Message-Id: <1578567617-3541-3-git-send-email-matan@mellanox.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1578567617-3541-1-git-send-email-matan@mellanox.com> References: <1577287161-10321-1-git-send-email-matan@mellanox.com> <1578567617-3541-1-git-send-email-matan@mellanox.com> Subject: [dpdk-dev] [PATCH v2 2/3] doc: add vDPA feature table X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Add vDPA devices features table and explanation. Any vDPA driver can add its own supported features by ading a new ini file to the features directory in doc/guides/vdpadevs/features. Signed-off-by: Matan Azrad --- doc/guides/conf.py | 5 +++ doc/guides/vdpadevs/features/default.ini | 50 +++++++++++++++++++++ doc/guides/vdpadevs/features_overview.rst | 74 +++++++++++++++++++++++++++++++ doc/guides/vdpadevs/index.rst | 1 + 4 files changed, 130 insertions(+) create mode 100644 doc/guides/vdpadevs/features/default.ini create mode 100644 doc/guides/vdpadevs/features_overview.rst diff --git a/doc/guides/conf.py b/doc/guides/conf.py index 0892c06..c368fa5 100644 --- a/doc/guides/conf.py +++ b/doc/guides/conf.py @@ -401,6 +401,11 @@ def setup(app): 'Features', 'Features availability in compression drivers', 'Feature') + table_file = dirname(__file__) + '/vdpadevs/overview_feature_table.txt' + generate_overview_table(table_file, 1, + 'Features', + 'Features availability in vDPA drivers', + 'Feature') if LooseVersion(sphinx_version) < LooseVersion('1.3.1'): print('Upgrade sphinx to version >= 1.3.1 for ' diff --git a/doc/guides/vdpadevs/features/default.ini b/doc/guides/vdpadevs/features/default.ini new file mode 100644 index 0000000..518e4f1 --- /dev/null +++ b/doc/guides/vdpadevs/features/default.ini @@ -0,0 +1,50 @@ +; +; Features of a default vDPA driver. +; +; This file defines the features that are valid for inclusion in +; the other driver files and also the order that they appear in +; the features table in the documentation. The feature description +; string should not exceed feature_str_len defined in conf.py. +; +[Features] +csum = +guest csum = +mac = +gso = +guest tso4 = +guest tso6 = +ecn = +ufo = +host tso4 = +host tso6 = +mrg rxbuf = +ctrl vq = +ctrl rx = +any layout = +guest announce = +mq = +version 1 = +log all = +indirect desc = +event idx = +mtu = +in_order = +IOMMU platform = +packed = +proto mq = +proto log shmfd = +proto rarp = +proto reply ack = +proto host notifier = +proto pagefault = +BSD nic_uio = +Linux VFIO = +Other kdrv = +ARMv7 = +ARMv8 = +Power8 = +x86-32 = +x86-64 = +Usage doc = +Design doc = +Perf doc = \ No newline at end of file diff --git a/doc/guides/vdpadevs/features_overview.rst b/doc/guides/vdpadevs/features_overview.rst new file mode 100644 index 0000000..3ce1db1 --- /dev/null +++ b/doc/guides/vdpadevs/features_overview.rst @@ -0,0 +1,74 @@ +.. SPDX-License-Identifier: BSD-3-Clause + Copyright 2019 Mellanox Technologies, Ltd + +Overview of vDPA drivers features +================================= + +This section explains the supported features that are listed in the table below. + + * csum - Device can handle packets with partial checksum. + * guest csum - Guest can handle packets with partial checksum. + * mac - Device has given MAC address. + * gso - Device can handle packets with any GSO type. + * guest tso4 - Guest can receive TSOv4. + * guest tso6 - Guest can receive TSOv6. + * ecn - Device can receive TSO with ECN. + * ufo - Device can receive UFO. + * host tso4 - Device can receive TSOv4. + * host tso6 - Device can receive TSOv6. + * mrg rxbuf - Guest can merge receive buffers. + * ctrl vq - Control channel is available. + * ctrl rx - Control channel RX mode support. + * any layout - Device can handle any descriptor layout. + * guest announce - Guest can send gratuitous packets. + * mq - Device supports Receive Flow Steering. + * version 1 - v1.0 compliant. + * log all - Device can log all write descriptors (live migration). + * indirect desc - Indirect buffer descriptors support. + * event idx - Support for avail_idx and used_idx fields. + * mtu - Host can advise the guest with its maximum supported MTU. + * in_order - Device can use descriptors in ring order. + * IOMMU platform - Device support IOMMU addresses. + * packed - Device support packed virtio queues. + * proto mq - Support the number of queues query. + * proto log shmfd - Guest support setting log base. + * proto rarp - Host can broadcast a fake RARP after live migration. + * proto reply ack - Host support requested operation status ack. + * proto host notifier - Host can register memory region based host notifiers. + * proto pagefault - Slave expose page-fault FD for migration process. + * BSD nic_uio - BSD ``nic_uio`` module supported. + * Linux VFIO - Works with ``vfio-pci`` kernel module. + * Other kdrv - Kernel module other than above ones supported. + * ARMv7 - Support armv7 architecture. + * ARMv8 - Support armv8a (64bit) architecture. + * Power8 - Support PowerPC architecture. + * x86-32 - Support 32bits x86 architecture. + * x86-64 - Support 64bits x86 architecture. + * Usage doc - Documentation describes usage, In ``doc/guides/vdpadevs/``. + * Design doc - Documentation describes design. In ``doc/guides/vdpadevs/``. + * Perf doc - Documentation describes performance values, In ``doc/perf/``. + +.. note:: + + Most of the features capabilities should be provided by the drivers via the + next vDPA operations: ``get_features`` and ``get_protocol_features``. + + +Useful links +============ + + * `OASIS: Virtual I/O Device (VIRTIO) Version 1.1 `_. + * `QEMU: Vhost-user Protocol `_. + + +Features table +============== + +.. _table_vdpa_pmd_features: + +.. include:: overview_feature_table.txt + +.. Note:: + + Features marked with "P" are partially supported. Refer to the appropriate + driver guide in the following sections for details. diff --git a/doc/guides/vdpadevs/index.rst b/doc/guides/vdpadevs/index.rst index d69dc91..89e2b03 100644 --- a/doc/guides/vdpadevs/index.rst +++ b/doc/guides/vdpadevs/index.rst @@ -11,3 +11,4 @@ which can be used from an application through vhost API. :maxdepth: 2 :numbered: + features_overview