From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id D8D3FA04AC; Tue, 1 Sep 2020 17:49:05 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 933541C0B0; Tue, 1 Sep 2020 17:49:04 +0200 (CEST) Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by dpdk.org (Postfix) with ESMTP id 5BACA1C0AF for ; Tue, 1 Sep 2020 17:49:02 +0200 (CEST) IronPort-SDR: UvVr32/riWFyh8VrZMwUrtd50l4AhM6r+BuxIFyUx/0waywb4jCPrFybcMfwLLFrCWMlf69oY8 /NGlHjqBe74w== X-IronPort-AV: E=McAfee;i="6000,8403,9730"; a="136711683" X-IronPort-AV: E=Sophos;i="5.76,379,1592895600"; d="scan'208";a="136711683" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga004.jf.intel.com ([10.7.209.38]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Sep 2020 08:48:59 -0700 IronPort-SDR: tFMVg76oSUNiyWzBehUAD2VuOEF9+3462WrTFd1xAtkb8Y5U09pXLNeLeWpEaUkDNzVu80gWWP RnYRTQQVdgwA== X-IronPort-AV: E=Sophos;i="5.76,379,1592895600"; d="scan'208";a="446183220" Received: from fyigit-mobl.ger.corp.intel.com (HELO [10.213.211.143]) ([10.213.211.143]) by orsmga004-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Sep 2020 08:48:58 -0700 To: Hemant Agrawal , dev@dpdk.org References: <20200813180121.19480-1-hemant.agrawal@nxp.com> <20200901123650.29908-1-hemant.agrawal@nxp.com> From: Ferruh Yigit Autocrypt: addr=ferruh.yigit@intel.com; prefer-encrypt=mutual; keydata= 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 dYuOYKR9nbPv+2zK9pwwQ2NXbUBystaGyQ== Message-ID: <8916eb53-52a1-b042-41e5-df58778bc9f1@intel.com> Date: Tue, 1 Sep 2020 16:48:52 +0100 MIME-Version: 1.0 In-Reply-To: <20200901123650.29908-1-hemant.agrawal@nxp.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit Subject: Re: [dpdk-dev] [PATCH v6 1/8] net/dpaa: add support for fmlib in dpdk X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On 9/1/2020 1:36 PM, Hemant Agrawal wrote: > DPAA platorm MAC interface is known as FMAN i.e. Frame Manager. > There are two ways to control it. > 1. Statically configure the queues and classification rules before the > start of the application using FMC tool. > 2. Dynamically configure it within application by making API calls of > fmlib. > > The fmlib or 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 patch integrates the base fmlib so that various queue config, RSS > and classification related features can be supported on DPAA platform. > > Signed-off-by: Sachin Saxena > Signed-off-by: Hemant Agrawal > --- > doc/guides/nics/dpaa.rst | 52 +- > doc/guides/platform/dpaa.rst | 21 +- > drivers/net/dpaa/fmlib/dpaa_integration.h | 50 + > drivers/net/dpaa/fmlib/fm_ext.h | 463 ++ > drivers/net/dpaa/fmlib/fm_lib.c | 561 ++ > drivers/net/dpaa/fmlib/fm_pcd_ext.h | 5787 +++++++++++++++++++++ > drivers/net/dpaa/fmlib/fm_port_ext.h | 3350 ++++++++++++ > drivers/net/dpaa/fmlib/ncsw_ext.h | 158 + > drivers/net/dpaa/fmlib/net_ext.h | 411 ++ > drivers/net/dpaa/meson.build | 3 +- > 10 files changed, 10849 insertions(+), 7 deletions(-) > create mode 100644 drivers/net/dpaa/fmlib/dpaa_integration.h > create mode 100644 drivers/net/dpaa/fmlib/fm_ext.h > create mode 100644 drivers/net/dpaa/fmlib/fm_lib.c > create mode 100644 drivers/net/dpaa/fmlib/fm_pcd_ext.h > create mode 100644 drivers/net/dpaa/fmlib/fm_port_ext.h > create mode 100644 drivers/net/dpaa/fmlib/ncsw_ext.h > create mode 100644 drivers/net/dpaa/fmlib/net_ext.h > > diff --git a/doc/guides/nics/dpaa.rst b/doc/guides/nics/dpaa.rst > index 17839a920..7e6010471 100644 > --- a/doc/guides/nics/dpaa.rst > +++ b/doc/guides/nics/dpaa.rst > @@ -1,5 +1,5 @@ > .. SPDX-License-Identifier: BSD-3-Clause > - Copyright 2017 NXP > + Copyright 2017,2020 NXP > > > DPAA Poll Mode Driver > @@ -21,6 +21,7 @@ Contents summary > > - DPAA overview > - DPAA driver architecture overview > +- FMAN configuration tools and library > > .. _dpaa_overview: > > @@ -285,6 +286,55 @@ for details. > 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 `_. > + > +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 libray 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. > + > Limitations > ----------- > > diff --git a/doc/guides/platform/dpaa.rst b/doc/guides/platform/dpaa.rst > index 6005f2221..20a0e3932 100644 > --- a/doc/guides/platform/dpaa.rst > +++ b/doc/guides/platform/dpaa.rst > @@ -58,17 +58,28 @@ compatible board: > > 4. **FMC Tool** > > - Before any DPDK application can be executed, the Frame Manager Configuration > - Tool (FMC) need to be executed to set the configurations of the queues. This > + If one is planning to use more than 1 Recv queue and hardware capability to > + parse, classify and distribute the packets, the Frame Manager Configuration > + Tool (FMC) need to be executed to set the configurations of the queues before > + running the DPAA based DPDK application. This setting is persistent, the > + configuration will remain in the hardware till it is re-configured. This > includes the queue state, RSS and other policies. > This tool can be obtained from `NXP (Freescale) Public Git Repository `_. > > This tool needs configuration files which are available in the > :ref:`DPDK Extra Scripts `, described below for DPDK usages. > > -As an alternative method, DPAA PMD can also be executed using images provided > -as part of SDK from NXP. The SDK includes all the above prerequisites necessary > -to bring up a DPAA board. > + Note that DPAA PMD can also be executed using images provided > + as part of SDK from NXP. The SDK includes all the above prerequisites > + necessary (i.e. fmc tool) to bring up a DPAA board. > + > + As an alternate method, DPAA PMDs starting from DPDK 20.11 also support the > + fmlib library integration. The driver will detect about any existing FMC > + based config (if /tmp/fmc.bin is present). DPAA FMD will be used only if no > + previous fmc config is existing. > + > + Note that fmlib based integratin rely on underlying fmd driver in kernel, > + which is available as part of NXP kernel or NXP SDK. Hi Hemant, Thanks for the documentation. Can it be possible to give a little more detail related to the 'fmd' module, like its folder etc.. Another thing is with current patch 'dpaa' driver becomes completely dependent to the 'fmd' kernel module [1] and PMD won't run without it, was the dependency always there indirectly? And does it make sense to support no 'fmd' kernel module case, as done previously? [1] 'dpaa_fm_init()' will fail if the kernel driver is missing, which will cause PMD driver probe, 'rte_dpaa_probe()' to fail.