.. SPDX-License-Identifier: BSD-3-Clause
Copyright(c) 2024 Napatech A/S
NTNIC Poll Mode Driver
======================
The NTNIC PMD provides poll mode driver support for Napatech smartNICs.
Design
------
The NTNIC PMD is designed as a pure user-space driver,
and requires no special Napatech kernel modules.
The Napatech smartNIC presents one control PCI device (PF0).
NTNIC PMD accesses smartNIC PF0 via vfio-pci kernel driver.
Access to PF0 for all purposes is exclusive,
so only one process should access it.
The physical ports are located behind PF0 as DPDK port 0 and 1.
Supported NICs
--------------
================== ================ ================================
SmartNIC total bandwidth FPGA ID
================== ================ ================================
**NT200A02** 2x100 Gb/s 9563 (inline flow management)
**NT400D11** 2x100 Gb/s 9569 (inline flow management)
**NT400D13** 2x100 Gb/s 9574 (inline flow management)
================== ================ ================================
All information about Napatech SmartNICs can be found by links below:
- `NT200A02
`_
- `NT400D11
`_
- `NT400D13
`_
- `Napatech FPGA-based SmartNICs
`_
Features
--------
.. list-table:: Supported Features
:widths: 100
* - FW version
* - Speed capabilities
* - Link status (link updates only)
* - Unicast MAC filtering
* - Multicast MAC filtering
* - Promiscuous mode (device always runs in promiscuous mode)
* - Flow API support
* - Support for multiple rte_flow groups
* - Multiple TX and RX queues
* - Scatter/gather for TX and RX
* - Jumbo frame support
* - Traffic mirroring
* - VLAN filtering
* - Packet modification: NAT, TTL decrement, DSCP tagging
* - Tunnel types: GTP
* - Encapsulation and decapsulation of GTP data
* - RX VLAN stripping via raw decap
* - TX VLAN insertion via raw encap
* - CAM- and TCAM-based matching
* - Exact match for up to 140 million flows and policies
* - Tunnel HW offload: packet type, inner/outer RSS, IP and UDP checksum verification
* - RSS hash
* - RSS key update
* - RSS based on VLAN or 5-tuple
* - RSS using combinations of fields (L3, L4, source/destination)
* - Several RSS hash keys (one per flow type)
* - Default RSS operation with no hash key specification
* - Port and queue statistics
* - RMON statistics in extended stats
* - Link state information
* - Flow statistics
* - Flow aging support
* - Flow metering, including meter policy API
* - Flow update (update action list for a specific flow)
* - Asynchronous flow support
* - MTU update
Limitations
~~~~~~~~~~~
Linux kernel versions before 5.7 are not supported.
Kernel version 5.7 added vfio-pci support for creating VFs from the PF
which is required for the PMD to use vfio-pci on the PF.
This support has been back-ported to older Linux distributions
and they are also supported.
If vfio-pci is not required, kernel version 4.18 is supported.
Configuration
-------------
Command line arguments
~~~~~~~~~~~~~~~~~~~~~~
Following standard DPDK command line arguments are used by the PMD.
NTNIC-specific arguments can be passed in the PCI device parameter list:
.. code-block:: console
... -a 0000:03:00.0[{,}]
The NTNIC-specific argument format is
``