* [dpdk-dev] [PATCH] doc: introduce networking driver matrix
@ 2016-01-26 20:53 Thomas Monjalon
2016-01-27 20:07 ` [dpdk-dev] [PATCH v2] " Thomas Monjalon
0 siblings, 1 reply; 8+ messages in thread
From: Thomas Monjalon @ 2016-01-26 20:53 UTC (permalink / raw)
To: John McNamara; +Cc: dev
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>
---
doc/guides/nics/index.rst | 1 +
doc/guides/nics/overview.rst | 145 +++++++++++++++++++++++++++++++++++++++++++
2 files changed, 146 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..e00f094
--- /dev/null
+++ b/doc/guides/nics/overview.rst
@@ -0,0 +1,145 @@
+.. 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: 5px;
+ }
+ 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 f m m m n n p r s v v x
+ f n n o x 1 n 4 4 g g x x m l l p f u c i z i m e
+ p x x n g 0 i 0 0 b b g g 1 x x i p l a n e r x n
+ a 2 2 d b 0 c e e v b b 0 4 5 p l p g d t n v
+ c x x i e 0 v f e e k e a i e i
+ k v n f v t o t r
+ e f g f a 3 t
+ t 2
+ ==================== = = = = = = = = = = = = = = = = = = = = = = = = =
+ 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
^ permalink raw reply [flat|nested] 8+ messages in thread
* [dpdk-dev] [PATCH v2] doc: introduce networking driver matrix
2016-01-26 20:53 [dpdk-dev] [PATCH] doc: introduce networking driver matrix Thomas Monjalon
@ 2016-01-27 20:07 ` Thomas Monjalon
2016-02-09 11:21 ` Thomas Monjalon
` (2 more replies)
0 siblings, 3 replies; 8+ messages in thread
From: Thomas Monjalon @ 2016-01-27 20:07 UTC (permalink / raw)
To: John McNamara; +Cc: dev
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
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [dpdk-dev] [PATCH v2] doc: introduce networking driver matrix
2016-01-27 20:07 ` [dpdk-dev] [PATCH v2] " Thomas Monjalon
@ 2016-02-09 11:21 ` Thomas Monjalon
2016-02-16 11:35 ` Rahul Lakkireddy
2016-03-01 13:53 ` Matej Vido
2 siblings, 0 replies; 8+ messages in thread
From: Thomas Monjalon @ 2016-02-09 11:21 UTC (permalink / raw)
To: dev
2016-01-27 21:07, Thomas Monjalon:
> 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
Nobody complains after 2 weeks, so I guess the idea is welcomed.
Applied
The LaTeX formatting still needs to be fixed to view the entire table
in the PDF doc.
This empty table will have a value when it will be properly filled.
Please, maintainers of drivers, your help is requested here.
We now have 2 months to fill each driver columns with crosses (X).
Thanks
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [dpdk-dev] [PATCH v2] doc: introduce networking driver matrix
2016-01-27 20:07 ` [dpdk-dev] [PATCH v2] " Thomas Monjalon
2016-02-09 11:21 ` Thomas Monjalon
@ 2016-02-16 11:35 ` Rahul Lakkireddy
2016-02-16 13:42 ` Thomas Monjalon
2016-03-01 13:53 ` Matej Vido
2 siblings, 1 reply; 8+ messages in thread
From: Rahul Lakkireddy @ 2016-02-16 11:35 UTC (permalink / raw)
To: Thomas Monjalon; +Cc: dev, Kumar Sanghvi, Nirranjan Kirubaharan
Hi Thomas,
Got a couple of questions on how to mark some of the features for CXGBE
below.
On Wednesday, January 01/27/16, 2016 at 21:07:09 +0100, Thomas Monjalon wrote:
> 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
>
[...]
> +
> + ==================== = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
> + 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
[...]
> + VLAN filter
> + ethertype filter
> + n-tuple filter
> + SYN filter
> + tunnel filter
> + flexible filter
> + hash filter
> + flow director
It is possible to set some of the above filters via our cxgbe flow
director. Do we mark these filter features as supported?
[...]
> + packet type parsing
Is this the same as the driver's ability to fill the mbuf->packet_type
field?
Thanks,
Rahul
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [dpdk-dev] [PATCH v2] doc: introduce networking driver matrix
2016-02-16 11:35 ` Rahul Lakkireddy
@ 2016-02-16 13:42 ` Thomas Monjalon
2016-02-17 9:52 ` Rahul Lakkireddy
0 siblings, 1 reply; 8+ messages in thread
From: Thomas Monjalon @ 2016-02-16 13:42 UTC (permalink / raw)
To: Rahul Lakkireddy; +Cc: dev, Kumar Sanghvi, Nirranjan Kirubaharan
2016-02-16 17:05, Rahul Lakkireddy:
> Hi Thomas,
>
> Got a couple of questions on how to mark some of the features for CXGBE
> below.
>
> On Wednesday, January 01/27/16, 2016 at 21:07:09 +0100, Thomas Monjalon wrote:
[...]
> > + VLAN filter
> > + ethertype filter
> > + n-tuple filter
> > + SYN filter
> > + tunnel filter
> > + flexible filter
> > + hash filter
> > + flow director
>
> It is possible to set some of the above filters via our cxgbe flow
> director. Do we mark these filter features as supported?
How do you configure these filters? rte_eth_dev_filter_ctrl()?
Which type in rte_filter_type?
> [...]
> > + packet type parsing
>
> Is this the same as the driver's ability to fill the mbuf->packet_type
> field?
Yes
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [dpdk-dev] [PATCH v2] doc: introduce networking driver matrix
2016-02-16 13:42 ` Thomas Monjalon
@ 2016-02-17 9:52 ` Rahul Lakkireddy
0 siblings, 0 replies; 8+ messages in thread
From: Rahul Lakkireddy @ 2016-02-17 9:52 UTC (permalink / raw)
To: Thomas Monjalon; +Cc: dev, Kumar A S, Nirranjan Kirubaharan
Hi Thomas,
On Tuesday, February 02/16/16, 2016 at 05:42:30 -0800, Thomas Monjalon wrote:
> 2016-02-16 17:05, Rahul Lakkireddy:
> > Hi Thomas,
> >
> > Got a couple of questions on how to mark some of the features for CXGBE
> > below.
> >
> > On Wednesday, January 01/27/16, 2016 at 21:07:09 +0100, Thomas Monjalon wrote:
> [...]
> > > + VLAN filter
> > > + ethertype filter
> > > + n-tuple filter
> > > + SYN filter
> > > + tunnel filter
> > > + flexible filter
> > > + hash filter
> > > + flow director
> >
> > It is possible to set some of the above filters via our cxgbe flow
> > director. Do we mark these filter features as supported?
>
> How do you configure these filters? rte_eth_dev_filter_ctrl()?
> Which type in rte_filter_type?
>
Yes, we configure it with rte_eth_dev_filter_ctrl() and with
RTE_ETH_FILTER_FDIR filter type. With Chelsio hardware it's possible
to match several different filters in the same rule.
For e.g., it's possible to set a vlan, ethertype, and n-tuple filters
all on the same rule.
The generic architecture [1] for flow director can accept these several
filters in the same rule and hence the cxgbe flow director can handle
these different filters with this generic approach.
[1] http://dpdk.org/ml/archives/dev/2016-February/032605.html
Thanks,
Rahul
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [dpdk-dev] [PATCH v2] doc: introduce networking driver matrix
2016-01-27 20:07 ` [dpdk-dev] [PATCH v2] " Thomas Monjalon
2016-02-09 11:21 ` Thomas Monjalon
2016-02-16 11:35 ` Rahul Lakkireddy
@ 2016-03-01 13:53 ` Matej Vido
2016-03-01 14:12 ` Thomas Monjalon
2 siblings, 1 reply; 8+ messages in thread
From: Matej Vido @ 2016-03-01 13:53 UTC (permalink / raw)
To: Thomas Monjalon; +Cc: dev
Hi Thomas,
Dňa 27.01.2016 o 21:07 Thomas Monjalon napísal(a):
> 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
>
[...]
> +
> + ==================== = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
> + 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
> + ==================== = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
[...]
> + multiprocess aware
Could you please clarify what was meant by this "multiprocess aware" field?
Thanks,
Matej
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [dpdk-dev] [PATCH v2] doc: introduce networking driver matrix
2016-03-01 13:53 ` Matej Vido
@ 2016-03-01 14:12 ` Thomas Monjalon
0 siblings, 0 replies; 8+ messages in thread
From: Thomas Monjalon @ 2016-03-01 14:12 UTC (permalink / raw)
To: Matej Vido; +Cc: dev
2016-03-01 14:53, Matej Vido:
> Dňa 27.01.2016 o 21:07 Thomas Monjalon napísal(a):
> > + multiprocess aware
> Could you please clarify what was meant by this "multiprocess aware" field?
The short answer is "git grep RTE_PROC -- drivers/"
Some initializations must be done only in primay process.
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2016-03-01 14:14 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-01-26 20:53 [dpdk-dev] [PATCH] doc: introduce networking driver matrix Thomas Monjalon
2016-01-27 20:07 ` [dpdk-dev] [PATCH v2] " Thomas Monjalon
2016-02-09 11:21 ` 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
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).