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

John McNamara john.mcnamara at intel.com
Thu Jun 30 20:03:37 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]
    Speed capabilities   =
    Link status          = Y
    Link status event    = Y
    Queue status event   =
    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>
---
 .gitignore                                   |   2 +
 doc/guides/conf.py                           | 155 +++++++++++++++++++++++++++
 doc/guides/nics/nic_features/afpacket.ini    |  64 +++++++++++
 doc/guides/nics/nic_features/bnx2x.ini       |  64 +++++++++++
 doc/guides/nics/nic_features/bnx2x_vf.ini    |  64 +++++++++++
 doc/guides/nics/nic_features/bnxt.ini        |  64 +++++++++++
 doc/guides/nics/nic_features/bonding.ini     |  64 +++++++++++
 doc/guides/nics/nic_features/cxgbe.ini       |  64 +++++++++++
 doc/guides/nics/nic_features/default.ini     |  68 ++++++++++++
 doc/guides/nics/nic_features/e1000.ini       |  64 +++++++++++
 doc/guides/nics/nic_features/ena.ini         |  64 +++++++++++
 doc/guides/nics/nic_features/enic.ini        |  64 +++++++++++
 doc/guides/nics/nic_features/fm10k.ini       |  64 +++++++++++
 doc/guides/nics/nic_features/fm10k_vec.ini   |  64 +++++++++++
 doc/guides/nics/nic_features/fm10k_vf.ini    |  64 +++++++++++
 doc/guides/nics/nic_features/fm10kvf_vec.ini |  64 +++++++++++
 doc/guides/nics/nic_features/i40e.ini        |  64 +++++++++++
 doc/guides/nics/nic_features/i40e_vec.ini    |  64 +++++++++++
 doc/guides/nics/nic_features/i40e_vf.ini     |  64 +++++++++++
 doc/guides/nics/nic_features/i40evf_vec.ini  |  64 +++++++++++
 doc/guides/nics/nic_features/igb.ini         |  64 +++++++++++
 doc/guides/nics/nic_features/igb_vf.ini      |  64 +++++++++++
 doc/guides/nics/nic_features/ixgbe.ini       |  64 +++++++++++
 doc/guides/nics/nic_features/ixgbe_vec.ini   |  64 +++++++++++
 doc/guides/nics/nic_features/ixgbe_vf.ini    |  64 +++++++++++
 doc/guides/nics/nic_features/ixgbevf_vec.ini |  64 +++++++++++
 doc/guides/nics/nic_features/mlx4.ini        |  64 +++++++++++
 doc/guides/nics/nic_features/mlx5.ini        |  64 +++++++++++
 doc/guides/nics/nic_features/mpipe.ini       |  64 +++++++++++
 doc/guides/nics/nic_features/nfp.ini         |  64 +++++++++++
 doc/guides/nics/nic_features/null.ini        |  64 +++++++++++
 doc/guides/nics/nic_features/pcap.ini        |  64 +++++++++++
 doc/guides/nics/nic_features/qede.ini        |  64 +++++++++++
 doc/guides/nics/nic_features/qede_vf.ini     |  64 +++++++++++
 doc/guides/nics/nic_features/ring.ini        |  64 +++++++++++
 doc/guides/nics/nic_features/szedata2.ini    |  64 +++++++++++
 doc/guides/nics/nic_features/thunderx.ini    |  64 +++++++++++
 doc/guides/nics/nic_features/vhost.ini       |  64 +++++++++++
 doc/guides/nics/nic_features/virtio.ini      |  64 +++++++++++
 doc/guides/nics/nic_features/virtio_vec.ini  |  64 +++++++++++
 doc/guides/nics/nic_features/vmxnet3.ini     |  64 +++++++++++
 doc/guides/nics/nic_features/xenvirt.ini     |  64 +++++++++++
 doc/guides/nics/overview.rst                 |  77 +------------
 43 files changed, 2723 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..7854f44
--- /dev/null
+++ b/doc/guides/nics/nic_features/afpacket.ini
@@ -0,0 +1,64 @@
+;
+; Features of the afpacket network driver.
+;
+[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/bnx2x.ini b/doc/guides/nics/nic_features/bnx2x.ini
new file mode 100644
index 0000000..015197a
--- /dev/null
+++ b/doc/guides/nics/nic_features/bnx2x.ini
@@ -0,0 +1,64 @@
+;
+; Features of the bnx2x network driver.
+;
+[Features]
+Speed capabilities   =
+Link status          = Y
+Link status event    = Y
+Queue status event   =
+Rx interrupt         =
+Queue start/stop     =
+MTU update           =
+Jumbo frame          =
+Scattered Rx         =
+LRO                  =
+TSO                  =
+Promiscuous mode     = Y
+Allmulticast mode    =
+Unicast MAC filter   = Y
+Multicast MAC filter = Y
+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          = Y
+Extended stats       =
+Stats per queue      =
+EEPROM dump          =
+Registers dump       =
+Multiprocess aware   =
+BSD nic_uio          =
+Linux UIO            = Y
+Linux VFIO           =
+Other kdrv           =
+ARMv7                =
+ARMv8                =
+Power8               =
+TILE-Gx              =
+x86-32               =
+x86-64               = Y
+Usage doc            = Y
+Design doc           =
+Perf doc             =
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..06543b8
--- /dev/null
+++ b/doc/guides/nics/nic_features/bnx2x_vf.ini
@@ -0,0 +1,64 @@
+;
+; Features of the bnx2x_vf network driver.
+;
+[Features]
+Speed capabilities   =
+Link status          = Y
+Link status event    = Y
+Queue status event   =
+Rx interrupt         =
+Queue start/stop     =
+MTU update           =
+Jumbo frame          =
+Scattered Rx         =
+LRO                  =
+TSO                  =
+Promiscuous mode     = Y
+Allmulticast mode    =
+Unicast MAC filter   = Y
+Multicast MAC filter = Y
+RSS hash             =
+RSS key update       =
+RSS reta update      =
+VMDq                 =
+SR-IOV               = Y
+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          = Y
+Extended stats       =
+Stats per queue      =
+EEPROM dump          =
+Registers dump       =
+Multiprocess aware   =
+BSD nic_uio          =
+Linux UIO            = Y
+Linux VFIO           =
+Other kdrv           =
+ARMv7                =
+ARMv8                =
+Power8               =
+TILE-Gx              =
+x86-32               =
+x86-64               = Y
+Usage doc            = Y
+Design doc           =
+Perf doc             =
diff --git a/doc/guides/nics/nic_features/bnxt.ini b/doc/guides/nics/nic_features/bnxt.ini
new file mode 100644
index 0000000..8ea3374
--- /dev/null
+++ b/doc/guides/nics/nic_features/bnxt.ini
@@ -0,0 +1,64 @@
+;
+; Features of the bnxt network driver.
+;
+[Features]
+Speed capabilities   =
+Link status          = Y
+Link status event    =
+Queue status event   =
+Rx interrupt         =
+Queue start/stop     = Y
+MTU update           =
+Jumbo frame          =
+Scattered Rx         =
+LRO                  =
+TSO                  =
+Promiscuous mode     = Y
+Allmulticast mode    =
+Unicast MAC filter   = Y
+Multicast MAC filter = Y
+RSS hash             =
+RSS key update       =
+RSS reta update      = Y
+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          = Y
+Extended stats       = Y
+Stats per queue      =
+EEPROM dump          =
+Registers dump       =
+Multiprocess aware   =
+BSD nic_uio          =
+Linux UIO            = Y
+Linux VFIO           =
+Other kdrv           =
+ARMv7                =
+ARMv8                =
+Power8               =
+TILE-Gx              =
+x86-32               =
+x86-64               = Y
+Usage doc            =
+Design doc           =
+Perf doc             =
diff --git a/doc/guides/nics/nic_features/bonding.ini b/doc/guides/nics/nic_features/bonding.ini
new file mode 100644
index 0000000..c6dd68a
--- /dev/null
+++ b/doc/guides/nics/nic_features/bonding.ini
@@ -0,0 +1,64 @@
+;
+; Features of the bonding network driver.
+;
+[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/cxgbe.ini b/doc/guides/nics/nic_features/cxgbe.ini
new file mode 100644
index 0000000..1b7d320
--- /dev/null
+++ b/doc/guides/nics/nic_features/cxgbe.ini
@@ -0,0 +1,64 @@
+;
+; Features of the cxgbe network driver.
+;
+[Features]
+Speed capabilities   =
+Link status          = Y
+Link status event    =
+Queue status event   =
+Rx interrupt         =
+Queue start/stop     = Y
+MTU update           = Y
+Jumbo frame          = Y
+Scattered Rx         = Y
+LRO                  =
+TSO                  = Y
+Promiscuous mode     = Y
+Allmulticast mode    = Y
+Unicast MAC filter   =
+Multicast MAC filter =
+RSS hash             = Y
+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         = Y
+Rate limitation      =
+Traffic mirroring    =
+CRC offload          = Y
+VLAN offload         = Y
+QinQ offload         =
+L3 checksum offload  = Y
+L4 checksum offload  = Y
+Inner L3 checksum    =
+Inner L4 checksum    =
+Packet type parsing  = Y
+Timesync             =
+Basic stats          = Y
+Extended stats       =
+Stats per queue      = Y
+EEPROM dump          = Y
+Registers dump       = Y
+Multiprocess aware   =
+BSD nic_uio          = Y
+Linux UIO            = Y
+Linux VFIO           = Y
+Other kdrv           =
+ARMv7                =
+ARMv8                =
+Power8               =
+TILE-Gx              =
+x86-32               = Y
+x86-64               = Y
+Usage doc            = Y
+Design doc           =
+Perf doc             =
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..95efdcf
--- /dev/null
+++ b/doc/guides/nics/nic_features/e1000.ini
@@ -0,0 +1,64 @@
+;
+; Features of the e1000 network driver.
+;
+[Features]
+Speed capabilities   =
+Link status          = Y
+Link status event    = Y
+Queue status event   =
+Rx interrupt         = Y
+Queue start/stop     =
+MTU update           = Y
+Jumbo frame          = Y
+Scattered Rx         = Y
+LRO                  =
+TSO                  =
+Promiscuous mode     = Y
+Allmulticast mode    = Y
+Unicast MAC filter   = Y
+Multicast MAC filter =
+RSS hash             =
+RSS key update       =
+RSS reta update      =
+VMDq                 =
+SR-IOV               =
+DCB                  =
+VLAN filter          = Y
+Ethertype filter     =
+N-tuple filter       =
+SYN filter           =
+Tunnel filter        =
+Flexible filter      =
+Hash filter          =
+Flow director        =
+Flow control         = Y
+Rate limitation      =
+Traffic mirroring    =
+CRC offload          = Y
+VLAN offload         = Y
+QinQ offload         = Y
+L3 checksum offload  = Y
+L4 checksum offload  = Y
+Inner L3 checksum    =
+Inner L4 checksum    =
+Packet type parsing  =
+Timesync             =
+Basic stats          = Y
+Extended stats       =
+Stats per queue      =
+EEPROM dump          =
+Registers dump       =
+Multiprocess aware   =
+BSD nic_uio          = Y
+Linux UIO            = Y
+Linux VFIO           = Y
+Other kdrv           =
+ARMv7                =
+ARMv8                =
+Power8               =
+TILE-Gx              =
+x86-32               = Y
+x86-64               = Y
+Usage doc            =
+Design doc           =
+Perf doc             =
diff --git a/doc/guides/nics/nic_features/ena.ini b/doc/guides/nics/nic_features/ena.ini
new file mode 100644
index 0000000..7ec793e
--- /dev/null
+++ b/doc/guides/nics/nic_features/ena.ini
@@ -0,0 +1,64 @@
+;
+; Features of the ena network driver.
+;
+[Features]
+Speed capabilities   =
+Link status          =
+Link status event    =
+Queue status event   =
+Rx interrupt         =
+Queue start/stop     = Y
+MTU update           = Y
+Jumbo frame          = Y
+Scattered Rx         = Y
+LRO                  =
+TSO                  = Y
+Promiscuous mode     =
+Allmulticast mode    =
+Unicast MAC filter   =
+Multicast MAC filter =
+RSS hash             = Y
+RSS key update       = Y
+RSS reta update      = Y
+VMDq                 =
+SR-IOV               = Y
+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          = Y
+VLAN offload         = Y
+QinQ offload         =
+L3 checksum offload  = Y
+L4 checksum offload  = Y
+Inner L3 checksum    = Y
+Inner L4 checksum    = Y
+Packet type parsing  =
+Timesync             =
+Basic stats          = Y
+Extended stats       = Y
+Stats per queue      =
+EEPROM dump          =
+Registers dump       =
+Multiprocess aware   =
+BSD nic_uio          =
+Linux UIO            = Y
+Linux VFIO           =
+Other kdrv           =
+ARMv7                =
+ARMv8                =
+Power8               =
+TILE-Gx              =
+x86-32               = Y
+x86-64               = Y
+Usage doc            =
+Design doc           =
+Perf doc             =
diff --git a/doc/guides/nics/nic_features/enic.ini b/doc/guides/nics/nic_features/enic.ini
new file mode 100644
index 0000000..f745982
--- /dev/null
+++ b/doc/guides/nics/nic_features/enic.ini
@@ -0,0 +1,64 @@
+;
+; Features of the enic network driver.
+;
+[Features]
+Speed capabilities   =
+Link status          = Y
+Link status event    =
+Queue status event   =
+Rx interrupt         =
+Queue start/stop     = Y
+MTU update           = Y
+Jumbo frame          = Y
+Scattered Rx         = Y
+LRO                  =
+TSO                  =
+Promiscuous mode     = Y
+Allmulticast mode    =
+Unicast MAC filter   = Y
+Multicast MAC filter = Y
+RSS hash             = Y
+RSS key update       =
+RSS reta update      =
+VMDq                 =
+SR-IOV               =
+DCB                  =
+VLAN filter          = Y
+Ethertype filter     =
+N-tuple filter       =
+SYN filter           =
+Tunnel filter        =
+Flexible filter      =
+Hash filter          =
+Flow director        =
+Flow control         =
+Rate limitation      =
+Traffic mirroring    =
+CRC offload          = Y
+VLAN offload         = Y
+QinQ offload         =
+L3 checksum offload  = Y
+L4 checksum offload  = Y
+Inner L3 checksum    =
+Inner L4 checksum    =
+Packet type parsing  = Y
+Timesync             =
+Basic stats          = Y
+Extended stats       =
+Stats per queue      =
+EEPROM dump          =
+Registers dump       =
+Multiprocess aware   =
+BSD nic_uio          = Y
+Linux UIO            = Y
+Linux VFIO           = Y
+Other kdrv           =
+ARMv7                =
+ARMv8                =
+Power8               =
+TILE-Gx              =
+x86-32               = Y
+x86-64               = Y
+Usage doc            = Y
+Design doc           =
+Perf doc             =
diff --git a/doc/guides/nics/nic_features/fm10k.ini b/doc/guides/nics/nic_features/fm10k.ini
new file mode 100644
index 0000000..ca71b89
--- /dev/null
+++ b/doc/guides/nics/nic_features/fm10k.ini
@@ -0,0 +1,64 @@
+;
+; Features of the fm10k network driver.
+;
+[Features]
+Speed capabilities   =
+Link status          =
+Link status event    =
+Queue status event   =
+Rx interrupt         = Y
+Queue start/stop     = Y
+MTU update           =
+Jumbo frame          = Y
+Scattered Rx         = Y
+LRO                  =
+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               =
+DCB                  =
+VLAN filter          = Y
+Ethertype filter     =
+N-tuple filter       =
+SYN filter           =
+Tunnel filter        =
+Flexible filter      =
+Hash filter          =
+Flow director        =
+Flow control         =
+Rate limitation      =
+Traffic mirroring    =
+CRC offload          = Y
+VLAN offload         = Y
+QinQ offload         =
+L3 checksum offload  = Y
+L4 checksum offload  = Y
+Inner L3 checksum    =
+Inner L4 checksum    =
+Packet type parsing  = Y
+Timesync             =
+Basic stats          = Y
+Extended stats       = Y
+Stats per queue      = Y
+EEPROM dump          =
+Registers dump       =
+Multiprocess aware   = Y
+BSD nic_uio          = Y
+Linux UIO            = Y
+Linux VFIO           = Y
+Other kdrv           =
+ARMv7                =
+ARMv8                =
+Power8               =
+TILE-Gx              =
+x86-32               = Y
+x86-64               = Y
+Usage doc            =
+Design doc           =
+Perf doc             =
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..a43b2aa
--- /dev/null
+++ b/doc/guides/nics/nic_features/fm10k_vec.ini
@@ -0,0 +1,64 @@
+;
+; Features of the fm10k_vec network driver.
+;
+[Features]
+Speed capabilities   =
+Link status          =
+Link status event    =
+Queue status event   =
+Rx interrupt         = Y
+Queue start/stop     = Y
+MTU update           =
+Jumbo frame          = Y
+Scattered Rx         = Y
+LRO                  =
+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               =
+DCB                  =
+VLAN filter          = Y
+Ethertype filter     =
+N-tuple filter       =
+SYN filter           =
+Tunnel filter        =
+Flexible filter      =
+Hash filter          =
+Flow director        =
+Flow control         =
+Rate limitation      =
+Traffic mirroring    =
+CRC offload          = Y
+VLAN offload         = Y
+QinQ offload         =
+L3 checksum offload  = Y
+L4 checksum offload  = Y
+Inner L3 checksum    =
+Inner L4 checksum    =
+Packet type parsing  = Y
+Timesync             =
+Basic stats          = Y
+Extended stats       = Y
+Stats per queue      = Y
+EEPROM dump          =
+Registers dump       =
+Multiprocess aware   = Y
+BSD nic_uio          = Y
+Linux UIO            = Y
+Linux VFIO           = Y
+Other kdrv           =
+ARMv7                =
+ARMv8                =
+Power8               =
+TILE-Gx              =
+x86-32               = Y
+x86-64               = Y
+Usage doc            =
+Design doc           =
+Perf doc             =
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..071468f
--- /dev/null
+++ b/doc/guides/nics/nic_features/fm10k_vf.ini
@@ -0,0 +1,64 @@
+;
+; Features of the fm10k_vf network driver.
+;
+[Features]
+Speed capabilities   =
+Link status          =
+Link status event    =
+Queue status event   =
+Rx interrupt         = Y
+Queue start/stop     = Y
+MTU update           =
+Jumbo frame          = Y
+Scattered Rx         = Y
+LRO                  =
+TSO                  = Y
+Promiscuous mode     =
+Allmulticast mode    =
+Unicast MAC filter   =
+Multicast MAC filter =
+RSS hash             = Y
+RSS key update       = Y
+RSS reta update      = Y
+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          = Y
+VLAN offload         = Y
+QinQ offload         =
+L3 checksum offload  = Y
+L4 checksum offload  = Y
+Inner L3 checksum    =
+Inner L4 checksum    =
+Packet type parsing  = Y
+Timesync             =
+Basic stats          = Y
+Extended stats       = Y
+Stats per queue      = Y
+EEPROM dump          =
+Registers dump       =
+Multiprocess aware   = Y
+BSD nic_uio          = Y
+Linux UIO            = Y
+Linux VFIO           = Y
+Other kdrv           =
+ARMv7                =
+ARMv8                =
+Power8               =
+TILE-Gx              =
+x86-32               = Y
+x86-64               = Y
+Usage doc            =
+Design doc           =
+Perf doc             =
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..3be972c
--- /dev/null
+++ b/doc/guides/nics/nic_features/fm10kvf_vec.ini
@@ -0,0 +1,64 @@
+;
+; Features of the fm10kvf_vec network driver.
+;
+[Features]
+Speed capabilities   =
+Link status          =
+Link status event    =
+Queue status event   =
+Rx interrupt         = Y
+Queue start/stop     = Y
+MTU update           =
+Jumbo frame          = Y
+Scattered Rx         = Y
+LRO                  =
+TSO                  = Y
+Promiscuous mode     =
+Allmulticast mode    =
+Unicast MAC filter   =
+Multicast MAC filter =
+RSS hash             = Y
+RSS key update       = Y
+RSS reta update      = Y
+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          = Y
+VLAN offload         = Y
+QinQ offload         =
+L3 checksum offload  = Y
+L4 checksum offload  = Y
+Inner L3 checksum    =
+Inner L4 checksum    =
+Packet type parsing  = Y
+Timesync             =
+Basic stats          = Y
+Extended stats       = Y
+Stats per queue      = Y
+EEPROM dump          =
+Registers dump       =
+Multiprocess aware   = Y
+BSD nic_uio          = Y
+Linux UIO            = Y
+Linux VFIO           = Y
+Other kdrv           =
+ARMv7                =
+ARMv8                =
+Power8               =
+TILE-Gx              =
+x86-32               = Y
+x86-64               = Y
+Usage doc            =
+Design doc           =
+Perf doc             =
diff --git a/doc/guides/nics/nic_features/i40e.ini b/doc/guides/nics/nic_features/i40e.ini
new file mode 100644
index 0000000..8e11dcf
--- /dev/null
+++ b/doc/guides/nics/nic_features/i40e.ini
@@ -0,0 +1,64 @@
+;
+; Features of the i40e network driver.
+;
+[Features]
+Speed capabilities   =
+Link status          = Y
+Link status event    = Y
+Queue status event   =
+Rx interrupt         = Y
+Queue start/stop     = Y
+MTU update           =
+Jumbo frame          = Y
+Scattered Rx         = Y
+LRO                  =
+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
+N-tuple filter       =
+SYN filter           =
+Tunnel filter        = Y
+Flexible filter      =
+Hash filter          = Y
+Flow director        = Y
+Flow control         = Y
+Rate limitation      =
+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      =
+EEPROM dump          =
+Registers dump       =
+Multiprocess aware   = Y
+BSD nic_uio          = Y
+Linux UIO            = Y
+Linux VFIO           = Y
+Other kdrv           =
+ARMv7                =
+ARMv8                =
+Power8               =
+TILE-Gx              =
+x86-32               = Y
+x86-64               = Y
+Usage doc            =
+Design doc           =
+Perf doc             =
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..cacda75
--- /dev/null
+++ b/doc/guides/nics/nic_features/i40e_vec.ini
@@ -0,0 +1,64 @@
+;
+; Features of the i40e_vec network driver.
+;
+[Features]
+Speed capabilities   =
+Link status          = Y
+Link status event    = Y
+Queue status event   =
+Rx interrupt         = Y
+Queue start/stop     = Y
+MTU update           =
+Jumbo frame          = Y
+Scattered Rx         = Y
+LRO                  =
+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
+N-tuple filter       =
+SYN filter           =
+Tunnel filter        = Y
+Flexible filter      =
+Hash filter          = Y
+Flow director        = Y
+Flow control         = Y
+Rate limitation      =
+Traffic mirroring    = Y
+CRC offload          =
+VLAN offload         =
+QinQ offload         =
+L3 checksum offload  =
+L4 checksum offload  =
+Inner L3 checksum    =
+Inner L4 checksum    =
+Packet type parsing  =
+Timesync             = Y
+Basic stats          = Y
+Extended stats       = Y
+Stats per queue      =
+EEPROM dump          =
+Registers dump       =
+Multiprocess aware   = Y
+BSD nic_uio          = Y
+Linux UIO            = Y
+Linux VFIO           = Y
+Other kdrv           =
+ARMv7                =
+ARMv8                =
+Power8               =
+TILE-Gx              =
+x86-32               = Y
+x86-64               = Y
+Usage doc            =
+Design doc           =
+Perf doc             =
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..bed72bc
--- /dev/null
+++ b/doc/guides/nics/nic_features/i40e_vf.ini
@@ -0,0 +1,64 @@
+;
+; Features of the i40e_vf network driver.
+;
+[Features]
+Speed capabilities   =
+Link status          =
+Link status event    =
+Queue status event   =
+Rx interrupt         = Y
+Queue start/stop     = Y
+MTU update           =
+Jumbo frame          = Y
+Scattered Rx         = Y
+LRO                  =
+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                 =
+SR-IOV               =
+DCB                  =
+VLAN filter          = Y
+Ethertype filter     =
+N-tuple filter       =
+SYN filter           =
+Tunnel filter        =
+Flexible filter      =
+Hash filter          = Y
+Flow director        =
+Flow control         =
+Rate limitation      =
+Traffic mirroring    =
+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             =
+Basic stats          = Y
+Extended stats       = Y
+Stats per queue      =
+EEPROM dump          =
+Registers dump       =
+Multiprocess aware   = Y
+BSD nic_uio          = Y
+Linux UIO            = Y
+Linux VFIO           = Y
+Other kdrv           =
+ARMv7                =
+ARMv8                =
+Power8               =
+TILE-Gx              =
+x86-32               = Y
+x86-64               = Y
+Usage doc            =
+Design doc           =
+Perf doc             =
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..ba18eac
--- /dev/null
+++ b/doc/guides/nics/nic_features/i40evf_vec.ini
@@ -0,0 +1,64 @@
+;
+; Features of the i40evf_vec network driver.
+;
+[Features]
+Speed capabilities   =
+Link status          =
+Link status event    =
+Queue status event   =
+Rx interrupt         = Y
+Queue start/stop     = Y
+MTU update           =
+Jumbo frame          = Y
+Scattered Rx         = Y
+LRO                  =
+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                 =
+SR-IOV               =
+DCB                  =
+VLAN filter          = Y
+Ethertype filter     =
+N-tuple filter       =
+SYN filter           =
+Tunnel filter        =
+Flexible filter      =
+Hash filter          = Y
+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          = Y
+Extended stats       = Y
+Stats per queue      =
+EEPROM dump          =
+Registers dump       =
+Multiprocess aware   = Y
+BSD nic_uio          = Y
+Linux UIO            = Y
+Linux VFIO           = Y
+Other kdrv           =
+ARMv7                =
+ARMv8                =
+Power8               =
+TILE-Gx              =
+x86-32               = Y
+x86-64               = Y
+Usage doc            =
+Design doc           =
+Perf doc             =
diff --git a/doc/guides/nics/nic_features/igb.ini b/doc/guides/nics/nic_features/igb.ini
new file mode 100644
index 0000000..5fecdaf
--- /dev/null
+++ b/doc/guides/nics/nic_features/igb.ini
@@ -0,0 +1,64 @@
+;
+; Features of the igb network driver.
+;
+[Features]
+Speed capabilities   =
+Link status          = Y
+Link status event    = Y
+Queue status event   =
+Rx interrupt         = Y
+Queue start/stop     =
+MTU update           = Y
+Jumbo frame          = Y
+Scattered Rx         = Y
+LRO                  =
+TSO                  = Y
+Promiscuous mode     = Y
+Allmulticast mode    = Y
+Unicast MAC filter   = Y
+Multicast MAC filter =
+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        =
+Flexible filter      = Y
+Hash filter          =
+Flow director        =
+Flow control         = Y
+Rate limitation      =
+Traffic mirroring    =
+CRC offload          = Y
+VLAN offload         = Y
+QinQ offload         = Y
+L3 checksum offload  = Y
+L4 checksum offload  = Y
+Inner L3 checksum    =
+Inner L4 checksum    =
+Packet type parsing  = Y
+Timesync             = Y
+Basic stats          = Y
+Extended stats       = Y
+Stats per queue      =
+EEPROM dump          = Y
+Registers dump       = Y
+Multiprocess aware   =
+BSD nic_uio          = Y
+Linux UIO            = Y
+Linux VFIO           = Y
+Other kdrv           =
+ARMv7                =
+ARMv8                =
+Power8               =
+TILE-Gx              =
+x86-32               = Y
+x86-64               = Y
+Usage doc            =
+Design doc           =
+Perf doc             =
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..b52ffc6
--- /dev/null
+++ b/doc/guides/nics/nic_features/igb_vf.ini
@@ -0,0 +1,64 @@
+;
+; Features of the igb_vf network driver.
+;
+[Features]
+Speed capabilities   =
+Link status          =
+Link status event    =
+Queue status event   =
+Rx interrupt         = Y
+Queue start/stop     =
+MTU update           =
+Jumbo frame          =
+Scattered Rx         = Y
+LRO                  =
+TSO                  = Y
+Promiscuous mode     = Y
+Allmulticast mode    = Y
+Unicast MAC filter   = Y
+Multicast MAC filter =
+RSS hash             =
+RSS key update       =
+RSS reta update      =
+VMDq                 =
+SR-IOV               =
+DCB                  =
+VLAN filter          = Y
+Ethertype filter     =
+N-tuple filter       =
+SYN filter           =
+Tunnel filter        =
+Flexible filter      =
+Hash filter          =
+Flow director        =
+Flow control         =
+Rate limitation      =
+Traffic mirroring    =
+CRC offload          = Y
+VLAN offload         = Y
+QinQ offload         = Y
+L3 checksum offload  = Y
+L4 checksum offload  = Y
+Inner L3 checksum    =
+Inner L4 checksum    =
+Packet type parsing  = Y
+Timesync             =
+Basic stats          = Y
+Extended stats       = Y
+Stats per queue      =
+EEPROM dump          =
+Registers dump       = Y
+Multiprocess aware   =
+BSD nic_uio          = Y
+Linux UIO            = Y
+Linux VFIO           = Y
+Other kdrv           =
+ARMv7                =
+ARMv8                =
+Power8               =
+TILE-Gx              =
+x86-32               = Y
+x86-64               = Y
+Usage doc            =
+Design doc           =
+Perf doc             =
diff --git a/doc/guides/nics/nic_features/ixgbe.ini b/doc/guides/nics/nic_features/ixgbe.ini
new file mode 100644
index 0000000..7b45601
--- /dev/null
+++ b/doc/guides/nics/nic_features/ixgbe.ini
@@ -0,0 +1,64 @@
+;
+; Features of the ixgbe network driver.
+;
+[Features]
+Speed capabilities   =
+Link status          = Y
+Link status event    = Y
+Queue status event   =
+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
+Multicast MAC filter =
+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
+Flexible filter      =
+Hash filter          =
+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
+Other kdrv           =
+ARMv7                =
+ARMv8                = Y
+Power8               =
+TILE-Gx              =
+x86-32               = Y
+x86-64               = Y
+Usage doc            =
+Design doc           =
+Perf doc             =
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..7a635eb
--- /dev/null
+++ b/doc/guides/nics/nic_features/ixgbe_vec.ini
@@ -0,0 +1,64 @@
+;
+; Features of the ixgbe_vec network driver.
+;
+[Features]
+Speed capabilities   =
+Link status          = Y
+Link status event    = Y
+Queue status event   =
+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
+Multicast MAC filter =
+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
+Flexible filter      =
+Hash filter          =
+Flow director        = Y
+Flow control         = Y
+Rate limitation      = Y
+Traffic mirroring    = Y
+CRC offload          =
+VLAN offload         =
+QinQ offload         =
+L3 checksum offload  =
+L4 checksum offload  =
+Inner L3 checksum    =
+Inner L4 checksum    =
+Packet type parsing  =
+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
+Other kdrv           =
+ARMv7                =
+ARMv8                = Y
+Power8               =
+TILE-Gx              =
+x86-32               = Y
+x86-64               = Y
+Usage doc            =
+Design doc           =
+Perf doc             =
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..2197cd5
--- /dev/null
+++ b/doc/guides/nics/nic_features/ixgbe_vf.ini
@@ -0,0 +1,64 @@
+;
+; Features of the ixgbe_vf network driver.
+;
+[Features]
+Speed capabilities   =
+Link status          = Y
+Link status event    =
+Queue status event   =
+Rx interrupt         = Y
+Queue start/stop     =
+MTU update           = Y
+Jumbo frame          = Y
+Scattered Rx         = Y
+LRO                  = Y
+TSO                  = Y
+Promiscuous mode     =
+Allmulticast mode    = Y
+Unicast MAC filter   = Y
+Multicast MAC filter =
+RSS hash             = Y
+RSS key update       = Y
+RSS reta update      = Y
+VMDq                 =
+SR-IOV               =
+DCB                  =
+VLAN filter          = Y
+Ethertype filter     =
+N-tuple filter       =
+SYN filter           =
+Tunnel filter        =
+Flexible filter      =
+Hash filter          =
+Flow director        =
+Flow control         =
+Rate limitation      =
+Traffic mirroring    =
+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             =
+Basic stats          = Y
+Extended stats       = Y
+Stats per queue      =
+EEPROM dump          =
+Registers dump       = Y
+Multiprocess aware   = Y
+BSD nic_uio          = Y
+Linux UIO            = Y
+Linux VFIO           = Y
+Other kdrv           =
+ARMv7                =
+ARMv8                = Y
+Power8               =
+TILE-Gx              =
+x86-32               = Y
+x86-64               = Y
+Usage doc            =
+Design doc           =
+Perf doc             =
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..264dc70
--- /dev/null
+++ b/doc/guides/nics/nic_features/ixgbevf_vec.ini
@@ -0,0 +1,64 @@
+;
+; Features of the ixgbevf_vec network driver.
+;
+[Features]
+Speed capabilities   =
+Link status          = Y
+Link status event    =
+Queue status event   =
+Rx interrupt         = Y
+Queue start/stop     =
+MTU update           = Y
+Jumbo frame          = Y
+Scattered Rx         = Y
+LRO                  = Y
+TSO                  = Y
+Promiscuous mode     =
+Allmulticast mode    = Y
+Unicast MAC filter   = Y
+Multicast MAC filter =
+RSS hash             = Y
+RSS key update       = Y
+RSS reta update      = Y
+VMDq                 =
+SR-IOV               =
+DCB                  =
+VLAN filter          = Y
+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          = Y
+Extended stats       = Y
+Stats per queue      =
+EEPROM dump          =
+Registers dump       = Y
+Multiprocess aware   = Y
+BSD nic_uio          = Y
+Linux UIO            = Y
+Linux VFIO           = Y
+Other kdrv           =
+ARMv7                =
+ARMv8                = Y
+Power8               =
+TILE-Gx              =
+x86-32               = Y
+x86-64               = Y
+Usage doc            =
+Design doc           =
+Perf doc             =
diff --git a/doc/guides/nics/nic_features/mlx4.ini b/doc/guides/nics/nic_features/mlx4.ini
new file mode 100644
index 0000000..beac19a
--- /dev/null
+++ b/doc/guides/nics/nic_features/mlx4.ini
@@ -0,0 +1,64 @@
+;
+; Features of the mlx4 network driver.
+;
+[Features]
+Speed capabilities   =
+Link status          = Y
+Link status event    = Y
+Queue status event   =
+Rx interrupt         =
+Queue start/stop     = Y
+MTU update           = Y
+Jumbo frame          = Y
+Scattered Rx         = Y
+LRO                  =
+TSO                  =
+Promiscuous mode     = Y
+Allmulticast mode    = Y
+Unicast MAC filter   = Y
+Multicast MAC filter = Y
+RSS hash             = Y
+RSS key update       =
+RSS reta update      =
+VMDq                 =
+SR-IOV               = Y
+DCB                  =
+VLAN filter          = Y
+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  = Y
+L4 checksum offload  = Y
+Inner L3 checksum    = Y
+Inner L4 checksum    = Y
+Packet type parsing  = Y
+Timesync             =
+Basic stats          = Y
+Extended stats       =
+Stats per queue      = Y
+EEPROM dump          =
+Registers dump       =
+Multiprocess aware   = Y
+BSD nic_uio          =
+Linux UIO            =
+Linux VFIO           =
+Other kdrv           = Y
+ARMv7                =
+ARMv8                =
+Power8               = Y
+TILE-Gx              =
+x86-32               = Y
+x86-64               = Y
+Usage doc            = Y
+Design doc           =
+Perf doc             =
diff --git a/doc/guides/nics/nic_features/mlx5.ini b/doc/guides/nics/nic_features/mlx5.ini
new file mode 100644
index 0000000..d5affa7
--- /dev/null
+++ b/doc/guides/nics/nic_features/mlx5.ini
@@ -0,0 +1,64 @@
+;
+; Features of the mlx5 network driver.
+;
+[Features]
+Speed capabilities   =
+Link status          = Y
+Link status event    = Y
+Queue status event   =
+Rx interrupt         =
+Queue start/stop     = Y
+MTU update           = Y
+Jumbo frame          = Y
+Scattered Rx         = Y
+LRO                  =
+TSO                  =
+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                 =
+SR-IOV               = Y
+DCB                  =
+VLAN filter          = Y
+Ethertype filter     =
+N-tuple filter       =
+SYN filter           =
+Tunnel filter        =
+Flexible filter      =
+Hash filter          =
+Flow director        = Y
+Flow control         =
+Rate limitation      =
+Traffic mirroring    =
+CRC offload          = Y
+VLAN offload         = Y
+QinQ offload         =
+L3 checksum offload  = Y
+L4 checksum offload  = Y
+Inner L3 checksum    =
+Inner L4 checksum    =
+Packet type parsing  = Y
+Timesync             =
+Basic stats          = Y
+Extended stats       =
+Stats per queue      = Y
+EEPROM dump          =
+Registers dump       =
+Multiprocess aware   = Y
+BSD nic_uio          =
+Linux UIO            =
+Linux VFIO           =
+Other kdrv           = Y
+ARMv7                =
+ARMv8                =
+Power8               = Y
+TILE-Gx              =
+x86-32               = Y
+x86-64               = Y
+Usage doc            = Y
+Design doc           =
+Perf doc             =
diff --git a/doc/guides/nics/nic_features/mpipe.ini b/doc/guides/nics/nic_features/mpipe.ini
new file mode 100644
index 0000000..7f73bc0
--- /dev/null
+++ b/doc/guides/nics/nic_features/mpipe.ini
@@ -0,0 +1,64 @@
+;
+; Features of the mpipe network driver.
+;
+[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/nfp.ini b/doc/guides/nics/nic_features/nfp.ini
new file mode 100644
index 0000000..b537126
--- /dev/null
+++ b/doc/guides/nics/nic_features/nfp.ini
@@ -0,0 +1,64 @@
+;
+; Features of the nfp network driver.
+;
+[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/null.ini b/doc/guides/nics/nic_features/null.ini
new file mode 100644
index 0000000..9867240
--- /dev/null
+++ b/doc/guides/nics/nic_features/null.ini
@@ -0,0 +1,64 @@
+;
+; Features of the null network driver.
+;
+[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/pcap.ini b/doc/guides/nics/nic_features/pcap.ini
new file mode 100644
index 0000000..1220dec
--- /dev/null
+++ b/doc/guides/nics/nic_features/pcap.ini
@@ -0,0 +1,64 @@
+;
+; Features of the pcap network driver.
+;
+[Features]
+Speed capabilities   =
+Link status          =
+Link status event    =
+Queue status event   =
+Rx interrupt         =
+Queue start/stop     =
+MTU update           =
+Jumbo frame          = Y
+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          = Y
+Extended stats       =
+Stats per queue      =
+EEPROM dump          =
+Registers dump       =
+Multiprocess aware   = Y
+BSD nic_uio          =
+Linux UIO            =
+Linux VFIO           =
+Other kdrv           =
+ARMv7                = Y
+ARMv8                = Y
+Power8               = Y
+TILE-Gx              = Y
+x86-32               = Y
+x86-64               = Y
+Usage doc            = Y
+Design doc           =
+Perf doc             =
diff --git a/doc/guides/nics/nic_features/qede.ini b/doc/guides/nics/nic_features/qede.ini
new file mode 100644
index 0000000..06c1c70
--- /dev/null
+++ b/doc/guides/nics/nic_features/qede.ini
@@ -0,0 +1,64 @@
+;
+; Features of the qede network driver.
+;
+[Features]
+Speed capabilities   =
+Link status          = Y
+Link status event    = Y
+Queue status event   =
+Rx interrupt         =
+Queue start/stop     =
+MTU update           = Y
+Jumbo frame          = Y
+Scattered Rx         =
+LRO                  =
+TSO                  =
+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                 =
+SR-IOV               =
+DCB                  =
+VLAN filter          = Y
+Ethertype filter     =
+N-tuple filter       =
+SYN filter           =
+Tunnel filter        =
+Flexible filter      =
+Hash filter          =
+Flow director        =
+Flow control         = Y
+Rate limitation      =
+Traffic mirroring    =
+CRC offload          = Y
+VLAN offload         = Y
+QinQ offload         =
+L3 checksum offload  =
+L4 checksum offload  =
+Inner L3 checksum    =
+Inner L4 checksum    =
+Packet type parsing  = Y
+Timesync             =
+Basic stats          = Y
+Extended stats       =
+Stats per queue      = Y
+EEPROM dump          =
+Registers dump       =
+Multiprocess aware   = Y
+BSD nic_uio          =
+Linux UIO            = Y
+Linux VFIO           =
+Other kdrv           =
+ARMv7                =
+ARMv8                =
+Power8               =
+TILE-Gx              =
+x86-32               =
+x86-64               = Y
+Usage doc            = Y
+Design doc           =
+Perf doc             =
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..e855ceb
--- /dev/null
+++ b/doc/guides/nics/nic_features/qede_vf.ini
@@ -0,0 +1,64 @@
+;
+; Features of the qede_vf network driver.
+;
+[Features]
+Speed capabilities   =
+Link status          = Y
+Link status event    = Y
+Queue status event   =
+Rx interrupt         =
+Queue start/stop     =
+MTU update           = Y
+Jumbo frame          = Y
+Scattered Rx         =
+LRO                  =
+TSO                  =
+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                 =
+SR-IOV               = Y
+DCB                  =
+VLAN filter          = Y
+Ethertype filter     =
+N-tuple filter       =
+SYN filter           =
+Tunnel filter        =
+Flexible filter      =
+Hash filter          =
+Flow director        =
+Flow control         = Y
+Rate limitation      =
+Traffic mirroring    =
+CRC offload          = Y
+VLAN offload         = Y
+QinQ offload         =
+L3 checksum offload  =
+L4 checksum offload  =
+Inner L3 checksum    =
+Inner L4 checksum    =
+Packet type parsing  = Y
+Timesync             =
+Basic stats          = Y
+Extended stats       =
+Stats per queue      = Y
+EEPROM dump          =
+Registers dump       =
+Multiprocess aware   = Y
+BSD nic_uio          =
+Linux UIO            = Y
+Linux VFIO           =
+Other kdrv           =
+ARMv7                =
+ARMv8                =
+Power8               =
+TILE-Gx              =
+x86-32               =
+x86-64               = Y
+Usage doc            = Y
+Design doc           =
+Perf doc             =
diff --git a/doc/guides/nics/nic_features/ring.ini b/doc/guides/nics/nic_features/ring.ini
new file mode 100644
index 0000000..4e1816c
--- /dev/null
+++ b/doc/guides/nics/nic_features/ring.ini
@@ -0,0 +1,64 @@
+;
+; Features of the ring network driver.
+;
+[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/szedata2.ini b/doc/guides/nics/nic_features/szedata2.ini
new file mode 100644
index 0000000..befd109
--- /dev/null
+++ b/doc/guides/nics/nic_features/szedata2.ini
@@ -0,0 +1,64 @@
+;
+; Features of the szedata2 network driver.
+;
+[Features]
+Speed capabilities   =
+Link status          = Y
+Link status event    =
+Queue status event   =
+Rx interrupt         =
+Queue start/stop     = Y
+MTU update           =
+Jumbo frame          =
+Scattered Rx         = Y
+LRO                  =
+TSO                  =
+Promiscuous mode     = Y
+Allmulticast mode    = Y
+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          = Y
+Extended stats       = Y
+Stats per queue      = Y
+EEPROM dump          =
+Registers dump       =
+Multiprocess aware   =
+BSD nic_uio          =
+Linux UIO            =
+Linux VFIO           =
+Other kdrv           = Y
+ARMv7                =
+ARMv8                =
+Power8               =
+TILE-Gx              =
+x86-32               =
+x86-64               = Y
+Usage doc            = Y
+Design doc           =
+Perf doc             =
diff --git a/doc/guides/nics/nic_features/thunderx.ini b/doc/guides/nics/nic_features/thunderx.ini
new file mode 100644
index 0000000..47b4c63
--- /dev/null
+++ b/doc/guides/nics/nic_features/thunderx.ini
@@ -0,0 +1,64 @@
+;
+; Features of the thunderx network driver.
+;
+[Features]
+Speed capabilities   =
+Link status          = Y
+Link status event    = Y
+Queue status event   =
+Rx interrupt         =
+Queue start/stop     = Y
+MTU update           = Y
+Jumbo frame          = Y
+Scattered Rx         = Y
+LRO                  =
+TSO                  =
+Promiscuous mode     = Y
+Allmulticast mode    = Y
+Unicast MAC filter   =
+Multicast MAC filter =
+RSS hash             = Y
+RSS key update       = Y
+RSS reta update      = Y
+VMDq                 =
+SR-IOV               = Y
+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          = Y
+VLAN offload         = P
+QinQ offload         =
+L3 checksum offload  = Y
+L4 checksum offload  = Y
+Inner L3 checksum    =
+Inner L4 checksum    =
+Packet type parsing  = Y
+Timesync             =
+Basic stats          = Y
+Extended stats       =
+Stats per queue      = Y
+EEPROM dump          =
+Registers dump       = Y
+Multiprocess aware   = Y
+BSD nic_uio          =
+Linux UIO            =
+Linux VFIO           = Y
+Other kdrv           =
+ARMv7                =
+ARMv8                = Y
+Power8               =
+TILE-Gx              =
+x86-32               =
+x86-64               =
+Usage doc            = Y
+Design doc           =
+Perf doc             =
diff --git a/doc/guides/nics/nic_features/vhost.ini b/doc/guides/nics/nic_features/vhost.ini
new file mode 100644
index 0000000..6637367
--- /dev/null
+++ b/doc/guides/nics/nic_features/vhost.ini
@@ -0,0 +1,64 @@
+;
+; Features of the vhost network driver.
+;
+[Features]
+Speed capabilities   =
+Link status          = Y
+Link status event    = Y
+Queue status event   = Y
+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          = Y
+Extended stats       = Y
+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               = Y
+x86-64               = Y
+Usage doc            =
+Design doc           =
+Perf doc             =
diff --git a/doc/guides/nics/nic_features/virtio.ini b/doc/guides/nics/nic_features/virtio.ini
new file mode 100644
index 0000000..e26ba37
--- /dev/null
+++ b/doc/guides/nics/nic_features/virtio.ini
@@ -0,0 +1,64 @@
+;
+; Features of the virtio network driver.
+;
+[Features]
+Speed capabilities   =
+Link status          = Y
+Link status event    =
+Queue status event   =
+Rx interrupt         =
+Queue start/stop     = Y
+MTU update           =
+Jumbo frame          =
+Scattered Rx         = Y
+LRO                  =
+TSO                  =
+Promiscuous mode     = Y
+Allmulticast mode    = Y
+Unicast MAC filter   = Y
+Multicast MAC filter = Y
+RSS hash             =
+RSS key update       =
+RSS reta update      =
+VMDq                 =
+SR-IOV               =
+DCB                  =
+VLAN filter          = Y
+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          = Y
+Extended stats       =
+Stats per queue      = Y
+EEPROM dump          =
+Registers dump       =
+Multiprocess aware   =
+BSD nic_uio          = Y
+Linux UIO            = Y
+Linux VFIO           = Y
+Other kdrv           =
+ARMv7                = Y
+ARMv8                = Y
+Power8               =
+TILE-Gx              =
+x86-32               = Y
+x86-64               = Y
+Usage doc            = Y
+Design doc           =
+Perf doc             =
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..c844b22
--- /dev/null
+++ b/doc/guides/nics/nic_features/virtio_vec.ini
@@ -0,0 +1,64 @@
+;
+; Features of the virtio_vec network driver.
+;
+[Features]
+Speed capabilities   =
+Link status          = Y
+Link status event    =
+Queue status event   =
+Rx interrupt         =
+Queue start/stop     = Y
+MTU update           =
+Jumbo frame          =
+Scattered Rx         =
+LRO                  =
+TSO                  =
+Promiscuous mode     = Y
+Allmulticast mode    = Y
+Unicast MAC filter   = Y
+Multicast MAC filter = Y
+RSS hash             =
+RSS key update       =
+RSS reta update      =
+VMDq                 =
+SR-IOV               =
+DCB                  =
+VLAN filter          = Y
+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          = Y
+Extended stats       =
+Stats per queue      = Y
+EEPROM dump          =
+Registers dump       =
+Multiprocess aware   =
+BSD nic_uio          = Y
+Linux UIO            = Y
+Linux VFIO           = Y
+Other kdrv           =
+ARMv7                = Y
+ARMv8                = Y
+Power8               =
+TILE-Gx              =
+x86-32               = Y
+x86-64               = Y
+Usage doc            =
+Design doc           =
+Perf doc             =
diff --git a/doc/guides/nics/nic_features/vmxnet3.ini b/doc/guides/nics/nic_features/vmxnet3.ini
new file mode 100644
index 0000000..47482c5
--- /dev/null
+++ b/doc/guides/nics/nic_features/vmxnet3.ini
@@ -0,0 +1,64 @@
+;
+; Features of the vmxnet3 network driver.
+;
+[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/xenvirt.ini b/doc/guides/nics/nic_features/xenvirt.ini
new file mode 100644
index 0000000..a511a26
--- /dev/null
+++ b/doc/guides/nics/nic_features/xenvirt.ini
@@ -0,0 +1,64 @@
+;
+; Features of the xenvirt network driver.
+;
+[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/overview.rst b/doc/guides/nics/overview.rst
index a23eb5c..29392c7 100644
--- a/doc/guides/nics/overview.rst
+++ b/doc/guides/nics/overview.rst
@@ -72,81 +72,8 @@ 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 Y         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
-   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.5.0



More information about the dev mailing list