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.si...@nxp.com> > Acked-by: Nipun Gupta <nipun.gu...@nxp.com> > Acked-by: Akhil Goyal <akhil.go...@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?