* [dpdk-dev] [PATCH] doc: reformat crypto drivers overview
@ 2017-03-22 16:15 Pablo de Lara
2017-03-23 8:41 ` Mcnamara, John
2017-03-23 11:38 ` [dpdk-dev] [PATCH v2] " Pablo de Lara
0 siblings, 2 replies; 4+ messages in thread
From: Pablo de Lara @ 2017-03-22 16:15 UTC (permalink / raw)
To: john.mcnamara; +Cc: fiona.trahe, dev, Pablo de Lara
Follow the approach in the network devices overview,
for the feature matrix, so it improves readibility
and maintainability.
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
---
.gitignore | 4 +
doc/guides/conf.py | 47 +++--
doc/guides/cryptodevs/features/aesni_gcm.ini | 27 +++
doc/guides/cryptodevs/features/aesni_mb.ini | 41 ++++
doc/guides/cryptodevs/features/armv8.ini | 28 +++
doc/guides/cryptodevs/features/default.ini | 70 +++++++
doc/guides/cryptodevs/features/kasumi.ini | 24 +++
doc/guides/cryptodevs/features/null.ini | 25 +++
doc/guides/cryptodevs/features/openssl.ini | 47 +++++
doc/guides/cryptodevs/features/qat.ini | 49 +++++
doc/guides/cryptodevs/features/snow3g.ini | 24 +++
doc/guides/cryptodevs/features/zuc.ini | 24 +++
doc/guides/cryptodevs/overview.rst | 291 +++++++++++++++++++++------
13 files changed, 620 insertions(+), 81 deletions(-)
create mode 100644 doc/guides/cryptodevs/features/aesni_gcm.ini
create mode 100644 doc/guides/cryptodevs/features/aesni_mb.ini
create mode 100644 doc/guides/cryptodevs/features/armv8.ini
create mode 100644 doc/guides/cryptodevs/features/default.ini
create mode 100644 doc/guides/cryptodevs/features/kasumi.ini
create mode 100644 doc/guides/cryptodevs/features/null.ini
create mode 100644 doc/guides/cryptodevs/features/openssl.ini
create mode 100644 doc/guides/cryptodevs/features/qat.ini
create mode 100644 doc/guides/cryptodevs/features/snow3g.ini
create mode 100644 doc/guides/cryptodevs/features/zuc.ini
diff --git a/.gitignore b/.gitignore
index a722abe..221c30b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,5 @@
doc/guides/nics/overview_table.txt
+doc/guides/cryptodevs/overview_feature_table.txt
+doc/guides/cryptodevs/overview_cipher_algo_table.txt
+doc/guides/cryptodevs/overview_auth_algo_table.txt
+doc/guides/cryptodevs/overview_aead_algo_table.txt
diff --git a/doc/guides/conf.py b/doc/guides/conf.py
index 34c62de..672a9d5 100644
--- a/doc/guides/conf.py
+++ b/doc/guides/conf.py
@@ -175,25 +175,24 @@ def process_numref(app, doctree, from_docname):
node.replace_self(newnode)
-def generate_nic_overview_table(output_filename):
+def generate_overview_table(output_filename, section, table_name, title):
"""
- Function to generate the NIC Overview Table from the ini files that define
- the features for each NIC.
+ Function to generate the Overview Table from the ini files that define
+ the features for each driver.
The default features for the table and their order is defined by the
'default.ini' file.
"""
- # Default worning string.
- warning = 'Warning generate_nic_overview_table()'
+ # Default warning string.
+ warning = 'Warning generate_crypto_overview_table()'
# Get the default features and order from the 'default.ini' file.
ini_path = path_join(dirname(output_filename), 'features')
config = configparser.ConfigParser()
config.optionxform = str
config.read(path_join(ini_path, 'default.ini'))
- default_section = 'Features'
- default_features = config.items(default_section)
+ default_features = config.items(section)
# Create a dict of the valid features to validate the other ini files.
valid_features = {}
@@ -203,7 +202,7 @@ def generate_nic_overview_table(output_filename):
valid_features[key] = ' '
max_feature_length = max(max_feature_length, len(key))
- # Get a list of NIC ini files, excluding 'default.ini'.
+ # Get a list of driver ini files, excluding 'default.ini'.
ini_files = [basename(file) for file in listdir(ini_path)
if file.endswith('.ini') and file != 'default.ini']
ini_files.sort()
@@ -223,7 +222,7 @@ def generate_nic_overview_table(output_filename):
header_names.append(name)
- # Create a dict of the defined features for each NIC from the ini files.
+ # Create a dict of the defined features for each crypto from the ini files.
ini_data = {}
for ini_filename in ini_files:
config = configparser.ConfigParser()
@@ -234,14 +233,14 @@ def generate_nic_overview_table(output_filename):
ini_data[ini_filename] = valid_features.copy()
# Check for a valid ini section.
- if not config.has_section(default_section):
+ if not config.has_section(section):
print("{}: File '{}' has no [{}] secton".format(warning,
ini_filename,
- default_section))
+ section))
continue
# Check for valid features names.
- for name, value in config.items(default_section):
+ for name, value in config.items(section):
if name not in valid_features:
print("{}: Unknown feature '{}' in '{}'".format(warning,
name,
@@ -252,18 +251,18 @@ def generate_nic_overview_table(output_filename):
# Get the first letter only.
ini_data[ini_filename][name] = value[0]
- # Print out the RST NIC Overview table from the ini file data.
+ # Print out the RST Crypto Overview table from the ini file data.
outfile = open(output_filename, 'w')
num_cols = len(header_names)
- print('.. table:: Features availability in networking drivers\n',
+ print('.. table:: ' + table_name + '\n',
file=outfile)
- print_table_header(outfile, num_cols, header_names)
+ print_table_header(outfile, num_cols, header_names, title)
print_table_body(outfile, num_cols, ini_files, ini_data, default_features)
-def print_table_header(outfile, num_cols, header_names):
+def print_table_header(outfile, num_cols, header_names, title):
""" Print the RST table header. The header names are vertical. """
print_table_divider(outfile, num_cols)
@@ -271,7 +270,7 @@ def print_table_header(outfile, num_cols, header_names):
for name in header_names:
line += ' ' + name[0]
- print_table_row(outfile, 'Feature', line)
+ print_table_row(outfile, title, line)
for i in range(1, 10):
line = ''
@@ -300,7 +299,7 @@ def print_table_body(outfile, num_cols, ini_files, ini_data, default_features):
def print_table_row(outfile, feature, line):
""" Print a single row of the table with fixed formatting. """
line = line.rstrip()
- print(' {:<20}{}'.format(feature, line), file=outfile)
+ print(' {:<25}{}'.format(feature, line), file=outfile)
def print_table_divider(outfile, num_cols):
@@ -309,14 +308,22 @@ def print_table_divider(outfile, num_cols):
column_dividers = ['='] * num_cols
line += ' '.join(column_dividers)
- feature = '=' * 20
+ feature = '=' * 25
print_table_row(outfile, feature, line)
def setup(app):
table_file = dirname(__file__) + '/nics/overview_table.txt'
- generate_nic_overview_table(table_file)
+ generate_overview_table(table_file, 'Features', 'Features availability in networking drivers', 'Feature')
+ table_file = dirname(__file__) + '/cryptodevs/overview_feature_table.txt'
+ generate_overview_table(table_file, 'Features', 'Features availability in crypto drivers', 'Feature')
+ table_file = dirname(__file__) + '/cryptodevs/overview_cipher_algo_table.txt'
+ generate_overview_table(table_file, 'Cipher', 'Cipher algorithms in crypto drivers', 'Cipher algorithm')
+ table_file = dirname(__file__) + '/cryptodevs/overview_auth_algo_table.txt'
+ generate_overview_table(table_file, 'Auth', 'Authentication algorithms in crypto drivers', 'Authentication algorithm')
+ table_file = dirname(__file__) + '/cryptodevs/overview_aead_algo_table.txt'
+ generate_overview_table(table_file, 'AEAD', 'AEAD algorithms in crypto drivers', 'AEAD algorithm')
if LooseVersion(sphinx_version) < LooseVersion('1.3.1'):
print('Upgrade sphinx to version >= 1.3.1 for '
diff --git a/doc/guides/cryptodevs/features/aesni_gcm.ini b/doc/guides/cryptodevs/features/aesni_gcm.ini
new file mode 100644
index 0000000..5d9e119
--- /dev/null
+++ b/doc/guides/cryptodevs/features/aesni_gcm.ini
@@ -0,0 +1,27 @@
+;
+; Supported features of the 'aesni_gcm' crypto driver.
+;
+; Refer to default.ini for the full list of available PMD features.
+;
+[Features]
+Symmetric crypto = Y
+Sym operation chaining = Y
+CPU AESNI = Y
+
+;
+; Supported crypto algorithms of the 'aesni_gcm' crypto driver.
+;
+[Cipher]
+
+;
+; Supported authentication algorithms of the 'aesni_gcm' crypto driver.
+;
+[Auth]
+AES GMAC = Y
+
+;
+; Supported AEAD algorithms of the 'aesni_gcm' crypto driver.
+;
+[AEAD]
+AES GCM (128) = Y
+AES GCM (256) = Y
diff --git a/doc/guides/cryptodevs/features/aesni_mb.ini b/doc/guides/cryptodevs/features/aesni_mb.ini
new file mode 100644
index 0000000..c4a261d
--- /dev/null
+++ b/doc/guides/cryptodevs/features/aesni_mb.ini
@@ -0,0 +1,41 @@
+;
+; Supported features of the 'aesni_mb' crypto driver.
+;
+; Refer to default.ini for the full list of available PMD features.
+;
+[Features]
+Symmetric crypto = Y
+Sym operation chaining = Y
+CPU SSE = Y
+CPU AVX = Y
+CPU AVX2 = Y
+CPU AVX512 = Y
+CPU AESNI = Y
+
+;
+; Supported crypto algorithms of the 'aesni_mb' crypto driver.
+;
+[Cipher]
+AES CBC (128) = Y
+AES CBC (192) = Y
+AES CBC (256) = Y
+AES CTR (128) = Y
+AES CTR (192) = Y
+AES CTR (256) = Y
+
+;
+; Supported authentication algorithms of the 'aesni_mb' crypto driver.
+;
+[Auth]
+MD5 HMAC = Y
+SHA1 HMAC = Y
+SHA224 HMAC = Y
+SHA256 HMAC = Y
+SHA384 HMAC = Y
+SHA512 HMAC = Y
+AES XCBC = Y
+
+;
+; Supported AEAD algorithms of the 'aesni_mb' crypto driver.
+;
+[AEAD]
diff --git a/doc/guides/cryptodevs/features/armv8.ini b/doc/guides/cryptodevs/features/armv8.ini
new file mode 100644
index 0000000..1e10477
--- /dev/null
+++ b/doc/guides/cryptodevs/features/armv8.ini
@@ -0,0 +1,28 @@
+;
+; Supported features of the 'armv8' crypto driver.
+;
+; Refer to default.ini for the full list of available PMD features.
+;
+[Features]
+Symmetric crypto = Y
+Sym operation chaining = Y
+CPU NEON = Y
+CPU ARM CE = Y
+
+;
+; Supported crypto algorithms of the 'armv8' crypto driver.
+;
+[Cipher]
+AES CBC (128) = Y
+
+;
+; Supported authentication algorithms of the 'armv8' crypto driver.
+;
+[Auth]
+SHA1 HMAC = Y
+SHA256 HMAC = Y
+
+;
+; Supported AEAD algorithms of the 'armv8' crypto driver.
+;
+[AEAD]
diff --git a/doc/guides/cryptodevs/features/default.ini b/doc/guides/cryptodevs/features/default.ini
new file mode 100644
index 0000000..3ce14f1
--- /dev/null
+++ b/doc/guides/cryptodevs/features/default.ini
@@ -0,0 +1,70 @@
+;
+; Features of a default crypto driver.
+;
+; This file defines the features that are valid for inclusion in
+; the other driver files and also the order that they appear in
+; the features table in the documentation.
+;
+[Features]
+Symmetric crypto =
+Asymmetric crypto =
+Sym operation chaining =
+HW Accelerated =
+CPU SSE =
+CPU AVX =
+CPU AVX2 =
+CPU AVX512 =
+CPU AESNI =
+CPU NEON =
+CPU ARM CE =
+
+;
+; Supported crypto algorithms of a default crypto driver.
+;
+[Cipher]
+NULL =
+AES CBC (128) =
+AES CBC (192) =
+AES CBC (256) =
+AES CTR (128) =
+AES CTR (192) =
+AES CTR (256) =
+AES DOCSIS BPI =
+3DES CBC =
+3DES CTR =
+DES CBC =
+DES DOCSIS BPI =
+SNOW3G UEA2 =
+KASUMI F8 =
+ZUC EEA3 =
+
+;
+; Supported authentication algorithms of a default crypto driver.
+;
+[Auth]
+NULL =
+MD5 =
+MD5 HMAC =
+SHA1 =
+SHA1 HMAC =
+SHA224 =
+SHA224 HMAC =
+SHA256 =
+SHA256 HMAC =
+SHA384 =
+SHA384 HMAC =
+SHA512 =
+SHA512 HMAC =
+AES XCBC =
+AES GMAC =
+SNOW3G UIA2 =
+KASUMI F9 =
+ZUC EIA3 =
+
+;
+; Supported AEAD algorithms of a default crypto driver.
+;
+[AEAD]
+AES GCM (128) =
+AES GCM (192) =
+AES GCM (256) =
diff --git a/doc/guides/cryptodevs/features/kasumi.ini b/doc/guides/cryptodevs/features/kasumi.ini
new file mode 100644
index 0000000..0e138f5
--- /dev/null
+++ b/doc/guides/cryptodevs/features/kasumi.ini
@@ -0,0 +1,24 @@
+;
+; Supported features of the 'kasumi' crypto driver.
+;
+; Refer to default.ini for the full list of available PMD features.
+;
+[Features]
+Symmetric crypto = Y
+Sym operation chaining = Y
+
+;
+; Supported crypto algorithms of the 'kasumi' crypto driver.
+;
+[Cipher]
+KASUMI F8 = Y
+;
+; Supported authentication algorithms of the 'kasumi' crypto driver.
+;
+[Auth]
+KASUMI F9 = Y
+
+;
+; Supported AEAD algorithms of the 'kasumi' crypto driver.
+;
+[AEAD]
diff --git a/doc/guides/cryptodevs/features/null.ini b/doc/guides/cryptodevs/features/null.ini
new file mode 100644
index 0000000..523c453
--- /dev/null
+++ b/doc/guides/cryptodevs/features/null.ini
@@ -0,0 +1,25 @@
+;
+; Supported features of the 'null' crypto driver.
+;
+; Refer to default.ini for the full list of available PMD features.
+;
+[Features]
+Symmetric crypto = Y
+Sym operation chaining = Y
+
+;
+; Supported crypto algorithms of the 'null' crypto driver.
+;
+[Cipher]
+NULL = Y
+
+;
+; Supported authentication algorithms of the 'null' crypto driver.
+;
+[Auth]
+NULL = Y
+
+;
+; Supported AEAD algorithms of the 'null' crypto driver.
+;
+[AEAD]
diff --git a/doc/guides/cryptodevs/features/openssl.ini b/doc/guides/cryptodevs/features/openssl.ini
new file mode 100644
index 0000000..189b71b
--- /dev/null
+++ b/doc/guides/cryptodevs/features/openssl.ini
@@ -0,0 +1,47 @@
+;
+; Supported features of the 'openssl' crypto driver.
+;
+; Refer to default.ini for the full list of available PMD features.
+;
+[Features]
+Symmetric crypto = Y
+Sym operation chaining = Y
+
+;
+; Supported crypto algorithms of the 'openssl' crypto driver.
+;
+[Cipher]
+AES CBC (128) = Y
+AES CBC (192) = Y
+AES CBC (256) = Y
+AES CTR (128) = Y
+AES CTR (192) = Y
+AES CTR (256) = Y
+3DES CBC = Y
+3DES CTR = Y
+
+;
+; Supported authentication algorithms of the 'openssl' crypto driver.
+;
+[Auth]
+MD5 = Y
+MD5 HMAC = Y
+SHA1 = Y
+SHA1 HMAC = Y
+SHA224 = Y
+SHA224 HMAC = Y
+SHA256 = Y
+SHA256 HMAC = Y
+SHA384 = Y
+SHA384 HMAC = Y
+SHA512 = Y
+SHA512 HMAC = Y
+AES GMAC = Y
+
+;
+; Supported AEAD algorithms of the 'openssl' crypto driver.
+;
+[AEAD]
+AES GCM (128) = Y
+AES GCM (192) = Y
+AES GCM (256) = Y
diff --git a/doc/guides/cryptodevs/features/qat.ini b/doc/guides/cryptodevs/features/qat.ini
new file mode 100644
index 0000000..0af9983
--- /dev/null
+++ b/doc/guides/cryptodevs/features/qat.ini
@@ -0,0 +1,49 @@
+;
+; Supported features of the 'openssl' crypto driver.
+;
+; Refer to default.ini for the full list of available PMD features.
+;
+[Features]
+Symmetric crypto = Y
+Sym operation chaining = Y
+HW Accelerated = Y
+
+;
+; Supported crypto algorithms of the 'openssl' crypto driver.
+;
+[Cipher]
+NULL = Y
+AES CBC (128) = Y
+AES CBC (192) = Y
+AES CBC (256) = Y
+AES CTR (128) = Y
+AES CTR (192) = Y
+AES CTR (256) = Y
+3DES CBC = Y
+3DES CTR = Y
+DES CBC = Y
+SNOW3G UEA2 = Y
+KASUMI F8 = Y
+
+;
+; Supported authentication algorithms of the 'openssl' crypto driver.
+;
+[Auth]
+NULL = Y
+MD5 HMAC = Y
+SHA1 HMAC = Y
+SHA224 HMAC = Y
+SHA256 HMAC = Y
+SHA384 HMAC = Y
+SHA512 HMAC = Y
+AES GMAC = Y
+SNOW3G UIA2 = Y
+KASUMI F9 = Y
+
+;
+; Supported AEAD algorithms of the 'openssl' crypto driver.
+;
+[AEAD]
+AES GCM (128) = Y
+AES GCM (192) = Y
+AES GCM (256) = Y
diff --git a/doc/guides/cryptodevs/features/snow3g.ini b/doc/guides/cryptodevs/features/snow3g.ini
new file mode 100644
index 0000000..2771361
--- /dev/null
+++ b/doc/guides/cryptodevs/features/snow3g.ini
@@ -0,0 +1,24 @@
+;
+; Supported features of the 'snow3g' crypto driver.
+;
+; Refer to default.ini for the full list of available PMD features.
+;
+[Features]
+Symmetric crypto = Y
+Sym operation chaining = Y
+
+;
+; Supported crypto algorithms of the 'snow3g' crypto driver.
+;
+[Cipher]
+SNOW3G UEA2 = Y
+;
+; Supported authentication algorithms of the 'snow3g' crypto driver.
+;
+[Auth]
+SNOW3G UIA2 = Y
+
+;
+; Supported AEAD algorithms of the 'snow3g' crypto driver.
+;
+[AEAD]
diff --git a/doc/guides/cryptodevs/features/zuc.ini b/doc/guides/cryptodevs/features/zuc.ini
new file mode 100644
index 0000000..5bb02af
--- /dev/null
+++ b/doc/guides/cryptodevs/features/zuc.ini
@@ -0,0 +1,24 @@
+;
+; Supported features of the 'zuc' crypto driver.
+;
+; Refer to default.ini for the full list of available PMD features.
+;
+[Features]
+Symmetric crypto = Y
+Sym operation chaining = Y
+
+;
+; Supported crypto algorithms of the 'zuc' crypto driver.
+;
+[Cipher]
+ZUC EEA3 = Y
+;
+; Supported authentication algorithms of the 'zuc' crypto driver.
+;
+[Auth]
+ZUC EIA3 = Y
+
+;
+; Supported AEAD algorithms of the 'zuc' crypto driver.
+;
+[AEAD]
diff --git a/doc/guides/cryptodevs/overview.rst b/doc/guides/cryptodevs/overview.rst
index 4bbfadb..868eb42 100644
--- a/doc/guides/cryptodevs/overview.rst
+++ b/doc/guides/cryptodevs/overview.rst
@@ -1,5 +1,5 @@
.. BSD LICENSE
- Copyright(c) 2016 Intel Corporation. All rights reserved.
+ Copyright(c) 2016-2017 Intel Corporation. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
@@ -11,7 +11,7 @@
notice, this list of conditions and the following disclaimer in
the documentation and/or other materials provided with the
distribution.
- * Neither the name of Intel Corporation nor the names of its
+ * Neither the name of 6WIND S.A. nor the names of its
contributors may be used to endorse or promote products derived
from this software without specific prior written permission.
@@ -28,75 +28,244 @@
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Crypto Device Supported Functionality Matrices
-----------------------------------------------
+==============================================
Supported Feature Flags
+-----------------------
-.. csv-table::
- :header: "Feature Flags", "qat", "null", "aesni_mb", "aesni_gcm", "snow3g", "kasumi", "zuc", "armv8"
- :stub-columns: 1
-
- "RTE_CRYPTODEV_FF_SYMMETRIC_CRYPTO",x,x,x,x,x,x,x,x
- "RTE_CRYPTODEV_FF_ASYMMETRIC_CRYPTO",,,,,,,,
- "RTE_CRYPTODEV_FF_SYM_OPERATION_CHAINING",x,x,x,x,x,x,x,x
- "RTE_CRYPTODEV_FF_CPU_SSE",,,x,,x,x,,
- "RTE_CRYPTODEV_FF_CPU_AVX",,,x,,x,x,,
- "RTE_CRYPTODEV_FF_CPU_AVX2",,,x,,,,,
- "RTE_CRYPTODEV_FF_CPU_AVX512",,,x,,,,,
- "RTE_CRYPTODEV_FF_CPU_AESNI",,,x,x,,,,
- "RTE_CRYPTODEV_FF_HW_ACCELERATED",x,,,,,,,
- "RTE_CRYPTODEV_FF_CPU_NEON",,,,,,,,x
- "RTE_CRYPTODEV_FF_CPU_ARM_CE",,,,,,,,x
+.. _table_crypto_pmd_features:
+
+.. raw:: html
+
+ <style>
+ .wy-nav-content {
+ opacity: .99;
+ }
+ table#id1 {
+ cursor: default;
+ overflow: hidden;
+ }
+ table#id1 th, table#id1 td {
+ text-align: center;
+ }
+ table#id1 th {
+ font-size: 80%;
+ white-space: pre-wrap;
+ vertical-align: top;
+ padding: 2px;
+ }
+ table#id1 th:first-child {
+ vertical-align: bottom;
+ }
+ table#id1 td {
+ font-size: 70%;
+ padding: 1px;
+ }
+ table#id1 td:first-child {
+ padding-left: 1em;
+ text-align: left;
+ }
+ table#id1 tr:nth-child(2n-1) td {
+ background-color: rgba(210, 210, 210, 0.2);
+ }
+ table#id1 th:not(:first-child):hover,
+ table#id1 td:not(:first-child):hover {
+ position: relative;
+ }
+ table#id1 th:not(:first-child):hover::after,
+ table#id1 td:not(:first-child):hover::after {
+ content: '';
+ height: 6000px;
+ top: -3000px;
+ width: 100%;
+ left: 0;
+ position: absolute;
+ z-index: -1;
+ background-color: #ffb;
+ }
+ table#id1 tr:hover td {
+ background-color: #ffb;
+ }
+ </style>
+
+.. include:: overview_feature_table.txt
Supported Cipher Algorithms
+---------------------------
+
+.. _table_crypto_pmd_cipher_algos:
+
+.. raw:: html
+
+ <style>
+ .wy-nav-content {
+ opacity: .99;
+ }
+ table#id2 {
+ cursor: default;
+ overflow: hidden;
+ }
+ table#id2 th, table#id2 td {
+ text-align: center;
+ }
+ table#id2 th {
+ font-size: 80%;
+ white-space: pre-wrap;
+ vertical-align: top;
+ padding: 2px;
+ }
+ table#id2 th:first-child {
+ vertical-align: bottom;
+ }
+ table#id2 td {
+ font-size: 70%;
+ padding: 1px;
+ }
+ table#id2 td:first-child {
+ padding-left: 1em;
+ text-align: left;
+ }
+ table#id2 tr:nth-child(2n-1) td {
+ background-color: rgba(210, 210, 210, 0.2);
+ }
+ table#id2 th:not(:first-child):hover,
+ table#id2 td:not(:first-child):hover {
+ position: relative;
+ }
+ table#id2 th:not(:first-child):hover::after,
+ table#id2 td:not(:first-child):hover::after {
+ content: '';
+ height: 6000px;
+ top: -3000px;
+ width: 100%;
+ left: 0;
+ position: absolute;
+ z-index: -1;
+ background-color: #ffb;
+ }
+ table#id2 tr:hover td {
+ background-color: #ffb;
+ }
+ </style>
-.. csv-table::
- :header: "Cipher Algorithms", "qat", "null", "aesni_mb", "aesni_gcm", "snow3g", "kasumi", "zuc", "armv8"
- :stub-columns: 1
-
- "NULL",,x,,,,,,
- "AES_CBC_128",x,,x,,,,,x
- "AES_CBC_192",x,,x,,,,,
- "AES_CBC_256",x,,x,,,,,
- "AES_CTR_128",x,,x,,,,,
- "AES_CTR_192",x,,x,,,,,
- "AES_CTR_256",x,,x,,,,,
- "DES_CBC",x,,,,,,,
- "SNOW3G_UEA2",x,,,,x,,,
- "KASUMI_F8",,,,,,x,,
- "ZUC_EEA3",,,,,,,x,
+.. include:: overview_cipher_algo_table.txt
Supported Authentication Algorithms
+-----------------------------------
-.. csv-table::
- :header: "Cipher Algorithms", "qat", "null", "aesni_mb", "aesni_gcm", "snow3g", "kasumi", "zuc", "armv8"
- :stub-columns: 1
-
- "NONE",,x,,,,,,
- "MD5",,,,,,,,
- "MD5_HMAC",,,x,,,,,
- "SHA1",,,,,,,,
- "SHA1_HMAC",x,,x,,,,,x
- "SHA224",,,,,,,,
- "SHA224_HMAC",,,x,,,,,
- "SHA256",,,,,,,,
- "SHA256_HMAC",x,,x,,,,,x
- "SHA384",,,,,,,,
- "SHA384_HMAC",,,x,,,,,
- "SHA512",,,,,,,,
- "SHA512_HMAC",x,,x,,,,,
- "AES_XCBC",x,,x,,,,,
- "AES_GMAC",,,,x,,,,
- "SNOW3G_UIA2",x,,,,x,,,
- "KASUMI_F9",,,,,,x,,
- "ZUC_EIA3",,,,,,,x,
+.. _table_crypto_pmd_auth_algos:
+
+.. raw:: html
+
+ <style>
+ .wy-nav-content {
+ opacity: .99;
+ }
+ table#id3 {
+ cursor: default;
+ overflow: hidden;
+ }
+ table#id3 th, table#id3 td {
+ text-align: center;
+ }
+ table#id3 th {
+ font-size: 80%;
+ white-space: pre-wrap;
+ vertical-align: top;
+ padding: 2px;
+ }
+ table#id3 th:first-child {
+ vertical-align: bottom;
+ }
+ table#id3 td {
+ font-size: 70%;
+ padding: 1px;
+ }
+ table#id3 td:first-child {
+ padding-left: 1em;
+ text-align: left;
+ }
+ table#id3 tr:nth-child(2n-1) td {
+ background-color: rgba(210, 210, 210, 0.2);
+ }
+ table#id3 th:not(:first-child):hover,
+ table#id3 td:not(:first-child):hover {
+ position: relative;
+ }
+ table#id3 th:not(:first-child):hover::after,
+ table#id3 td:not(:first-child):hover::after {
+ content: '';
+ height: 6000px;
+ top: -3000px;
+ width: 100%;
+ left: 0;
+ position: absolute;
+ z-index: -1;
+ background-color: #ffb;
+ }
+ table#id3 tr:hover td {
+ background-color: #ffb;
+ }
+ </style>
+
+.. include:: overview_auth_algo_table.txt
Supported AEAD Algorithms
+-------------------------
+
+.. _table_crypto_pmd_aead_algos:
+
+.. raw:: html
-.. csv-table::
- :header: "AEAD Algorithms", "qat", "null", "aesni_mb", "aesni_gcm", "snow3g", "kasumi", "zuc", "armv8"
- :stub-columns: 1
+ <style>
+ .wy-nav-content {
+ opacity: .99;
+ }
+ table#id4 {
+ cursor: default;
+ overflow: hidden;
+ }
+ table#id4 th, table#id4 td {
+ text-align: center;
+ }
+ table#id4 th {
+ font-size: 80%;
+ white-space: pre-wrap;
+ vertical-align: top;
+ padding: 2px;
+ }
+ table#id4 th:first-child {
+ vertical-align: bottom;
+ }
+ table#id4 td {
+ font-size: 70%;
+ padding: 1px;
+ }
+ table#id4 td:first-child {
+ padding-left: 1em;
+ text-align: left;
+ }
+ table#id4 tr:nth-child(2n-1) td {
+ background-color: rgba(210, 210, 210, 0.2);
+ }
+ table#id4 th:not(:first-child):hover,
+ table#id4 td:not(:first-child):hover {
+ position: relative;
+ }
+ table#id4 th:not(:first-child):hover::after,
+ table#id4 td:not(:first-child):hover::after {
+ content: '';
+ height: 6000px;
+ top: -3000px;
+ width: 100%;
+ left: 0;
+ position: absolute;
+ z-index: -1;
+ background-color: #ffb;
+ }
+ table#id4 tr:hover td {
+ background-color: #ffb;
+ }
+ </style>
- "AES_GCM_128",x,,,x,,,,
- "AES_GCM_192",x,,,,,,,
- "AES_GCM_256",x,,,x,,,,
+.. include:: overview_aead_algo_table.txt
--
2.7.4
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [dpdk-dev] [PATCH] doc: reformat crypto drivers overview
2017-03-22 16:15 [dpdk-dev] [PATCH] doc: reformat crypto drivers overview Pablo de Lara
@ 2017-03-23 8:41 ` Mcnamara, John
2017-03-23 11:38 ` [dpdk-dev] [PATCH v2] " Pablo de Lara
1 sibling, 0 replies; 4+ messages in thread
From: Mcnamara, John @ 2017-03-23 8:41 UTC (permalink / raw)
To: De Lara Guarch, Pablo; +Cc: Trahe, Fiona, dev
> -----Original Message-----
> From: De Lara Guarch, Pablo
> Sent: Wednesday, March 22, 2017 4:15 PM
> To: Mcnamara, John <john.mcnamara@intel.com>
> Cc: Trahe, Fiona <fiona.trahe@intel.com>; dev@dpdk.org; De Lara Guarch,
> Pablo <pablo.de.lara.guarch@intel.com>
> Subject: [PATCH] doc: reformat crypto drivers overview
>
> Follow the approach in the network devices overview, for the feature
> matrix, so it improves readibility and maintainability.
>
There are pep8 warnings that should be fixed. Mainly for long lines:
$ pep8 doc/guides/conf.py
doc/guides/conf.py:318:80: E501 line too long (109 > 79 characters)
doc/guides/conf.py:320:80: E501 line too long (105 > 79 characters)
doc/guides/conf.py:321:80: E501 line too long (81 > 79 characters)
doc/guides/conf.py:322:80: E501 line too long (108 > 79 characters)
doc/guides/conf.py:324:80: E501 line too long (122 > 79 characters)
doc/guides/conf.py:326:80: E501 line too long (102 > 79 characters)
Apart from that it is a good change and a nice generalization of the
table building approach.
With the above fixed:
Acked-by: John McNamara <john.mcnamara@intel.com>
^ permalink raw reply [flat|nested] 4+ messages in thread
* [dpdk-dev] [PATCH v2] doc: reformat crypto drivers overview
2017-03-22 16:15 [dpdk-dev] [PATCH] doc: reformat crypto drivers overview Pablo de Lara
2017-03-23 8:41 ` Mcnamara, John
@ 2017-03-23 11:38 ` Pablo de Lara
2017-03-23 15:35 ` De Lara Guarch, Pablo
1 sibling, 1 reply; 4+ messages in thread
From: Pablo de Lara @ 2017-03-23 11:38 UTC (permalink / raw)
To: john.mcnamara; +Cc: dev, Pablo de Lara
Follow the approach in the network devices overview,
for the feature matrix, so it improves readibility
and maintainability.
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
---
Changes in v2:
- Added missing algorithms
- Fixed PEP8 errors
.gitignore | 4 +
doc/guides/conf.py | 62 ++++--
doc/guides/cryptodevs/features/aesni_gcm.ini | 27 +++
doc/guides/cryptodevs/features/aesni_mb.ini | 41 ++++
doc/guides/cryptodevs/features/armv8.ini | 28 +++
doc/guides/cryptodevs/features/default.ini | 70 +++++++
doc/guides/cryptodevs/features/kasumi.ini | 24 +++
doc/guides/cryptodevs/features/null.ini | 25 +++
doc/guides/cryptodevs/features/openssl.ini | 47 +++++
doc/guides/cryptodevs/features/qat.ini | 50 +++++
doc/guides/cryptodevs/features/snow3g.ini | 24 +++
doc/guides/cryptodevs/features/zuc.ini | 24 +++
doc/guides/cryptodevs/overview.rst | 291 +++++++++++++++++++++------
13 files changed, 636 insertions(+), 81 deletions(-)
create mode 100644 doc/guides/cryptodevs/features/aesni_gcm.ini
create mode 100644 doc/guides/cryptodevs/features/aesni_mb.ini
create mode 100644 doc/guides/cryptodevs/features/armv8.ini
create mode 100644 doc/guides/cryptodevs/features/default.ini
create mode 100644 doc/guides/cryptodevs/features/kasumi.ini
create mode 100644 doc/guides/cryptodevs/features/null.ini
create mode 100644 doc/guides/cryptodevs/features/openssl.ini
create mode 100644 doc/guides/cryptodevs/features/qat.ini
create mode 100644 doc/guides/cryptodevs/features/snow3g.ini
create mode 100644 doc/guides/cryptodevs/features/zuc.ini
diff --git a/.gitignore b/.gitignore
index a722abe..c733967 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,5 @@
doc/guides/nics/overview_table.txt
+doc/guides/cryptodevs/overview_feature_table.txt
+doc/guides/cryptodevs/overview_cipher_table.txt
+doc/guides/cryptodevs/overview_auth_table.txt
+doc/guides/cryptodevs/overview_aead_table.txt
diff --git a/doc/guides/conf.py b/doc/guides/conf.py
index 34c62de..a7f6c99 100644
--- a/doc/guides/conf.py
+++ b/doc/guides/conf.py
@@ -175,25 +175,24 @@ def process_numref(app, doctree, from_docname):
node.replace_self(newnode)
-def generate_nic_overview_table(output_filename):
+def generate_overview_table(output_filename, section, table_name, title):
"""
- Function to generate the NIC Overview Table from the ini files that define
- the features for each NIC.
+ Function to generate the Overview Table from the ini files that define
+ the features for each driver.
The default features for the table and their order is defined by the
'default.ini' file.
"""
- # Default worning string.
- warning = 'Warning generate_nic_overview_table()'
+ # Default warning string.
+ warning = 'Warning generate_crypto_overview_table()'
# Get the default features and order from the 'default.ini' file.
ini_path = path_join(dirname(output_filename), 'features')
config = configparser.ConfigParser()
config.optionxform = str
config.read(path_join(ini_path, 'default.ini'))
- default_section = 'Features'
- default_features = config.items(default_section)
+ default_features = config.items(section)
# Create a dict of the valid features to validate the other ini files.
valid_features = {}
@@ -203,7 +202,7 @@ def generate_nic_overview_table(output_filename):
valid_features[key] = ' '
max_feature_length = max(max_feature_length, len(key))
- # Get a list of NIC ini files, excluding 'default.ini'.
+ # Get a list of driver ini files, excluding 'default.ini'.
ini_files = [basename(file) for file in listdir(ini_path)
if file.endswith('.ini') and file != 'default.ini']
ini_files.sort()
@@ -223,7 +222,7 @@ def generate_nic_overview_table(output_filename):
header_names.append(name)
- # Create a dict of the defined features for each NIC from the ini files.
+ # Create a dict of the defined features for each crypto from the ini files.
ini_data = {}
for ini_filename in ini_files:
config = configparser.ConfigParser()
@@ -234,14 +233,14 @@ def generate_nic_overview_table(output_filename):
ini_data[ini_filename] = valid_features.copy()
# Check for a valid ini section.
- if not config.has_section(default_section):
+ if not config.has_section(section):
print("{}: File '{}' has no [{}] secton".format(warning,
ini_filename,
- default_section))
+ section))
continue
# Check for valid features names.
- for name, value in config.items(default_section):
+ for name, value in config.items(section):
if name not in valid_features:
print("{}: Unknown feature '{}' in '{}'".format(warning,
name,
@@ -252,18 +251,18 @@ def generate_nic_overview_table(output_filename):
# Get the first letter only.
ini_data[ini_filename][name] = value[0]
- # Print out the RST NIC Overview table from the ini file data.
+ # Print out the RST Crypto Overview table from the ini file data.
outfile = open(output_filename, 'w')
num_cols = len(header_names)
- print('.. table:: Features availability in networking drivers\n',
+ print('.. table:: ' + table_name + '\n',
file=outfile)
- print_table_header(outfile, num_cols, header_names)
+ print_table_header(outfile, num_cols, header_names, title)
print_table_body(outfile, num_cols, ini_files, ini_data, default_features)
-def print_table_header(outfile, num_cols, header_names):
+def print_table_header(outfile, num_cols, header_names, title):
""" Print the RST table header. The header names are vertical. """
print_table_divider(outfile, num_cols)
@@ -271,7 +270,7 @@ def print_table_header(outfile, num_cols, header_names):
for name in header_names:
line += ' ' + name[0]
- print_table_row(outfile, 'Feature', line)
+ print_table_row(outfile, title, line)
for i in range(1, 10):
line = ''
@@ -300,7 +299,7 @@ def print_table_body(outfile, num_cols, ini_files, ini_data, default_features):
def print_table_row(outfile, feature, line):
""" Print a single row of the table with fixed formatting. """
line = line.rstrip()
- print(' {:<20}{}'.format(feature, line), file=outfile)
+ print(' {:<25}{}'.format(feature, line), file=outfile)
def print_table_divider(outfile, num_cols):
@@ -309,14 +308,37 @@ def print_table_divider(outfile, num_cols):
column_dividers = ['='] * num_cols
line += ' '.join(column_dividers)
- feature = '=' * 20
+ feature = '=' * 25
print_table_row(outfile, feature, line)
def setup(app):
table_file = dirname(__file__) + '/nics/overview_table.txt'
- generate_nic_overview_table(table_file)
+ generate_overview_table(table_file,
+ 'Features',
+ 'Features availability in networking drivers',
+ 'Feature')
+ table_file = dirname(__file__) + '/cryptodevs/overview_feature_table.txt'
+ generate_overview_table(table_file,
+ 'Features',
+ 'Features availability in crypto drivers',
+ 'Feature')
+ table_file = dirname(__file__) + '/cryptodevs/overview_cipher_table.txt'
+ generate_overview_table(table_file,
+ 'Cipher',
+ 'Cipher algorithms in crypto drivers',
+ 'Cipher algorithm')
+ table_file = dirname(__file__) + '/cryptodevs/overview_auth_table.txt'
+ generate_overview_table(table_file,
+ 'Auth',
+ 'Authentication algorithms in crypto drivers',
+ 'Authentication algorithm')
+ table_file = dirname(__file__) + '/cryptodevs/overview_aead_table.txt'
+ generate_overview_table(table_file,
+ 'AEAD',
+ 'AEAD algorithms in crypto drivers',
+ 'AEAD algorithm')
if LooseVersion(sphinx_version) < LooseVersion('1.3.1'):
print('Upgrade sphinx to version >= 1.3.1 for '
diff --git a/doc/guides/cryptodevs/features/aesni_gcm.ini b/doc/guides/cryptodevs/features/aesni_gcm.ini
new file mode 100644
index 0000000..5d9e119
--- /dev/null
+++ b/doc/guides/cryptodevs/features/aesni_gcm.ini
@@ -0,0 +1,27 @@
+;
+; Supported features of the 'aesni_gcm' crypto driver.
+;
+; Refer to default.ini for the full list of available PMD features.
+;
+[Features]
+Symmetric crypto = Y
+Sym operation chaining = Y
+CPU AESNI = Y
+
+;
+; Supported crypto algorithms of the 'aesni_gcm' crypto driver.
+;
+[Cipher]
+
+;
+; Supported authentication algorithms of the 'aesni_gcm' crypto driver.
+;
+[Auth]
+AES GMAC = Y
+
+;
+; Supported AEAD algorithms of the 'aesni_gcm' crypto driver.
+;
+[AEAD]
+AES GCM (128) = Y
+AES GCM (256) = Y
diff --git a/doc/guides/cryptodevs/features/aesni_mb.ini b/doc/guides/cryptodevs/features/aesni_mb.ini
new file mode 100644
index 0000000..0bc202c
--- /dev/null
+++ b/doc/guides/cryptodevs/features/aesni_mb.ini
@@ -0,0 +1,41 @@
+;
+; Supported features of the 'aesni_mb' crypto driver.
+;
+; Refer to default.ini for the full list of available PMD features.
+;
+[Features]
+Symmetric crypto = Y
+Sym operation chaining = Y
+CPU SSE = Y
+CPU AVX = Y
+CPU AVX2 = Y
+CPU AVX512 = Y
+CPU AESNI = Y
+
+;
+; Supported crypto algorithms of the 'aesni_mb' crypto driver.
+;
+[Cipher]
+AES CBC (128) = Y
+AES CBC (192) = Y
+AES CBC (256) = Y
+AES CTR (128) = Y
+AES CTR (192) = Y
+AES CTR (256) = Y
+
+;
+; Supported authentication algorithms of the 'aesni_mb' crypto driver.
+;
+[Auth]
+MD5 HMAC = Y
+SHA1 HMAC = Y
+SHA224 HMAC = Y
+SHA256 HMAC = Y
+SHA384 HMAC = Y
+SHA512 HMAC = Y
+AES XCBC MAC = Y
+
+;
+; Supported AEAD algorithms of the 'aesni_mb' crypto driver.
+;
+[AEAD]
diff --git a/doc/guides/cryptodevs/features/armv8.ini b/doc/guides/cryptodevs/features/armv8.ini
new file mode 100644
index 0000000..1e10477
--- /dev/null
+++ b/doc/guides/cryptodevs/features/armv8.ini
@@ -0,0 +1,28 @@
+;
+; Supported features of the 'armv8' crypto driver.
+;
+; Refer to default.ini for the full list of available PMD features.
+;
+[Features]
+Symmetric crypto = Y
+Sym operation chaining = Y
+CPU NEON = Y
+CPU ARM CE = Y
+
+;
+; Supported crypto algorithms of the 'armv8' crypto driver.
+;
+[Cipher]
+AES CBC (128) = Y
+
+;
+; Supported authentication algorithms of the 'armv8' crypto driver.
+;
+[Auth]
+SHA1 HMAC = Y
+SHA256 HMAC = Y
+
+;
+; Supported AEAD algorithms of the 'armv8' crypto driver.
+;
+[AEAD]
diff --git a/doc/guides/cryptodevs/features/default.ini b/doc/guides/cryptodevs/features/default.ini
new file mode 100644
index 0000000..0926887
--- /dev/null
+++ b/doc/guides/cryptodevs/features/default.ini
@@ -0,0 +1,70 @@
+;
+; Features of a default crypto driver.
+;
+; This file defines the features that are valid for inclusion in
+; the other driver files and also the order that they appear in
+; the features table in the documentation.
+;
+[Features]
+Symmetric crypto =
+Asymmetric crypto =
+Sym operation chaining =
+HW Accelerated =
+CPU SSE =
+CPU AVX =
+CPU AVX2 =
+CPU AVX512 =
+CPU AESNI =
+CPU NEON =
+CPU ARM CE =
+
+;
+; Supported crypto algorithms of a default crypto driver.
+;
+[Cipher]
+NULL =
+AES CBC (128) =
+AES CBC (192) =
+AES CBC (256) =
+AES CTR (128) =
+AES CTR (192) =
+AES CTR (256) =
+AES DOCSIS BPI =
+3DES CBC =
+3DES CTR =
+DES CBC =
+DES DOCSIS BPI =
+SNOW3G UEA2 =
+KASUMI F8 =
+ZUC EEA3 =
+
+;
+; Supported authentication algorithms of a default crypto driver.
+;
+[Auth]
+NULL =
+MD5 =
+MD5 HMAC =
+SHA1 =
+SHA1 HMAC =
+SHA224 =
+SHA224 HMAC =
+SHA256 =
+SHA256 HMAC =
+SHA384 =
+SHA384 HMAC =
+SHA512 =
+SHA512 HMAC =
+AES XCBC MAC =
+AES GMAC =
+SNOW3G UIA2 =
+KASUMI F9 =
+ZUC EIA3 =
+
+;
+; Supported AEAD algorithms of a default crypto driver.
+;
+[AEAD]
+AES GCM (128) =
+AES GCM (192) =
+AES GCM (256) =
diff --git a/doc/guides/cryptodevs/features/kasumi.ini b/doc/guides/cryptodevs/features/kasumi.ini
new file mode 100644
index 0000000..0e138f5
--- /dev/null
+++ b/doc/guides/cryptodevs/features/kasumi.ini
@@ -0,0 +1,24 @@
+;
+; Supported features of the 'kasumi' crypto driver.
+;
+; Refer to default.ini for the full list of available PMD features.
+;
+[Features]
+Symmetric crypto = Y
+Sym operation chaining = Y
+
+;
+; Supported crypto algorithms of the 'kasumi' crypto driver.
+;
+[Cipher]
+KASUMI F8 = Y
+;
+; Supported authentication algorithms of the 'kasumi' crypto driver.
+;
+[Auth]
+KASUMI F9 = Y
+
+;
+; Supported AEAD algorithms of the 'kasumi' crypto driver.
+;
+[AEAD]
diff --git a/doc/guides/cryptodevs/features/null.ini b/doc/guides/cryptodevs/features/null.ini
new file mode 100644
index 0000000..523c453
--- /dev/null
+++ b/doc/guides/cryptodevs/features/null.ini
@@ -0,0 +1,25 @@
+;
+; Supported features of the 'null' crypto driver.
+;
+; Refer to default.ini for the full list of available PMD features.
+;
+[Features]
+Symmetric crypto = Y
+Sym operation chaining = Y
+
+;
+; Supported crypto algorithms of the 'null' crypto driver.
+;
+[Cipher]
+NULL = Y
+
+;
+; Supported authentication algorithms of the 'null' crypto driver.
+;
+[Auth]
+NULL = Y
+
+;
+; Supported AEAD algorithms of the 'null' crypto driver.
+;
+[AEAD]
diff --git a/doc/guides/cryptodevs/features/openssl.ini b/doc/guides/cryptodevs/features/openssl.ini
new file mode 100644
index 0000000..189b71b
--- /dev/null
+++ b/doc/guides/cryptodevs/features/openssl.ini
@@ -0,0 +1,47 @@
+;
+; Supported features of the 'openssl' crypto driver.
+;
+; Refer to default.ini for the full list of available PMD features.
+;
+[Features]
+Symmetric crypto = Y
+Sym operation chaining = Y
+
+;
+; Supported crypto algorithms of the 'openssl' crypto driver.
+;
+[Cipher]
+AES CBC (128) = Y
+AES CBC (192) = Y
+AES CBC (256) = Y
+AES CTR (128) = Y
+AES CTR (192) = Y
+AES CTR (256) = Y
+3DES CBC = Y
+3DES CTR = Y
+
+;
+; Supported authentication algorithms of the 'openssl' crypto driver.
+;
+[Auth]
+MD5 = Y
+MD5 HMAC = Y
+SHA1 = Y
+SHA1 HMAC = Y
+SHA224 = Y
+SHA224 HMAC = Y
+SHA256 = Y
+SHA256 HMAC = Y
+SHA384 = Y
+SHA384 HMAC = Y
+SHA512 = Y
+SHA512 HMAC = Y
+AES GMAC = Y
+
+;
+; Supported AEAD algorithms of the 'openssl' crypto driver.
+;
+[AEAD]
+AES GCM (128) = Y
+AES GCM (192) = Y
+AES GCM (256) = Y
diff --git a/doc/guides/cryptodevs/features/qat.ini b/doc/guides/cryptodevs/features/qat.ini
new file mode 100644
index 0000000..0c9c3b6
--- /dev/null
+++ b/doc/guides/cryptodevs/features/qat.ini
@@ -0,0 +1,50 @@
+;
+; Supported features of the 'openssl' crypto driver.
+;
+; Refer to default.ini for the full list of available PMD features.
+;
+[Features]
+Symmetric crypto = Y
+Sym operation chaining = Y
+HW Accelerated = Y
+
+;
+; Supported crypto algorithms of the 'openssl' crypto driver.
+;
+[Cipher]
+NULL = Y
+AES CBC (128) = Y
+AES CBC (192) = Y
+AES CBC (256) = Y
+AES CTR (128) = Y
+AES CTR (192) = Y
+AES CTR (256) = Y
+3DES CBC = Y
+3DES CTR = Y
+DES CBC = Y
+SNOW3G UEA2 = Y
+KASUMI F8 = Y
+
+;
+; Supported authentication algorithms of the 'openssl' crypto driver.
+;
+[Auth]
+NULL = Y
+MD5 HMAC = Y
+SHA1 HMAC = Y
+SHA224 HMAC = Y
+SHA256 HMAC = Y
+SHA384 HMAC = Y
+SHA512 HMAC = Y
+AES GMAC = Y
+SNOW3G UIA2 = Y
+KASUMI F9 = Y
+AES XCBC MAC = Y
+
+;
+; Supported AEAD algorithms of the 'openssl' crypto driver.
+;
+[AEAD]
+AES GCM (128) = Y
+AES GCM (192) = Y
+AES GCM (256) = Y
diff --git a/doc/guides/cryptodevs/features/snow3g.ini b/doc/guides/cryptodevs/features/snow3g.ini
new file mode 100644
index 0000000..2771361
--- /dev/null
+++ b/doc/guides/cryptodevs/features/snow3g.ini
@@ -0,0 +1,24 @@
+;
+; Supported features of the 'snow3g' crypto driver.
+;
+; Refer to default.ini for the full list of available PMD features.
+;
+[Features]
+Symmetric crypto = Y
+Sym operation chaining = Y
+
+;
+; Supported crypto algorithms of the 'snow3g' crypto driver.
+;
+[Cipher]
+SNOW3G UEA2 = Y
+;
+; Supported authentication algorithms of the 'snow3g' crypto driver.
+;
+[Auth]
+SNOW3G UIA2 = Y
+
+;
+; Supported AEAD algorithms of the 'snow3g' crypto driver.
+;
+[AEAD]
diff --git a/doc/guides/cryptodevs/features/zuc.ini b/doc/guides/cryptodevs/features/zuc.ini
new file mode 100644
index 0000000..5bb02af
--- /dev/null
+++ b/doc/guides/cryptodevs/features/zuc.ini
@@ -0,0 +1,24 @@
+;
+; Supported features of the 'zuc' crypto driver.
+;
+; Refer to default.ini for the full list of available PMD features.
+;
+[Features]
+Symmetric crypto = Y
+Sym operation chaining = Y
+
+;
+; Supported crypto algorithms of the 'zuc' crypto driver.
+;
+[Cipher]
+ZUC EEA3 = Y
+;
+; Supported authentication algorithms of the 'zuc' crypto driver.
+;
+[Auth]
+ZUC EIA3 = Y
+
+;
+; Supported AEAD algorithms of the 'zuc' crypto driver.
+;
+[AEAD]
diff --git a/doc/guides/cryptodevs/overview.rst b/doc/guides/cryptodevs/overview.rst
index 4bbfadb..656cf18 100644
--- a/doc/guides/cryptodevs/overview.rst
+++ b/doc/guides/cryptodevs/overview.rst
@@ -1,5 +1,5 @@
.. BSD LICENSE
- Copyright(c) 2016 Intel Corporation. All rights reserved.
+ Copyright(c) 2016-2017 Intel Corporation. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
@@ -11,7 +11,7 @@
notice, this list of conditions and the following disclaimer in
the documentation and/or other materials provided with the
distribution.
- * Neither the name of Intel Corporation nor the names of its
+ * Neither the name of 6WIND S.A. nor the names of its
contributors may be used to endorse or promote products derived
from this software without specific prior written permission.
@@ -28,75 +28,244 @@
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Crypto Device Supported Functionality Matrices
-----------------------------------------------
+==============================================
Supported Feature Flags
+-----------------------
-.. csv-table::
- :header: "Feature Flags", "qat", "null", "aesni_mb", "aesni_gcm", "snow3g", "kasumi", "zuc", "armv8"
- :stub-columns: 1
-
- "RTE_CRYPTODEV_FF_SYMMETRIC_CRYPTO",x,x,x,x,x,x,x,x
- "RTE_CRYPTODEV_FF_ASYMMETRIC_CRYPTO",,,,,,,,
- "RTE_CRYPTODEV_FF_SYM_OPERATION_CHAINING",x,x,x,x,x,x,x,x
- "RTE_CRYPTODEV_FF_CPU_SSE",,,x,,x,x,,
- "RTE_CRYPTODEV_FF_CPU_AVX",,,x,,x,x,,
- "RTE_CRYPTODEV_FF_CPU_AVX2",,,x,,,,,
- "RTE_CRYPTODEV_FF_CPU_AVX512",,,x,,,,,
- "RTE_CRYPTODEV_FF_CPU_AESNI",,,x,x,,,,
- "RTE_CRYPTODEV_FF_HW_ACCELERATED",x,,,,,,,
- "RTE_CRYPTODEV_FF_CPU_NEON",,,,,,,,x
- "RTE_CRYPTODEV_FF_CPU_ARM_CE",,,,,,,,x
+.. _table_crypto_pmd_features:
+
+.. raw:: html
+
+ <style>
+ .wy-nav-content {
+ opacity: .99;
+ }
+ table#id1 {
+ cursor: default;
+ overflow: hidden;
+ }
+ table#id1 th, table#id1 td {
+ text-align: center;
+ }
+ table#id1 th {
+ font-size: 80%;
+ white-space: pre-wrap;
+ vertical-align: top;
+ padding: 2px;
+ }
+ table#id1 th:first-child {
+ vertical-align: bottom;
+ }
+ table#id1 td {
+ font-size: 70%;
+ padding: 1px;
+ }
+ table#id1 td:first-child {
+ padding-left: 1em;
+ text-align: left;
+ }
+ table#id1 tr:nth-child(2n-1) td {
+ background-color: rgba(210, 210, 210, 0.2);
+ }
+ table#id1 th:not(:first-child):hover,
+ table#id1 td:not(:first-child):hover {
+ position: relative;
+ }
+ table#id1 th:not(:first-child):hover::after,
+ table#id1 td:not(:first-child):hover::after {
+ content: '';
+ height: 6000px;
+ top: -3000px;
+ width: 100%;
+ left: 0;
+ position: absolute;
+ z-index: -1;
+ background-color: #ffb;
+ }
+ table#id1 tr:hover td {
+ background-color: #ffb;
+ }
+ </style>
+
+.. include:: overview_feature_table.txt
Supported Cipher Algorithms
+---------------------------
+
+.. _table_crypto_pmd_cipher_algos:
+
+.. raw:: html
+
+ <style>
+ .wy-nav-content {
+ opacity: .99;
+ }
+ table#id2 {
+ cursor: default;
+ overflow: hidden;
+ }
+ table#id2 th, table#id2 td {
+ text-align: center;
+ }
+ table#id2 th {
+ font-size: 80%;
+ white-space: pre-wrap;
+ vertical-align: top;
+ padding: 2px;
+ }
+ table#id2 th:first-child {
+ vertical-align: bottom;
+ }
+ table#id2 td {
+ font-size: 70%;
+ padding: 1px;
+ }
+ table#id2 td:first-child {
+ padding-left: 1em;
+ text-align: left;
+ }
+ table#id2 tr:nth-child(2n-1) td {
+ background-color: rgba(210, 210, 210, 0.2);
+ }
+ table#id2 th:not(:first-child):hover,
+ table#id2 td:not(:first-child):hover {
+ position: relative;
+ }
+ table#id2 th:not(:first-child):hover::after,
+ table#id2 td:not(:first-child):hover::after {
+ content: '';
+ height: 6000px;
+ top: -3000px;
+ width: 100%;
+ left: 0;
+ position: absolute;
+ z-index: -1;
+ background-color: #ffb;
+ }
+ table#id2 tr:hover td {
+ background-color: #ffb;
+ }
+ </style>
-.. csv-table::
- :header: "Cipher Algorithms", "qat", "null", "aesni_mb", "aesni_gcm", "snow3g", "kasumi", "zuc", "armv8"
- :stub-columns: 1
-
- "NULL",,x,,,,,,
- "AES_CBC_128",x,,x,,,,,x
- "AES_CBC_192",x,,x,,,,,
- "AES_CBC_256",x,,x,,,,,
- "AES_CTR_128",x,,x,,,,,
- "AES_CTR_192",x,,x,,,,,
- "AES_CTR_256",x,,x,,,,,
- "DES_CBC",x,,,,,,,
- "SNOW3G_UEA2",x,,,,x,,,
- "KASUMI_F8",,,,,,x,,
- "ZUC_EEA3",,,,,,,x,
+.. include:: overview_cipher_table.txt
Supported Authentication Algorithms
+-----------------------------------
-.. csv-table::
- :header: "Cipher Algorithms", "qat", "null", "aesni_mb", "aesni_gcm", "snow3g", "kasumi", "zuc", "armv8"
- :stub-columns: 1
-
- "NONE",,x,,,,,,
- "MD5",,,,,,,,
- "MD5_HMAC",,,x,,,,,
- "SHA1",,,,,,,,
- "SHA1_HMAC",x,,x,,,,,x
- "SHA224",,,,,,,,
- "SHA224_HMAC",,,x,,,,,
- "SHA256",,,,,,,,
- "SHA256_HMAC",x,,x,,,,,x
- "SHA384",,,,,,,,
- "SHA384_HMAC",,,x,,,,,
- "SHA512",,,,,,,,
- "SHA512_HMAC",x,,x,,,,,
- "AES_XCBC",x,,x,,,,,
- "AES_GMAC",,,,x,,,,
- "SNOW3G_UIA2",x,,,,x,,,
- "KASUMI_F9",,,,,,x,,
- "ZUC_EIA3",,,,,,,x,
+.. _table_crypto_pmd_auth_algos:
+
+.. raw:: html
+
+ <style>
+ .wy-nav-content {
+ opacity: .99;
+ }
+ table#id3 {
+ cursor: default;
+ overflow: hidden;
+ }
+ table#id3 th, table#id3 td {
+ text-align: center;
+ }
+ table#id3 th {
+ font-size: 80%;
+ white-space: pre-wrap;
+ vertical-align: top;
+ padding: 2px;
+ }
+ table#id3 th:first-child {
+ vertical-align: bottom;
+ }
+ table#id3 td {
+ font-size: 70%;
+ padding: 1px;
+ }
+ table#id3 td:first-child {
+ padding-left: 1em;
+ text-align: left;
+ }
+ table#id3 tr:nth-child(2n-1) td {
+ background-color: rgba(210, 210, 210, 0.2);
+ }
+ table#id3 th:not(:first-child):hover,
+ table#id3 td:not(:first-child):hover {
+ position: relative;
+ }
+ table#id3 th:not(:first-child):hover::after,
+ table#id3 td:not(:first-child):hover::after {
+ content: '';
+ height: 6000px;
+ top: -3000px;
+ width: 100%;
+ left: 0;
+ position: absolute;
+ z-index: -1;
+ background-color: #ffb;
+ }
+ table#id3 tr:hover td {
+ background-color: #ffb;
+ }
+ </style>
+
+.. include:: overview_auth_table.txt
Supported AEAD Algorithms
+-------------------------
+
+.. _table_crypto_pmd_aead_algos:
+
+.. raw:: html
-.. csv-table::
- :header: "AEAD Algorithms", "qat", "null", "aesni_mb", "aesni_gcm", "snow3g", "kasumi", "zuc", "armv8"
- :stub-columns: 1
+ <style>
+ .wy-nav-content {
+ opacity: .99;
+ }
+ table#id4 {
+ cursor: default;
+ overflow: hidden;
+ }
+ table#id4 th, table#id4 td {
+ text-align: center;
+ }
+ table#id4 th {
+ font-size: 80%;
+ white-space: pre-wrap;
+ vertical-align: top;
+ padding: 2px;
+ }
+ table#id4 th:first-child {
+ vertical-align: bottom;
+ }
+ table#id4 td {
+ font-size: 70%;
+ padding: 1px;
+ }
+ table#id4 td:first-child {
+ padding-left: 1em;
+ text-align: left;
+ }
+ table#id4 tr:nth-child(2n-1) td {
+ background-color: rgba(210, 210, 210, 0.2);
+ }
+ table#id4 th:not(:first-child):hover,
+ table#id4 td:not(:first-child):hover {
+ position: relative;
+ }
+ table#id4 th:not(:first-child):hover::after,
+ table#id4 td:not(:first-child):hover::after {
+ content: '';
+ height: 6000px;
+ top: -3000px;
+ width: 100%;
+ left: 0;
+ position: absolute;
+ z-index: -1;
+ background-color: #ffb;
+ }
+ table#id4 tr:hover td {
+ background-color: #ffb;
+ }
+ </style>
- "AES_GCM_128",x,,,x,,,,
- "AES_GCM_192",x,,,,,,,
- "AES_GCM_256",x,,,x,,,,
+.. include:: overview_aead_table.txt
--
2.7.4
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [dpdk-dev] [PATCH v2] doc: reformat crypto drivers overview
2017-03-23 11:38 ` [dpdk-dev] [PATCH v2] " Pablo de Lara
@ 2017-03-23 15:35 ` De Lara Guarch, Pablo
0 siblings, 0 replies; 4+ messages in thread
From: De Lara Guarch, Pablo @ 2017-03-23 15:35 UTC (permalink / raw)
To: Mcnamara, John; +Cc: dev
> -----Original Message-----
> From: De Lara Guarch, Pablo
> Sent: Thursday, March 23, 2017 11:39 AM
> To: Mcnamara, John
> Cc: dev@dpdk.org; De Lara Guarch, Pablo
> Subject: [PATCH v2] doc: reformat crypto drivers overview
>
> Follow the approach in the network devices overview,
> for the feature matrix, so it improves readibility
> and maintainability.
>
> Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
> Acked-by: John McNamara <john.mcnamara@intel.com>
Applied to dpdk-next-crypto.
Thanks,
Pablo
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2017-03-23 15:36 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-03-22 16:15 [dpdk-dev] [PATCH] doc: reformat crypto drivers overview Pablo de Lara
2017-03-23 8:41 ` Mcnamara, John
2017-03-23 11:38 ` [dpdk-dev] [PATCH v2] " Pablo de Lara
2017-03-23 15:35 ` De Lara Guarch, Pablo
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).