.. SPDX-License-Identifier: BSD-3-Clause
- Copyright 2017 NXP
+ Copyright 2017,2020 NXP
DPAA Poll Mode Driver
=====================
-The DPAA NIC PMD (**librte_pmd_dpaa**) provides poll mode driver
+The DPAA NIC PMD (**librte_net_dpaa**) provides poll mode driver
support for the inbuilt NIC found in the **NXP DPAA** SoC family.
More information can be found at `NXP Official Website
- DPAA overview
- DPAA driver architecture overview
+- FMAN configuration tools and library
.. _dpaa_overview:
this pool.
-Whitelisting & Blacklisting
----------------------------
+Allowing & Blocking
+-------------------
-For blacklisting a DPAA device, following commands can be used.
+For blocking a DPAA device, following commands can be used.
.. code-block:: console
Pre-Installation Configuration
------------------------------
-Config File Options
-~~~~~~~~~~~~~~~~~~~
-
-The following options can be modified in the ``config`` file.
-Please note that enabling debugging options may affect system performance.
-
-- ``CONFIG_RTE_LIBRTE_DPAA_BUS`` (default ``y``)
-
- Toggle compilation of the ``librte_bus_dpaa`` driver.
-
-- ``CONFIG_RTE_LIBRTE_DPAA_PMD`` (default ``y``)
-
- Toggle compilation of the ``librte_pmd_dpaa`` driver.
-
-- ``CONFIG_RTE_LIBRTE_DPAA_DEBUG_DRIVER`` (default ``n``)
-
- Toggles display of bus configurations and enables a debugging queue
- to fetch error (Rx/Tx) packets to driver. By default, packets with errors
- (like wrong checksum) are dropped by the hardware.
-
-- ``CONFIG_RTE_LIBRTE_DPAA_HWDEBUG`` (default ``n``)
-
- Enables debugging of the Queue and Buffer Manager layer which interacts
- with the DPAA hardware.
-
Environment Variables
~~~~~~~~~~~~~~~~~~~~~
.. code-block:: console
- ./arm64-dpaa-linux-gcc/testpmd -c 0xff -n 1 \
+ ./<build_dir>/app/dpdk-testpmd -c 0xff -n 1 \
-- -i --portmask=0x3 --nb-cores=1 --no-flush-rx
.....
Done
testpmd>
+FMAN Config
+-----------
+
+Frame Manager is also responsible for parser, classify and distribute
+functionality in the DPAA.
+
+ FMAN supports:
+ Packet parsing at wire speed. It supports standard protocols parsing and
+ identification by HW (VLAN/IP/UDP/TCP/SCTP/PPPoE/PPP/MPLS/GRE/IPSec).
+ It supports non-standard UDF header parsing for custom protocols.
+ Classification / Distribution: Coarse classification based on Key generation
+ Hash and exact match lookup
+
+FMC - FMAN Configuration Tool
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ This tool is available in User Space. The tool is used to configure FMAN
+ Physical (MAC) or Ephemeral (OH)ports for Parse/Classify/distribute.
+ The PCDs can be hash based where a set of fields are key input for hash
+ generation within FMAN keygen. The hash value is used to generate a FQID for
+ frame. There is a provision to setup exact match lookup too where field
+ values within a packet drives corresponding FQID.
+ Currently it works on XML file inputs.
+
+ Limitations:
+ 1.For Dynamic Configuration change, currently no support is available.
+ E.g. enable/disable a port, a operator (set of VLANs and associate rules).
+
+ 2.During FMC configuration, port for which policy is being configured is
+ brought down and the policy is flushed on port before new policy is updated
+ for the port. Support is required to add/append/delete etc.
+
+ 3.FMC, being a separate user-space application, needs to be invoked from
+ Shell.
+
+
+ The details can be found in FMC Doc at:
+ `Frame Mnager Configuration Tool <https://www.nxp.com/docs/en/application-note/AN4760.pdf>`_.
+
+FMLIB
+~~~~~
+ The Frame Manager library provides an API on top of the Frame Manager driver
+ ioctl calls, that provides a user space application with a simple way to
+ configure driver parameters and PCD (parse - classify - distribute) rules.
+
+ This is an alternate to the FMC based configuration. This library provides
+ direct ioctl based interfaces for FMAN configuration as used by the FMC tool
+ as well. This helps in overcoming the main limitaiton of FMC - i.e. lack
+ of dynamic configuration.
+
+ The location for the fmd driver as used by FMLIB and FMC is as follows:
+ `Kernel FMD Driver
+ <https://source.codeaurora.org/external/qoriq/qoriq-components/linux/tree/drivers/net/ethernet/freescale/sdk_fman?h=linux-4.19-rt>`_.
+
+VSP (Virtual Storage Profile)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ The storage profiled are means to provide virtualized interface. A ranges of
+ storage profiles cab be associated to Ethernet ports.
+ They are selected during classification. Specify how the frame should be
+ written to memory and which buffer pool to select for packet storange in
+ queues. Start and End margin of buffer can also be configured.
+
Limitations
-----------