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; 33+ 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] 33+ 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; 33+ 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] 33+ 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; 33+ 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] 33+ 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; 33+ 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] 33+ 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; 33+ 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] 33+ 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; 33+ 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] 33+ 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; 33+ 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] 33+ 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; 33+ 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] 33+ 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; 33+ 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] 33+ 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; 33+ 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] 33+ 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; 33+ 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] 33+ 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; 33+ 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] 33+ 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
                     ` (2 more replies)
  4 siblings, 3 replies; 33+ 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] 33+ 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
  2022-07-11 14:47     ` Jerin Jacob
                       ` (2 more replies)
  2021-12-01 16:31   ` [PATCH v3 1/2] doc: note KNI alternatives Morten Brørup
  2022-11-24 11:40   ` [PATCH v5] " Ferruh Yigit
  2 siblings, 3 replies; 33+ 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] 33+ 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
  2022-11-24 10:31     ` Ferruh Yigit
  2022-11-24 11:40   ` [PATCH v5] " Ferruh Yigit
  2 siblings, 1 reply; 33+ 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] 33+ messages in thread

* Re: [PATCH v3 2/2] doc: announce KNI deprecation
  2021-11-24 17:16   ` [PATCH v3 2/2] doc: announce KNI deprecation Ferruh Yigit
@ 2022-07-11 14:47     ` Jerin Jacob
  2022-07-13 10:01     ` Thomas Monjalon
  2022-07-13 16:10     ` [PATCH v4] " Thomas Monjalon
  2 siblings, 0 replies; 33+ messages in thread
From: Jerin Jacob @ 2022-07-11 14:47 UTC (permalink / raw)
  To: Ferruh Yigit
  Cc: Ray Kinsella, dpdk-dev, Olivier Matz Olivier Matz,
	David Marchand David Marchand,
	Stephen Hemminger Stephen Hemminger, Elad Nachman, Igor Ryzhov,
	Dan Gora

On Wed, Nov 24, 2021 at 10:48 PM Ferruh Yigit <ferruh.yigit@intel.com> wrote:
>
> 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>

Acked-by: Jerin Jacob <jerinj@marvell.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] 33+ messages in thread

* Re: [PATCH v3 2/2] doc: announce KNI deprecation
  2021-11-24 17:16   ` [PATCH v3 2/2] doc: announce KNI deprecation Ferruh Yigit
  2022-07-11 14:47     ` Jerin Jacob
@ 2022-07-13 10:01     ` Thomas Monjalon
  2022-07-13 11:01       ` Bruce Richardson
  2022-07-13 16:10     ` [PATCH v4] " Thomas Monjalon
  2 siblings, 1 reply; 33+ messages in thread
From: Thomas Monjalon @ 2022-07-13 10:01 UTC (permalink / raw)
  To: ferruh.yigit, bruce.richardson
  Cc: Ray Kinsella, dev, Olivier Matz, David Marchand,
	Stephen Hemminger, Elad Nachman, Igor Ryzhov, Dan Gora

24/11/2021 18:16, Ferruh Yigit:
> 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>
> --- 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.

Bruce sent a notice about the example code. The goal is to remove it in 22.11.

Bruce, should we merge this notice with yours for a clear plan?




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

* Re: [PATCH v3 2/2] doc: announce KNI deprecation
  2022-07-13 10:01     ` Thomas Monjalon
@ 2022-07-13 11:01       ` Bruce Richardson
  0 siblings, 0 replies; 33+ messages in thread
From: Bruce Richardson @ 2022-07-13 11:01 UTC (permalink / raw)
  To: Thomas Monjalon
  Cc: ferruh.yigit, Ray Kinsella, dev, Olivier Matz, David Marchand,
	Stephen Hemminger, Elad Nachman, Igor Ryzhov, Dan Gora

On Wed, Jul 13, 2022 at 12:01:28PM +0200, Thomas Monjalon wrote:
> 24/11/2021 18:16, Ferruh Yigit:
> > 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>
> > --- 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.
> 
> Bruce sent a notice about the example code. The goal is to remove it in 22.11.
> 
> Bruce, should we merge this notice with yours for a clear plan?
> 
Yes, it would be good to do so. I won't have time to do a patch for this
today, though.

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

* [PATCH v4] doc: announce KNI deprecation
  2021-11-24 17:16   ` [PATCH v3 2/2] doc: announce KNI deprecation Ferruh Yigit
  2022-07-11 14:47     ` Jerin Jacob
  2022-07-13 10:01     ` Thomas Monjalon
@ 2022-07-13 16:10     ` Thomas Monjalon
  2022-07-13 19:51       ` Thomas Monjalon
                         ` (2 more replies)
  2 siblings, 3 replies; 33+ messages in thread
From: Thomas Monjalon @ 2022-07-13 16:10 UTC (permalink / raw)
  To: dev
  Cc: david.marchand, andrew.rybchenko, maxime.coquelin, chenbo.xia,
	mdr, ferruh.yigit, olivier.matz, jerinj, Ferruh Yigit

From: Ferruh Yigit <ferruh.yigit@intel.com>

Announce the deprecation plan for KNI kernel module, library and example.

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
---
Squashed and updated 2 deprecations:
https://patches.dpdk.org/project/dpdk/patch/20211124171609.3101896-2-ferruh.yigit@intel.com/
https://patches.dpdk.org/project/dpdk/patch/20211124171609.3101896-2-ferruh.yigit@intel.com/
---
 doc/guides/prog_guide/kernel_nic_interface.rst | 3 +++
 doc/guides/rel_notes/deprecation.rst           | 9 +++++++++
 2 files changed, 12 insertions(+)

diff --git a/doc/guides/prog_guide/kernel_nic_interface.rst b/doc/guides/prog_guide/kernel_nic_interface.rst
index e021cc69b6..03b5bca958 100644
--- a/doc/guides/prog_guide/kernel_nic_interface.rst
+++ b/doc/guides/prog_guide/kernel_nic_interface.rst
@@ -8,6 +8,9 @@ Kernel NIC Interface
 
 .. note::
 
+   KNI is deprecated and will be removed in future.
+   See :doc:`../rel_notes/deprecation`.
+
    For an alternative to KNI, that does not require any out-of-tree Linux kernel modules,
    or a custom library, see :ref:`virtio_user_as_exception_path`.
 
diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
index 4e5b23c53d..e54597c591 100644
--- a/doc/guides/rel_notes/deprecation.rst
+++ b/doc/guides/rel_notes/deprecation.rst
@@ -48,6 +48,15 @@ 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: The KNI kernel module and library are not recommended for use by new
+  applications - other technologies such as virtio-user are recommended instead.
+  The KNI kernel module and library will be removed from DPDK 23.11,
+  following the DPDK technical board
+  `decision <https://mails.dpdk.org/archives/dev/2021-January/197077.html>`_
+  and `refinement <http://mails.dpdk.org/archives/dev/2022-June/243596.html>`_.
+  The first steps are to add deprecation warnings
+  and to remove the example application from 22.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.36.1


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

* Re: [PATCH v4] doc: announce KNI deprecation
  2022-07-13 16:10     ` [PATCH v4] " Thomas Monjalon
@ 2022-07-13 19:51       ` Thomas Monjalon
  2022-07-15 15:33         ` Thomas Monjalon
  2022-07-14  9:20       ` Bruce Richardson
  2022-07-14  9:30       ` David Marchand
  2 siblings, 1 reply; 33+ messages in thread
From: Thomas Monjalon @ 2022-07-13 19:51 UTC (permalink / raw)
  To: dev
  Cc: david.marchand, andrew.rybchenko, maxime.coquelin, chenbo.xia,
	mdr, ferruh.yigit, olivier.matz, jerinj, Ferruh Yigit

13/07/2022 18:10, Thomas Monjalon:
> From: Ferruh Yigit <ferruh.yigit@intel.com>
> 
> Announce the deprecation plan for KNI kernel module, library and example.
> 
> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
> Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
> ---
> Squashed and updated 2 deprecations:
> https://patches.dpdk.org/project/dpdk/patch/20211124171609.3101896-2-ferruh.yigit@intel.com/
> https://patches.dpdk.org/project/dpdk/patch/20211124171609.3101896-2-ferruh.yigit@intel.com/

This is a mistake. The second deprecation squashed here is
https://patches.dpdk.org/project/dpdk/patch/20220630165031.79183-1-bruce.richardson@intel.com/

> ---
>  doc/guides/prog_guide/kernel_nic_interface.rst | 3 +++
>  doc/guides/rel_notes/deprecation.rst           | 9 +++++++++
>  2 files changed, 12 insertions(+)
> 
> diff --git a/doc/guides/prog_guide/kernel_nic_interface.rst b/doc/guides/prog_guide/kernel_nic_interface.rst
> index e021cc69b6..03b5bca958 100644
> --- a/doc/guides/prog_guide/kernel_nic_interface.rst
> +++ b/doc/guides/prog_guide/kernel_nic_interface.rst
> @@ -8,6 +8,9 @@ Kernel NIC Interface
>  
>  .. note::
>  
> +   KNI is deprecated and will be removed in future.
> +   See :doc:`../rel_notes/deprecation`.
> +
>     For an alternative to KNI, that does not require any out-of-tree Linux kernel modules,
>     or a custom library, see :ref:`virtio_user_as_exception_path`.
>  
> diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
> index 4e5b23c53d..e54597c591 100644
> --- a/doc/guides/rel_notes/deprecation.rst
> +++ b/doc/guides/rel_notes/deprecation.rst
> @@ -48,6 +48,15 @@ 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: The KNI kernel module and library are not recommended for use by new
> +  applications - other technologies such as virtio-user are recommended instead.
> +  The KNI kernel module and library will be removed from DPDK 23.11,
> +  following the DPDK technical board
> +  `decision <https://mails.dpdk.org/archives/dev/2021-January/197077.html>`_
> +  and `refinement <http://mails.dpdk.org/archives/dev/2022-June/243596.html>`_.
> +  The first steps are to add deprecation warnings
> +  and to remove the example application from 22.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
> 






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

* Re: [PATCH v4] doc: announce KNI deprecation
  2022-07-13 16:10     ` [PATCH v4] " Thomas Monjalon
  2022-07-13 19:51       ` Thomas Monjalon
@ 2022-07-14  9:20       ` Bruce Richardson
  2022-07-14 10:07         ` Thomas Monjalon
  2022-07-14 14:50         ` Ferruh Yigit
  2022-07-14  9:30       ` David Marchand
  2 siblings, 2 replies; 33+ messages in thread
From: Bruce Richardson @ 2022-07-14  9:20 UTC (permalink / raw)
  To: Thomas Monjalon
  Cc: dev, david.marchand, andrew.rybchenko, maxime.coquelin,
	chenbo.xia, mdr, ferruh.yigit, olivier.matz, jerinj,
	Ferruh Yigit

On Wed, Jul 13, 2022 at 06:10:47PM +0200, Thomas Monjalon wrote:
> From: Ferruh Yigit <ferruh.yigit@intel.com>
> 
> Announce the deprecation plan for KNI kernel module, library and example.
> 
> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
> Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
> ---
> Squashed and updated 2 deprecations:
> https://patches.dpdk.org/project/dpdk/patch/20211124171609.3101896-2-ferruh.yigit@intel.com/
> https://patches.dpdk.org/project/dpdk/patch/20211124171609.3101896-2-ferruh.yigit@intel.com/
> ---

One suggestion below.
With corrected link and with/without suggested change:

Acked-by: Bruce Richardson <bruce.richardson@intel.com>

>  doc/guides/prog_guide/kernel_nic_interface.rst | 3 +++
>  doc/guides/rel_notes/deprecation.rst           | 9 +++++++++
>  2 files changed, 12 insertions(+)
> 
> diff --git a/doc/guides/prog_guide/kernel_nic_interface.rst b/doc/guides/prog_guide/kernel_nic_interface.rst
> index e021cc69b6..03b5bca958 100644
> --- a/doc/guides/prog_guide/kernel_nic_interface.rst
> +++ b/doc/guides/prog_guide/kernel_nic_interface.rst
> @@ -8,6 +8,9 @@ Kernel NIC Interface
>  
>  .. note::
>  
> +   KNI is deprecated and will be removed in future.
> +   See :doc:`../rel_notes/deprecation`.
> +
>     For an alternative to KNI, that does not require any out-of-tree Linux kernel modules,
>     or a custom library, see :ref:`virtio_user_as_exception_path`.
>  
> diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
> index 4e5b23c53d..e54597c591 100644
> --- a/doc/guides/rel_notes/deprecation.rst
> +++ b/doc/guides/rel_notes/deprecation.rst
> @@ -48,6 +48,15 @@ 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: The KNI kernel module and library are not recommended for use by new
> +  applications - other technologies such as virtio-user are recommended instead.
> +  The KNI kernel module and library will be removed from DPDK 23.11,
> +  following the DPDK technical board
> +  `decision <https://mails.dpdk.org/archives/dev/2021-January/197077.html>`_
> +  and `refinement <http://mails.dpdk.org/archives/dev/2022-June/243596.html>`_.
> +  The first steps are to add deprecation warnings
> +  and to remove the example application from 22.11.
> +

I wonder whether having this done as bullet points in chronological order
might be clearer. Something like:

* kni: The KNI kernel module and library are not recommended for use by new
  applications - other technologies such as virtio-user are recommended instead.
  Following the DPDK technical board
  `decision <https://mails.dpdk.org/archives/dev/2021-January/197077.html>`_
  and `refinement <http://mails.dpdk.org/archives/dev/2022-June/243596.html>`_:
  * The KNI example application will be removed from DPDK 22.11 release
  * The KNI kernel module and library will be removed from the DPDK 23.11
    release

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

* Re: [PATCH v4] doc: announce KNI deprecation
  2022-07-13 16:10     ` [PATCH v4] " Thomas Monjalon
  2022-07-13 19:51       ` Thomas Monjalon
  2022-07-14  9:20       ` Bruce Richardson
@ 2022-07-14  9:30       ` David Marchand
  2 siblings, 0 replies; 33+ messages in thread
From: David Marchand @ 2022-07-14  9:30 UTC (permalink / raw)
  To: Thomas Monjalon
  Cc: dev, Andrew Rybchenko, Maxime Coquelin, Xia, Chenbo,
	Ray Kinsella, Ferruh Yigit, Olivier Matz,
	Jerin Jacob Kollanukkaran

On Wed, Jul 13, 2022 at 6:10 PM Thomas Monjalon <thomas@monjalon.net> wrote:
>
> From: Ferruh Yigit <ferruh.yigit@intel.com>
>
> Announce the deprecation plan for KNI kernel module, library and example.
>
> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
> Signed-off-by: Thomas Monjalon <thomas@monjalon.net>

Acked-by: David Marchand <david.marchand@redhat.com>


-- 
David Marchand


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

* Re: [PATCH v4] doc: announce KNI deprecation
  2022-07-14  9:20       ` Bruce Richardson
@ 2022-07-14 10:07         ` Thomas Monjalon
  2022-07-14 14:50         ` Ferruh Yigit
  1 sibling, 0 replies; 33+ messages in thread
From: Thomas Monjalon @ 2022-07-14 10:07 UTC (permalink / raw)
  To: Bruce Richardson
  Cc: dev, david.marchand, andrew.rybchenko, maxime.coquelin,
	chenbo.xia, mdr, ferruh.yigit, olivier.matz, jerinj

14/07/2022 11:20, Bruce Richardson:
> On Wed, Jul 13, 2022 at 06:10:47PM +0200, Thomas Monjalon wrote:
> > From: Ferruh Yigit <ferruh.yigit@intel.com>
> > 
> > Announce the deprecation plan for KNI kernel module, library and example.
> > 
> > Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
> > Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
> > ---
> > Squashed and updated 2 deprecations:
> > https://patches.dpdk.org/project/dpdk/patch/20211124171609.3101896-2-ferruh.yigit@intel.com/
> > https://patches.dpdk.org/project/dpdk/patch/20211124171609.3101896-2-ferruh.yigit@intel.com/
> > ---
> 
> One suggestion below.
> With corrected link and with/without suggested change:
> 
> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
> 
> >  doc/guides/prog_guide/kernel_nic_interface.rst | 3 +++
> >  doc/guides/rel_notes/deprecation.rst           | 9 +++++++++
> >  2 files changed, 12 insertions(+)
> > 
> > diff --git a/doc/guides/prog_guide/kernel_nic_interface.rst b/doc/guides/prog_guide/kernel_nic_interface.rst
> > index e021cc69b6..03b5bca958 100644
> > --- a/doc/guides/prog_guide/kernel_nic_interface.rst
> > +++ b/doc/guides/prog_guide/kernel_nic_interface.rst
> > @@ -8,6 +8,9 @@ Kernel NIC Interface
> >  
> >  .. note::
> >  
> > +   KNI is deprecated and will be removed in future.
> > +   See :doc:`../rel_notes/deprecation`.
> > +
> >     For an alternative to KNI, that does not require any out-of-tree Linux kernel modules,
> >     or a custom library, see :ref:`virtio_user_as_exception_path`.
> >  
> > diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
> > index 4e5b23c53d..e54597c591 100644
> > --- a/doc/guides/rel_notes/deprecation.rst
> > +++ b/doc/guides/rel_notes/deprecation.rst
> > @@ -48,6 +48,15 @@ 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: The KNI kernel module and library are not recommended for use by new
> > +  applications - other technologies such as virtio-user are recommended instead.
> > +  The KNI kernel module and library will be removed from DPDK 23.11,
> > +  following the DPDK technical board
> > +  `decision <https://mails.dpdk.org/archives/dev/2021-January/197077.html>`_
> > +  and `refinement <http://mails.dpdk.org/archives/dev/2022-June/243596.html>`_.
> > +  The first steps are to add deprecation warnings
> > +  and to remove the example application from 22.11.
> > +
> 
> I wonder whether having this done as bullet points in chronological order
> might be clearer. Something like:
> 
> * kni: The KNI kernel module and library are not recommended for use by new
>   applications - other technologies such as virtio-user are recommended instead.
>   Following the DPDK technical board
>   `decision <https://mails.dpdk.org/archives/dev/2021-January/197077.html>`_
>   and `refinement <http://mails.dpdk.org/archives/dev/2022-June/243596.html>`_:
>   * The KNI example application will be removed from DPDK 22.11 release
>   * The KNI kernel module and library will be removed from the DPDK 23.11
>     release

Yes I prefer your version. Bullets are always better :)



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

* Re: [PATCH v4] doc: announce KNI deprecation
  2022-07-14  9:20       ` Bruce Richardson
  2022-07-14 10:07         ` Thomas Monjalon
@ 2022-07-14 14:50         ` Ferruh Yigit
  2022-07-14 15:03           ` Ferruh Yigit
  1 sibling, 1 reply; 33+ messages in thread
From: Ferruh Yigit @ 2022-07-14 14:50 UTC (permalink / raw)
  To: Bruce Richardson, Thomas Monjalon, Mcnamara, John
  Cc: dev, david.marchand, andrew.rybchenko, maxime.coquelin,
	chenbo.xia, mdr, olivier.matz, jerinj

On 7/14/2022 10:20 AM, Bruce Richardson wrote:
> On Wed, Jul 13, 2022 at 06:10:47PM +0200, Thomas Monjalon wrote:
>> From: Ferruh Yigit <ferruh.yigit@intel.com>
>>
>> Announce the deprecation plan for KNI kernel module, library and example.
>>
>> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
>> Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
>> ---
>> Squashed and updated 2 deprecations:
>> https://patches.dpdk.org/project/dpdk/patch/20211124171609.3101896-2-ferruh.yigit@intel.com/
>> https://patches.dpdk.org/project/dpdk/patch/20211124171609.3101896-2-ferruh.yigit@intel.com/
>> ---
> 
> One suggestion below.
> With corrected link and with/without suggested change:
> 
> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
> 
>>   doc/guides/prog_guide/kernel_nic_interface.rst | 3 +++
>>   doc/guides/rel_notes/deprecation.rst           | 9 +++++++++
>>   2 files changed, 12 insertions(+)
>>
>> diff --git a/doc/guides/prog_guide/kernel_nic_interface.rst b/doc/guides/prog_guide/kernel_nic_interface.rst
>> index e021cc69b6..03b5bca958 100644
>> --- a/doc/guides/prog_guide/kernel_nic_interface.rst
>> +++ b/doc/guides/prog_guide/kernel_nic_interface.rst
>> @@ -8,6 +8,9 @@ Kernel NIC Interface
>>   
>>   .. note::
>>   
>> +   KNI is deprecated and will be removed in future.
>> +   See :doc:`../rel_notes/deprecation`.
>> +
>>      For an alternative to KNI, that does not require any out-of-tree Linux kernel modules,
>>      or a custom library, see :ref:`virtio_user_as_exception_path`.
>>   
>> diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
>> index 4e5b23c53d..e54597c591 100644
>> --- a/doc/guides/rel_notes/deprecation.rst
>> +++ b/doc/guides/rel_notes/deprecation.rst
>> @@ -48,6 +48,15 @@ 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: The KNI kernel module and library are not recommended for use by new
>> +  applications - other technologies such as virtio-user are recommended instead.
>> +  The KNI kernel module and library will be removed from DPDK 23.11,
>> +  following the DPDK technical board
>> +  `decision <https://mails.dpdk.org/archives/dev/2021-January/197077.html>`_
>> +  and `refinement <http://mails.dpdk.org/archives/dev/2022-June/243596.html>`_.
>> +  The first steps are to add deprecation warnings
>> +  and to remove the example application from 22.11.
>> +
> 
> I wonder whether having this done as bullet points in chronological order
> might be clearer. Something like:
> 
> * kni: The KNI kernel module and library are not recommended for use by new
>    applications - other technologies such as virtio-user are recommended instead.
>    Following the DPDK technical board
>    `decision <https://mails.dpdk.org/archives/dev/2021-January/197077.html>`_
>    and `refinement <http://mails.dpdk.org/archives/dev/2022-June/243596.html>`_:
>    * The KNI example application will be removed from DPDK 22.11 release
>    * The KNI kernel module and library will be removed from the DPDK 23.11
>      release

+1 to list actions in chronological order

I have a concern with removing sample application without replacing one 
with alternate methods: virtio-user and tun/tap.

It is easy to create a virtio-user PMD by testpmd or any sample 
application, and as far as I understand Bruce already documented this. 
But for many KNI users they are not using KNI PMD, so replacing KNI with 
this new method may require some hand holding.
One option can be hotplug the virtio-user PMD and use the port_id for 
packet forwarding, and I don't know if the PMD has APIs that 
applications can use directly, as done in KNI, @Maxime & @Chenbo can 
answer this better.

It can be good to have a sample application for above before deprecating 
the KNI sample application.
And same sample can use tun/tap PMD with a runtime parameter, to show 
how other example can be used, again tap can be used as tap PMD or Linux 
tun/tap APIs.

Question is who can work on such a sample, but if we can find some 
resource I am for having a replacement exception path sample app before 
deprecating KNI.

Thanks,
ferruh




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

* Re: [PATCH v4] doc: announce KNI deprecation
  2022-07-14 14:50         ` Ferruh Yigit
@ 2022-07-14 15:03           ` Ferruh Yigit
  2022-07-15 15:32             ` Thomas Monjalon
  0 siblings, 1 reply; 33+ messages in thread
From: Ferruh Yigit @ 2022-07-14 15:03 UTC (permalink / raw)
  To: Bruce Richardson, Thomas Monjalon, Mcnamara, John
  Cc: dev, david.marchand, andrew.rybchenko, maxime.coquelin,
	chenbo.xia, mdr, olivier.matz, jerinj

On 7/14/2022 3:50 PM, Ferruh Yigit wrote:
> On 7/14/2022 10:20 AM, Bruce Richardson wrote:
>> On Wed, Jul 13, 2022 at 06:10:47PM +0200, Thomas Monjalon wrote:
>>> From: Ferruh Yigit <ferruh.yigit@intel.com>
>>>
>>> Announce the deprecation plan for KNI kernel module, library and 
>>> example.
>>>
>>> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
>>> Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
>>> ---
>>> Squashed and updated 2 deprecations:
>>> https://patches.dpdk.org/project/dpdk/patch/20211124171609.3101896-2-ferruh.yigit@intel.com/
>>> https://patches.dpdk.org/project/dpdk/patch/20211124171609.3101896-2-ferruh.yigit@intel.com/
>>> ---
>>
>> One suggestion below.
>> With corrected link and with/without suggested change:
>>
>> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
>>
>>>   doc/guides/prog_guide/kernel_nic_interface.rst | 3 +++
>>>   doc/guides/rel_notes/deprecation.rst           | 9 +++++++++
>>>   2 files changed, 12 insertions(+)
>>>
>>> diff --git a/doc/guides/prog_guide/kernel_nic_interface.rst 
>>> b/doc/guides/prog_guide/kernel_nic_interface.rst
>>> index e021cc69b6..03b5bca958 100644
>>> --- a/doc/guides/prog_guide/kernel_nic_interface.rst
>>> +++ b/doc/guides/prog_guide/kernel_nic_interface.rst
>>> @@ -8,6 +8,9 @@ Kernel NIC Interface
>>>   .. note::
>>> +   KNI is deprecated and will be removed in future.
>>> +   See :doc:`../rel_notes/deprecation`.
>>> +
>>>      For an alternative to KNI, that does not require any out-of-tree 
>>> Linux kernel modules,
>>>      or a custom library, see :ref:`virtio_user_as_exception_path`.
>>> diff --git a/doc/guides/rel_notes/deprecation.rst 
>>> b/doc/guides/rel_notes/deprecation.rst
>>> index 4e5b23c53d..e54597c591 100644
>>> --- a/doc/guides/rel_notes/deprecation.rst
>>> +++ b/doc/guides/rel_notes/deprecation.rst
>>> @@ -48,6 +48,15 @@ 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: The KNI kernel module and library are not recommended for use 
>>> by new
>>> +  applications - other technologies such as virtio-user are 
>>> recommended instead.
>>> +  The KNI kernel module and library will be removed from DPDK 23.11,
>>> +  following the DPDK technical board
>>> +  `decision 
>>> <https://mails.dpdk.org/archives/dev/2021-January/197077.html>`_
>>> +  and `refinement 
>>> <http://mails.dpdk.org/archives/dev/2022-June/243596.html>`_.
>>> +  The first steps are to add deprecation warnings
>>> +  and to remove the example application from 22.11.
>>> +
>>
>> I wonder whether having this done as bullet points in chronological order
>> might be clearer. Something like:
>>
>> * kni: The KNI kernel module and library are not recommended for use 
>> by new
>>    applications - other technologies such as virtio-user are 
>> recommended instead.
>>    Following the DPDK technical board
>>    `decision 
>> <https://mails.dpdk.org/archives/dev/2021-January/197077.html>`_
>>    and `refinement 
>> <http://mails.dpdk.org/archives/dev/2022-June/243596.html>`_:
>>    * The KNI example application will be removed from DPDK 22.11 release
>>    * The KNI kernel module and library will be removed from the DPDK 
>> 23.11
>>      release
> 
> +1 to list actions in chronological order
> 
> I have a concern with removing sample application without replacing one 
> with alternate methods: virtio-user and tun/tap.
> 
> It is easy to create a virtio-user PMD by testpmd or any sample 
> application, and as far as I understand Bruce already documented this. 
> But for many KNI users they are not using KNI PMD, so replacing KNI with 
> this new method may require some hand holding.

As mentioned KNI PMD, it also should be removed when library and module 
are removed, may be good to list above to be explicit.

> One option can be hotplug the virtio-user PMD and use the port_id for 
> packet forwarding, and I don't know if the PMD has APIs that 
> applications can use directly, as done in KNI, @Maxime & @Chenbo can 
> answer this better.
> 
> It can be good to have a sample application for above before deprecating 
> the KNI sample application.
> And same sample can use tun/tap PMD with a runtime parameter, to show 
> how other example can be used, again tap can be used as tap PMD or Linux 
> tun/tap APIs.
> 
> Question is who can work on such a sample, but if we can find some 
> resource I am for having a replacement exception path sample app before 
> deprecating KNI.
> 
> Thanks,
> ferruh
> 
> 
> 


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

* Re: [PATCH v4] doc: announce KNI deprecation
  2022-07-14 15:03           ` Ferruh Yigit
@ 2022-07-15 15:32             ` Thomas Monjalon
  0 siblings, 0 replies; 33+ messages in thread
From: Thomas Monjalon @ 2022-07-15 15:32 UTC (permalink / raw)
  To: Ferruh Yigit
  Cc: Bruce Richardson, Mcnamara, John, dev, david.marchand,
	andrew.rybchenko, maxime.coquelin, chenbo.xia, mdr, olivier.matz,
	jerinj

14/07/2022 17:03, Ferruh Yigit:
> On 7/14/2022 3:50 PM, Ferruh Yigit wrote:
> > On 7/14/2022 10:20 AM, Bruce Richardson wrote:
> >> On Wed, Jul 13, 2022 at 06:10:47PM +0200, Thomas Monjalon wrote:
> >>> From: Ferruh Yigit <ferruh.yigit@intel.com>
> >>>
> >>> Announce the deprecation plan for KNI kernel module, library and 
> >>> example.
> >>>
> >>> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
> >>> Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
> >>> ---
> >>> Squashed and updated 2 deprecations:
> >>> https://patches.dpdk.org/project/dpdk/patch/20211124171609.3101896-2-ferruh.yigit@intel.com/
> >>> https://patches.dpdk.org/project/dpdk/patch/20211124171609.3101896-2-ferruh.yigit@intel.com/
> >>> ---
> >>
> >> One suggestion below.
> >> With corrected link and with/without suggested change:
> >>
> >> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
> >>
> >>>   doc/guides/prog_guide/kernel_nic_interface.rst | 3 +++
> >>>   doc/guides/rel_notes/deprecation.rst           | 9 +++++++++
> >>>   2 files changed, 12 insertions(+)
> >>>
> >>> diff --git a/doc/guides/prog_guide/kernel_nic_interface.rst 
> >>> b/doc/guides/prog_guide/kernel_nic_interface.rst
> >>> index e021cc69b6..03b5bca958 100644
> >>> --- a/doc/guides/prog_guide/kernel_nic_interface.rst
> >>> +++ b/doc/guides/prog_guide/kernel_nic_interface.rst
> >>> @@ -8,6 +8,9 @@ Kernel NIC Interface
> >>>   .. note::
> >>> +   KNI is deprecated and will be removed in future.
> >>> +   See :doc:`../rel_notes/deprecation`.
> >>> +
> >>>      For an alternative to KNI, that does not require any out-of-tree 
> >>> Linux kernel modules,
> >>>      or a custom library, see :ref:`virtio_user_as_exception_path`.
> >>> diff --git a/doc/guides/rel_notes/deprecation.rst 
> >>> b/doc/guides/rel_notes/deprecation.rst
> >>> index 4e5b23c53d..e54597c591 100644
> >>> --- a/doc/guides/rel_notes/deprecation.rst
> >>> +++ b/doc/guides/rel_notes/deprecation.rst
> >>> @@ -48,6 +48,15 @@ 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: The KNI kernel module and library are not recommended for use 
> >>> by new
> >>> +  applications - other technologies such as virtio-user are 
> >>> recommended instead.
> >>> +  The KNI kernel module and library will be removed from DPDK 23.11,
> >>> +  following the DPDK technical board
> >>> +  `decision 
> >>> <https://mails.dpdk.org/archives/dev/2021-January/197077.html>`_
> >>> +  and `refinement 
> >>> <http://mails.dpdk.org/archives/dev/2022-June/243596.html>`_.
> >>> +  The first steps are to add deprecation warnings
> >>> +  and to remove the example application from 22.11.
> >>> +
> >>
> >> I wonder whether having this done as bullet points in chronological order
> >> might be clearer. Something like:
> >>
> >> * kni: The KNI kernel module and library are not recommended for use 
> >> by new
> >>    applications - other technologies such as virtio-user are 
> >> recommended instead.
> >>    Following the DPDK technical board
> >>    `decision 
> >> <https://mails.dpdk.org/archives/dev/2021-January/197077.html>`_
> >>    and `refinement 
> >> <http://mails.dpdk.org/archives/dev/2022-June/243596.html>`_:
> >>    * The KNI example application will be removed from DPDK 22.11 release
> >>    * The KNI kernel module and library will be removed from the DPDK 
> >> 23.11
> >>      release
> > 
> > +1 to list actions in chronological order
> > 
> > I have a concern with removing sample application without replacing one 
> > with alternate methods: virtio-user and tun/tap.
> > 
> > It is easy to create a virtio-user PMD by testpmd or any sample 
> > application, and as far as I understand Bruce already documented this. 
> > But for many KNI users they are not using KNI PMD, so replacing KNI with 
> > this new method may require some hand holding.
> 
> As mentioned KNI PMD, it also should be removed when library and module 
> are removed, may be good to list above to be explicit.

Yes I'm adding the PMD in removal list.

> > One option can be hotplug the virtio-user PMD and use the port_id for 
> > packet forwarding, and I don't know if the PMD has APIs that 
> > applications can use directly, as done in KNI, @Maxime & @Chenbo can 
> > answer this better.
> > 
> > It can be good to have a sample application for above before deprecating 
> > the KNI sample application.
> > And same sample can use tun/tap PMD with a runtime parameter, to show 
> > how other example can be used, again tap can be used as tap PMD or Linux 
> > tun/tap APIs.
> > 
> > Question is who can work on such a sample, but if we can find some 
> > resource I am for having a replacement exception path sample app before 
> > deprecating KNI.

We are not sure we'll have time and resource,
and it has not been discussed earlier.
Thus I'll consider having a replacement example as a nice-to-have.
I have to be a bit conservative with techboard decisions.



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

* Re: [PATCH v4] doc: announce KNI deprecation
  2022-07-13 19:51       ` Thomas Monjalon
@ 2022-07-15 15:33         ` Thomas Monjalon
  0 siblings, 0 replies; 33+ messages in thread
From: Thomas Monjalon @ 2022-07-15 15:33 UTC (permalink / raw)
  To: dev
  Cc: david.marchand, andrew.rybchenko, maxime.coquelin, chenbo.xia,
	mdr, ferruh.yigit, olivier.matz, jerinj, Ferruh Yigit

13/07/2022 21:51, Thomas Monjalon:
> 13/07/2022 18:10, Thomas Monjalon:
> > From: Ferruh Yigit <ferruh.yigit@intel.com>
> > 
> > Announce the deprecation plan for KNI kernel module, library and example.
> > 
> > Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
> > Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
> > ---
> > Squashed and updated 2 deprecations:
> > https://patches.dpdk.org/project/dpdk/patch/20211124171609.3101896-2-ferruh.yigit@intel.com/
> > https://patches.dpdk.org/project/dpdk/patch/20211124171609.3101896-2-ferruh.yigit@intel.com/
> 
> This is a mistake. The second deprecation squashed here is
> https://patches.dpdk.org/project/dpdk/patch/20220630165031.79183-1-bruce.richardson@intel.com/

Applied with minor improvements discussed in the thread:
	- ordered list of actions
	- PMD to be removed in 23.11





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

* Re: [PATCH v3 1/2] doc: note KNI alternatives
  2021-12-01 16:31   ` [PATCH v3 1/2] doc: note KNI alternatives Morten Brørup
@ 2022-11-24 10:31     ` Ferruh Yigit
  0 siblings, 0 replies; 33+ messages in thread
From: Ferruh Yigit @ 2022-11-24 10:31 UTC (permalink / raw)
  To: Morten Brørup, Maxime Coquelin, Chenbo Xia
  Cc: dev, Olivier Matz Olivier Matz, David Marchand David Marchand,
	Stephen Hemminger Stephen Hemminger, Elad Nachman, Igor Ryzhov,
	Dan Gora

On 12/1/2021 4:31 PM, Morten Brørup wrote:
>> 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.)
> 

Both fine for me, OK to use 'disadvantages'.

>> +
>> +* 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.
> 

ack

>>
>>  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?
> 

Hi Morten,

This is an old patch, I assumed merged v4 by Thomas superseded this
patch, but it seems this patch was not involved in that, so I will make
a new version.

For the virtio-user documentation, no objection to move it to
programmer's guide, I hope Maxime and Chenbo can help there.


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

* [PATCH v5] 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   ` [PATCH v3 1/2] doc: note KNI alternatives Morten Brørup
@ 2022-11-24 11:40   ` Ferruh Yigit
  2022-11-24 16:55     ` Stephen Hemminger
  2022-11-24 17:15     ` [PATCH v6] " Ferruh Yigit
  2 siblings, 2 replies; 33+ messages in thread
From: Ferruh Yigit @ 2022-11-24 11:40 UTC (permalink / raw)
  To: Thomas Monjalon
  Cc: dev, Olivier Matz, David Marchand, Stephen Hemminger,
	Elad Nachman, Igor Ryzhov, Dan Gora, Morten Brørup

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

Signed-off-by: Ferruh Yigit <ferruh.yigit@amd.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>
Cc: Morten Brørup <mb@smartsharesystems.com>

v5:
* Rebased
* Dedicated kernel core added as disadvantage
---
 .../prog_guide/kernel_nic_interface.rst       | 35 ++++++++++++++++---
 1 file changed, 30 insertions(+), 5 deletions(-)

diff --git a/doc/guides/prog_guide/kernel_nic_interface.rst b/doc/guides/prog_guide/kernel_nic_interface.rst
index 6a564f61cad8..cac0ab0cb278 100644
--- a/doc/guides/prog_guide/kernel_nic_interface.rst
+++ b/doc/guides/prog_guide/kernel_nic_interface.rst
@@ -11,8 +11,9 @@ Kernel NIC Interface
    KNI is deprecated and will be removed in future.
    See :doc:`../rel_notes/deprecation`.
 
-   For an alternative to KNI, that does not require any out-of-tree Linux kernel modules,
-   or a custom library, see :ref:`virtio_user_as_exception_path`.
+   :ref:`virtio_user_as_exception_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.
 
 .. note::
 
@@ -21,14 +22,38 @@ Kernel NIC Interface
 
 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_exception_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 disadvantages 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.
+
+* Requires dedicated kernel cores.
 
-*   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.25.1


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

* Re: [PATCH v5] doc: note KNI alternatives
  2022-11-24 11:40   ` [PATCH v5] " Ferruh Yigit
@ 2022-11-24 16:55     ` Stephen Hemminger
  2022-11-24 17:08       ` Ferruh Yigit
  2022-11-24 17:15     ` [PATCH v6] " Ferruh Yigit
  1 sibling, 1 reply; 33+ messages in thread
From: Stephen Hemminger @ 2022-11-24 16:55 UTC (permalink / raw)
  To: Ferruh Yigit
  Cc: Thomas Monjalon, dev, Olivier Matz, David Marchand, Elad Nachman,
	Igor Ryzhov, Dan Gora, Morten Brørup

On Thu, 24 Nov 2022 11:40:40 +0000
Ferruh Yigit <ferruh.yigit@amd.com> wrote:

> +* 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.

To be precise, there is no legal restriction here. Maybe something that describes
why the process is awkward.

* It is out-of-tree Linux kernel module which makes updating and distributing the
  driver more difficult. Most users end up building the KNI driver from source
  which requires the packages and tools to build kernel modules.

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

* Re: [PATCH v5] doc: note KNI alternatives
  2022-11-24 16:55     ` Stephen Hemminger
@ 2022-11-24 17:08       ` Ferruh Yigit
  0 siblings, 0 replies; 33+ messages in thread
From: Ferruh Yigit @ 2022-11-24 17:08 UTC (permalink / raw)
  To: Stephen Hemminger
  Cc: Thomas Monjalon, dev, Olivier Matz, David Marchand, Elad Nachman,
	Igor Ryzhov, Dan Gora, Morten Brørup

On 11/24/2022 4:55 PM, Stephen Hemminger wrote:
> On Thu, 24 Nov 2022 11:40:40 +0000
> Ferruh Yigit <ferruh.yigit@amd.com> wrote:
> 
>> +* 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.
> 
> To be precise, there is no legal restriction here. Maybe something that describes
> why the process is awkward.
> 
> * It is out-of-tree Linux kernel module which makes updating and distributing the
>   driver more difficult. Most users end up building the KNI driver from source
>   which requires the packages and tools to build kernel modules.

ack, I will use above paragraph


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

* [PATCH v6] doc: note KNI alternatives
  2022-11-24 11:40   ` [PATCH v5] " Ferruh Yigit
  2022-11-24 16:55     ` Stephen Hemminger
@ 2022-11-24 17:15     ` Ferruh Yigit
  2022-11-26 21:11       ` Thomas Monjalon
  1 sibling, 1 reply; 33+ messages in thread
From: Ferruh Yigit @ 2022-11-24 17:15 UTC (permalink / raw)
  To: Thomas Monjalon
  Cc: dev, Olivier Matz, David Marchand, Stephen Hemminger,
	Elad Nachman, Igor Ryzhov, Dan Gora, Morten Brørup

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

Signed-off-by: Ferruh Yigit <ferruh.yigit@amd.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>
Cc: Morten Brørup <mb@smartsharesystems.com>

v6:
* s/ifconfig/iproute2/
* reword distributing binary module disadvantage

v5:
* Rebased
* Dedicated kernel core added as disadvantage
---
 .../prog_guide/kernel_nic_interface.rst       | 35 ++++++++++++++++---
 1 file changed, 30 insertions(+), 5 deletions(-)

diff --git a/doc/guides/prog_guide/kernel_nic_interface.rst b/doc/guides/prog_guide/kernel_nic_interface.rst
index 6a564f61cad8..fe088f0c4508 100644
--- a/doc/guides/prog_guide/kernel_nic_interface.rst
+++ b/doc/guides/prog_guide/kernel_nic_interface.rst
@@ -11,8 +11,9 @@ Kernel NIC Interface
    KNI is deprecated and will be removed in future.
    See :doc:`../rel_notes/deprecation`.
 
-   For an alternative to KNI, that does not require any out-of-tree Linux kernel modules,
-   or a custom library, see :ref:`virtio_user_as_exception_path`.
+   :ref:`virtio_user_as_exception_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.
 
 .. note::
 
@@ -21,14 +22,38 @@ Kernel NIC Interface
 
 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``, ``iproute2`` 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_exception_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 disadvantages of the KNI are:
+
+* It is out-of-tree Linux kernel module which makes updating and distributing the
+  driver more difficult. Most users end up building the KNI driver from source
+  which requires the packages and tools to build kernel modules.
+
+* 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.
+
+* Requires dedicated kernel cores.
 
-*   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.25.1


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

* Re: [PATCH v6] doc: note KNI alternatives
  2022-11-24 17:15     ` [PATCH v6] " Ferruh Yigit
@ 2022-11-26 21:11       ` Thomas Monjalon
  0 siblings, 0 replies; 33+ messages in thread
From: Thomas Monjalon @ 2022-11-26 21:11 UTC (permalink / raw)
  To: Ferruh Yigit
  Cc: dev, Olivier Matz, David Marchand, Stephen Hemminger,
	Elad Nachman, Igor Ryzhov, Dan Gora, Morten Brørup

24/11/2022 18:15, Ferruh Yigit:
> Add more information on alternatives of KNI and the disadvantages of KNI
> against these alternatives.
> 
> Signed-off-by: Ferruh Yigit <ferruh.yigit@amd.com>

Applied, thanks.




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

end of thread, other threads:[~2022-11-26 21:12 UTC | newest]

Thread overview: 33+ 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
2022-07-11 14:47     ` Jerin Jacob
2022-07-13 10:01     ` Thomas Monjalon
2022-07-13 11:01       ` Bruce Richardson
2022-07-13 16:10     ` [PATCH v4] " Thomas Monjalon
2022-07-13 19:51       ` Thomas Monjalon
2022-07-15 15:33         ` Thomas Monjalon
2022-07-14  9:20       ` Bruce Richardson
2022-07-14 10:07         ` Thomas Monjalon
2022-07-14 14:50         ` Ferruh Yigit
2022-07-14 15:03           ` Ferruh Yigit
2022-07-15 15:32             ` Thomas Monjalon
2022-07-14  9:30       ` David Marchand
2021-12-01 16:31   ` [PATCH v3 1/2] doc: note KNI alternatives Morten Brørup
2022-11-24 10:31     ` Ferruh Yigit
2022-11-24 11:40   ` [PATCH v5] " Ferruh Yigit
2022-11-24 16:55     ` Stephen Hemminger
2022-11-24 17:08       ` Ferruh Yigit
2022-11-24 17:15     ` [PATCH v6] " Ferruh Yigit
2022-11-26 21:11       ` 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).