DPDK patches and discussions
 help / color / mirror / Atom feed
From: Thomas Monjalon <thomas.monjalon@6wind.com>
To: John McNamara <john.mcnamara@intel.com>
Cc: dev@dpdk.org
Subject: [dpdk-dev] [PATCH v2] doc: introduce networking driver matrix
Date: Wed, 27 Jan 2016 21:07:09 +0100	[thread overview]
Message-ID: <1453925229-19696-1-git-send-email-thomas.monjalon@6wind.com> (raw)
In-Reply-To: <1453841586-27747-1-git-send-email-thomas.monjalon@6wind.com>

In order to better compare the drivers and check what is missing
for a common baseline, we need to fill a matrix.

A CSS trick is used to fit the HTML page.
The PDF output needs some LaTeX wizardry.

Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
---
v2: add vector PMDs
---
 doc/guides/nics/index.rst    |   1 +
 doc/guides/nics/overview.rst | 147 +++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 148 insertions(+)
 create mode 100644 doc/guides/nics/overview.rst

diff --git a/doc/guides/nics/index.rst b/doc/guides/nics/index.rst
index 33c9cea..8618114 100644
--- a/doc/guides/nics/index.rst
+++ b/doc/guides/nics/index.rst
@@ -35,6 +35,7 @@ Network Interface Controller Drivers
     :maxdepth: 3
     :numbered:
 
+    overview
     bnx2x
     cxgbe
     e1000em
diff --git a/doc/guides/nics/overview.rst b/doc/guides/nics/overview.rst
new file mode 100644
index 0000000..d4c6ff4
--- /dev/null
+++ b/doc/guides/nics/overview.rst
@@ -0,0 +1,147 @@
+..  BSD LICENSE
+    Copyright 2016 6WIND S.A.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+
+    * Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in
+    the documentation and/or other materials provided with the
+    distribution.
+    * Neither the name of 6WIND S.A. nor the names of its
+    contributors may be used to endorse or promote products derived
+    from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+    OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+Overview of Networking Drivers
+==============================
+
+The networking drivers may be classified in two categories:
+
+- physical for real devices
+- virtual for emulated devices
+
+Some physical devices may be shaped through a virtual layer as for
+SR-IOV.
+The interface seen in the virtual environment is a VF (Virtual Function).
+
+The ethdev layer exposes an API to use the networking functions
+of these devices.
+The bottom half part of ethdev is implemented by the drivers.
+Thus some features may not be implemented.
+
+There are more differences between drivers regarding some internal properties,
+portability or even documentation availability.
+Most of these differences are summarized below.
+
+.. _table_net_pmd_features:
+
+.. raw:: html
+
+   <style>
+      table#id1 th {
+         font-size: 80%;
+         white-space: pre-wrap;
+         text-align: center;
+         vertical-align: top;
+         padding: 3px;
+      }
+      table#id1 th:first-child {
+         vertical-align: bottom;
+      }
+      table#id1 td {
+         font-size: 70%;
+         padding: 1px;
+      }
+      table#id1 td:first-child {
+         padding-left: 1em;
+      }
+   </style>
+
+.. table:: Features availability in networking drivers
+
+   ==================== = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
+   Feature              a b b b c e e i i i i i i i i i i f f m m m n n p r s v v v x
+                        f n n o x 1 n 4 4 4 4 g g x x x x m m l l p f u c i z i i m e
+                        p x x n g 0 i 0 0 0 0 b b g g g g 1 1 x x i p l a n e r r x n
+                        a 2 2 d b 0 c e e e e   v b b b b 0 0 4 5 p   l p g d t t n v
+                        c x x i e 0     . v v   f e e e e k k     e         a i i e i
+                        k   v n         . f f       . v v   .               t o o t r
+                        e   f g         .   .       . f f   .               a   . 3 t
+                        t               v   v       v   v   v               2   v
+                                        e   e       e   e   e                   e
+                                        c   c       c   c   c                   c
+   ==================== = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
+   link status
+   link status event
+   Rx interrupt
+   queue start/stop
+   MTU update
+   jumbo frame
+   scattered Rx
+   LRO
+   TSO
+   promiscuous mode
+   allmulticast mode
+   unicast MAC filter
+   multicast MAC filter
+   RSS hash
+   RSS key update
+   RSS reta update
+   VMDq
+   SR-IOV
+   DCB
+   VLAN filter
+   ethertype filter
+   n-tuple filter
+   SYN filter
+   tunnel filter
+   flexible filter
+   hash filter
+   flow director
+   flow control
+   rate limitation
+   traffic mirroring
+   CRC offload
+   VLAN offload
+   QinQ offload
+   L3 checksum offload
+   L4 checksum offload
+   inner L3 checksum
+   inner L4 checksum
+   packet type parsing
+   timesync
+   basic stats
+   extended stats
+   stats per queue
+   EEPROM dump
+   registers dump
+   multiprocess aware
+   BSD nic_uio
+   Linux UIO
+   Linux VFIO
+   other kdrv
+   ARMv7
+   ARMv8
+   Power8
+   TILE-Gx
+   x86-32
+   x86-64
+   usage doc
+   design doc
+   perf doc
+   ==================== = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
-- 
2.5.2

  reply	other threads:[~2016-01-27 20:08 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-01-26 20:53 [dpdk-dev] [PATCH] " Thomas Monjalon
2016-01-27 20:07 ` Thomas Monjalon [this message]
2016-02-09 11:21   ` [dpdk-dev] [PATCH v2] " Thomas Monjalon
2016-02-16 11:35   ` Rahul Lakkireddy
2016-02-16 13:42     ` Thomas Monjalon
2016-02-17  9:52       ` Rahul Lakkireddy
2016-03-01 13:53   ` Matej Vido
2016-03-01 14:12     ` Thomas Monjalon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1453925229-19696-1-git-send-email-thomas.monjalon@6wind.com \
    --to=thomas.monjalon@6wind.com \
    --cc=dev@dpdk.org \
    --cc=john.mcnamara@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).