DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH] doc: note KNI alternatives and deprecation plan
@ 2021-06-23 17:31 Ferruh Yigit
  2021-06-23 18:33 ` Stephen Hemminger
                   ` (4 more replies)
  0 siblings, 5 replies; 15+ messages in thread
From: Ferruh Yigit @ 2021-06-23 17:31 UTC (permalink / raw)
  To: dev, Keith Wiles; +Cc: Ferruh Yigit, Stephen Hemminger, Thomas Monjalon

Add a note that KNI kernel module will be moved to dpdk-kmods git repo
and there is a long term plan to deprecate it.

Also add some more details on the alternatives to KNI and cons of the
KNI against these alternatives.

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
 doc/guides/nics/tap.rst                       |  2 +
 .../prog_guide/kernel_nic_interface.rst       | 38 +++++++++++++++++--
 2 files changed, 37 insertions(+), 3 deletions(-)

diff --git a/doc/guides/nics/tap.rst b/doc/guides/nics/tap.rst
index 3ce696b605d1..07315fe32422 100644
--- a/doc/guides/nics/tap.rst
+++ b/doc/guides/nics/tap.rst
@@ -1,6 +1,8 @@
 ..  SPDX-License-Identifier: BSD-3-Clause
     Copyright(c) 2016 Intel Corporation.
 
+.. _TunTap_PMD:
+
 Tun|Tap Poll Mode Driver
 ========================
 
diff --git a/doc/guides/prog_guide/kernel_nic_interface.rst b/doc/guides/prog_guide/kernel_nic_interface.rst
index 1ce03ec1a374..29f8c92fd9d6 100644
--- a/doc/guides/prog_guide/kernel_nic_interface.rst
+++ b/doc/guides/prog_guide/kernel_nic_interface.rst
@@ -6,16 +6,48 @@
 Kernel NIC Interface
 ====================
 
+.. Note::
+
+   KNI kernel module will be removed from main git repository to `dpdk-kmods <https://git.dpdk.org/dpdk-kmods/>`_
+   repository by the `DPDK technical board decision <https://mails.dpdk.org/archives/dev/2021-January/197077.html>`_.
+   Also there is a `long term plan <https://mails.dpdk.org/archives/dev/2021-May/209026.html>`_ to deprecate the KNI.
+
+   :ref:`virtio_user_as_exceptional_path` alternative is preferred way for
+   interfacing with Linux network stack as it is being in-kernel solution and
+   similar performance expectations.
+
 The DPDK Kernel NIC Interface (KNI) allows userspace applications access to the Linux* control plane.
 
-The benefits of using the DPDK KNI are:
+KNI allows an interface with the kernel network stack and allows management of
+DPDK ports using standard Linux net tools such as ``ethtool``, ``ifconfig`` and
+``tcpdump``.
+
+Main use case of KNI is get/receive exception packets from/to Linux network
+stack while main datapath IO is done bypassing the networking stack.
+
+There are other alternatives to KNI, all are available in the upstream Linux:
+
+#. :ref:`TunTap_PMD` as wrapper to `Linux tun/tap
+   <https://www.kernel.org/doc/Documentation/networking/tuntap.txt>`_
+
+#. :ref:`virtio_user_as_exceptional_path`
+
+The benefits of using the DPDK KNI against alternatives are:
 
 *   Faster than existing Linux TUN/TAP interfaces
     (by eliminating system calls and copy_to_user()/copy_from_user() operations.
 
-*   Allows management of DPDK ports using standard Linux net tools such as ethtool, ifconfig and tcpdump.
+The cons of the DPDK KNI are:
+
+* It is out-of-tree Linux kernel module and it can't be distributed as binary as
+  part of OSV DPDK packages. This makes it harder to consume, although it is
+  always possible to compile it from the source code.
+
+* As it shares memory between userspace and kernelspace, and kernel part
+  directly uses input provided by userspace, it is not safe. This makes hard to
+  upstream the module.
 
-*   Allows an interface with the kernel network stack.
+* Only a subset of control commands are supported by KNI.
 
 The components of an application using the DPDK Kernel NIC Interface are shown in :numref:`figure_kernel_nic_intf`.
 
-- 
2.31.1


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [dpdk-dev] [PATCH] doc: note KNI alternatives and deprecation plan
  2021-06-23 17:31 [dpdk-dev] [PATCH] doc: note KNI alternatives and deprecation plan Ferruh Yigit
@ 2021-06-23 18:33 ` Stephen Hemminger
  2021-06-24  8:19   ` Ferruh Yigit
  2021-07-30 12:48 ` Olivier Matz
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 15+ messages in thread
From: Stephen Hemminger @ 2021-06-23 18:33 UTC (permalink / raw)
  To: Ferruh Yigit; +Cc: dev, Keith Wiles, Thomas Monjalon

On Wed, 23 Jun 2021 18:31:42 +0100
Ferruh Yigit <ferruh.yigit@intel.com> wrote:

> Add a note that KNI kernel module will be moved to dpdk-kmods git repo
> and there is a long term plan to deprecate it.
> 
> Also add some more details on the alternatives to KNI and cons of the
> KNI against these alternatives.
> 
> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
> ---
>  doc/guides/nics/tap.rst                       |  2 +
>  .../prog_guide/kernel_nic_interface.rst       | 38 +++++++++++++++++--
>  2 files changed, 37 insertions(+), 3 deletions(-)
> 
> diff --git a/doc/guides/nics/tap.rst b/doc/guides/nics/tap.rst
> index 3ce696b605d1..07315fe32422 100644
> --- a/doc/guides/nics/tap.rst
> +++ b/doc/guides/nics/tap.rst
> @@ -1,6 +1,8 @@
>  ..  SPDX-License-Identifier: BSD-3-Clause
>      Copyright(c) 2016 Intel Corporation.
>  
> +.. _TunTap_PMD:
> +
>  Tun|Tap Poll Mode Driver
>  ========================
>  
> diff --git a/doc/guides/prog_guide/kernel_nic_interface.rst b/doc/guides/prog_guide/kernel_nic_interface.rst
> index 1ce03ec1a374..29f8c92fd9d6 100644
> --- a/doc/guides/prog_guide/kernel_nic_interface.rst
> +++ b/doc/guides/prog_guide/kernel_nic_interface.rst
> @@ -6,16 +6,48 @@
>  Kernel NIC Interface
>  ====================
>  
> +.. Note::
> +
> +   KNI kernel module will be removed from main git repository to `dpdk-kmods <https://git.dpdk.org/dpdk-kmods/>`_
> +   repository by the `DPDK technical board decision <https://mails.dpdk.org/archives/dev/2021-January/197077.html>`_.
> +   Also there is a `long term plan <https://mails.dpdk.org/archives/dev/2021-May/209026.html>`_ to deprecate the KNI.
> +
> +   :ref:`virtio_user_as_exceptional_path` alternative is preferred way for
> +   interfacing with Linux network stack as it is being in-kernel solution and
> +   similar performance expectations.
> +
>  The DPDK Kernel NIC Interface (KNI) allows userspace applications access to the Linux* control plane.
>  
> -The benefits of using the DPDK KNI are:
> +KNI allows an interface with the kernel network stack and allows management of
> +DPDK ports using standard Linux net tools such as ``ethtool``, ``ifconfig`` and
> +``tcpdump``.
> +
> +Main use case of KNI is get/receive exception packets from/to Linux network
> +stack while main datapath IO is done bypassing the networking stack.
> +
> +There are other alternatives to KNI, all are available in the upstream Linux:
> +
> +#. :ref:`TunTap_PMD` as wrapper to `Linux tun/tap
> +   <https://www.kernel.org/doc/Documentation/networking/tuntap.txt>`_
> +
> +#. :ref:`virtio_user_as_exceptional_path`
> +
> +The benefits of using the DPDK KNI against alternatives are:
>  
>  *   Faster than existing Linux TUN/TAP interfaces
>      (by eliminating system calls and copy_to_user()/copy_from_user() operations.
>  
> -*   Allows management of DPDK ports using standard Linux net tools such as ethtool, ifconfig and tcpdump.
> +The cons of the DPDK KNI are:
> +
> +* It is out-of-tree Linux kernel module and it can't be distributed as binary as
> +  part of OSV DPDK packages. This makes it harder to consume, although it is
> +  always possible to compile it from the source code.
> +
> +* As it shares memory between userspace and kernelspace, and kernel part
> +  directly uses input provided by userspace, it is not safe. This makes hard to
> +  upstream the module.
>  
> -*   Allows an interface with the kernel network stack.
> +* Only a subset of control commands are supported by KNI.
>  
>  The components of an application using the DPDK Kernel NIC Interface are shown in :numref:`figure_kernel_nic_intf`.
>  

You should also link to virtio user as exception path. In my testing virtio is as fast as KNI and uses less CPU.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [dpdk-dev] [PATCH] doc: note KNI alternatives and deprecation plan
  2021-06-23 18:33 ` Stephen Hemminger
@ 2021-06-24  8:19   ` Ferruh Yigit
  0 siblings, 0 replies; 15+ messages in thread
From: Ferruh Yigit @ 2021-06-24  8:19 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: dev, Keith Wiles, Thomas Monjalon

On 6/23/2021 7:33 PM, Stephen Hemminger wrote:
> On Wed, 23 Jun 2021 18:31:42 +0100
> Ferruh Yigit <ferruh.yigit@intel.com> wrote:
> 
>> Add a note that KNI kernel module will be moved to dpdk-kmods git repo
>> and there is a long term plan to deprecate it.
>>
>> Also add some more details on the alternatives to KNI and cons of the
>> KNI against these alternatives.
>>
>> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
>> ---
>>  doc/guides/nics/tap.rst                       |  2 +
>>  .../prog_guide/kernel_nic_interface.rst       | 38 +++++++++++++++++--
>>  2 files changed, 37 insertions(+), 3 deletions(-)
>>
>> diff --git a/doc/guides/nics/tap.rst b/doc/guides/nics/tap.rst
>> index 3ce696b605d1..07315fe32422 100644
>> --- a/doc/guides/nics/tap.rst
>> +++ b/doc/guides/nics/tap.rst
>> @@ -1,6 +1,8 @@
>>  ..  SPDX-License-Identifier: BSD-3-Clause
>>      Copyright(c) 2016 Intel Corporation.
>>  
>> +.. _TunTap_PMD:
>> +
>>  Tun|Tap Poll Mode Driver
>>  ========================
>>  
>> diff --git a/doc/guides/prog_guide/kernel_nic_interface.rst b/doc/guides/prog_guide/kernel_nic_interface.rst
>> index 1ce03ec1a374..29f8c92fd9d6 100644
>> --- a/doc/guides/prog_guide/kernel_nic_interface.rst
>> +++ b/doc/guides/prog_guide/kernel_nic_interface.rst
>> @@ -6,16 +6,48 @@
>>  Kernel NIC Interface
>>  ====================
>>  
>> +.. Note::
>> +
>> +   KNI kernel module will be removed from main git repository to `dpdk-kmods <https://git.dpdk.org/dpdk-kmods/>`_
>> +   repository by the `DPDK technical board decision <https://mails.dpdk.org/archives/dev/2021-January/197077.html>`_.
>> +   Also there is a `long term plan <https://mails.dpdk.org/archives/dev/2021-May/209026.html>`_ to deprecate the KNI.
>> +
>> +   :ref:`virtio_user_as_exceptional_path` alternative is preferred way for
>> +   interfacing with Linux network stack as it is being in-kernel solution and
>> +   similar performance expectations.
>> +
>>  The DPDK Kernel NIC Interface (KNI) allows userspace applications access to the Linux* control plane.
>>  
>> -The benefits of using the DPDK KNI are:
>> +KNI allows an interface with the kernel network stack and allows management of
>> +DPDK ports using standard Linux net tools such as ``ethtool``, ``ifconfig`` and
>> +``tcpdump``.
>> +
>> +Main use case of KNI is get/receive exception packets from/to Linux network
>> +stack while main datapath IO is done bypassing the networking stack.
>> +
>> +There are other alternatives to KNI, all are available in the upstream Linux:
>> +
>> +#. :ref:`TunTap_PMD` as wrapper to `Linux tun/tap
>> +   <https://www.kernel.org/doc/Documentation/networking/tuntap.txt>`_
>> +
>> +#. :ref:`virtio_user_as_exceptional_path`
>> +
>> +The benefits of using the DPDK KNI against alternatives are:
>>  
>>  *   Faster than existing Linux TUN/TAP interfaces
>>      (by eliminating system calls and copy_to_user()/copy_from_user() operations.
>>  
>> -*   Allows management of DPDK ports using standard Linux net tools such as ethtool, ifconfig and tcpdump.
>> +The cons of the DPDK KNI are:
>> +
>> +* It is out-of-tree Linux kernel module and it can't be distributed as binary as
>> +  part of OSV DPDK packages. This makes it harder to consume, although it is
>> +  always possible to compile it from the source code.
>> +
>> +* As it shares memory between userspace and kernelspace, and kernel part
>> +  directly uses input provided by userspace, it is not safe. This makes hard to
>> +  upstream the module.
>>  
>> -*   Allows an interface with the kernel network stack.
>> +* Only a subset of control commands are supported by KNI.
>>  
>>  The components of an application using the DPDK Kernel NIC Interface are shown in :numref:`figure_kernel_nic_intf`.
>>  
> 
> You should also link to virtio user as exception path. In my testing virtio is as fast as KNI and uses less CPU.
> 

Patch mentions from virtio-user alternative, and in the notes it even documents
it as preferred way.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [dpdk-dev] [PATCH] doc: note KNI alternatives and deprecation plan
  2021-06-23 17:31 [dpdk-dev] [PATCH] doc: note KNI alternatives and deprecation plan Ferruh Yigit
  2021-06-23 18:33 ` Stephen Hemminger
@ 2021-07-30 12:48 ` Olivier Matz
  2021-11-23 10:21   ` Ferruh Yigit
  2021-08-20 12:58 ` David Marchand
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 15+ messages in thread
From: Olivier Matz @ 2021-07-30 12:48 UTC (permalink / raw)
  To: Ferruh Yigit; +Cc: dev, Keith Wiles, Stephen Hemminger, Thomas Monjalon

Hi Ferruh,

Few minor comments below.

On Wed, Jun 23, 2021 at 06:31:42PM +0100, Ferruh Yigit wrote:
> Add a note that KNI kernel module will be moved to dpdk-kmods git repo
> and there is a long term plan to deprecate it.
> 
> Also add some more details on the alternatives to KNI and cons of the
> KNI against these alternatives.
> 
> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
> ---
>  doc/guides/nics/tap.rst                       |  2 +
>  .../prog_guide/kernel_nic_interface.rst       | 38 +++++++++++++++++--
>  2 files changed, 37 insertions(+), 3 deletions(-)
> 
> diff --git a/doc/guides/nics/tap.rst b/doc/guides/nics/tap.rst
> index 3ce696b605d1..07315fe32422 100644
> --- a/doc/guides/nics/tap.rst
> +++ b/doc/guides/nics/tap.rst
> @@ -1,6 +1,8 @@
>  ..  SPDX-License-Identifier: BSD-3-Clause
>      Copyright(c) 2016 Intel Corporation.
>  
> +.. _TunTap_PMD:
> +
>  Tun|Tap Poll Mode Driver
>  ========================
>  
> diff --git a/doc/guides/prog_guide/kernel_nic_interface.rst b/doc/guides/prog_guide/kernel_nic_interface.rst
> index 1ce03ec1a374..29f8c92fd9d6 100644
> --- a/doc/guides/prog_guide/kernel_nic_interface.rst
> +++ b/doc/guides/prog_guide/kernel_nic_interface.rst
> @@ -6,16 +6,48 @@
>  Kernel NIC Interface
>  ====================
>  
> +.. Note::
> +
> +   KNI kernel module will be removed from main git repository to `dpdk-kmods <https://git.dpdk.org/dpdk-kmods/>`_

removed -> moved?

Or "removed from main and moved to"

> +   repository by the `DPDK technical board decision <https://mails.dpdk.org/archives/dev/2021-January/197077.html>`_.
> +   Also there is a `long term plan <https://mails.dpdk.org/archives/dev/2021-May/209026.html>`_ to deprecate the KNI.
> +
> +   :ref:`virtio_user_as_exceptional_path` alternative is preferred way for
> +   interfacing with Linux network stack as it is being in-kernel solution and
> +   similar performance expectations.
> +
>  The DPDK Kernel NIC Interface (KNI) allows userspace applications access to the Linux* control plane.
>  
> -The benefits of using the DPDK KNI are:
> +KNI allows an interface with the kernel network stack and allows management of
> +DPDK ports using standard Linux net tools such as ``ethtool``, ``ifconfig`` and
> +``tcpdump``.
> +
> +Main use case of KNI is get/receive exception packets from/to Linux network
> +stack while main datapath IO is done bypassing the networking stack.
> +
> +There are other alternatives to KNI, all are available in the upstream Linux:
> +
> +#. :ref:`TunTap_PMD` as wrapper to `Linux tun/tap
> +   <https://www.kernel.org/doc/Documentation/networking/tuntap.txt>`_
> +
> +#. :ref:`virtio_user_as_exceptional_path`

Shouldn't virtio_user be the first item?

> +
> +The benefits of using the DPDK KNI against alternatives are:
>  
>  *   Faster than existing Linux TUN/TAP interfaces
>      (by eliminating system calls and copy_to_user()/copy_from_user() operations.
>  
> -*   Allows management of DPDK ports using standard Linux net tools such as ethtool, ifconfig and tcpdump.
> +The cons of the DPDK KNI are:
> +
> +* It is out-of-tree Linux kernel module and it can't be distributed as binary as
> +  part of OSV DPDK packages. This makes it harder to consume, although it is

OSV -> OVS

> +  always possible to compile it from the source code.
> +
> +* As it shares memory between userspace and kernelspace, and kernel part
> +  directly uses input provided by userspace, it is not safe. This makes hard to
> +  upstream the module.
>  
> -*   Allows an interface with the kernel network stack.
> +* Only a subset of control commands are supported by KNI.
>  
>  The components of an application using the DPDK Kernel NIC Interface are shown in :numref:`figure_kernel_nic_intf`.
>  
> -- 
> 2.31.1
> 

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [dpdk-dev] [PATCH] doc: note KNI alternatives and deprecation plan
  2021-06-23 17:31 [dpdk-dev] [PATCH] doc: note KNI alternatives and deprecation plan Ferruh Yigit
  2021-06-23 18:33 ` Stephen Hemminger
  2021-07-30 12:48 ` Olivier Matz
@ 2021-08-20 12:58 ` David Marchand
  2021-11-23 10:42   ` Ferruh Yigit
  2021-11-23 12:08 ` [PATCH v2 1/2] doc: note KNI alternatives Ferruh Yigit
  2021-11-24 17:16 ` [PATCH v3 " Ferruh Yigit
  4 siblings, 1 reply; 15+ messages in thread
From: David Marchand @ 2021-08-20 12:58 UTC (permalink / raw)
  To: Ferruh Yigit
  Cc: dev, Keith Wiles, Stephen Hemminger, Thomas Monjalon, Mcnamara, John

On Wed, Jun 23, 2021 at 7:32 PM Ferruh Yigit <ferruh.yigit@intel.com> wrote:
>
> Add a note that KNI kernel module will be moved to dpdk-kmods git repo
> and there is a long term plan to deprecate it.
>
> Also add some more details on the alternatives to KNI and cons of the
> KNI against these alternatives.

Some suggestions on wording below, feel free to ignore if this sounds
like French ;-).


>
> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
> ---
>  doc/guides/nics/tap.rst                       |  2 +
>  .../prog_guide/kernel_nic_interface.rst       | 38 +++++++++++++++++--
>  2 files changed, 37 insertions(+), 3 deletions(-)
>
> diff --git a/doc/guides/nics/tap.rst b/doc/guides/nics/tap.rst
> index 3ce696b605d1..07315fe32422 100644
> --- a/doc/guides/nics/tap.rst
> +++ b/doc/guides/nics/tap.rst
> @@ -1,6 +1,8 @@
>  ..  SPDX-License-Identifier: BSD-3-Clause
>      Copyright(c) 2016 Intel Corporation.
>
> +.. _TunTap_PMD:
> +
>  Tun|Tap Poll Mode Driver
>  ========================
>
> diff --git a/doc/guides/prog_guide/kernel_nic_interface.rst b/doc/guides/prog_guide/kernel_nic_interface.rst
> index 1ce03ec1a374..29f8c92fd9d6 100644
> --- a/doc/guides/prog_guide/kernel_nic_interface.rst
> +++ b/doc/guides/prog_guide/kernel_nic_interface.rst
> @@ -6,16 +6,48 @@
>  Kernel NIC Interface
>  ====================
>
> +.. Note::
> +

> +   KNI kernel module will be removed from main git repository to `dpdk-kmods <https://git.dpdk.org/dpdk-kmods/>`_
The* KNI kernel module will be moved* (Olivier comment) to ...

> +   repository by the `DPDK technical board decision <https://mails.dpdk.org/archives/dev/2021-January/197077.html>`_.
repository following* the `...`_.

I'd move this first part in doc/guides/rel_notes/deprecation.rst
and/or release notes.
Then, reword this as:

> +   Also there is a `long term plan <https://mails.dpdk.org/archives/dev/2021-May/209026.html>`_ to deprecate the KNI.

The `long term plan...`_ is* to deprecate KNI, see <XXX link to
deprecation notice/release notes>.


> +
> +   :ref:`virtio_user_as_exceptional_path` alternative is preferred way for

is one/a* preferred way

> +   interfacing with Linux network stack as it is being in-kernel solution and

interfacing with the* Linux network stack as it is a* in-kernel and

> +   similar performance expectations.

has* similar performance expectations.


> +
>  The DPDK Kernel NIC Interface (KNI) allows userspace applications access to the Linux* control plane.
>
> -The benefits of using the DPDK KNI are:
> +KNI allows an interface with the kernel network stack and allows management of

KNI provides* an interface ...

> +DPDK ports using standard Linux net tools such as ``ethtool``, ``ifconfig`` and
> +``tcpdump``.
> +
> +Main use case of KNI is get/receive exception packets from/to Linux network

The* main use case of KNI is to* ...

> +stack while main datapath IO is done bypassing the networking stack.
> +
> +There are other alternatives to KNI, all are available in the upstream Linux:
> +
> +#. :ref:`TunTap_PMD` as wrapper to `Linux tun/tap
> +   <https://www.kernel.org/doc/Documentation/networking/tuntap.txt>`_
> +
> +#. :ref:`virtio_user_as_exceptional_path`
> +

+1 to Olivier comment, for making virtio-user first.


> +The benefits of using the DPDK KNI against alternatives are:
>
>  *   Faster than existing Linux TUN/TAP interfaces
>      (by eliminating system calls and copy_to_user()/copy_from_user() operations.
>
> -*   Allows management of DPDK ports using standard Linux net tools such as ethtool, ifconfig and tcpdump.
> +The cons of the DPDK KNI are:

Not sure why we need an extra DPDK, KNI alone is enough.


> +
> +* It is out-of-tree Linux kernel module and it can't be distributed as binary as
> +  part of OSV DPDK packages. This makes it harder to consume, although it is

OSV as in OS vendors, right? ok for me.


> +  always possible to compile it from the source code.
> +
> +* As it shares memory between userspace and kernelspace, and kernel part
> +  directly uses input provided by userspace, it is not safe. This makes hard to
> +  upstream the module.
>
> -*   Allows an interface with the kernel network stack.
> +* Only a subset of control commands are supported by KNI.

of net devices control commands*

>
>  The components of an application using the DPDK Kernel NIC Interface are shown in :numref:`figure_kernel_nic_intf`.
>
> --
> 2.31.1
>


-- 
David Marchand


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [dpdk-dev] [PATCH] doc: note KNI alternatives and deprecation plan
  2021-07-30 12:48 ` Olivier Matz
@ 2021-11-23 10:21   ` Ferruh Yigit
  0 siblings, 0 replies; 15+ messages in thread
From: Ferruh Yigit @ 2021-11-23 10:21 UTC (permalink / raw)
  To: Olivier Matz; +Cc: dev, Keith Wiles, Stephen Hemminger, Thomas Monjalon

On 7/30/2021 1:48 PM, Olivier Matz wrote:
> Hi Ferruh,
> 
> Few minor comments below.
> 
> On Wed, Jun 23, 2021 at 06:31:42PM +0100, Ferruh Yigit wrote:
>> Add a note that KNI kernel module will be moved to dpdk-kmods git repo
>> and there is a long term plan to deprecate it.
>>
>> Also add some more details on the alternatives to KNI and cons of the
>> KNI against these alternatives.
>>
>> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
>> ---
>>   doc/guides/nics/tap.rst                       |  2 +
>>   .../prog_guide/kernel_nic_interface.rst       | 38 +++++++++++++++++--
>>   2 files changed, 37 insertions(+), 3 deletions(-)
>>
>> diff --git a/doc/guides/nics/tap.rst b/doc/guides/nics/tap.rst
>> index 3ce696b605d1..07315fe32422 100644
>> --- a/doc/guides/nics/tap.rst
>> +++ b/doc/guides/nics/tap.rst
>> @@ -1,6 +1,8 @@
>>   ..  SPDX-License-Identifier: BSD-3-Clause
>>       Copyright(c) 2016 Intel Corporation.
>>   
>> +.. _TunTap_PMD:
>> +
>>   Tun|Tap Poll Mode Driver
>>   ========================
>>   
>> diff --git a/doc/guides/prog_guide/kernel_nic_interface.rst b/doc/guides/prog_guide/kernel_nic_interface.rst
>> index 1ce03ec1a374..29f8c92fd9d6 100644
>> --- a/doc/guides/prog_guide/kernel_nic_interface.rst
>> +++ b/doc/guides/prog_guide/kernel_nic_interface.rst
>> @@ -6,16 +6,48 @@
>>   Kernel NIC Interface
>>   ====================
>>   
>> +.. Note::
>> +
>> +   KNI kernel module will be removed from main git repository to `dpdk-kmods <https://git.dpdk.org/dpdk-kmods/>`_
> 
> removed -> moved?
> 

ack

> Or "removed from main and moved to"
> 
>> +   repository by the `DPDK technical board decision <https://mails.dpdk.org/archives/dev/2021-January/197077.html>`_.
>> +   Also there is a `long term plan <https://mails.dpdk.org/archives/dev/2021-May/209026.html>`_ to deprecate the KNI.
>> +
>> +   :ref:`virtio_user_as_exceptional_path` alternative is preferred way for
>> +   interfacing with Linux network stack as it is being in-kernel solution and
>> +   similar performance expectations.
>> +
>>   The DPDK Kernel NIC Interface (KNI) allows userspace applications access to the Linux* control plane.
>>   
>> -The benefits of using the DPDK KNI are:
>> +KNI allows an interface with the kernel network stack and allows management of
>> +DPDK ports using standard Linux net tools such as ``ethtool``, ``ifconfig`` and
>> +``tcpdump``.
>> +
>> +Main use case of KNI is get/receive exception packets from/to Linux network
>> +stack while main datapath IO is done bypassing the networking stack.
>> +
>> +There are other alternatives to KNI, all are available in the upstream Linux:
>> +
>> +#. :ref:`TunTap_PMD` as wrapper to `Linux tun/tap
>> +   <https://www.kernel.org/doc/Documentation/networking/tuntap.txt>`_
>> +
>> +#. :ref:`virtio_user_as_exceptional_path`
> 
> Shouldn't virtio_user be the first item?
> 

ack

>> +
>> +The benefits of using the DPDK KNI against alternatives are:
>>   
>>   *   Faster than existing Linux TUN/TAP interfaces
>>       (by eliminating system calls and copy_to_user()/copy_from_user() operations.
>>   
>> -*   Allows management of DPDK ports using standard Linux net tools such as ethtool, ifconfig and tcpdump.
>> +The cons of the DPDK KNI are:
>> +
>> +* It is out-of-tree Linux kernel module and it can't be distributed as binary as
>> +  part of OSV DPDK packages. This makes it harder to consume, although it is
> 
> OSV -> OVS
> 

I mean 'Operating System Vendor', I will use long version to prevent confusion.

>> +  always possible to compile it from the source code.
>> +
>> +* As it shares memory between userspace and kernelspace, and kernel part
>> +  directly uses input provided by userspace, it is not safe. This makes hard to
>> +  upstream the module.
>>   
>> -*   Allows an interface with the kernel network stack.
>> +* Only a subset of control commands are supported by KNI.
>>   
>>   The components of an application using the DPDK Kernel NIC Interface are shown in :numref:`figure_kernel_nic_intf`.
>>   
>> -- 
>> 2.31.1
>>


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [dpdk-dev] [PATCH] doc: note KNI alternatives and deprecation plan
  2021-08-20 12:58 ` David Marchand
@ 2021-11-23 10:42   ` Ferruh Yigit
  0 siblings, 0 replies; 15+ messages in thread
From: Ferruh Yigit @ 2021-11-23 10:42 UTC (permalink / raw)
  To: David Marchand
  Cc: dev, Keith Wiles, Stephen Hemminger, Thomas Monjalon, Mcnamara, John

On 8/20/2021 1:58 PM, David Marchand wrote:
> On Wed, Jun 23, 2021 at 7:32 PM Ferruh Yigit <ferruh.yigit@intel.com> wrote:
>>
>> Add a note that KNI kernel module will be moved to dpdk-kmods git repo
>> and there is a long term plan to deprecate it.
>>
>> Also add some more details on the alternatives to KNI and cons of the
>> KNI against these alternatives.
> 
> Some suggestions on wording below, feel free to ignore if this sounds
> like French ;-).
> 
> 
>>
>> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
>> ---
>>   doc/guides/nics/tap.rst                       |  2 +
>>   .../prog_guide/kernel_nic_interface.rst       | 38 +++++++++++++++++--
>>   2 files changed, 37 insertions(+), 3 deletions(-)
>>
>> diff --git a/doc/guides/nics/tap.rst b/doc/guides/nics/tap.rst
>> index 3ce696b605d1..07315fe32422 100644
>> --- a/doc/guides/nics/tap.rst
>> +++ b/doc/guides/nics/tap.rst
>> @@ -1,6 +1,8 @@
>>   ..  SPDX-License-Identifier: BSD-3-Clause
>>       Copyright(c) 2016 Intel Corporation.
>>
>> +.. _TunTap_PMD:
>> +
>>   Tun|Tap Poll Mode Driver
>>   ========================
>>
>> diff --git a/doc/guides/prog_guide/kernel_nic_interface.rst b/doc/guides/prog_guide/kernel_nic_interface.rst
>> index 1ce03ec1a374..29f8c92fd9d6 100644
>> --- a/doc/guides/prog_guide/kernel_nic_interface.rst
>> +++ b/doc/guides/prog_guide/kernel_nic_interface.rst
>> @@ -6,16 +6,48 @@
>>   Kernel NIC Interface
>>   ====================
>>
>> +.. Note::
>> +
> 
>> +   KNI kernel module will be removed from main git repository to `dpdk-kmods <https://git.dpdk.org/dpdk-kmods/>`_
> The* KNI kernel module will be moved* (Olivier comment) to ...
> 
>> +   repository by the `DPDK technical board decision <https://mails.dpdk.org/archives/dev/2021-January/197077.html>`_.
> repository following* the `...`_.
> 
> I'd move this first part in doc/guides/rel_notes/deprecation.rst

Perhaps it is better to clarify the decisions first in the deprecation
notice, and document it later referencing it, instead of documenting it first.

I will try to separate the decision part from the KNI documentation.

> and/or release notes.
> Then, reword this as:
> 
>> +   Also there is a `long term plan <https://mails.dpdk.org/archives/dev/2021-May/209026.html>`_ to deprecate the KNI.
> 
> The `long term plan...`_ is* to deprecate KNI, see <XXX link to
> deprecation notice/release notes>.
> 
> 
>> +
>> +   :ref:`virtio_user_as_exceptional_path` alternative is preferred way for
> 
> is one/a* preferred way
> 

ack

>> +   interfacing with Linux network stack as it is being in-kernel solution and
> 
> interfacing with the* Linux network stack as it is a* in-kernel and
>

ack
  
>> +   similar performance expectations.
> 
> has* similar performance expectations.
> 

ack

> 
>> +
>>   The DPDK Kernel NIC Interface (KNI) allows userspace applications access to the Linux* control plane.
>>
>> -The benefits of using the DPDK KNI are:
>> +KNI allows an interface with the kernel network stack and allows management of
> 
> KNI provides* an interface ...
> 

ack

>> +DPDK ports using standard Linux net tools such as ``ethtool``, ``ifconfig`` and
>> +``tcpdump``.
>> +
>> +Main use case of KNI is get/receive exception packets from/to Linux network
> 
> The* main use case of KNI is to* ...
> 

ack

>> +stack while main datapath IO is done bypassing the networking stack.
>> +
>> +There are other alternatives to KNI, all are available in the upstream Linux:
>> +
>> +#. :ref:`TunTap_PMD` as wrapper to `Linux tun/tap
>> +   <https://www.kernel.org/doc/Documentation/networking/tuntap.txt>`_
>> +
>> +#. :ref:`virtio_user_as_exceptional_path`
>> +
> 
> +1 to Olivier comment, for making virtio-user first.
> 
> 
>> +The benefits of using the DPDK KNI against alternatives are:
>>
>>   *   Faster than existing Linux TUN/TAP interfaces
>>       (by eliminating system calls and copy_to_user()/copy_from_user() operations.
>>
>> -*   Allows management of DPDK ports using standard Linux net tools such as ethtool, ifconfig and tcpdump.
>> +The cons of the DPDK KNI are:
> 
> Not sure why we need an extra DPDK, KNI alone is enough.
> 

ack

> 
>> +
>> +* It is out-of-tree Linux kernel module and it can't be distributed as binary as
>> +  part of OSV DPDK packages. This makes it harder to consume, although it is
> 
> OSV as in OS vendors, right? ok for me.
> 
> 
>> +  always possible to compile it from the source code.
>> +
>> +* As it shares memory between userspace and kernelspace, and kernel part
>> +  directly uses input provided by userspace, it is not safe. This makes hard to
>> +  upstream the module.
>>
>> -*   Allows an interface with the kernel network stack.
>> +* Only a subset of control commands are supported by KNI.
> 
> of net devices control commands*
> 

ack

>>
>>   The components of an application using the DPDK Kernel NIC Interface are shown in :numref:`figure_kernel_nic_intf`.
>>
>> --
>> 2.31.1
>>
> 
> 


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCH v2 1/2] doc: note KNI alternatives
  2021-06-23 17:31 [dpdk-dev] [PATCH] doc: note KNI alternatives and deprecation plan Ferruh Yigit
                   ` (2 preceding siblings ...)
  2021-08-20 12:58 ` David Marchand
@ 2021-11-23 12:08 ` Ferruh Yigit
  2021-11-23 12:08   ` [PATCH v2 2/2] doc: announce KNI deprecation Ferruh Yigit
  2021-11-24 13:58   ` [PATCH v2 1/2] doc: note KNI alternatives Thomas Monjalon
  2021-11-24 17:16 ` [PATCH v3 " Ferruh Yigit
  4 siblings, 2 replies; 15+ messages in thread
From: Ferruh Yigit @ 2021-11-23 12:08 UTC (permalink / raw)
  To: dev, Keith Wiles
  Cc: Ferruh Yigit, Olivier Matz, David Marchand, Stephen Hemminger,
	Elad Nachman, Igor Ryzhov, Dan Gora

Add more information on alternatives of KNI and the cons of KNI against
these alternatives.

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
Cc: Olivier Matz <olivier.matz@6wind.com>
Cc: David Marchand <david.marchand@redhat.com>
Cc: Stephen Hemminger <stephen@networkplumber.org>
Cc: Elad Nachman <eladv6@gmail.com>
Cc: Igor Ryzhov <iryzhov@nfware.com>
Cc: Dan Gora <dg@adax.com>
---
 doc/guides/nics/tap.rst                       |  2 ++
 .../prog_guide/kernel_nic_interface.rst       | 34 +++++++++++++++++--
 2 files changed, 33 insertions(+), 3 deletions(-)

diff --git a/doc/guides/nics/tap.rst b/doc/guides/nics/tap.rst
index 681010d9ed7d..2ba98893d564 100644
--- a/doc/guides/nics/tap.rst
+++ b/doc/guides/nics/tap.rst
@@ -1,6 +1,8 @@
 ..  SPDX-License-Identifier: BSD-3-Clause
     Copyright(c) 2016 Intel Corporation.
 
+.. _TunTap_PMD:
+
 Tun|Tap Poll Mode Driver
 ========================
 
diff --git a/doc/guides/prog_guide/kernel_nic_interface.rst b/doc/guides/prog_guide/kernel_nic_interface.rst
index 1ce03ec1a374..70e92687d711 100644
--- a/doc/guides/prog_guide/kernel_nic_interface.rst
+++ b/doc/guides/prog_guide/kernel_nic_interface.rst
@@ -6,16 +6,44 @@
 Kernel NIC Interface
 ====================
 
+.. Note::
+
+   :ref:`virtio_user_as_exceptional_path` alternative is the preferred way for
+   interfacing with the Linux network stack as it is an in-kernel solution and
+   has similar performance expectations.
+
 The DPDK Kernel NIC Interface (KNI) allows userspace applications access to the Linux* control plane.
 
-The benefits of using the DPDK KNI are:
+KNI provides an interface with the kernel network stack and allows management of
+DPDK ports using standard Linux net tools such as ``ethtool``, ``ifconfig`` and
+``tcpdump``.
+
+The main use case of KNI is to get/receive exception packets from/to Linux network
+stack while main datapath IO is done bypassing the networking stack.
+
+There are other alternatives to KNI, all are available in the upstream Linux:
+
+#. :ref:`virtio_user_as_exceptional_path`
+
+#. :ref:`TunTap_PMD` as wrapper to `Linux tun/tap
+   <https://www.kernel.org/doc/Documentation/networking/tuntap.txt>`_
+
+The benefits of using the KNI against alternatives are:
 
 *   Faster than existing Linux TUN/TAP interfaces
     (by eliminating system calls and copy_to_user()/copy_from_user() operations.
 
-*   Allows management of DPDK ports using standard Linux net tools such as ethtool, ifconfig and tcpdump.
+The cons of the KNI are:
+
+* It is out-of-tree Linux kernel module and it can't be distributed as binary as
+  part of operating system vendor DPDK packages. This makes it harder to
+  consume, although it is always possible to compile it from the source code.
+
+* As it shares memory between userspace and kernelspace, and kernel part
+  directly uses input provided by userspace, it is not safe. This makes hard to
+  upstream the module.
 
-*   Allows an interface with the kernel network stack.
+* Only a subset of net devices control commands are supported by KNI.
 
 The components of an application using the DPDK Kernel NIC Interface are shown in :numref:`figure_kernel_nic_intf`.
 
-- 
2.31.1


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCH v2 2/2] doc: announce KNI deprecation
  2021-11-23 12:08 ` [PATCH v2 1/2] doc: note KNI alternatives Ferruh Yigit
@ 2021-11-23 12:08   ` Ferruh Yigit
  2021-11-24 14:00     ` Thomas Monjalon
  2021-11-24 13:58   ` [PATCH v2 1/2] doc: note KNI alternatives Thomas Monjalon
  1 sibling, 1 reply; 15+ messages in thread
From: Ferruh Yigit @ 2021-11-23 12:08 UTC (permalink / raw)
  To: dev, Ray Kinsella
  Cc: Ferruh Yigit, Olivier Matz, David Marchand, Stephen Hemminger,
	Elad Nachman, Igor Ryzhov, Dan Gora

Announce the KNI kernel module move to out of dpdk repo and announce
long term plan to deprecate the KNI.

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
Cc: Olivier Matz <olivier.matz@6wind.com>
Cc: David Marchand <david.marchand@redhat.com>
Cc: Stephen Hemminger <stephen@networkplumber.org>
Cc: Elad Nachman <eladv6@gmail.com>
Cc: Igor Ryzhov <iryzhov@nfware.com>
Cc: Dan Gora <dg@adax.com>

Dates are not discussed before, the patch aims to trigger a discussion
for the dates.
---
 doc/guides/prog_guide/kernel_nic_interface.rst | 2 ++
 doc/guides/rel_notes/deprecation.rst           | 6 ++++++
 2 files changed, 8 insertions(+)

diff --git a/doc/guides/prog_guide/kernel_nic_interface.rst b/doc/guides/prog_guide/kernel_nic_interface.rst
index 70e92687d711..276014fe28bb 100644
--- a/doc/guides/prog_guide/kernel_nic_interface.rst
+++ b/doc/guides/prog_guide/kernel_nic_interface.rst
@@ -7,6 +7,8 @@ Kernel NIC Interface
 ====================
 
 .. Note::
+   KNI kernel module will be moved from main git repository to `dpdk-kmods <https://git.dpdk.org/dpdk-kmods/>`_ repository.
+   There is a long term plan to deprecate the KNI. See :doc:`../rel_notes/deprecation`
 
    :ref:`virtio_user_as_exceptional_path` alternative is the preferred way for
    interfacing with the Linux network stack as it is an in-kernel solution and
diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
index 6d087c64ef28..62fd991e4eb4 100644
--- a/doc/guides/rel_notes/deprecation.rst
+++ b/doc/guides/rel_notes/deprecation.rst
@@ -48,6 +48,12 @@ Deprecation Notices
   in the header will not be considered as ABI anymore. This change is inspired
   by the RFC https://patchwork.dpdk.org/project/dpdk/list/?series=17176.
 
+* kni: KNI kernel module will be moved to `dpdk-kmods <https://git.dpdk.org/dpdk-kmods/>`_
+  repository by the `DPDK technical board decision
+  <https://mails.dpdk.org/archives/dev/2021-January/197077.html>`_, on v22.11.
+* kni: will be depreciated, will remove all kni lib, kernel module and example code
+  on v23.11.
+
 * lib: will fix extending some enum/define breaking the ABI. There are multiple
   samples in DPDK that enum/define terminated with a ``.*MAX.*`` value which is
   used by iterators, and arrays holding these values are sized with this
-- 
2.31.1


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH v2 1/2] doc: note KNI alternatives
  2021-11-23 12:08 ` [PATCH v2 1/2] doc: note KNI alternatives Ferruh Yigit
  2021-11-23 12:08   ` [PATCH v2 2/2] doc: announce KNI deprecation Ferruh Yigit
@ 2021-11-24 13:58   ` Thomas Monjalon
  2021-11-24 14:19     ` Ferruh Yigit
  1 sibling, 1 reply; 15+ messages in thread
From: Thomas Monjalon @ 2021-11-24 13:58 UTC (permalink / raw)
  To: Ferruh Yigit
  Cc: dev, Keith Wiles, Olivier Matz, David Marchand,
	Stephen Hemminger, Elad Nachman, Igor Ryzhov, Dan Gora

23/11/2021 13:08, Ferruh Yigit:
> --- a/doc/guides/nics/tap.rst
> +++ b/doc/guides/nics/tap.rst
> @@ -1,6 +1,8 @@
>  ..  SPDX-License-Identifier: BSD-3-Clause
>      Copyright(c) 2016 Intel Corporation.
>  
> +.. _TunTap_PMD:

No need for such anchor at the beginning of a doc.
You can reference a document with :doc:

[...]
> +There are other alternatives to KNI, all are available in the upstream Linux:
> +
> +#. :ref:`virtio_user_as_exceptional_path`
> +
> +#. :ref:`TunTap_PMD` as wrapper to `Linux tun/tap
> +   <https://www.kernel.org/doc/Documentation/networking/tuntap.txt>`_

What about pcap, AF_PACKET and AF_XDP PMDs?



^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH v2 2/2] doc: announce KNI deprecation
  2021-11-23 12:08   ` [PATCH v2 2/2] doc: announce KNI deprecation Ferruh Yigit
@ 2021-11-24 14:00     ` Thomas Monjalon
  0 siblings, 0 replies; 15+ messages in thread
From: Thomas Monjalon @ 2021-11-24 14:00 UTC (permalink / raw)
  To: Ferruh Yigit
  Cc: dev, Ray Kinsella, Olivier Matz, David Marchand,
	Stephen Hemminger, Elad Nachman, Igor Ryzhov, Dan Gora

23/11/2021 13:08, Ferruh Yigit:
> --- a/doc/guides/rel_notes/deprecation.rst
> +++ b/doc/guides/rel_notes/deprecation.rst
> +* kni: KNI kernel module will be moved to `dpdk-kmods <https://git.dpdk.org/dpdk-kmods/>`_
> +  repository by the `DPDK technical board decision
> +  <https://mails.dpdk.org/archives/dev/2021-January/197077.html>`_, on v22.11.
> +* kni: will be depreciated, will remove all kni lib, kernel module and example code
> +  on v23.11.

+1 for this plan





^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH v2 1/2] doc: note KNI alternatives
  2021-11-24 13:58   ` [PATCH v2 1/2] doc: note KNI alternatives Thomas Monjalon
@ 2021-11-24 14:19     ` Ferruh Yigit
  0 siblings, 0 replies; 15+ messages in thread
From: Ferruh Yigit @ 2021-11-24 14:19 UTC (permalink / raw)
  To: Thomas Monjalon
  Cc: dev, Keith Wiles, Olivier Matz, David Marchand,
	Stephen Hemminger, Elad Nachman, Igor Ryzhov, Dan Gora

On 11/24/2021 1:58 PM, Thomas Monjalon wrote:
> 23/11/2021 13:08, Ferruh Yigit:
>> --- a/doc/guides/nics/tap.rst
>> +++ b/doc/guides/nics/tap.rst
>> @@ -1,6 +1,8 @@
>>   ..  SPDX-License-Identifier: BSD-3-Clause
>>       Copyright(c) 2016 Intel Corporation.
>>   
>> +.. _TunTap_PMD:
> 
> No need for such anchor at the beginning of a doc.
> You can reference a document with :doc:
> 

ack

> [...]
>> +There are other alternatives to KNI, all are available in the upstream Linux:
>> +
>> +#. :ref:`virtio_user_as_exceptional_path`
>> +
>> +#. :ref:`TunTap_PMD` as wrapper to `Linux tun/tap
>> +   <https://www.kernel.org/doc/Documentation/networking/tuntap.txt>`_
> 
> What about pcap, AF_PACKET and AF_XDP PMDs?
> 
> 

They are different, not exactly KNI alternative.

pcap, af_packet & af_xdp are on top of sockets for specific interface,
KNI & virtio-user enables injecting packets to Linux networking stack
without being tied to any existing interface.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCH v3 1/2] doc: note KNI alternatives
  2021-06-23 17:31 [dpdk-dev] [PATCH] doc: note KNI alternatives and deprecation plan Ferruh Yigit
                   ` (3 preceding siblings ...)
  2021-11-23 12:08 ` [PATCH v2 1/2] doc: note KNI alternatives Ferruh Yigit
@ 2021-11-24 17:16 ` Ferruh Yigit
  2021-11-24 17:16   ` [PATCH v3 2/2] doc: announce KNI deprecation Ferruh Yigit
  2021-12-01 16:31   ` [PATCH v3 1/2] doc: note KNI alternatives Morten Brørup
  4 siblings, 2 replies; 15+ messages in thread
From: Ferruh Yigit @ 2021-11-24 17:16 UTC (permalink / raw)
  Cc: Ferruh Yigit, dev, Olivier Matz Olivier Matz,
	David Marchand David Marchand,
	Stephen Hemminger Stephen Hemminger, Elad Nachman, Igor Ryzhov,
	Dan Gora

Add more information on alternatives of KNI and the cons of KNI against
these alternatives.

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
Cc: Olivier Matz Olivier Matz <olivier.matz@6wind.com>
Cc: David Marchand David Marchand <david.marchand@redhat.com>
Cc: Stephen Hemminger Stephen Hemminger <stephen@networkplumber.org>
Cc: Elad Nachman <eladv6@gmail.com>
Cc: Igor Ryzhov <iryzhov@nfware.com>
Cc: Dan Gora <dg@adax.com>

v3:
* reference tap document directly instead of adding label to it.
---
 .../prog_guide/kernel_nic_interface.rst       | 34 +++++++++++++++++--
 1 file changed, 31 insertions(+), 3 deletions(-)

diff --git a/doc/guides/prog_guide/kernel_nic_interface.rst b/doc/guides/prog_guide/kernel_nic_interface.rst
index 1ce03ec1a374..f5a8b7c0782c 100644
--- a/doc/guides/prog_guide/kernel_nic_interface.rst
+++ b/doc/guides/prog_guide/kernel_nic_interface.rst
@@ -6,16 +6,44 @@
 Kernel NIC Interface
 ====================
 
+.. Note::
+
+   :ref:`virtio_user_as_exceptional_path` alternative is the preferred way for
+   interfacing with the Linux network stack as it is an in-kernel solution and
+   has similar performance expectations.
+
 The DPDK Kernel NIC Interface (KNI) allows userspace applications access to the Linux* control plane.
 
-The benefits of using the DPDK KNI are:
+KNI provides an interface with the kernel network stack and allows management of
+DPDK ports using standard Linux net tools such as ``ethtool``, ``ifconfig`` and
+``tcpdump``.
+
+The main use case of KNI is to get/receive exception packets from/to Linux network
+stack while main datapath IO is done bypassing the networking stack.
+
+There are other alternatives to KNI, all are available in the upstream Linux:
+
+#. :ref:`virtio_user_as_exceptional_path`
+
+#. :doc:`../nics/tap` as wrapper to `Linux tun/tap
+   <https://www.kernel.org/doc/Documentation/networking/tuntap.txt>`_
+
+The benefits of using the KNI against alternatives are:
 
 *   Faster than existing Linux TUN/TAP interfaces
     (by eliminating system calls and copy_to_user()/copy_from_user() operations.
 
-*   Allows management of DPDK ports using standard Linux net tools such as ethtool, ifconfig and tcpdump.
+The cons of the KNI are:
+
+* It is out-of-tree Linux kernel module and it can't be distributed as binary as
+  part of operating system vendor DPDK packages. This makes it harder to
+  consume, although it is always possible to compile it from the source code.
+
+* As it shares memory between userspace and kernelspace, and kernel part
+  directly uses input provided by userspace, it is not safe. This makes hard to
+  upstream the module.
 
-*   Allows an interface with the kernel network stack.
+* Only a subset of net devices control commands are supported by KNI.
 
 The components of an application using the DPDK Kernel NIC Interface are shown in :numref:`figure_kernel_nic_intf`.
 
-- 
2.31.1


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCH v3 2/2] doc: announce KNI deprecation
  2021-11-24 17:16 ` [PATCH v3 " Ferruh Yigit
@ 2021-11-24 17:16   ` Ferruh Yigit
  2021-12-01 16:31   ` [PATCH v3 1/2] doc: note KNI alternatives Morten Brørup
  1 sibling, 0 replies; 15+ messages in thread
From: Ferruh Yigit @ 2021-11-24 17:16 UTC (permalink / raw)
  To: Ray Kinsella
  Cc: Ferruh Yigit, dev, Olivier Matz Olivier Matz,
	David Marchand David Marchand,
	Stephen Hemminger Stephen Hemminger, Elad Nachman, Igor Ryzhov,
	Dan Gora

Announce the KNI kernel module move to out of dpdk repo and announce
long term plan to deprecate the KNI.

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
Cc: Olivier Matz Olivier Matz <olivier.matz@6wind.com>
Cc: David Marchand David Marchand <david.marchand@redhat.com>
Cc: Stephen Hemminger Stephen Hemminger <stephen@networkplumber.org>
Cc: Elad Nachman <eladv6@gmail.com>
Cc: Igor Ryzhov <iryzhov@nfware.com>
Cc: Dan Gora <dg@adax.com>

Dates are not discussed before, the patch aims to trigger a discussion
for the dates.
---
 doc/guides/prog_guide/kernel_nic_interface.rst | 2 ++
 doc/guides/rel_notes/deprecation.rst           | 6 ++++++
 2 files changed, 8 insertions(+)

diff --git a/doc/guides/prog_guide/kernel_nic_interface.rst b/doc/guides/prog_guide/kernel_nic_interface.rst
index f5a8b7c0782c..d1c5ccd0851d 100644
--- a/doc/guides/prog_guide/kernel_nic_interface.rst
+++ b/doc/guides/prog_guide/kernel_nic_interface.rst
@@ -7,6 +7,8 @@ Kernel NIC Interface
 ====================
 
 .. Note::
+   KNI kernel module will be moved from main git repository to `dpdk-kmods <https://git.dpdk.org/dpdk-kmods/>`_ repository.
+   There is a long term plan to deprecate the KNI. See :doc:`../rel_notes/deprecation`
 
    :ref:`virtio_user_as_exceptional_path` alternative is the preferred way for
    interfacing with the Linux network stack as it is an in-kernel solution and
diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
index 2262b8de6093..f20852504319 100644
--- a/doc/guides/rel_notes/deprecation.rst
+++ b/doc/guides/rel_notes/deprecation.rst
@@ -48,6 +48,12 @@ Deprecation Notices
   in the header will not be considered as ABI anymore. This change is inspired
   by the RFC https://patchwork.dpdk.org/project/dpdk/list/?series=17176.
 
+* kni: KNI kernel module will be moved to `dpdk-kmods <https://git.dpdk.org/dpdk-kmods/>`_
+  repository by the `DPDK technical board decision
+  <https://mails.dpdk.org/archives/dev/2021-January/197077.html>`_, on v22.11.
+* kni: will be depreciated, will remove all kni lib, kernel module and example code
+  on v23.11.
+
 * lib: will fix extending some enum/define breaking the ABI. There are multiple
   samples in DPDK that enum/define terminated with a ``.*MAX.*`` value which is
   used by iterators, and arrays holding these values are sized with this
-- 
2.31.1


^ permalink raw reply	[flat|nested] 15+ messages in thread

* RE: [PATCH v3 1/2] doc: note KNI alternatives
  2021-11-24 17:16 ` [PATCH v3 " Ferruh Yigit
  2021-11-24 17:16   ` [PATCH v3 2/2] doc: announce KNI deprecation Ferruh Yigit
@ 2021-12-01 16:31   ` Morten Brørup
  1 sibling, 0 replies; 15+ messages in thread
From: Morten Brørup @ 2021-12-01 16:31 UTC (permalink / raw)
  To: Ferruh Yigit
  Cc: dev, Olivier Matz Olivier Matz, David Marchand David Marchand,
	Stephen Hemminger Stephen Hemminger, Elad Nachman, Igor Ryzhov,
	Dan Gora

> From: Ferruh Yigit [mailto:ferruh.yigit@intel.com]
> Sent: Wednesday, 24 November 2021 18.16
> 
> Add more information on alternatives of KNI and the cons of KNI against
> these alternatives.
> 
> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
> ---
> Cc: Olivier Matz Olivier Matz <olivier.matz@6wind.com>
> Cc: David Marchand David Marchand <david.marchand@redhat.com>
> Cc: Stephen Hemminger Stephen Hemminger <stephen@networkplumber.org>
> Cc: Elad Nachman <eladv6@gmail.com>
> Cc: Igor Ryzhov <iryzhov@nfware.com>
> Cc: Dan Gora <dg@adax.com>
> 
> v3:
> * reference tap document directly instead of adding label to it.
> ---
>  .../prog_guide/kernel_nic_interface.rst       | 34 +++++++++++++++++--
>  1 file changed, 31 insertions(+), 3 deletions(-)
> 
> diff --git a/doc/guides/prog_guide/kernel_nic_interface.rst
> b/doc/guides/prog_guide/kernel_nic_interface.rst
> index 1ce03ec1a374..f5a8b7c0782c 100644
> --- a/doc/guides/prog_guide/kernel_nic_interface.rst
> +++ b/doc/guides/prog_guide/kernel_nic_interface.rst
> @@ -6,16 +6,44 @@
>  Kernel NIC Interface
>  ====================
> 
> +.. Note::
> +
> +   :ref:`virtio_user_as_exceptional_path` alternative is the preferred
> way for
> +   interfacing with the Linux network stack as it is an in-kernel
> solution and
> +   has similar performance expectations.
> +
>  The DPDK Kernel NIC Interface (KNI) allows userspace applications
> access to the Linux* control plane.
> 
> -The benefits of using the DPDK KNI are:
> +KNI provides an interface with the kernel network stack and allows
> management of
> +DPDK ports using standard Linux net tools such as ``ethtool``,
> ``ifconfig`` and
> +``tcpdump``.
> +
> +The main use case of KNI is to get/receive exception packets from/to
> Linux network
> +stack while main datapath IO is done bypassing the networking stack.
> +
> +There are other alternatives to KNI, all are available in the upstream
> Linux:
> +
> +#. :ref:`virtio_user_as_exceptional_path`
> +
> +#. :doc:`../nics/tap` as wrapper to `Linux tun/tap
> +   <https://www.kernel.org/doc/Documentation/networking/tuntap.txt>`_
> +
> +The benefits of using the KNI against alternatives are:
> 
>  *   Faster than existing Linux TUN/TAP interfaces
>      (by eliminating system calls and copy_to_user()/copy_from_user()
> operations.
> 
> -*   Allows management of DPDK ports using standard Linux net tools
> such as ethtool, ifconfig and tcpdump.
> +The cons of the KNI are:

Consider if "disadvantages" is more appropriate than "cons". (I'm not a native English speaker.)

> +
> +* It is out-of-tree Linux kernel module and it can't be distributed as
> binary as
> +  part of operating system vendor DPDK packages. This makes it harder
> to
> +  consume, although it is always possible to compile it from the
> source code.
> +
> +* As it shares memory between userspace and kernelspace, and kernel
> part
> +  directly uses input provided by userspace, it is not safe. This
> makes hard to
> +  upstream the module.
> 
> -*   Allows an interface with the kernel network stack.
> +* Only a subset of net devices control commands are supported by KNI.

If it is still relevant, add something along the lines of:
* Requires dedicated kernel cores.

> 
>  The components of an application using the DPDK Kernel NIC Interface
> are shown in :numref:`figure_kernel_nic_intf`.
> 
> --
> 2.31.1
> 

Could you perhaps also promote the virtio-user documentation by moving it from the HowTo Guides to the Programmer's Guide?

-Morten


^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2021-12-01 16:31 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-06-23 17:31 [dpdk-dev] [PATCH] doc: note KNI alternatives and deprecation plan Ferruh Yigit
2021-06-23 18:33 ` Stephen Hemminger
2021-06-24  8:19   ` Ferruh Yigit
2021-07-30 12:48 ` Olivier Matz
2021-11-23 10:21   ` Ferruh Yigit
2021-08-20 12:58 ` David Marchand
2021-11-23 10:42   ` Ferruh Yigit
2021-11-23 12:08 ` [PATCH v2 1/2] doc: note KNI alternatives Ferruh Yigit
2021-11-23 12:08   ` [PATCH v2 2/2] doc: announce KNI deprecation Ferruh Yigit
2021-11-24 14:00     ` Thomas Monjalon
2021-11-24 13:58   ` [PATCH v2 1/2] doc: note KNI alternatives Thomas Monjalon
2021-11-24 14:19     ` Ferruh Yigit
2021-11-24 17:16 ` [PATCH v3 " Ferruh Yigit
2021-11-24 17:16   ` [PATCH v3 2/2] doc: announce KNI deprecation Ferruh Yigit
2021-12-01 16:31   ` [PATCH v3 1/2] doc: note KNI alternatives Morten Brørup

DPDK patches and discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://inbox.dpdk.org/dev/0 dev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 dev dev/ http://inbox.dpdk.org/dev \
		dev@dpdk.org
	public-inbox-index dev

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://inbox.dpdk.org/inbox.dpdk.dev


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git