[dpdk-dev] [PATCH v2 03/13] doc: add guide for ppfe net PMD

Ferruh Yigit ferruh.yigit at intel.com
Thu Sep 26 18:56:16 CEST 2019


On 8/28/2019 12:08 PM, Gagandeep Singh wrote:
> This patch add documentation for ppfe network
> poll mode driver.
> 
> PPFE is a hardware programmable packet
> forwarding engine to provide high performance
> ethernet interfaces.
> 
> Signed-off-by: Gagandeep Singh <g.singh at nxp.com>
> Acked-by: Nipun Gupta <nipun.gupta at nxp.com>
> Acked-by: Akhil Goyal <akhil.goyal at nxp.com>
<...>

> +PPFE Overview
> +~~~~~~~~~~~~~~
> +
> +PPFE is a hardware programmable packet forwarding engine to provide
> +high performance Ethernet interfaces. The diagram below shows a
> +system level overview of PPFE:
> +
> +.. code-block:: console
> +
> +   ====================================================+===============
> +   US   +-----------------------------------------+    | Kernel Space
> +        |                                         |    |
> +        |          PPFE Ethernet Driver           |    |
> +        +-----------------------------------------+    |
> +                  ^   |          ^     |               |
> +   PPFE        RXQ|   |TXQ    RXQ|     |TXQ            |
> +   PMD            |   |          |     |               |
> +                  |   v          |     v               |   +----------+
> +               +---------+     +----------+            |   | pfe.ko   |
> +               | pfe_eth0|     | pfe_eth1 |            |   +----------+
> +               +---------+     +----------+            |
> +                  ^   |          ^     |               |
> +               TXQ|   |RXQ    TXQ|     |RXQ            |
> +                  |   |          |     |               |
> +                  |   v          |     v               |
> +                 +------------------------+            |
> +                 |                        |            |
> +                 |     PPFE HIF driver    |            |
> +                 +------------------------+            |
> +                       ^         |                     |
> +                    RX |      TX |                     |
> +                   RING|     RING|                     |
> +                       |         v                     |
> +                     +--------------+                  |
> +                     |              |                  |
> +   ==================|    HIF       |==================+===============
> +         +-----------+              +--------------+
> +         |           |              |              |        HW
> +         | PPFE      +--------------+              |
> +         |       +-----+                +-----+    |
> +         |       | MAC |                | MAC |    |
> +         |       |     |                |     |    |
> +         +-------+-----+----------------+-----+----+
> +                 | PHY |                | PHY |
> +                 +-----+                +-----+
> +
> +
> +The HIF, PPFE, MAC and PHY are the hardware blocks, the pfe.ko is a kernel
> +module, the PPFE HIF driver and the PPFE ethernet driver combined represent
> +as DPDK PPFE poll mode driver are running in the userspace.
> +
> +The PPFE hardware supports one HIF (host interface) RX ring and one TX ring
> +to send and receive packets through packet forwarding engine. Both network
> +interface traffic is multiplexed and send over HIF queue.
> +
> +pfe_eth0 and pfe_eth1 are logical ethernet interfaces, created by HIF client

Is it always fixed size logical interface, eth0 & eth1? There is following
comment in the code, is it something else:

"
 /* Extracted from ls1012a_pfe_platform_data, there are 3 interfaces which are
  * supported by PFE driver. Should be updated if number of eth devices are
  * changed.
  */
 #define PFE_CDEV_ETH_COUNT 3
"

> +driver. HIF driver is responsible for send and receive packets between
> +host interface and these logical interfaces. PPFE ethernet driver is a
> +hardware independent and register with the HIF client driver to transmit and
> +receive packets from HIF via logical interfaces.
> +
> +pfe.ko is required for PHY initialisation.

Is char device "/dev/pfe_us_cdev" created by this kernel module?

<...>

> +Driver compilation and testing
> +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> +
> +Follow instructions available in the document
> +:ref:`compiling and testing a PMD for a NIC <pmd_build_and_test>`
> +to launch **testpmd**
> +
> +Additionally, PPFE driver need `--vdev` as an input with value `eth_pfe` to execute DPDK application,
> +see the command below:
> +
> + .. code-block:: console
> +
> +    <dpdk app> <EAL args> --vdev="eth_pfe0" --vdev="eth_pfe1" -- ...

Can you please document the "intf" (PPFE_VDEV_GEM_ID_ARG) device argument?



More information about the dev mailing list