[dpdk-dev] [PATCH v2] doc: reformat crypto drivers overview

Pablo de Lara pablo.de.lara.guarch at intel.com
Thu Mar 23 12:38:55 CET 2017


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 at intel.com>
Acked-by: John McNamara <john.mcnamara at 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



More information about the dev mailing list