[dpdk-dev] [PATCH v3] doc: autogenerate nic overview table from ini files

John McNamara john.mcnamara at intel.com
Fri Jul 29 13:59:14 CEST 2016


Convert the NIC feature table in the overview doc into a set of ini
files and add functions into the Sphinx conf.py file to auto-generate
them back into an RST table.

The reason for doing this is to make it easier for PMD maintainers to
update the feature matrix that makes up the table and to avoid
frequent and hard to resolve conflicts in doc/guides/nics/overview.rst.

A NIC/PMD feature matrix is now an ini file like the following:

    $ head doc/guides/nics/nic_features/i40e.ini
    ;
    ; Features of the i40e network driver.
    ;
    [Features]
    Link status          = Y
    Link status event    = Y
    Rx interrupt         = Y
    Queue start/stop     = Y
    ...

The output RST table matches the existing table with the column
headers sorted.

Signed-off-by: John McNamara <john.mcnamara at intel.com>
Tested-by: Ferruh Yigit <ferruh.yigit at intel.com>
---
 .gitignore                                   |   2 +
 doc/guides/conf.py                           | 155 +++++++++++++++++++++++++++
 doc/guides/nics/nic_features/afpacket.ini    |   6 ++
 doc/guides/nics/nic_features/bnx2x.ini       |  16 +++
 doc/guides/nics/nic_features/bnx2x_vf.ini    |  17 +++
 doc/guides/nics/nic_features/bnxt.ini        |  16 +++
 doc/guides/nics/nic_features/bonding.ini     |   6 ++
 doc/guides/nics/nic_features/cxgbe.ini       |  31 ++++++
 doc/guides/nics/nic_features/default.ini     |  68 ++++++++++++
 doc/guides/nics/nic_features/e1000.ini       |  28 +++++
 doc/guides/nics/nic_features/ena.ini         |  26 +++++
 doc/guides/nics/nic_features/enic.ini        |  28 +++++
 doc/guides/nics/nic_features/fm10k.ini       |  34 ++++++
 doc/guides/nics/nic_features/fm10k_vec.ini   |  34 ++++++
 doc/guides/nics/nic_features/fm10k_vf.ini    |  28 +++++
 doc/guides/nics/nic_features/fm10kvf_vec.ini |  28 +++++
 doc/guides/nics/nic_features/i40e.ini        |  47 ++++++++
 doc/guides/nics/nic_features/i40e_vec.ini    |  39 +++++++
 doc/guides/nics/nic_features/i40e_vf.ini     |  36 +++++++
 doc/guides/nics/nic_features/i40evf_vec.ini  |  28 +++++
 doc/guides/nics/nic_features/igb.ini         |  44 ++++++++
 doc/guides/nics/nic_features/igb_vf.ini      |  27 +++++
 doc/guides/nics/nic_features/ixgbe.ini       |  54 ++++++++++
 doc/guides/nics/nic_features/ixgbe_vec.ini   |  46 ++++++++
 doc/guides/nics/nic_features/ixgbe_vf.ini    |  37 +++++++
 doc/guides/nics/nic_features/ixgbevf_vec.ini |  29 +++++
 doc/guides/nics/nic_features/mlx4.ini        |  32 ++++++
 doc/guides/nics/nic_features/mlx5.ini        |  35 ++++++
 doc/guides/nics/nic_features/mpipe.ini       |   6 ++
 doc/guides/nics/nic_features/nfp.ini         |   6 ++
 doc/guides/nics/nic_features/null.ini        |   6 ++
 doc/guides/nics/nic_features/pcap.ini        |  16 +++
 doc/guides/nics/nic_features/qede.ini        |  29 +++++
 doc/guides/nics/nic_features/qede_vf.ini     |  30 ++++++
 doc/guides/nics/nic_features/ring.ini        |   6 ++
 doc/guides/nics/nic_features/szedata2.ini    |  17 +++
 doc/guides/nics/nic_features/thunderx.ini    |  30 ++++++
 doc/guides/nics/nic_features/vhost.ini       |  13 +++
 doc/guides/nics/nic_features/virtio.ini      |  24 +++++
 doc/guides/nics/nic_features/virtio_vec.ini  |  22 ++++
 doc/guides/nics/nic_features/vmxnet3.ini     |   6 ++
 doc/guides/nics/nic_features/xenvirt.ini     |   6 ++
 doc/guides/nics/overview.rst                 |  76 +------------
 43 files changed, 1195 insertions(+), 75 deletions(-)
 create mode 100644 doc/guides/nics/nic_features/afpacket.ini
 create mode 100644 doc/guides/nics/nic_features/bnx2x.ini
 create mode 100644 doc/guides/nics/nic_features/bnx2x_vf.ini
 create mode 100644 doc/guides/nics/nic_features/bnxt.ini
 create mode 100644 doc/guides/nics/nic_features/bonding.ini
 create mode 100644 doc/guides/nics/nic_features/cxgbe.ini
 create mode 100644 doc/guides/nics/nic_features/default.ini
 create mode 100644 doc/guides/nics/nic_features/e1000.ini
 create mode 100644 doc/guides/nics/nic_features/ena.ini
 create mode 100644 doc/guides/nics/nic_features/enic.ini
 create mode 100644 doc/guides/nics/nic_features/fm10k.ini
 create mode 100644 doc/guides/nics/nic_features/fm10k_vec.ini
 create mode 100644 doc/guides/nics/nic_features/fm10k_vf.ini
 create mode 100644 doc/guides/nics/nic_features/fm10kvf_vec.ini
 create mode 100644 doc/guides/nics/nic_features/i40e.ini
 create mode 100644 doc/guides/nics/nic_features/i40e_vec.ini
 create mode 100644 doc/guides/nics/nic_features/i40e_vf.ini
 create mode 100644 doc/guides/nics/nic_features/i40evf_vec.ini
 create mode 100644 doc/guides/nics/nic_features/igb.ini
 create mode 100644 doc/guides/nics/nic_features/igb_vf.ini
 create mode 100644 doc/guides/nics/nic_features/ixgbe.ini
 create mode 100644 doc/guides/nics/nic_features/ixgbe_vec.ini
 create mode 100644 doc/guides/nics/nic_features/ixgbe_vf.ini
 create mode 100644 doc/guides/nics/nic_features/ixgbevf_vec.ini
 create mode 100644 doc/guides/nics/nic_features/mlx4.ini
 create mode 100644 doc/guides/nics/nic_features/mlx5.ini
 create mode 100644 doc/guides/nics/nic_features/mpipe.ini
 create mode 100644 doc/guides/nics/nic_features/nfp.ini
 create mode 100644 doc/guides/nics/nic_features/null.ini
 create mode 100644 doc/guides/nics/nic_features/pcap.ini
 create mode 100644 doc/guides/nics/nic_features/qede.ini
 create mode 100644 doc/guides/nics/nic_features/qede_vf.ini
 create mode 100644 doc/guides/nics/nic_features/ring.ini
 create mode 100644 doc/guides/nics/nic_features/szedata2.ini
 create mode 100644 doc/guides/nics/nic_features/thunderx.ini
 create mode 100644 doc/guides/nics/nic_features/vhost.ini
 create mode 100644 doc/guides/nics/nic_features/virtio.ini
 create mode 100644 doc/guides/nics/nic_features/virtio_vec.ini
 create mode 100644 doc/guides/nics/nic_features/vmxnet3.ini
 create mode 100644 doc/guides/nics/nic_features/xenvirt.ini

diff --git a/.gitignore b/.gitignore
index e69de29..72005df 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1,2 @@
+doc/guides/nics/overview_table.txt
+
diff --git a/doc/guides/conf.py b/doc/guides/conf.py
index 2c5610f..4d69c0f 100644
--- a/doc/guides/conf.py
+++ b/doc/guides/conf.py
@@ -28,12 +28,25 @@
 #   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 #   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
+from __future__ import print_function
 import subprocess
 from docutils import nodes
 from distutils.version import LooseVersion
 from sphinx import __version__ as sphinx_version
 from sphinx.highlighting import PygmentsBridge
 from pygments.formatters.latex import LatexFormatter
+from os import listdir
+from os.path import basename
+from os.path import dirname
+from os.path import join as path_join
+
+try:
+    # Python 2.
+    import ConfigParser as configparser
+except:
+    # Python 3.
+    import configparser
+
 
 project = 'Data Plane Development Kit'
 
@@ -146,7 +159,149 @@ def process_numref(app, doctree, from_docname):
                                       internal=True)
             node.replace_self(newnode)
 
+
+def generate_nic_overview_table(output_filename):
+    """
+    Function to generate the NIC Overview Table from the ini files that define
+    the features for each NIC.
+
+    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()'
+
+    # Get the default features and order from the 'default.ini' file.
+    ini_path = path_join(dirname(output_filename), 'nic_features')
+    config = configparser.ConfigParser()
+    config.optionxform = str
+    config.read(path_join(ini_path, 'default.ini'))
+    default_section = 'Features'
+    default_features = config.items(default_section)
+
+    # Create a dict of the valid features to validate the other ini files.
+    valid_features = {}
+    max_feature_length = 0
+    for feature in default_features:
+        key = feature[0]
+        valid_features[key] = ' '
+        max_feature_length = max(max_feature_length, len(key))
+
+    # Get a list of NIC 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()
+
+    # Build up a list of the table header names from the ini filenames.
+    header_names = []
+    for ini_filename in ini_files:
+        name = ini_filename[:-4]
+        name = name.replace('_vf', 'vf')
+
+        # Pad the table header names to match the existing format.
+        if '_vec' in name:
+            pmd, vec = name.split('_')
+            name = '{0:{fill}{align}7}vec'.format(pmd, fill='.', align='<')
+        else:
+            name = '{0:{fill}{align}10}'.format(name, fill=' ', align='<')
+
+        header_names.append(name)
+
+    # Create a dict of the defined features for each NIC from the ini files.
+    ini_data = {}
+    for ini_filename in ini_files:
+        config = configparser.ConfigParser()
+        config.optionxform = str
+        config.read(path_join(ini_path, ini_filename))
+
+        # Initialize the dict with the default.ini value.
+        ini_data[ini_filename] = valid_features.copy()
+
+        # Check for a valid ini section.
+        if not config.has_section(default_section):
+            print("{}: File '{}' has no [{}] secton".format(warning,
+                                                            ini_filename,
+                                                            default_section))
+            continue
+
+        # Check for valid features names.
+        for name, value in config.items(default_section):
+            if name not in valid_features:
+                print("{}: Unknown feature '{}' in '{}'".format(warning,
+                                                                name,
+                                                                ini_filename))
+                continue
+
+            if value is not '':
+                # Get the first letter only.
+                ini_data[ini_filename][name] = value[0]
+
+    # Print out the RST NIC 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',
+          file=outfile)
+
+    print_table_header(outfile, num_cols, header_names)
+    print_table_body(outfile, num_cols, ini_files, ini_data, default_features)
+
+
+def print_table_header(outfile, num_cols, header_names):
+    """ Print the RST table header. The header names are vertical. """
+    print_table_divider(outfile, num_cols)
+
+    line = ''
+    for name in header_names:
+        line += ' ' + name[0]
+
+    print_table_row(outfile, 'Feature', line)
+
+    for i in range(1, 10):
+        line = ''
+        for name in header_names:
+            line += ' ' + name[i]
+
+        print_table_row(outfile, '', line)
+
+    print_table_divider(outfile, num_cols)
+
+
+def print_table_body(outfile, num_cols, ini_files, ini_data, default_features):
+    """ Print out the body of the table. Each row is a NIC feature. """
+
+    for feature, _ in default_features:
+        line = ''
+
+        for ini_filename in ini_files:
+            line += ' ' + ini_data[ini_filename][feature]
+
+        print_table_row(outfile, feature, line)
+
+    print_table_divider(outfile, num_cols)
+
+
+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)
+
+
+def print_table_divider(outfile, num_cols):
+    """ Print the table divider line. """
+    line = ' '
+    column_dividers = ['='] * num_cols
+    line += ' '.join(column_dividers)
+
+    feature = '=' * 20
+
+    print_table_row(outfile, feature, line)
+
+
 def setup(app):
+    generate_nic_overview_table('doc/guides/nics/overview_table.txt')
+
     if LooseVersion(sphinx_version) < LooseVersion('1.3.1'):
         print('Upgrade sphinx to version >= 1.3.1 for '
               'improved Figure/Table number handling.')
diff --git a/doc/guides/nics/nic_features/afpacket.ini b/doc/guides/nics/nic_features/afpacket.ini
new file mode 100644
index 0000000..17505dd
--- /dev/null
+++ b/doc/guides/nics/nic_features/afpacket.ini
@@ -0,0 +1,6 @@
+;
+; Supported features of the 'afpacket' network poll mode driver.
+;
+; Refer to default.ini for the full list of availble PMD features.
+;
+[Features]
diff --git a/doc/guides/nics/nic_features/bnx2x.ini b/doc/guides/nics/nic_features/bnx2x.ini
new file mode 100644
index 0000000..f5f5e80
--- /dev/null
+++ b/doc/guides/nics/nic_features/bnx2x.ini
@@ -0,0 +1,16 @@
+;
+; Supported features of the 'bnx2x' network poll mode driver.
+;
+; Refer to default.ini for the full list of availble PMD features.
+;
+[Features]
+Link status          = Y
+Link status event    = Y
+Promiscuous mode     = Y
+Unicast MAC filter   = Y
+Multicast MAC filter = Y
+Basic stats          = Y
+Extended stats       = Y
+Linux UIO            = Y
+x86-64               = Y
+Usage doc            = Y
diff --git a/doc/guides/nics/nic_features/bnx2x_vf.ini b/doc/guides/nics/nic_features/bnx2x_vf.ini
new file mode 100644
index 0000000..bb438c4
--- /dev/null
+++ b/doc/guides/nics/nic_features/bnx2x_vf.ini
@@ -0,0 +1,17 @@
+;
+; Supported features of the 'bnx2x_vf' network poll mode driver.
+;
+; Refer to default.ini for the full list of availble PMD features.
+;
+[Features]
+Link status          = Y
+Link status event    = Y
+Promiscuous mode     = Y
+Unicast MAC filter   = Y
+Multicast MAC filter = Y
+SR-IOV               = Y
+Basic stats          = Y
+Extended stats       = Y
+Linux UIO            = Y
+x86-64               = Y
+Usage doc            = Y
diff --git a/doc/guides/nics/nic_features/bnxt.ini b/doc/guides/nics/nic_features/bnxt.ini
new file mode 100644
index 0000000..0a86a5b
--- /dev/null
+++ b/doc/guides/nics/nic_features/bnxt.ini
@@ -0,0 +1,16 @@
+;
+; Supported features of the 'bnxt' network poll mode driver.
+;
+; Refer to default.ini for the full list of availble PMD features.
+;
+[Features]
+Link status          = Y
+Queue start/stop     = Y
+Promiscuous mode     = Y
+Unicast MAC filter   = Y
+Multicast MAC filter = Y
+RSS reta update      = Y
+Basic stats          = Y
+Extended stats       = Y
+Linux UIO            = Y
+x86-64               = Y
diff --git a/doc/guides/nics/nic_features/bonding.ini b/doc/guides/nics/nic_features/bonding.ini
new file mode 100644
index 0000000..7cf98ec
--- /dev/null
+++ b/doc/guides/nics/nic_features/bonding.ini
@@ -0,0 +1,6 @@
+;
+; Supported features of the 'bonding' network poll mode driver.
+;
+; Refer to default.ini for the full list of availble PMD features.
+;
+[Features]
diff --git a/doc/guides/nics/nic_features/cxgbe.ini b/doc/guides/nics/nic_features/cxgbe.ini
new file mode 100644
index 0000000..12a50dd
--- /dev/null
+++ b/doc/guides/nics/nic_features/cxgbe.ini
@@ -0,0 +1,31 @@
+;
+; Supported features of the 'cxgbe' network poll mode driver.
+;
+; Refer to default.ini for the full list of availble PMD features.
+;
+[Features]
+Link status          = Y
+Queue start/stop     = Y
+MTU update           = Y
+Jumbo frame          = Y
+Scattered Rx         = Y
+TSO                  = Y
+Promiscuous mode     = Y
+Allmulticast mode    = Y
+RSS hash             = Y
+Flow control         = Y
+CRC offload          = Y
+VLAN offload         = Y
+L3 checksum offload  = Y
+L4 checksum offload  = Y
+Packet type parsing  = Y
+Basic stats          = Y
+Stats per queue      = Y
+EEPROM dump          = Y
+Registers dump       = Y
+BSD nic_uio          = Y
+Linux UIO            = Y
+Linux VFIO           = Y
+x86-32               = Y
+x86-64               = Y
+Usage doc            = Y
diff --git a/doc/guides/nics/nic_features/default.ini b/doc/guides/nics/nic_features/default.ini
new file mode 100644
index 0000000..f1bf9bf
--- /dev/null
+++ b/doc/guides/nics/nic_features/default.ini
@@ -0,0 +1,68 @@
+;
+; Features of a default network 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]
+Speed capabilities   =
+Link status          =
+Link status event    =
+Queue status event   =
+Rx interrupt         =
+Queue start/stop     =
+MTU update           =
+Jumbo frame          =
+Scattered Rx         =
+LRO                  =
+TSO                  =
+Promiscuous mode     =
+Allmulticast mode    =
+Unicast MAC filter   =
+Multicast MAC filter =
+RSS hash             =
+RSS key update       =
+RSS reta update      =
+VMDq                 =
+SR-IOV               =
+DCB                  =
+VLAN filter          =
+Ethertype filter     =
+N-tuple filter       =
+SYN filter           =
+Tunnel filter        =
+Flexible filter      =
+Hash filter          =
+Flow director        =
+Flow control         =
+Rate limitation      =
+Traffic mirroring    =
+CRC offload          =
+VLAN offload         =
+QinQ offload         =
+L3 checksum offload  =
+L4 checksum offload  =
+Inner L3 checksum    =
+Inner L4 checksum    =
+Packet type parsing  =
+Timesync             =
+Basic stats          =
+Extended stats       =
+Stats per queue      =
+EEPROM dump          =
+Registers dump       =
+Multiprocess aware   =
+BSD nic_uio          =
+Linux UIO            =
+Linux VFIO           =
+Other kdrv           =
+ARMv7                =
+ARMv8                =
+Power8               =
+TILE-Gx              =
+x86-32               =
+x86-64               =
+Usage doc            =
+Design doc           =
+Perf doc             =
diff --git a/doc/guides/nics/nic_features/e1000.ini b/doc/guides/nics/nic_features/e1000.ini
new file mode 100644
index 0000000..20a5599
--- /dev/null
+++ b/doc/guides/nics/nic_features/e1000.ini
@@ -0,0 +1,28 @@
+;
+; Supported features of the 'e1000' network poll mode driver.
+;
+; Refer to default.ini for the full list of availble PMD features.
+;
+[Features]
+Link status          = Y
+Link status event    = Y
+Rx interrupt         = Y
+MTU update           = Y
+Jumbo frame          = Y
+Scattered Rx         = Y
+Promiscuous mode     = Y
+Allmulticast mode    = Y
+Unicast MAC filter   = Y
+VLAN filter          = Y
+Flow control         = Y
+CRC offload          = Y
+VLAN offload         = Y
+QinQ offload         = Y
+L3 checksum offload  = Y
+L4 checksum offload  = Y
+Basic stats          = Y
+BSD nic_uio          = Y
+Linux UIO            = Y
+Linux VFIO           = Y
+x86-32               = Y
+x86-64               = Y
diff --git a/doc/guides/nics/nic_features/ena.ini b/doc/guides/nics/nic_features/ena.ini
new file mode 100644
index 0000000..950f040
--- /dev/null
+++ b/doc/guides/nics/nic_features/ena.ini
@@ -0,0 +1,26 @@
+;
+; Supported features of the 'ena' network poll mode driver.
+;
+; Refer to default.ini for the full list of availble PMD features.
+;
+[Features]
+Queue start/stop     = Y
+MTU update           = Y
+Jumbo frame          = Y
+Scattered Rx         = Y
+TSO                  = Y
+RSS hash             = Y
+RSS key update       = Y
+RSS reta update      = Y
+SR-IOV               = Y
+CRC offload          = Y
+VLAN offload         = Y
+L3 checksum offload  = Y
+L4 checksum offload  = Y
+Inner L3 checksum    = Y
+Inner L4 checksum    = Y
+Basic stats          = Y
+Extended stats       = Y
+Linux UIO            = Y
+x86-32               = Y
+x86-64               = Y
diff --git a/doc/guides/nics/nic_features/enic.ini b/doc/guides/nics/nic_features/enic.ini
new file mode 100644
index 0000000..f6acb94
--- /dev/null
+++ b/doc/guides/nics/nic_features/enic.ini
@@ -0,0 +1,28 @@
+;
+; Supported features of the 'enic' network poll mode driver.
+;
+; Refer to default.ini for the full list of availble PMD features.
+;
+[Features]
+Link status          = Y
+Queue start/stop     = Y
+MTU update           = P
+Jumbo frame          = Y
+Scattered Rx         = Y
+Promiscuous mode     = Y
+Unicast MAC filter   = Y
+Multicast MAC filter = Y
+RSS hash             = Y
+VLAN filter          = Y
+CRC offload          = Y
+VLAN offload         = Y
+L3 checksum offload  = Y
+L4 checksum offload  = Y
+Packet type parsing  = Y
+Basic stats          = Y
+BSD nic_uio          = Y
+Linux UIO            = Y
+Linux VFIO           = Y
+x86-32               = Y
+x86-64               = Y
+Usage doc            = Y
diff --git a/doc/guides/nics/nic_features/fm10k.ini b/doc/guides/nics/nic_features/fm10k.ini
new file mode 100644
index 0000000..0dbac08
--- /dev/null
+++ b/doc/guides/nics/nic_features/fm10k.ini
@@ -0,0 +1,34 @@
+;
+; Supported features of the 'fm10k' network poll mode driver.
+;
+; Refer to default.ini for the full list of availble PMD features.
+;
+[Features]
+Rx interrupt         = Y
+Queue start/stop     = Y
+Jumbo frame          = Y
+Scattered Rx         = Y
+TSO                  = Y
+Promiscuous mode     = Y
+Allmulticast mode    = Y
+Unicast MAC filter   = Y
+Multicast MAC filter = Y
+RSS hash             = Y
+RSS key update       = Y
+RSS reta update      = Y
+VMDq                 = Y
+VLAN filter          = Y
+CRC offload          = Y
+VLAN offload         = Y
+L3 checksum offload  = Y
+L4 checksum offload  = Y
+Packet type parsing  = Y
+Basic stats          = Y
+Extended stats       = Y
+Stats per queue      = Y
+Multiprocess aware   = Y
+BSD nic_uio          = Y
+Linux UIO            = Y
+Linux VFIO           = Y
+x86-32               = Y
+x86-64               = Y
diff --git a/doc/guides/nics/nic_features/fm10k_vec.ini b/doc/guides/nics/nic_features/fm10k_vec.ini
new file mode 100644
index 0000000..3667925
--- /dev/null
+++ b/doc/guides/nics/nic_features/fm10k_vec.ini
@@ -0,0 +1,34 @@
+;
+; Supported features of the 'fm10k_vec' network poll mode driver.
+;
+; Refer to default.ini for the full list of availble PMD features.
+;
+[Features]
+Rx interrupt         = Y
+Queue start/stop     = Y
+Jumbo frame          = Y
+Scattered Rx         = Y
+TSO                  = Y
+Promiscuous mode     = Y
+Allmulticast mode    = Y
+Unicast MAC filter   = Y
+Multicast MAC filter = Y
+RSS hash             = Y
+RSS key update       = Y
+RSS reta update      = Y
+VMDq                 = Y
+VLAN filter          = Y
+CRC offload          = Y
+VLAN offload         = Y
+L3 checksum offload  = Y
+L4 checksum offload  = Y
+Packet type parsing  = Y
+Basic stats          = Y
+Extended stats       = Y
+Stats per queue      = Y
+Multiprocess aware   = Y
+BSD nic_uio          = Y
+Linux UIO            = Y
+Linux VFIO           = Y
+x86-32               = Y
+x86-64               = Y
diff --git a/doc/guides/nics/nic_features/fm10k_vf.ini b/doc/guides/nics/nic_features/fm10k_vf.ini
new file mode 100644
index 0000000..942d478
--- /dev/null
+++ b/doc/guides/nics/nic_features/fm10k_vf.ini
@@ -0,0 +1,28 @@
+;
+; Supported features of the 'fm10k_vf' network poll mode driver.
+;
+; Refer to default.ini for the full list of availble PMD features.
+;
+[Features]
+Rx interrupt         = Y
+Queue start/stop     = Y
+Jumbo frame          = Y
+Scattered Rx         = Y
+TSO                  = Y
+RSS hash             = Y
+RSS key update       = Y
+RSS reta update      = Y
+CRC offload          = Y
+VLAN offload         = Y
+L3 checksum offload  = Y
+L4 checksum offload  = Y
+Packet type parsing  = Y
+Basic stats          = Y
+Extended stats       = Y
+Stats per queue      = Y
+Multiprocess aware   = Y
+BSD nic_uio          = Y
+Linux UIO            = Y
+Linux VFIO           = Y
+x86-32               = Y
+x86-64               = Y
diff --git a/doc/guides/nics/nic_features/fm10kvf_vec.ini b/doc/guides/nics/nic_features/fm10kvf_vec.ini
new file mode 100644
index 0000000..23517d6
--- /dev/null
+++ b/doc/guides/nics/nic_features/fm10kvf_vec.ini
@@ -0,0 +1,28 @@
+;
+; Supported features of the 'fm10kvf_vec' network poll mode driver.
+;
+; Refer to default.ini for the full list of availble PMD features.
+;
+[Features]
+Rx interrupt         = Y
+Queue start/stop     = Y
+Jumbo frame          = Y
+Scattered Rx         = Y
+TSO                  = Y
+RSS hash             = Y
+RSS key update       = Y
+RSS reta update      = Y
+CRC offload          = Y
+VLAN offload         = Y
+L3 checksum offload  = Y
+L4 checksum offload  = Y
+Packet type parsing  = Y
+Basic stats          = Y
+Extended stats       = Y
+Stats per queue      = Y
+Multiprocess aware   = Y
+BSD nic_uio          = Y
+Linux UIO            = Y
+Linux VFIO           = Y
+x86-32               = Y
+x86-64               = Y
diff --git a/doc/guides/nics/nic_features/i40e.ini b/doc/guides/nics/nic_features/i40e.ini
new file mode 100644
index 0000000..17a33ca
--- /dev/null
+++ b/doc/guides/nics/nic_features/i40e.ini
@@ -0,0 +1,47 @@
+;
+; Supported features of the 'i40e' network poll mode driver.
+;
+; Refer to default.ini for the full list of availble PMD features.
+;
+[Features]
+Link status          = Y
+Link status event    = Y
+Rx interrupt         = Y
+Queue start/stop     = Y
+Jumbo frame          = Y
+Scattered Rx         = Y
+TSO                  = Y
+Promiscuous mode     = Y
+Allmulticast mode    = Y
+Unicast MAC filter   = Y
+Multicast MAC filter = Y
+RSS hash             = Y
+RSS key update       = Y
+RSS reta update      = Y
+VMDq                 = Y
+SR-IOV               = Y
+DCB                  = Y
+VLAN filter          = Y
+Ethertype filter     = Y
+Tunnel filter        = Y
+Hash filter          = Y
+Flow director        = Y
+Flow control         = Y
+Traffic mirroring    = Y
+CRC offload          = Y
+VLAN offload         = Y
+QinQ offload         = Y
+L3 checksum offload  = Y
+L4 checksum offload  = Y
+Inner L3 checksum    = Y
+Inner L4 checksum    = Y
+Packet type parsing  = Y
+Timesync             = Y
+Basic stats          = Y
+Extended stats       = Y
+Multiprocess aware   = Y
+BSD nic_uio          = Y
+Linux UIO            = Y
+Linux VFIO           = Y
+x86-32               = Y
+x86-64               = Y
diff --git a/doc/guides/nics/nic_features/i40e_vec.ini b/doc/guides/nics/nic_features/i40e_vec.ini
new file mode 100644
index 0000000..bb1400e
--- /dev/null
+++ b/doc/guides/nics/nic_features/i40e_vec.ini
@@ -0,0 +1,39 @@
+;
+; Supported features of the 'i40e_vec' network poll mode driver.
+;
+; Refer to default.ini for the full list of availble PMD features.
+;
+[Features]
+Link status          = Y
+Link status event    = Y
+Rx interrupt         = Y
+Queue start/stop     = Y
+Jumbo frame          = Y
+Scattered Rx         = Y
+TSO                  = Y
+Promiscuous mode     = Y
+Allmulticast mode    = Y
+Unicast MAC filter   = Y
+Multicast MAC filter = Y
+RSS hash             = Y
+RSS key update       = Y
+RSS reta update      = Y
+VMDq                 = Y
+SR-IOV               = Y
+DCB                  = Y
+VLAN filter          = Y
+Ethertype filter     = Y
+Tunnel filter        = Y
+Hash filter          = Y
+Flow director        = Y
+Flow control         = Y
+Traffic mirroring    = Y
+Timesync             = Y
+Basic stats          = Y
+Extended stats       = Y
+Multiprocess aware   = Y
+BSD nic_uio          = Y
+Linux UIO            = Y
+Linux VFIO           = Y
+x86-32               = Y
+x86-64               = Y
diff --git a/doc/guides/nics/nic_features/i40e_vf.ini b/doc/guides/nics/nic_features/i40e_vf.ini
new file mode 100644
index 0000000..db3deb9
--- /dev/null
+++ b/doc/guides/nics/nic_features/i40e_vf.ini
@@ -0,0 +1,36 @@
+;
+; Supported features of the 'i40e_vf' network poll mode driver.
+;
+; Refer to default.ini for the full list of availble PMD features.
+;
+[Features]
+Rx interrupt         = Y
+Queue start/stop     = Y
+Jumbo frame          = Y
+Scattered Rx         = Y
+TSO                  = Y
+Promiscuous mode     = Y
+Allmulticast mode    = Y
+Unicast MAC filter   = Y
+Multicast MAC filter = Y
+RSS hash             = Y
+RSS key update       = Y
+RSS reta update      = Y
+VLAN filter          = Y
+Hash filter          = Y
+CRC offload          = Y
+VLAN offload         = Y
+QinQ offload         = Y
+L3 checksum offload  = Y
+L4 checksum offload  = Y
+Inner L3 checksum    = Y
+Inner L4 checksum    = Y
+Packet type parsing  = Y
+Basic stats          = Y
+Extended stats       = Y
+Multiprocess aware   = Y
+BSD nic_uio          = Y
+Linux UIO            = Y
+Linux VFIO           = Y
+x86-32               = Y
+x86-64               = Y
diff --git a/doc/guides/nics/nic_features/i40evf_vec.ini b/doc/guides/nics/nic_features/i40evf_vec.ini
new file mode 100644
index 0000000..54b49d4
--- /dev/null
+++ b/doc/guides/nics/nic_features/i40evf_vec.ini
@@ -0,0 +1,28 @@
+;
+; Supported features of the 'i40evf_vec' network poll mode driver.
+;
+; Refer to default.ini for the full list of availble PMD features.
+;
+[Features]
+Rx interrupt         = Y
+Queue start/stop     = Y
+Jumbo frame          = Y
+Scattered Rx         = Y
+TSO                  = Y
+Promiscuous mode     = Y
+Allmulticast mode    = Y
+Unicast MAC filter   = Y
+Multicast MAC filter = Y
+RSS hash             = Y
+RSS key update       = Y
+RSS reta update      = Y
+VLAN filter          = Y
+Hash filter          = Y
+Basic stats          = Y
+Extended stats       = Y
+Multiprocess aware   = Y
+BSD nic_uio          = Y
+Linux UIO            = Y
+Linux VFIO           = Y
+x86-32               = Y
+x86-64               = Y
diff --git a/doc/guides/nics/nic_features/igb.ini b/doc/guides/nics/nic_features/igb.ini
new file mode 100644
index 0000000..b9ee5cd
--- /dev/null
+++ b/doc/guides/nics/nic_features/igb.ini
@@ -0,0 +1,44 @@
+;
+; Supported features of the 'igb' network poll mode driver.
+;
+; Refer to default.ini for the full list of availble PMD features.
+;
+[Features]
+Link status          = Y
+Link status event    = Y
+Rx interrupt         = Y
+MTU update           = Y
+Jumbo frame          = Y
+Scattered Rx         = Y
+TSO                  = Y
+Promiscuous mode     = Y
+Allmulticast mode    = Y
+Unicast MAC filter   = Y
+RSS hash             = Y
+RSS key update       = Y
+RSS reta update      = Y
+VMDq                 = Y
+SR-IOV               = Y
+DCB                  = Y
+VLAN filter          = Y
+Ethertype filter     = Y
+N-tuple filter       = Y
+SYN filter           = Y
+Flexible filter      = Y
+Flow control         = Y
+CRC offload          = Y
+VLAN offload         = Y
+QinQ offload         = Y
+L3 checksum offload  = Y
+L4 checksum offload  = Y
+Packet type parsing  = Y
+Timesync             = Y
+Basic stats          = Y
+Extended stats       = Y
+EEPROM dump          = Y
+Registers dump       = Y
+BSD nic_uio          = Y
+Linux UIO            = Y
+Linux VFIO           = Y
+x86-32               = Y
+x86-64               = Y
diff --git a/doc/guides/nics/nic_features/igb_vf.ini b/doc/guides/nics/nic_features/igb_vf.ini
new file mode 100644
index 0000000..318eebb
--- /dev/null
+++ b/doc/guides/nics/nic_features/igb_vf.ini
@@ -0,0 +1,27 @@
+;
+; Supported features of the 'igb_vf' network poll mode driver.
+;
+; Refer to default.ini for the full list of availble PMD features.
+;
+[Features]
+Rx interrupt         = Y
+Scattered Rx         = Y
+TSO                  = Y
+Promiscuous mode     = Y
+Allmulticast mode    = Y
+Unicast MAC filter   = Y
+VLAN filter          = Y
+CRC offload          = Y
+VLAN offload         = Y
+QinQ offload         = Y
+L3 checksum offload  = Y
+L4 checksum offload  = Y
+Packet type parsing  = Y
+Basic stats          = Y
+Extended stats       = Y
+Registers dump       = Y
+BSD nic_uio          = Y
+Linux UIO            = Y
+Linux VFIO           = Y
+x86-32               = Y
+x86-64               = Y
diff --git a/doc/guides/nics/nic_features/ixgbe.ini b/doc/guides/nics/nic_features/ixgbe.ini
new file mode 100644
index 0000000..0315737
--- /dev/null
+++ b/doc/guides/nics/nic_features/ixgbe.ini
@@ -0,0 +1,54 @@
+;
+; Supported features of the 'ixgbe' network poll mode driver.
+;
+; Refer to default.ini for the full list of availble PMD features.
+;
+[Features]
+Link status          = Y
+Link status event    = Y
+Rx interrupt         = Y
+Queue start/stop     = Y
+MTU update           = Y
+Jumbo frame          = Y
+Scattered Rx         = Y
+LRO                  = Y
+TSO                  = Y
+Promiscuous mode     = Y
+Allmulticast mode    = Y
+Unicast MAC filter   = Y
+RSS hash             = Y
+RSS key update       = Y
+RSS reta update      = Y
+VMDq                 = Y
+SR-IOV               = Y
+DCB                  = Y
+VLAN filter          = Y
+Ethertype filter     = Y
+N-tuple filter       = Y
+SYN filter           = Y
+Tunnel filter        = Y
+Flow director        = Y
+Flow control         = Y
+Rate limitation      = Y
+Traffic mirroring    = Y
+CRC offload          = Y
+VLAN offload         = Y
+QinQ offload         = Y
+L3 checksum offload  = Y
+L4 checksum offload  = Y
+Inner L3 checksum    = Y
+Inner L4 checksum    = Y
+Packet type parsing  = Y
+Timesync             = Y
+Basic stats          = Y
+Extended stats       = Y
+Stats per queue      = Y
+EEPROM dump          = Y
+Registers dump       = Y
+Multiprocess aware   = Y
+BSD nic_uio          = Y
+Linux UIO            = Y
+Linux VFIO           = Y
+ARMv8                = Y
+x86-32               = Y
+x86-64               = Y
diff --git a/doc/guides/nics/nic_features/ixgbe_vec.ini b/doc/guides/nics/nic_features/ixgbe_vec.ini
new file mode 100644
index 0000000..2357eda
--- /dev/null
+++ b/doc/guides/nics/nic_features/ixgbe_vec.ini
@@ -0,0 +1,46 @@
+;
+; Supported features of the 'ixgbe_vec' network poll mode driver.
+;
+; Refer to default.ini for the full list of availble PMD features.
+;
+[Features]
+Link status          = Y
+Link status event    = Y
+Rx interrupt         = Y
+Queue start/stop     = Y
+MTU update           = Y
+Jumbo frame          = Y
+Scattered Rx         = Y
+LRO                  = Y
+TSO                  = Y
+Promiscuous mode     = Y
+Allmulticast mode    = Y
+Unicast MAC filter   = Y
+RSS hash             = Y
+RSS key update       = Y
+RSS reta update      = Y
+VMDq                 = Y
+SR-IOV               = Y
+DCB                  = Y
+VLAN filter          = Y
+Ethertype filter     = Y
+N-tuple filter       = Y
+SYN filter           = Y
+Tunnel filter        = Y
+Flow director        = Y
+Flow control         = Y
+Rate limitation      = Y
+Traffic mirroring    = Y
+Timesync             = Y
+Basic stats          = Y
+Extended stats       = Y
+Stats per queue      = Y
+EEPROM dump          = Y
+Registers dump       = Y
+Multiprocess aware   = Y
+BSD nic_uio          = Y
+Linux UIO            = Y
+Linux VFIO           = Y
+ARMv8                = Y
+x86-32               = Y
+x86-64               = Y
diff --git a/doc/guides/nics/nic_features/ixgbe_vf.ini b/doc/guides/nics/nic_features/ixgbe_vf.ini
new file mode 100644
index 0000000..693c0be
--- /dev/null
+++ b/doc/guides/nics/nic_features/ixgbe_vf.ini
@@ -0,0 +1,37 @@
+;
+; Supported features of the 'ixgbe_vf' network poll mode driver.
+;
+; Refer to default.ini for the full list of availble PMD features.
+;
+[Features]
+Link status          = Y
+Rx interrupt         = Y
+MTU update           = Y
+Jumbo frame          = Y
+Scattered Rx         = Y
+LRO                  = Y
+TSO                  = Y
+Allmulticast mode    = Y
+Unicast MAC filter   = Y
+RSS hash             = Y
+RSS key update       = Y
+RSS reta update      = Y
+VLAN filter          = Y
+CRC offload          = Y
+VLAN offload         = Y
+QinQ offload         = Y
+L3 checksum offload  = Y
+L4 checksum offload  = Y
+Inner L3 checksum    = Y
+Inner L4 checksum    = Y
+Packet type parsing  = Y
+Basic stats          = Y
+Extended stats       = Y
+Registers dump       = Y
+Multiprocess aware   = Y
+BSD nic_uio          = Y
+Linux UIO            = Y
+Linux VFIO           = Y
+ARMv8                = Y
+x86-32               = Y
+x86-64               = Y
diff --git a/doc/guides/nics/nic_features/ixgbevf_vec.ini b/doc/guides/nics/nic_features/ixgbevf_vec.ini
new file mode 100644
index 0000000..6ff24bd
--- /dev/null
+++ b/doc/guides/nics/nic_features/ixgbevf_vec.ini
@@ -0,0 +1,29 @@
+;
+; Supported features of the 'ixgbevf_vec' network poll mode driver.
+;
+; Refer to default.ini for the full list of availble PMD features.
+;
+[Features]
+Link status          = Y
+Rx interrupt         = Y
+MTU update           = Y
+Jumbo frame          = Y
+Scattered Rx         = Y
+LRO                  = Y
+TSO                  = Y
+Allmulticast mode    = Y
+Unicast MAC filter   = Y
+RSS hash             = Y
+RSS key update       = Y
+RSS reta update      = Y
+VLAN filter          = Y
+Basic stats          = Y
+Extended stats       = Y
+Registers dump       = Y
+Multiprocess aware   = Y
+BSD nic_uio          = Y
+Linux UIO            = Y
+Linux VFIO           = Y
+ARMv8                = Y
+x86-32               = Y
+x86-64               = Y
diff --git a/doc/guides/nics/nic_features/mlx4.ini b/doc/guides/nics/nic_features/mlx4.ini
new file mode 100644
index 0000000..c0ba053
--- /dev/null
+++ b/doc/guides/nics/nic_features/mlx4.ini
@@ -0,0 +1,32 @@
+;
+; Supported features of the 'mlx4' network poll mode driver.
+;
+; Refer to default.ini for the full list of availble PMD features.
+;
+[Features]
+Link status          = Y
+Link status event    = Y
+Queue start/stop     = Y
+MTU update           = Y
+Jumbo frame          = Y
+Scattered Rx         = Y
+Promiscuous mode     = Y
+Allmulticast mode    = Y
+Unicast MAC filter   = Y
+Multicast MAC filter = Y
+RSS hash             = Y
+SR-IOV               = Y
+VLAN filter          = Y
+L3 checksum offload  = Y
+L4 checksum offload  = Y
+Inner L3 checksum    = Y
+Inner L4 checksum    = Y
+Packet type parsing  = Y
+Basic stats          = Y
+Stats per queue      = Y
+Multiprocess aware   = Y
+Other kdrv           = Y
+Power8               = Y
+x86-32               = Y
+x86-64               = Y
+Usage doc            = Y
diff --git a/doc/guides/nics/nic_features/mlx5.ini b/doc/guides/nics/nic_features/mlx5.ini
new file mode 100644
index 0000000..34f9e38
--- /dev/null
+++ b/doc/guides/nics/nic_features/mlx5.ini
@@ -0,0 +1,35 @@
+;
+; Supported features of the 'mlx5' network poll mode driver.
+;
+; Refer to default.ini for the full list of availble PMD features.
+;
+[Features]
+Link status          = Y
+Link status event    = Y
+Queue start/stop     = Y
+MTU update           = Y
+Jumbo frame          = Y
+Scattered Rx         = Y
+Promiscuous mode     = Y
+Allmulticast mode    = Y
+Unicast MAC filter   = Y
+Multicast MAC filter = Y
+RSS hash             = Y
+RSS key update       = Y
+RSS reta update      = Y
+SR-IOV               = Y
+VLAN filter          = Y
+Flow director        = Y
+CRC offload          = Y
+VLAN offload         = Y
+L3 checksum offload  = Y
+L4 checksum offload  = Y
+Packet type parsing  = Y
+Basic stats          = Y
+Stats per queue      = Y
+Multiprocess aware   = Y
+Other kdrv           = Y
+Power8               = Y
+x86-32               = Y
+x86-64               = Y
+Usage doc            = Y
diff --git a/doc/guides/nics/nic_features/mpipe.ini b/doc/guides/nics/nic_features/mpipe.ini
new file mode 100644
index 0000000..9321a6c
--- /dev/null
+++ b/doc/guides/nics/nic_features/mpipe.ini
@@ -0,0 +1,6 @@
+;
+; Supported features of the 'mpipe' network poll mode driver.
+;
+; Refer to default.ini for the full list of availble PMD features.
+;
+[Features]
diff --git a/doc/guides/nics/nic_features/nfp.ini b/doc/guides/nics/nic_features/nfp.ini
new file mode 100644
index 0000000..5cf1d59
--- /dev/null
+++ b/doc/guides/nics/nic_features/nfp.ini
@@ -0,0 +1,6 @@
+;
+; Supported features of the 'nfp' network poll mode driver.
+;
+; Refer to default.ini for the full list of availble PMD features.
+;
+[Features]
diff --git a/doc/guides/nics/nic_features/null.ini b/doc/guides/nics/nic_features/null.ini
new file mode 100644
index 0000000..3462692
--- /dev/null
+++ b/doc/guides/nics/nic_features/null.ini
@@ -0,0 +1,6 @@
+;
+; Supported features of the 'null' network poll mode driver.
+;
+; Refer to default.ini for the full list of availble PMD features.
+;
+[Features]
diff --git a/doc/guides/nics/nic_features/pcap.ini b/doc/guides/nics/nic_features/pcap.ini
new file mode 100644
index 0000000..a87fd4d
--- /dev/null
+++ b/doc/guides/nics/nic_features/pcap.ini
@@ -0,0 +1,16 @@
+;
+; Supported features of the 'pcap' network poll mode driver.
+;
+; Refer to default.ini for the full list of availble PMD features.
+;
+[Features]
+Jumbo frame          = Y
+Basic stats          = Y
+Multiprocess aware   = Y
+ARMv7                = Y
+ARMv8                = Y
+Power8               = Y
+TILE-Gx              = Y
+x86-32               = Y
+x86-64               = Y
+Usage doc            = Y
diff --git a/doc/guides/nics/nic_features/qede.ini b/doc/guides/nics/nic_features/qede.ini
new file mode 100644
index 0000000..bfb1b7e
--- /dev/null
+++ b/doc/guides/nics/nic_features/qede.ini
@@ -0,0 +1,29 @@
+;
+; Supported features of the 'qede' network poll mode driver.
+;
+; Refer to default.ini for the full list of availble PMD features.
+;
+[Features]
+Link status          = Y
+Link status event    = Y
+MTU update           = Y
+Jumbo frame          = Y
+Promiscuous mode     = Y
+Allmulticast mode    = Y
+Unicast MAC filter   = Y
+Multicast MAC filter = Y
+RSS hash             = Y
+RSS key update       = Y
+RSS reta update      = Y
+VLAN filter          = Y
+Flow control         = Y
+CRC offload          = Y
+VLAN offload         = Y
+Packet type parsing  = Y
+Basic stats          = Y
+Extended stats       = Y
+Stats per queue      = Y
+Multiprocess aware   = Y
+Linux UIO            = Y
+x86-64               = Y
+Usage doc            = Y
diff --git a/doc/guides/nics/nic_features/qede_vf.ini b/doc/guides/nics/nic_features/qede_vf.ini
new file mode 100644
index 0000000..d58a2bc
--- /dev/null
+++ b/doc/guides/nics/nic_features/qede_vf.ini
@@ -0,0 +1,30 @@
+;
+; Supported features of the 'qede_vf' network poll mode driver.
+;
+; Refer to default.ini for the full list of availble PMD features.
+;
+[Features]
+Link status          = Y
+Link status event    = Y
+MTU update           = Y
+Jumbo frame          = Y
+Promiscuous mode     = Y
+Allmulticast mode    = Y
+Unicast MAC filter   = Y
+Multicast MAC filter = Y
+RSS hash             = Y
+RSS key update       = Y
+RSS reta update      = Y
+SR-IOV               = Y
+VLAN filter          = Y
+Flow control         = Y
+CRC offload          = Y
+VLAN offload         = Y
+Packet type parsing  = Y
+Basic stats          = Y
+Extended stats       = Y
+Stats per queue      = Y
+Multiprocess aware   = Y
+Linux UIO            = Y
+x86-64               = Y
+Usage doc            = Y
diff --git a/doc/guides/nics/nic_features/ring.ini b/doc/guides/nics/nic_features/ring.ini
new file mode 100644
index 0000000..e2055f1
--- /dev/null
+++ b/doc/guides/nics/nic_features/ring.ini
@@ -0,0 +1,6 @@
+;
+; Supported features of the 'ring' network poll mode driver.
+;
+; Refer to default.ini for the full list of availble PMD features.
+;
+[Features]
diff --git a/doc/guides/nics/nic_features/szedata2.ini b/doc/guides/nics/nic_features/szedata2.ini
new file mode 100644
index 0000000..d70ecdd
--- /dev/null
+++ b/doc/guides/nics/nic_features/szedata2.ini
@@ -0,0 +1,17 @@
+;
+; Supported features of the 'szedata2' network poll mode driver.
+;
+; Refer to default.ini for the full list of availble PMD features.
+;
+[Features]
+Link status          = Y
+Queue start/stop     = Y
+Scattered Rx         = Y
+Promiscuous mode     = Y
+Allmulticast mode    = Y
+Basic stats          = Y
+Extended stats       = Y
+Stats per queue      = Y
+Other kdrv           = Y
+x86-64               = Y
+Usage doc            = Y
diff --git a/doc/guides/nics/nic_features/thunderx.ini b/doc/guides/nics/nic_features/thunderx.ini
new file mode 100644
index 0000000..1163734
--- /dev/null
+++ b/doc/guides/nics/nic_features/thunderx.ini
@@ -0,0 +1,30 @@
+;
+; Supported features of the 'thunderx' network poll mode driver.
+;
+; Refer to default.ini for the full list of availble PMD features.
+;
+[Features]
+Link status          = Y
+Link status event    = Y
+Queue start/stop     = Y
+MTU update           = Y
+Jumbo frame          = Y
+Scattered Rx         = Y
+Promiscuous mode     = Y
+Allmulticast mode    = Y
+RSS hash             = Y
+RSS key update       = Y
+RSS reta update      = Y
+SR-IOV               = Y
+CRC offload          = Y
+VLAN offload         = P
+L3 checksum offload  = Y
+L4 checksum offload  = Y
+Packet type parsing  = Y
+Basic stats          = Y
+Stats per queue      = Y
+Registers dump       = Y
+Multiprocess aware   = Y
+Linux VFIO           = Y
+ARMv8                = Y
+Usage doc            = Y
diff --git a/doc/guides/nics/nic_features/vhost.ini b/doc/guides/nics/nic_features/vhost.ini
new file mode 100644
index 0000000..8dbde3f
--- /dev/null
+++ b/doc/guides/nics/nic_features/vhost.ini
@@ -0,0 +1,13 @@
+;
+; Supported features of the 'vhost' network poll mode driver.
+;
+; Refer to default.ini for the full list of availble PMD features.
+;
+[Features]
+Link status          = Y
+Link status event    = Y
+Queue status event   = Y
+Basic stats          = Y
+Extended stats       = Y
+x86-32               = Y
+x86-64               = Y
diff --git a/doc/guides/nics/nic_features/virtio.ini b/doc/guides/nics/nic_features/virtio.ini
new file mode 100644
index 0000000..35b54b5
--- /dev/null
+++ b/doc/guides/nics/nic_features/virtio.ini
@@ -0,0 +1,24 @@
+;
+; Supported features of the 'virtio' network poll mode driver.
+;
+; Refer to default.ini for the full list of availble PMD features.
+;
+[Features]
+Link status          = Y
+Queue start/stop     = Y
+Scattered Rx         = Y
+Promiscuous mode     = Y
+Allmulticast mode    = Y
+Unicast MAC filter   = Y
+Multicast MAC filter = Y
+VLAN filter          = Y
+Basic stats          = Y
+Stats per queue      = Y
+BSD nic_uio          = Y
+Linux UIO            = Y
+Linux VFIO           = Y
+ARMv7                = Y
+ARMv8                = Y
+x86-32               = Y
+x86-64               = Y
+Usage doc            = Y
diff --git a/doc/guides/nics/nic_features/virtio_vec.ini b/doc/guides/nics/nic_features/virtio_vec.ini
new file mode 100644
index 0000000..48d6077
--- /dev/null
+++ b/doc/guides/nics/nic_features/virtio_vec.ini
@@ -0,0 +1,22 @@
+;
+; Supported features of the 'virtio_vec' network poll mode driver.
+;
+; Refer to default.ini for the full list of availble PMD features.
+;
+[Features]
+Link status          = Y
+Queue start/stop     = Y
+Promiscuous mode     = Y
+Allmulticast mode    = Y
+Unicast MAC filter   = Y
+Multicast MAC filter = Y
+VLAN filter          = Y
+Basic stats          = Y
+Stats per queue      = Y
+BSD nic_uio          = Y
+Linux UIO            = Y
+Linux VFIO           = Y
+ARMv7                = Y
+ARMv8                = Y
+x86-32               = Y
+x86-64               = Y
diff --git a/doc/guides/nics/nic_features/vmxnet3.ini b/doc/guides/nics/nic_features/vmxnet3.ini
new file mode 100644
index 0000000..441cd0b
--- /dev/null
+++ b/doc/guides/nics/nic_features/vmxnet3.ini
@@ -0,0 +1,6 @@
+;
+; Supported features of the 'vmxnet3' network poll mode driver.
+;
+; Refer to default.ini for the full list of availble PMD features.
+;
+[Features]
diff --git a/doc/guides/nics/nic_features/xenvirt.ini b/doc/guides/nics/nic_features/xenvirt.ini
new file mode 100644
index 0000000..8352fbb
--- /dev/null
+++ b/doc/guides/nics/nic_features/xenvirt.ini
@@ -0,0 +1,6 @@
+;
+; Supported features of the 'xenvirt' network poll mode driver.
+;
+; Refer to default.ini for the full list of availble PMD features.
+;
+[Features]
diff --git a/doc/guides/nics/overview.rst b/doc/guides/nics/overview.rst
index 6abbae6..2c7f5eb 100644
--- a/doc/guides/nics/overview.rst
+++ b/doc/guides/nics/overview.rst
@@ -72,81 +72,7 @@ Most of these differences are summarized below.
       }
    </style>
 
-.. table:: Features availability in networking drivers
-
-   ==================== = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
-   Feature              a b b b b c e e e i i i i i i i i i i f f f f m m m n n p q q r s t v v v v x
-                        f n n n o x 1 n n 4 4 4 4 g g x x x x m m m m l l p f u c e e i z h h i i m e
-                        p x x x n g 0 a i 0 0 0 0 b b g g g g 1 1 1 1 x x i p l a d d n e u o r r x n
-                        a 2 2 t d b 0   c e e e e   v b b b b 0 0 0 0 4 5 p   l p e e g d n s t t n v
-                        c x x   i e 0       . v v   f e e e e k k k k     e         v   a d t i i e i
-                        k   v   n           . f f       . v v   . v v               f   t e   o o t r
-                        e   f   g           .   .       . f f   . f f                   a r     . 3 t
-                        t                   v   v       v   v   v   v                   2 x     v
-                                            e   e       e   e   e   e                           e
-                                            c   c       c   c   c   c                           c
-   ==================== = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
-   Speed capabilities
-   Link status            Y Y Y   Y Y   Y Y Y     Y   Y Y Y Y         Y Y         Y Y   Y Y Y Y Y
-   Link status event      Y Y       Y     Y Y     Y   Y Y             Y Y         Y Y     Y Y
-   Queue status event                                                                       Y
-   Rx interrupt                     Y     Y Y Y Y Y Y Y Y Y Y Y Y Y Y
-   Queue start/stop           Y   Y   Y Y Y Y Y Y     Y Y     Y Y Y Y Y Y               Y Y   Y Y
-   MTU update                     Y Y Y P         Y   Y Y Y Y         Y Y         Y Y     Y
-   Jumbo frame                    Y Y Y Y Y Y Y Y Y   Y Y Y Y Y Y Y Y Y Y       Y Y Y     Y
-   Scattered Rx                   Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y               Y Y   Y
-   LRO                                                Y Y Y Y
-   TSO                            Y   Y   Y Y Y Y Y Y Y Y Y Y Y Y Y Y
-   Promiscuous mode       Y Y Y   Y Y   Y Y Y Y Y Y Y Y Y     Y Y     Y Y         Y Y   Y Y   Y Y
-   Allmulticast mode              Y Y     Y Y Y Y Y Y Y Y Y Y Y Y     Y Y         Y Y   Y Y   Y Y
-   Unicast MAC filter     Y Y Y     Y   Y Y Y Y Y Y Y Y Y Y Y Y Y     Y Y         Y Y         Y Y
-   Multicast MAC filter   Y Y Y         Y Y Y Y Y             Y Y     Y Y         Y Y         Y Y
-   RSS hash                       Y   Y Y Y Y Y Y Y   Y Y Y Y Y Y Y Y Y Y         Y Y     Y
-   RSS key update                     Y   Y Y Y Y Y   Y Y Y Y Y Y Y Y   Y         Y Y     Y
-   RSS reta update            Y       Y   Y Y Y Y Y   Y Y Y Y Y Y Y Y   Y         Y Y     Y
-   VMDq                                   Y Y     Y   Y Y     Y Y
-   SR-IOV                   Y         Y   Y Y     Y   Y Y             Y Y           Y     Y
-   DCB                                    Y Y     Y   Y Y
-   VLAN filter                      Y   Y Y Y Y Y Y Y Y Y Y Y Y Y     Y Y         Y Y         Y Y
-   Ethertype filter                       Y Y     Y   Y Y
-   N-tuple filter                                 Y   Y Y
-   SYN filter                                     Y   Y Y
-   Tunnel filter                          Y Y         Y Y
-   Flexible filter                                Y
-   Hash filter                            Y Y Y Y
-   Flow director                          Y Y         Y Y               Y
-   Flow control                   Y Y     Y Y     Y   Y Y                         Y Y
-   Rate limitation                                    Y Y
-   Traffic mirroring                      Y Y         Y Y
-   CRC offload                    Y Y Y Y Y   Y   Y Y Y   Y   Y Y Y Y   Y         Y Y     Y
-   VLAN offload                   Y Y Y Y Y   Y   Y Y Y   Y   Y Y Y Y   Y         Y Y     P
-   QinQ offload                     Y     Y   Y   Y Y Y   Y
-   L3 checksum offload            Y Y Y Y Y   Y   Y Y Y   Y   Y Y Y Y Y Y                 Y
-   L4 checksum offload            Y Y Y Y Y   Y   Y Y Y   Y   Y Y Y Y Y Y                 Y
-   Inner L3 checksum                  Y   Y   Y       Y   Y           Y
-   Inner L4 checksum                  Y   Y   Y       Y   Y           Y
-   Packet type parsing            Y     Y Y   Y   Y Y Y   Y   Y Y Y Y Y Y         Y Y     Y
-   Timesync                               Y Y     Y   Y Y
-   Basic stats            Y Y Y   Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y       Y Y Y   Y Y Y Y Y
-   Extended stats         Y Y Y       Y   Y Y Y Y Y Y Y Y Y Y Y Y Y Y             Y Y   Y   Y
-   Stats per queue                Y                   Y Y     Y Y Y Y Y Y         Y Y   Y Y   Y Y
-   EEPROM dump                    Y               Y   Y Y
-   Registers dump                 Y               Y Y Y Y Y Y                             Y
-   Multiprocess aware                     Y Y Y Y     Y Y Y Y Y Y Y Y Y Y       Y Y Y     Y
-   BSD nic_uio                    Y Y   Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y                         Y Y
-   Linux UIO              Y Y Y   Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y             Y Y         Y Y
-   Linux VFIO                     Y Y   Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y                     Y   Y Y
-   Other kdrv                                                         Y Y               Y
-   ARMv7                                                                        Y             Y Y
-   ARMv8                                              Y Y Y Y                   Y         Y   Y Y
-   Power8                                                             Y Y       Y
-   TILE-Gx                                                                      Y
-   x86-32                         Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y       Y           Y Y Y
-   x86-64                 Y Y Y   Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y       Y Y Y   Y   Y Y Y
-   Usage doc              Y Y     Y     Y                             Y Y       Y Y Y   Y Y   Y
-   Design doc
-   Perf doc
-   ==================== = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
+.. include:: overview_table.txt
 
 .. Note::
 
-- 
2.7.4



More information about the dev mailing list