[dpdk-dev,v4,01/20] crypto/ccp: add AMD ccp skeleton PMD

Message ID 1520584520-130522-1-git-send-email-Ravi1.kumar@amd.com (mailing list archive)
State Superseded, archived
Delegated to: Pablo de Lara Guarch
Headers

Checks

Context Check Description
ci/checkpatch warning coding style issues
ci/Intel-compilation success Compilation OK

Commit Message

Kumar, Ravi1 March 9, 2018, 8:35 a.m. UTC
  Signed-off-by: Ravi Kumar <Ravi1.kumar@amd.com>
---
 MAINTAINERS                                |  6 +++
 config/common_base                         |  5 +++
 doc/guides/rel_notes/release_18_05.rst     |  5 +++
 drivers/crypto/Makefile                    |  1 +
 drivers/crypto/ccp/Makefile                | 55 ++++++++++++++++++++++++++
 drivers/crypto/ccp/rte_ccp_pmd.c           | 62 ++++++++++++++++++++++++++++++
 drivers/crypto/ccp/rte_pmd_ccp_version.map |  4 ++
 mk/rte.app.mk                              |  2 +
 8 files changed, 140 insertions(+)
 create mode 100644 drivers/crypto/ccp/Makefile
 create mode 100644 drivers/crypto/ccp/rte_ccp_pmd.c
 create mode 100644 drivers/crypto/ccp/rte_pmd_ccp_version.map
  

Comments

Hemant Agrawal March 9, 2018, 5:36 p.m. UTC | #1
Hi Ravi,
	Since 18.02, DPDK community will prefer all new submission to use SPDX 
licensing tags.

Regards,
Hemant
On 3/9/2018 2:05 PM, Ravi Kumar wrote:
> Signed-off-by: Ravi Kumar <Ravi1.kumar@amd.com>
> ---
<snip>..
> diff --git a/drivers/crypto/ccp/Makefile b/drivers/crypto/ccp/Makefile
> new file mode 100644
> index 0000000..51c5e5b
> --- /dev/null
> +++ b/drivers/crypto/ccp/Makefile
> @@ -0,0 +1,55 @@
> +#
> +#   Copyright(c) 2018 Advanced Micro Devices, Inc.
> +#   All rights reserved.
> +#
> +#   Redistribution and use in source and binary forms, with or without
> +#   modification, are permitted provided that the following conditions
> +#   are met:
> +#
> +# 	* Redistributions of source code must retain the above copyright
> +# 	notice, this list of conditions and the following disclaimer.
> +# 	* Redistributions in binary form must reproduce the above copyright
> +# 	notice, this list of conditions and the following disclaimer in the
> +# 	documentation and/or other materials provided with the distribution.
> +# 	* Neither the name of the copyright holder nor the names of its
> +# 	contributors may be used to endorse or promote products derived from
> +# 	this software without specific prior written permission.
> +#
> +#   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
> +#   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
> +#   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
> +#   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
> +#   HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> +#   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
> +#   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
> +#   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
> +#   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
> +#   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
> +#   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  
Hemant Agrawal March 9, 2018, 5:46 p.m. UTC | #2
Please ignore my comment, 

I just checked that you have added a patch to convert the license to SPDX. 

However, it is not the best  way. A new patchset should have this change in the individual patches itself.

Regards,
Hemant

> -----Original Message-----

> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Hemant Agrawal

> Sent: Friday, March 09, 2018 11:06 PM

> To: Ravi Kumar <Ravi1.kumar@amd.com>; dev@dpdk.org

> Cc: pablo.de.lara.guarch@intel.com

> Subject: Re: [dpdk-dev] [PATCH v4 01/20] crypto/ccp: add AMD ccp skeleton

> PMD

> 

> Hi Ravi,

> 	Since 18.02, DPDK community will prefer all new submission to use SPDX

> licensing tags.

> 

> Regards,

> Hemant

> On 3/9/2018 2:05 PM, Ravi Kumar wrote:

> > Signed-off-by: Ravi Kumar <Ravi1.kumar@amd.com>

> > ---

> <snip>..

> > diff --git a/drivers/crypto/ccp/Makefile b/drivers/crypto/ccp/Makefile

> > new file mode 100644 index 0000000..51c5e5b

> > --- /dev/null

> > +++ b/drivers/crypto/ccp/Makefile

> > @@ -0,0 +1,55 @@

> > +#

> > +#   Copyright(c) 2018 Advanced Micro Devices, Inc.

> > +#   All rights reserved.

> > +#

> > +#   Redistribution and use in source and binary forms, with or without

> > +#   modification, are permitted provided that the following conditions

> > +#   are met:

> > +#

> > +# 	* Redistributions of source code must retain the above copyright

> > +# 	notice, this list of conditions and the following disclaimer.

> > +# 	* Redistributions in binary form must reproduce the above copyright

> > +# 	notice, this list of conditions and the following disclaimer in the

> > +# 	documentation and/or other materials provided with the distribution.

> > +# 	* Neither the name of the copyright holder nor the names of its

> > +# 	contributors may be used to endorse or promote products derived from

> > +# 	this software without specific prior written permission.

> > +#

> > +#   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND

> CONTRIBUTORS

> > +#   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT

> NOT

> > +#   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND

> FITNESS FOR

> > +#   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE

> COPYRIGHT

> > +#   HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,

> INCIDENTAL,

> > +#   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT

> NOT

> > +#   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS

> OF USE,

> > +#   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED

> AND ON ANY

> > +#   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR

> TORT

> > +#   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF

> THE USE

> > +#   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

> DAMAGE.
  
Kumar, Ravi1 March 12, 2018, 11:26 a.m. UTC | #3
>

>

>-----Original Message-----

>From: Hemant Agrawal [mailto:hemant.agrawal@nxp.com] 

>Sent: Friday, March 09, 2018 11:17 PM

>To: Hemant Agrawal <hemant.agrawal@nxp.com>; Kumar, Ravi1 <Ravi1.Kumar@amd.com>; dev@dpdk.org

>Cc: pablo.de.lara.guarch@intel.com

>Subject: RE: [dpdk-dev] [PATCH v4 01/20] crypto/ccp: add AMD ccp skeleton PMD

>

>Please ignore my comment, 

>

>I just checked that you have added a patch to convert the license to SPDX. 

>

>However, it is not the best  way. A new patchset should have this change in the individual patches itself.

>

>Regards,

>Hemant



Hi Hemant,

Thanks for reviewing. We will fix this in the next version of the patches. 

Regards,
Ravi
>

>> -----Original Message-----

>> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Hemant Agrawal

>> Sent: Friday, March 09, 2018 11:06 PM

>> To: Ravi Kumar <Ravi1.kumar@amd.com>; dev@dpdk.org

>> Cc: pablo.de.lara.guarch@intel.com

>> Subject: Re: [dpdk-dev] [PATCH v4 01/20] crypto/ccp: add AMD ccp 

>> skeleton PMD

>> 

>> Hi Ravi,

>> 	Since 18.02, DPDK community will prefer all new submission to use 

>> SPDX licensing tags.

>> 

>> Regards,

>> Hemant

>> On 3/9/2018 2:05 PM, Ravi Kumar wrote:

>> > Signed-off-by: Ravi Kumar <Ravi1.kumar@amd.com>

>> > ---

>> <snip>..

>> > diff --git a/drivers/crypto/ccp/Makefile 

>> > b/drivers/crypto/ccp/Makefile new file mode 100644 index 

>> > 0000000..51c5e5b

>> > --- /dev/null

>> > +++ b/drivers/crypto/ccp/Makefile

>> > @@ -0,0 +1,55 @@

>> > +#

>> > +#   Copyright(c) 2018 Advanced Micro Devices, Inc.

>> > +#   All rights reserved.

>> > +#

>> > +#   Redistribution and use in source and binary forms, with or without

>> > +#   modification, are permitted provided that the following conditions

>> > +#   are met:

>> > +#

>> > +# 	* Redistributions of source code must retain the above copyright

>> > +# 	notice, this list of conditions and the following disclaimer.

>> > +# 	* Redistributions in binary form must reproduce the above copyright

>> > +# 	notice, this list of conditions and the following disclaimer in the

>> > +# 	documentation and/or other materials provided with the distribution.

>> > +# 	* Neither the name of the copyright holder nor the names of its

>> > +# 	contributors may be used to endorse or promote products derived from

>> > +# 	this software without specific prior written permission.

>> > +#

>> > +#   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND

>> CONTRIBUTORS

>> > +#   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT

>> NOT

>> > +#   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND

>> FITNESS FOR

>> > +#   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE

>> COPYRIGHT

>> > +#   HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,

>> INCIDENTAL,

>> > +#   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT

>> NOT

>> > +#   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS

>> OF USE,

>> > +#   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED

>> AND ON ANY

>> > +#   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR

>> TORT

>> > +#   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF

>> THE USE

>> > +#   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH

>> DAMAGE.

>
  

Patch

diff --git a/MAINTAINERS b/MAINTAINERS
index a646ca3..8481731 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -640,6 +640,12 @@  M: Pablo de Lara <pablo.de.lara.guarch@intel.com>
 T: git://dpdk.org/next/dpdk-next-crypto
 F: doc/guides/cryptodevs/features/default.ini
 
+AMD CCP Crypto PMD
+M: Ravi Kumar <ravi1.kumar@amd.com>
+F: drivers/crypto/ccp/
+F: doc/guides/cryptodevs/ccp.rst
+F: doc/guides/cryptodevs/features/ccp.ini
+
 ARMv8 Crypto
 M: Jerin Jacob <jerin.jacob@caviumnetworks.com>
 F: drivers/crypto/armv8/
diff --git a/config/common_base b/config/common_base
index ad03cf4..28237f0 100644
--- a/config/common_base
+++ b/config/common_base
@@ -529,6 +529,11 @@  CONFIG_RTE_LIBRTE_PMD_CRYPTO_SCHEDULER_DEBUG=n
 CONFIG_RTE_LIBRTE_PMD_NULL_CRYPTO=y
 
 #
+# Compile PMD for AMD CCP crypto device
+#
+CONFIG_RTE_LIBRTE_PMD_CCP=n
+
+#
 # Compile PMD for Marvell Crypto device
 #
 CONFIG_RTE_LIBRTE_PMD_MRVL_CRYPTO=n
diff --git a/doc/guides/rel_notes/release_18_05.rst b/doc/guides/rel_notes/release_18_05.rst
index 3923dc2..c5b2854 100644
--- a/doc/guides/rel_notes/release_18_05.rst
+++ b/doc/guides/rel_notes/release_18_05.rst
@@ -41,6 +41,11 @@  New Features
      Also, make sure to start the actual text at the margin.
      =========================================================
 
+* **Added a new crypto poll mode driver for AMD CCP devices.**
+
+  Added the new ``ccp`` crypto driver for AMD CCP devices. See the
+  :doc:`../cryptodevs/ccp` crypto driver guide for more details on
+  this new driver.
 
 API Changes
 -----------
diff --git a/drivers/crypto/Makefile b/drivers/crypto/Makefile
index 628bd14..fe41edd 100644
--- a/drivers/crypto/Makefile
+++ b/drivers/crypto/Makefile
@@ -16,5 +16,6 @@  DIRS-$(CONFIG_RTE_LIBRTE_PMD_MRVL_CRYPTO) += mrvl
 DIRS-$(CONFIG_RTE_LIBRTE_PMD_NULL_CRYPTO) += null
 DIRS-$(CONFIG_RTE_LIBRTE_PMD_DPAA2_SEC) += dpaa2_sec
 DIRS-$(CONFIG_RTE_LIBRTE_PMD_DPAA_SEC) += dpaa_sec
+DIRS-$(CONFIG_RTE_LIBRTE_PMD_CCP) += ccp
 
 include $(RTE_SDK)/mk/rte.subdir.mk
diff --git a/drivers/crypto/ccp/Makefile b/drivers/crypto/ccp/Makefile
new file mode 100644
index 0000000..51c5e5b
--- /dev/null
+++ b/drivers/crypto/ccp/Makefile
@@ -0,0 +1,55 @@ 
+#
+#   Copyright(c) 2018 Advanced Micro Devices, Inc.
+#   All rights reserved.
+#
+#   Redistribution and use in source and binary forms, with or without
+#   modification, are permitted provided that the following conditions
+#   are met:
+#
+# 	* Redistributions of source code must retain the above copyright
+# 	notice, this list of conditions and the following disclaimer.
+# 	* Redistributions in binary form must reproduce the above copyright
+# 	notice, this list of conditions and the following disclaimer in the
+# 	documentation and/or other materials provided with the distribution.
+# 	* Neither the name of the copyright holder nor the names of its
+# 	contributors may be used to endorse or promote products derived from
+# 	this software without specific prior written permission.
+#
+#   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+#   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+#   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+#   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+#   HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+#   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+#   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+#   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+#   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+#   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+#   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+include $(RTE_SDK)/mk/rte.vars.mk
+
+# library name
+LIB = librte_pmd_ccp.a
+
+# build flags
+CFLAGS += -O3
+CFLAGS += -I$(SRCDIR)
+CFLAGS += $(WERROR_FLAGS)
+
+# library version
+LIBABIVER := 1
+
+# external library include paths
+LDLIBS += -lcrypto
+LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
+LDLIBS += -lrte_cryptodev
+LDLIBS += -lrte_pci -lrte_bus_pci
+
+# versioning export map
+EXPORT_MAP := rte_pmd_ccp_version.map
+
+# library source files
+SRCS-$(CONFIG_RTE_LIBRTE_PMD_CCP) += rte_ccp_pmd.c
+
+include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/crypto/ccp/rte_ccp_pmd.c b/drivers/crypto/ccp/rte_ccp_pmd.c
new file mode 100644
index 0000000..6fa14bd
--- /dev/null
+++ b/drivers/crypto/ccp/rte_ccp_pmd.c
@@ -0,0 +1,62 @@ 
+/*-
+ *   Copyright(c) 2018 Advanced Micro Devices, Inc.
+ *   All rights reserved.
+ *
+ *   Redistribution and use in source and binary forms, with or without
+ *   modification, are permitted provided that the following conditions
+ *   are met:
+ *
+ *	* Redistributions of source code must retain the above copyright
+ *	notice, this list of conditions and the following disclaimer.
+ *	* Redistributions in binary form must reproduce the above copyright
+ *	notice, this list of conditions and the following disclaimer in the
+ *	documentation and/or other materials provided with the distribution.
+ *	* Neither the name of the copyright holder nor the names of its
+ *	contributors may be used to endorse or promote products derived from
+ *	this software without specific prior written permission.
+ *
+ *   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ *   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ *   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ *   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ *   HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ *   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ *   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ *   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ *   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ *   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ *   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <rte_bus_vdev.h>
+#include <rte_cryptodev.h>
+#include <rte_cryptodev_pmd.h>
+
+uint8_t ccp_cryptodev_driver_id;
+
+/** Remove ccp pmd */
+static int
+cryptodev_ccp_remove(struct rte_vdev_device *dev __rte_unused)
+{
+	return 0;
+}
+
+/** Probe ccp pmd */
+static int
+cryptodev_ccp_probe(struct rte_vdev_device *vdev __rte_unused)
+{
+	return 0;
+}
+
+static struct rte_vdev_driver cryptodev_ccp_pmd_drv = {
+	.probe = cryptodev_ccp_probe,
+	.remove = cryptodev_ccp_remove
+};
+
+static struct cryptodev_driver ccp_crypto_drv;
+
+RTE_PMD_REGISTER_VDEV(CRYPTODEV_NAME_CCP_PMD, cryptodev_ccp_pmd_drv);
+RTE_PMD_REGISTER_PARAM_STRING(CRYPTODEV_NAME_CCP_PMD,
+	"max_nb_queue_pairs=<int> max_nb_sessions=<int> socket_id=<int>");
+RTE_PMD_REGISTER_CRYPTO_DRIVER(ccp_crypto_drv, cryptodev_ccp_pmd_drv,
+			       ccp_cryptodev_driver_id);
diff --git a/drivers/crypto/ccp/rte_pmd_ccp_version.map b/drivers/crypto/ccp/rte_pmd_ccp_version.map
new file mode 100644
index 0000000..9b9ab1a
--- /dev/null
+++ b/drivers/crypto/ccp/rte_pmd_ccp_version.map
@@ -0,0 +1,4 @@ 
+DPDK_18.05 {
+
+	local: *;
+};
diff --git a/mk/rte.app.mk b/mk/rte.app.mk
index 3eb41d1..95c1221 100644
--- a/mk/rte.app.mk
+++ b/mk/rte.app.mk
@@ -215,6 +215,8 @@  _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_DPAA_SEC)   += -lrte_bus_dpaa
 _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_DPAA_SEC)   += -lrte_pmd_dpaa_sec
 endif # CONFIG_RTE_LIBRTE_DPAA_BUS
 
+_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_CCP)   += -lrte_pmd_ccp -lcrypto
+
 endif # CONFIG_RTE_LIBRTE_CRYPTODEV
 
 ifeq ($(CONFIG_RTE_LIBRTE_EVENTDEV),y)