Thread (33 messages) 33 messages, 10 authors, 2022-11-26

Re: [dpdk-dev] [PATCH] doc: note KNI alternatives and deprecation plan

From: David Marchand <hidden>
Date: 2021-08-20 12:58:51

On Wed, Jun 23, 2021 at 7:32 PM Ferruh Yigit [off-list ref] 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 ;-).

quoted hunk ↗ jump to hunk
Signed-off-by: Ferruh Yigit <redacted>
---
 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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help