doc: generate NIC overview table from ini files

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@intel.com>
Tested-by: Ferruh Yigit <ferruh.yigit@intel.com>
This commit is contained in:
John McNamara 2016-07-29 12:59:14 +01:00 committed by Thomas Monjalon
parent b0a1419a88
commit 9db3f52126
43 changed files with 1194 additions and 75 deletions

1
.gitignore vendored
View File

@ -0,0 +1 @@
doc/guides/nics/overview_table.txt

View File

@ -28,12 +28,25 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
from __future__ import print_function
import subprocess import subprocess
from docutils import nodes from docutils import nodes
from distutils.version import LooseVersion from distutils.version import LooseVersion
from sphinx import __version__ as sphinx_version from sphinx import __version__ as sphinx_version
from sphinx.highlighting import PygmentsBridge from sphinx.highlighting import PygmentsBridge
from pygments.formatters.latex import LatexFormatter 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' project = 'Data Plane Development Kit'
@ -146,7 +159,149 @@ def process_numref(app, doctree, from_docname):
internal=True) internal=True)
node.replace_self(newnode) 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), '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): def setup(app):
generate_nic_overview_table('doc/guides/nics/overview_table.txt')
if LooseVersion(sphinx_version) < LooseVersion('1.3.1'): if LooseVersion(sphinx_version) < LooseVersion('1.3.1'):
print('Upgrade sphinx to version >= 1.3.1 for ' print('Upgrade sphinx to version >= 1.3.1 for '
'improved Figure/Table number handling.') 'improved Figure/Table number handling.')

View File

@ -0,0 +1,6 @@
;
; Supported features of the 'afpacket' network poll mode driver.
;
; Refer to default.ini for the full list of available PMD features.
;
[Features]

View File

@ -0,0 +1,16 @@
;
; Supported features of the 'bnx2x' network poll mode driver.
;
; Refer to default.ini for the full list of available 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

View File

@ -0,0 +1,17 @@
;
; Supported features of the 'bnx2x_vf' network poll mode driver.
;
; Refer to default.ini for the full list of available 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

View File

@ -0,0 +1,16 @@
;
; Supported features of the 'bnxt' network poll mode driver.
;
; Refer to default.ini for the full list of available 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

View File

@ -0,0 +1,6 @@
;
; Supported features of the 'bonding' network poll mode driver.
;
; Refer to default.ini for the full list of available PMD features.
;
[Features]

View File

@ -0,0 +1,31 @@
;
; Supported features of the 'cxgbe' network poll mode driver.
;
; Refer to default.ini for the full list of available 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

View File

@ -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 =

View File

@ -0,0 +1,28 @@
;
; Supported features of the 'e1000' network poll mode driver.
;
; Refer to default.ini for the full list of available 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

View File

@ -0,0 +1,26 @@
;
; Supported features of the 'ena' network poll mode driver.
;
; Refer to default.ini for the full list of available 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

View File

@ -0,0 +1,28 @@
;
; Supported features of the 'enic' network poll mode driver.
;
; Refer to default.ini for the full list of available 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

View File

@ -0,0 +1,34 @@
;
; Supported features of the 'fm10k' network poll mode driver.
;
; Refer to default.ini for the full list of available 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

View File

@ -0,0 +1,34 @@
;
; Supported features of the 'fm10k_vec' network poll mode driver.
;
; Refer to default.ini for the full list of available 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

View File

@ -0,0 +1,28 @@
;
; Supported features of the 'fm10k_vf' network poll mode driver.
;
; Refer to default.ini for the full list of available 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

View File

@ -0,0 +1,28 @@
;
; Supported features of the 'fm10kvf_vec' network poll mode driver.
;
; Refer to default.ini for the full list of available 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

View File

@ -0,0 +1,47 @@
;
; Supported features of the 'i40e' network poll mode driver.
;
; Refer to default.ini for the full list of available 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

View File

@ -0,0 +1,39 @@
;
; Supported features of the 'i40e_vec' network poll mode driver.
;
; Refer to default.ini for the full list of available 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

View File

@ -0,0 +1,36 @@
;
; Supported features of the 'i40e_vf' network poll mode driver.
;
; Refer to default.ini for the full list of available 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

View File

@ -0,0 +1,28 @@
;
; Supported features of the 'i40evf_vec' network poll mode driver.
;
; Refer to default.ini for the full list of available 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

View File

@ -0,0 +1,44 @@
;
; Supported features of the 'igb' network poll mode driver.
;
; Refer to default.ini for the full list of available 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

View File

@ -0,0 +1,27 @@
;
; Supported features of the 'igb_vf' network poll mode driver.
;
; Refer to default.ini for the full list of available 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

View File

@ -0,0 +1,54 @@
;
; Supported features of the 'ixgbe' network poll mode driver.
;
; Refer to default.ini for the full list of available 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

View File

@ -0,0 +1,46 @@
;
; Supported features of the 'ixgbe_vec' network poll mode driver.
;
; Refer to default.ini for the full list of available 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

View File

@ -0,0 +1,37 @@
;
; Supported features of the 'ixgbe_vf' network poll mode driver.
;
; Refer to default.ini for the full list of available 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

View File

@ -0,0 +1,29 @@
;
; Supported features of the 'ixgbevf_vec' network poll mode driver.
;
; Refer to default.ini for the full list of available 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

View File

@ -0,0 +1,32 @@
;
; Supported features of the 'mlx4' network poll mode driver.
;
; Refer to default.ini for the full list of available 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

View File

@ -0,0 +1,35 @@
;
; Supported features of the 'mlx5' network poll mode driver.
;
; Refer to default.ini for the full list of available 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

View File

@ -0,0 +1,6 @@
;
; Supported features of the 'mpipe' network poll mode driver.
;
; Refer to default.ini for the full list of available PMD features.
;
[Features]

View File

@ -0,0 +1,6 @@
;
; Supported features of the 'nfp' network poll mode driver.
;
; Refer to default.ini for the full list of available PMD features.
;
[Features]

View File

@ -0,0 +1,6 @@
;
; Supported features of the 'null' network poll mode driver.
;
; Refer to default.ini for the full list of available PMD features.
;
[Features]

View File

@ -0,0 +1,16 @@
;
; Supported features of the 'pcap' network poll mode driver.
;
; Refer to default.ini for the full list of available 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

View File

@ -0,0 +1,29 @@
;
; Supported features of the 'qede' network poll mode driver.
;
; Refer to default.ini for the full list of available 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

View File

@ -0,0 +1,30 @@
;
; Supported features of the 'qede_vf' network poll mode driver.
;
; Refer to default.ini for the full list of available 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

View File

@ -0,0 +1,6 @@
;
; Supported features of the 'ring' network poll mode driver.
;
; Refer to default.ini for the full list of available PMD features.
;
[Features]

View File

@ -0,0 +1,17 @@
;
; Supported features of the 'szedata2' network poll mode driver.
;
; Refer to default.ini for the full list of available 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

View File

@ -0,0 +1,30 @@
;
; Supported features of the 'thunderx' network poll mode driver.
;
; Refer to default.ini for the full list of available 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

View File

@ -0,0 +1,13 @@
;
; Supported features of the 'vhost' network poll mode driver.
;
; Refer to default.ini for the full list of available 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

View File

@ -0,0 +1,24 @@
;
; Supported features of the 'virtio' network poll mode driver.
;
; Refer to default.ini for the full list of available 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

View File

@ -0,0 +1,22 @@
;
; Supported features of the 'virtio_vec' network poll mode driver.
;
; Refer to default.ini for the full list of available 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

View File

@ -0,0 +1,6 @@
;
; Supported features of the 'vmxnet3' network poll mode driver.
;
; Refer to default.ini for the full list of available PMD features.
;
[Features]

View File

@ -0,0 +1,6 @@
;
; Supported features of the 'xenvirt' network poll mode driver.
;
; Refer to default.ini for the full list of available PMD features.
;
[Features]

View File

@ -72,81 +72,7 @@ Most of these differences are summarized below.
} }
</style> </style>
.. table:: Features availability in networking drivers .. include:: overview_table.txt
==================== = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
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
==================== = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
.. Note:: .. Note::