[v3,5/5] crypto/mlx5: support on Windows
Checks
Commit Message
Add support for mlx5 crypto pmd on Windows OS.
Add changes to release note and pmd guide.
Signed-off-by: Tal Shnaiderman <talshn@nvidia.com>
Acked-by: Matan Azrad <matan@nvidia.com>
---
doc/guides/cryptodevs/mlx5.rst | 15 ++++++++++++---
doc/guides/rel_notes/release_21_11.rst | 1 +
drivers/common/mlx5/version.map | 2 +-
drivers/common/mlx5/windows/mlx5_common_os.c | 2 +-
drivers/crypto/mlx5/meson.build | 4 ++--
5 files changed, 17 insertions(+), 7 deletions(-)
Comments
> Add support for mlx5 crypto pmd on Windows OS.
> Add changes to release note and pmd guide.
>
> Signed-off-by: Tal Shnaiderman <talshn@nvidia.com>
> Acked-by: Matan Azrad <matan@nvidia.com>
> ---
> doc/guides/cryptodevs/mlx5.rst | 15 ++++++++++++---
> doc/guides/rel_notes/release_21_11.rst | 1 +
> drivers/common/mlx5/version.map | 2 +-
> drivers/common/mlx5/windows/mlx5_common_os.c | 2 +-
> drivers/crypto/mlx5/meson.build | 4 ++--
> 5 files changed, 17 insertions(+), 7 deletions(-)
>
> diff --git a/doc/guides/cryptodevs/mlx5.rst
> b/doc/guides/cryptodevs/mlx5.rst
> index 68bfdf3a83..7338c0c493 100644
> --- a/doc/guides/cryptodevs/mlx5.rst
> +++ b/doc/guides/cryptodevs/mlx5.rst
> @@ -39,12 +39,12 @@ or to access the hardware components directly.
> There are different levels of objects and bypassing abilities.
> To get the best performances:
>
> -- Verbs is a complete high-level generic API.
> -- Direct Verbs is a device-specific API.
> +- Verbs is a complete high-level generic API (Linux only).
> +- Direct Verbs is a device-specific API (Linux only).
> - DevX allows to access firmware objects.
>
> Enabling ``librte_crypto_mlx5`` causes DPDK applications
> -to be linked against libibverbs.
> +to be linked against libibverbs on Linux OS.
>
> In order to move the device to crypto operational mode, credential and KEK
> (Key Encrypting Key) should be set as the first step.
> @@ -155,8 +155,17 @@ Limitations
> Prerequisites
> -------------
>
> +Linux Prerequisites
> +~~~~~~~~~~~~~~~~~~~
> +
> - Mellanox OFED version: **5.3**
> see :doc:`../../nics/mlx5` guide for more Mellanox OFED details.
>
> - Compilation can be done also with rdma-core v15+.
> see :doc:`../../nics/mlx5` guide for more rdma-core details.
> +
> +Windows Prerequisites
> +~~~~~~~~~~~~~~~~~~~~~
> +
> +- Mellanox WINOF-2 version: **2.60** or higher.
> + see :doc:`../../nics/mlx5` guide for more Mellanox WINOF-2 details.
I do not see a way to cross compile this driver with MinGW. How are we expected to
Test compilation for such cases? Do we need to build it over Windows? I personally don't
Think it is a good idea.
Others please suggest.
> Subject: RE: [EXT] [PATCH v3 5/5] crypto/mlx5: support on Windows
>
> External email: Use caution opening links or attachments
>
>
> > Add support for mlx5 crypto pmd on Windows OS.
> > Add changes to release note and pmd guide.
> >
> > Signed-off-by: Tal Shnaiderman <talshn@nvidia.com>
> > Acked-by: Matan Azrad <matan@nvidia.com>
> > ---
> > doc/guides/cryptodevs/mlx5.rst | 15 ++++++++++++---
> > doc/guides/rel_notes/release_21_11.rst | 1 +
> > drivers/common/mlx5/version.map | 2 +-
> > drivers/common/mlx5/windows/mlx5_common_os.c | 2 +-
> > drivers/crypto/mlx5/meson.build | 4 ++--
> > 5 files changed, 17 insertions(+), 7 deletions(-)
> >
> > diff --git a/doc/guides/cryptodevs/mlx5.rst
> > b/doc/guides/cryptodevs/mlx5.rst index 68bfdf3a83..7338c0c493 100644
> > --- a/doc/guides/cryptodevs/mlx5.rst
> > +++ b/doc/guides/cryptodevs/mlx5.rst
> > @@ -39,12 +39,12 @@ or to access the hardware components directly.
> > There are different levels of objects and bypassing abilities.
> > To get the best performances:
> >
> > -- Verbs is a complete high-level generic API.
> > -- Direct Verbs is a device-specific API.
> > +- Verbs is a complete high-level generic API (Linux only).
> > +- Direct Verbs is a device-specific API (Linux only).
> > - DevX allows to access firmware objects.
> >
> > Enabling ``librte_crypto_mlx5`` causes DPDK applications -to be
> > linked against libibverbs.
> > +to be linked against libibverbs on Linux OS.
> >
> > In order to move the device to crypto operational mode, credential
> > and KEK (Key Encrypting Key) should be set as the first step.
> > @@ -155,8 +155,17 @@ Limitations
> > Prerequisites
> > -------------
> >
> > +Linux Prerequisites
> > +~~~~~~~~~~~~~~~~~~~
> > +
> > - Mellanox OFED version: **5.3**
> > see :doc:`../../nics/mlx5` guide for more Mellanox OFED details.
> >
> > - Compilation can be done also with rdma-core v15+.
> > see :doc:`../../nics/mlx5` guide for more rdma-core details.
> > +
> > +Windows Prerequisites
> > +~~~~~~~~~~~~~~~~~~~~~
> > +
> > +- Mellanox WINOF-2 version: **2.60** or higher.
> > + see :doc:`../../nics/mlx5` guide for more Mellanox WINOF-2 details.
>
> I do not see a way to cross compile this driver with MinGW. How are we
> expected to Test compilation for such cases? Do we need to build it over
> Windows? I personally don't Think it is a good idea.
>
> Others please suggest.
Yes, this driver can be built only using clang on Windows, net/mlx5 behaves the same way.
DPDK CI has a compilation test for Windows [1], it will fail if a patch is introduced that caused compilation to fail on Windows.
[1] https://lab.dpdk.org/results/dashboard/patchsets/19686/
> Subject: RE: [EXT] [PATCH v3 5/5] crypto/mlx5: support on Windows
>
> > Subject: RE: [EXT] [PATCH v3 5/5] crypto/mlx5: support on Windows
> >
> > External email: Use caution opening links or attachments
> >
> >
> > > Add support for mlx5 crypto pmd on Windows OS.
> > > Add changes to release note and pmd guide.
> > >
> > > Signed-off-by: Tal Shnaiderman <talshn@nvidia.com>
> > > Acked-by: Matan Azrad <matan@nvidia.com>
> > > ---
> > > doc/guides/cryptodevs/mlx5.rst | 15 ++++++++++++---
> > > doc/guides/rel_notes/release_21_11.rst | 1 +
> > > drivers/common/mlx5/version.map | 2 +-
> > > drivers/common/mlx5/windows/mlx5_common_os.c | 2 +-
> > > drivers/crypto/mlx5/meson.build | 4 ++--
> > > 5 files changed, 17 insertions(+), 7 deletions(-)
> > >
> > > diff --git a/doc/guides/cryptodevs/mlx5.rst
> > > b/doc/guides/cryptodevs/mlx5.rst index 68bfdf3a83..7338c0c493 100644
> > > --- a/doc/guides/cryptodevs/mlx5.rst
> > > +++ b/doc/guides/cryptodevs/mlx5.rst
> > > @@ -39,12 +39,12 @@ or to access the hardware components directly.
> > > There are different levels of objects and bypassing abilities.
> > > To get the best performances:
> > >
> > > -- Verbs is a complete high-level generic API.
> > > -- Direct Verbs is a device-specific API.
> > > +- Verbs is a complete high-level generic API (Linux only).
> > > +- Direct Verbs is a device-specific API (Linux only).
> > > - DevX allows to access firmware objects.
> > >
> > > Enabling ``librte_crypto_mlx5`` causes DPDK applications -to be
> > > linked against libibverbs.
> > > +to be linked against libibverbs on Linux OS.
> > >
> > > In order to move the device to crypto operational mode, credential
> > > and KEK (Key Encrypting Key) should be set as the first step.
> > > @@ -155,8 +155,17 @@ Limitations
> > > Prerequisites
> > > -------------
> > >
> > > +Linux Prerequisites
> > > +~~~~~~~~~~~~~~~~~~~
> > > +
> > > - Mellanox OFED version: **5.3**
> > > see :doc:`../../nics/mlx5` guide for more Mellanox OFED details.
> > >
> > > - Compilation can be done also with rdma-core v15+.
> > > see :doc:`../../nics/mlx5` guide for more rdma-core details.
> > > +
> > > +Windows Prerequisites
> > > +~~~~~~~~~~~~~~~~~~~~~
> > > +
> > > +- Mellanox WINOF-2 version: **2.60** or higher.
> > > + see :doc:`../../nics/mlx5` guide for more Mellanox WINOF-2 details.
> >
> > I do not see a way to cross compile this driver with MinGW. How are we
> > expected to Test compilation for such cases? Do we need to build it
> > over Windows? I personally don't Think it is a good idea.
> >
> > Others please suggest.
>
> Yes, this driver can be built only using clang on Windows, net/mlx5 behaves
> the same way.
>
> DPDK CI has a compilation test for Windows [1], it will fail if a patch is
> introduced that caused compilation to fail on Windows.
>
> [1] https://lab.dpdk.org/results/dashboard/patchsets/19686/
Any other comments? If not, can this series be merged?
> > >
> > > > Add support for mlx5 crypto pmd on Windows OS.
> > > > Add changes to release note and pmd guide.
> > > >
> > > > Signed-off-by: Tal Shnaiderman <talshn@nvidia.com>
> > > > Acked-by: Matan Azrad <matan@nvidia.com>
> > > > ---
> > > > doc/guides/cryptodevs/mlx5.rst | 15 ++++++++++++---
> > > > doc/guides/rel_notes/release_21_11.rst | 1 +
> > > > drivers/common/mlx5/version.map | 2 +-
> > > > drivers/common/mlx5/windows/mlx5_common_os.c | 2 +-
> > > > drivers/crypto/mlx5/meson.build | 4 ++--
> > > > 5 files changed, 17 insertions(+), 7 deletions(-)
> > > >
> > > > diff --git a/doc/guides/cryptodevs/mlx5.rst
> > > > b/doc/guides/cryptodevs/mlx5.rst index 68bfdf3a83..7338c0c493
> 100644
> > > > --- a/doc/guides/cryptodevs/mlx5.rst
> > > > +++ b/doc/guides/cryptodevs/mlx5.rst
> > > > @@ -39,12 +39,12 @@ or to access the hardware components directly.
> > > > There are different levels of objects and bypassing abilities.
> > > > To get the best performances:
> > > >
> > > > -- Verbs is a complete high-level generic API.
> > > > -- Direct Verbs is a device-specific API.
> > > > +- Verbs is a complete high-level generic API (Linux only).
> > > > +- Direct Verbs is a device-specific API (Linux only).
> > > > - DevX allows to access firmware objects.
> > > >
> > > > Enabling ``librte_crypto_mlx5`` causes DPDK applications -to be
> > > > linked against libibverbs.
> > > > +to be linked against libibverbs on Linux OS.
> > > >
> > > > In order to move the device to crypto operational mode, credential
> > > > and KEK (Key Encrypting Key) should be set as the first step.
> > > > @@ -155,8 +155,17 @@ Limitations
> > > > Prerequisites
> > > > -------------
> > > >
> > > > +Linux Prerequisites
> > > > +~~~~~~~~~~~~~~~~~~~
> > > > +
> > > > - Mellanox OFED version: **5.3**
> > > > see :doc:`../../nics/mlx5` guide for more Mellanox OFED details.
> > > >
> > > > - Compilation can be done also with rdma-core v15+.
> > > > see :doc:`../../nics/mlx5` guide for more rdma-core details.
> > > > +
> > > > +Windows Prerequisites
> > > > +~~~~~~~~~~~~~~~~~~~~~
> > > > +
> > > > +- Mellanox WINOF-2 version: **2.60** or higher.
> > > > + see :doc:`../../nics/mlx5` guide for more Mellanox WINOF-2 details.
> > >
> > > I do not see a way to cross compile this driver with MinGW. How are we
> > > expected to Test compilation for such cases? Do we need to build it
> > > over Windows? I personally don't Think it is a good idea.
> > >
> > > Others please suggest.
> >
> > Yes, this driver can be built only using clang on Windows, net/mlx5 behaves
> > the same way.
> >
> > DPDK CI has a compilation test for Windows [1], it will fail if a patch is
> > introduced that caused compilation to fail on Windows.
> >
This dependency is not good. At times we have dependent series and
we cannot just rely on CI to do compilation.
Please remove this dependency as soon as possible.
This series is applied on dpdk-next-crypto for now.
But would need to take this patch out in future if there are frequent
Compilation breaks. We cannot ask developers working on common
Code base to check compilation of the patches explicitly on Windows
Machine. There may be many people who do not work on Windows
Machine.
>
> Any other comments? If not, can this series be merged?
@@ -39,12 +39,12 @@ or to access the hardware components directly.
There are different levels of objects and bypassing abilities.
To get the best performances:
-- Verbs is a complete high-level generic API.
-- Direct Verbs is a device-specific API.
+- Verbs is a complete high-level generic API (Linux only).
+- Direct Verbs is a device-specific API (Linux only).
- DevX allows to access firmware objects.
Enabling ``librte_crypto_mlx5`` causes DPDK applications
-to be linked against libibverbs.
+to be linked against libibverbs on Linux OS.
In order to move the device to crypto operational mode, credential and KEK
(Key Encrypting Key) should be set as the first step.
@@ -155,8 +155,17 @@ Limitations
Prerequisites
-------------
+Linux Prerequisites
+~~~~~~~~~~~~~~~~~~~
+
- Mellanox OFED version: **5.3**
see :doc:`../../nics/mlx5` guide for more Mellanox OFED details.
- Compilation can be done also with rdma-core v15+.
see :doc:`../../nics/mlx5` guide for more rdma-core details.
+
+Windows Prerequisites
+~~~~~~~~~~~~~~~~~~~~~
+
+- Mellanox WINOF-2 version: **2.60** or higher.
+ see :doc:`../../nics/mlx5` guide for more Mellanox WINOF-2 details.
@@ -189,6 +189,7 @@ New Features
* Added implicit mempool registration to avoid data path hiccups (opt-out).
* Added NIC offloads for the PMD on Windows (TSO, VLAN strip, CRC keep).
+ * Added support for mlx5 crypto PMD on Windows operating system.
* **Updated Solarflare network PMD.**
@@ -16,7 +16,7 @@ INTERNAL {
mlx5_dev_mempool_unregister;
mlx5_dev_mempool_subscribe;
- mlx5_devx_alloc_uar; # WINDOWS_NO_EXPORT
+ mlx5_devx_alloc_uar;
mlx5_devx_cmd_alloc_pd;
mlx5_devx_cmd_create_conn_track_offload_obj;
@@ -202,7 +202,7 @@ mlx5_os_open_device(struct mlx5_common_device *cdev, uint32_t classes)
struct mlx5_context *mlx5_ctx = NULL;
int n;
- if (classes != MLX5_CLASS_ETH) {
+ if (classes != MLX5_CLASS_ETH && classes != MLX5_CLASS_CRYPTO) {
DRV_LOG(ERR,
"The chosen classes are not supported on Windows.");
rte_errno = ENOTSUP;
@@ -1,9 +1,9 @@
# SPDX-License-Identifier: BSD-3-Clause
# Copyright (c) 2021 NVIDIA Corporation & Affiliates
-if not is_linux
+if not (is_linux or is_windows)
build = false
- reason = 'only supported on Linux'
+ reason = 'only supported on Linux and Windows'
subdir_done()
endif