aboutsummaryrefslogtreecommitdiff
path: root/DEPENDENCIES
diff options
context:
space:
mode:
authorMalvika Gupta <Malvika.Gupta@arm.com>2022-01-04 15:40:10 -0600
committerPetri Savolainen <petri.savolainen@nokia.com>2022-02-03 14:57:38 +0200
commitc6d031095a72a57c7373922be7cb8eba228c254b (patch)
tree58f2a57e15afa8e485fa7d4146dcf31b8e583f3c /DEPENDENCIES
parent3b7491d8f8b6cad1a4f180af1307cea5f66f2256 (diff)
linux-gen: crypto: integrate Aarch64cryptolib
Integrate Aarch64cryptolib in the build using pkg-config. Add an autoconf config option to select the crypto implementation to be used and add armv8crypto as an alternative to openssl and null. Add a null crypto based skeleton crypto implementation to be used with the Aarch64cryptolib. Signed-off-by: Govindarajan <govindarajan.mohandoss@arm.com> Signed-off-by: Malvika Gupta <Malvika.Gupta@arm.com> Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Janne Peltonen <janne.peltonen@nokia.com>
Diffstat (limited to 'DEPENDENCIES')
-rw-r--r--DEPENDENCIES51
1 files changed, 39 insertions, 12 deletions
diff --git a/DEPENDENCIES b/DEPENDENCIES
index b0762067e..a396bdd27 100644
--- a/DEPENDENCIES
+++ b/DEPENDENCIES
@@ -98,11 +98,38 @@ Prerequisites for building the OpenDataPlane (ODP) API
--with-openssl-path=/home/${USER}/src/install-openssl-aarch64
$ make
-3.3 Netmap packet I/O support (optional)
+3.3 ARMv8 Crypto native compile (optional)
+
+ AArch64cryptolib is a from-scratch implementation of cryptographic primitives
+ aiming for optimized performance on Arm A-class cores. This implementation
+ requires Armv8 cryptography extensions. Currently, only AES-GCM algorithm is
+ supported.
+
+3.3.1 Building ARMv8 crypto library
+
+ # Checkout and build AArch64cryptolib code
+ $ git clone https://github.com/ARM-software/AArch64cryptolib
+ $ cd AArch64cryptolib/
+ $ make
+
+ For additional instructions, refer to README.md
+
+3.3.2 Building ODP with ARMv8 crypto library
+ $ ./bootstrap
+
+ # Append the Armv8 crypto library path to PKG_CONFIG_PATH if necessary
+ $ echo $PKG_CONFIG_PATH
+ $ export PKG_CONFIG_PATH=<AArch64cryptolib-path>/pkgconfig:$PKG_CONFIG_PATH
+
+ # Compile and build ODP with Armv8 crypto library
+ $ ./configure --with-crypto=armv8crypto
+ $ make
+
+3.4 Netmap packet I/O support (optional)
Netmap accelerated ODP packet I/O.
-3.3.1 Building netmap kernel modules
+3.4.1 Building netmap kernel modules
ODP works at least with the latest release version of netmap, which is
currently v13.0. However, if possible one should try to use the latest netmap
@@ -146,14 +173,14 @@ Prerequisites for building the OpenDataPlane (ODP) API
$ ./configure --kernel-sources=<path_to_kernel_src>
$ make
-3.3.2 Building ODP
+3.4.2 Building ODP
$ cd <odp_dir>
$ ./bootstrap
$ ./configure --with-netmap-path=<netmap_dir>
$ make
-3.3.3 Inserting netmap kernel modules
+3.4.3 Inserting netmap kernel modules
In order to use netmap I/O you need to insert at least the core netmap
kernel module.
@@ -171,13 +198,13 @@ Prerequisites for building the OpenDataPlane (ODP) API
To restore the original drivers you should be able to use modprobe.
-3.3.4 Running ODP with netmap I/O
+3.4.4 Running ODP with netmap I/O
ODP applications will use netmap for packet I/O by default as long as the
netmap kernel module is loaded. If socket I/O is desired instead, it can be
activated by setting the environment variable ODP_PKTIO_DISABLE_NETMAP.
-3.4 DPDK packet I/O support (optional)
+3.5 DPDK packet I/O support (optional)
Use DPDK for ODP packet I/O. Currently supported DPDK versions are v19.11
(recommended) and v20.11.
@@ -186,7 +213,7 @@ Prerequisites for building the OpenDataPlane (ODP) API
https://github.com/OpenDataPlane/odp-dpdk.git
for a full DPDK based ODP implementation.
-3.4.1 DPDK pktio requirements
+3.5.1 DPDK pktio requirements
DPDK pktio adds a dependency to NUMA library.
# Debian/Ubuntu
@@ -195,11 +222,11 @@ Prerequisites for building the OpenDataPlane (ODP) API
# CentOS/RedHat/Fedora
$ sudo yum install numactl-devel
-3.4.2 Native DPDK install
+3.5.2 Native DPDK install
# Debian/Ubuntu starting from 20.04
$ sudo apt-get install dpdk-dev
-3.4.3 Build DPDK v19.11 from source
+3.5.3 Build DPDK v19.11 from source
$ git clone https://dpdk.org/git/dpdk-stable --branch 19.11 --depth 1 ./<dpdk-dir>
# Make and edit DPDK configuration
@@ -217,7 +244,7 @@ Prerequisites for building the OpenDataPlane (ODP) API
# Configure ODP
$ ./configure --with-dpdk-path=<dpdk-dir>
-3.4.4 Build DPDK v20.11 from source
+3.5.4 Build DPDK v20.11 from source
$ git clone https://dpdk.org/git/dpdk-stable --branch 20.11 --depth 1 ./<dpdk-dir>
# Prepare the build directory
@@ -235,7 +262,7 @@ Prerequisites for building the OpenDataPlane (ODP) API
# Instead of using --with-dpdk-path option, set PKG_CONFIG_PATH
$ PKG_CONFIG_PATH=<dpdk-dir>/install/lib/x86_64-linux-gnu/pkgconfig ./configure --enable-dpdk
-3.4.5 Setup system
+3.5.5 Setup system
# Load DPDK modules
$ sudo modprobe uio
@@ -247,7 +274,7 @@ Prerequisites for building the OpenDataPlane (ODP) API
512 x 2MB huge pages. All this can be done with the DPDK setup script
(<dpdk-dir>/usertools/dpdk-setup.sh).
-3.4.6 Running ODP with DPDK pktio
+3.5.6 Running ODP with DPDK pktio
ODP applications will try use DPDK for packet I/O by default. If some other
I/O type is desired instead, DPDK I/O can be disabled by setting the