DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH 1/2] net/bnxt: add meson build option
@ 2020-07-21 17:47 Ajit Khaparde
  2020-07-21 17:47 ` [dpdk-dev] [PATCH 2/2] doc: update bnxt doc Ajit Khaparde
  2020-07-21 23:09 ` [dpdk-dev] [PATCH 1/2] net/bnxt: add meson build option Ferruh Yigit
  0 siblings, 2 replies; 4+ messages in thread
From: Ajit Khaparde @ 2020-07-21 17:47 UTC (permalink / raw)
  To: dev

Add an option in meson build to indicate the memory management scheme.
bnxt_eem_system is set to false by default.

Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
---
 doc/guides/nics/bnxt.rst     |  9 +++++++++
 drivers/net/bnxt/meson.build | 16 ++++++++++++++--
 meson_options.txt            |  2 ++
 3 files changed, 25 insertions(+), 2 deletions(-)

diff --git a/doc/guides/nics/bnxt.rst b/doc/guides/nics/bnxt.rst
index 6ff75d0a2..dcb4309d2 100644
--- a/doc/guides/nics/bnxt.rst
+++ b/doc/guides/nics/bnxt.rst
@@ -809,6 +809,15 @@ is stopped.
 Note that TX (or RX) vector mode can be enabled independently from RX (or TX)
 vector mode.
 
+Configuration
+-------------
+
+Compilation options
+~~~~~~~~~~~~~~~~~~~
+
+- ``bnxt_eem_system``	(default **false**)
+This option allows to select the flow table memory management scheme.
+
 Appendix
 --------
 
diff --git a/drivers/net/bnxt/meson.build b/drivers/net/bnxt/meson.build
index 8529b333c..21a1df915 100644
--- a/drivers/net/bnxt/meson.build
+++ b/drivers/net/bnxt/meson.build
@@ -4,6 +4,14 @@
 
 install_headers('rte_pmd_bnxt.h')
 
+bnxt_eem_sys = (get_option('bnxt_eem_system'))
+if bnxt_eem_sys
+	dpdk_conf.set('RTE_LIBRTE_BNXT_PMD_SYSTEM', true)
+	cflags += [
+		'-DTF_USE_SYSTEM_MEM'
+	]
+endif
+
 includes += include_directories('tf_ulp')
 includes += include_directories('tf_core')
 
@@ -29,7 +37,6 @@ sources = files('bnxt_cpr.c',
 	'tf_core/rand.c',
 	'tf_core/stack.c',
         'tf_core/tf_em_common.c',
-        'tf_core/tf_em_host.c',
         'tf_core/tf_em_internal.c',
 	'tf_core/tf_rm.c',
 	'tf_core/tf_tbl.c',
@@ -45,7 +52,6 @@ sources = files('bnxt_cpr.c',
 	'tf_core/tf_if_tbl.c',
 	'tf_core/ll.c',
 	'tf_core/tf_global_cfg.c',
-	'tf_core/tf_em_host.c',
 	'tf_core/tf_shadow_identifier.c',
 
 	'hcapi/hcapi_cfa_p4.c',
@@ -67,6 +73,12 @@ sources = files('bnxt_cpr.c',
 
 	'rte_pmd_bnxt.c')
 
+if bnxt_eem_sys
+	sources += files('tf_core/tf_em_system.c')
+elif not bnxt_eem_sys
+	sources += files('tf_core/tf_em_host.c')
+endif
+
 if arch_subdir == 'x86'
 	sources += files('bnxt_rxtx_vec_sse.c')
 elif arch_subdir == 'arm' and host_machine.cpu_family().startswith('aarch64')
diff --git a/meson_options.txt b/meson_options.txt
index 9bf18ab6b..24d72fb10 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -2,6 +2,8 @@
 
 option('armv8_crypto_dir', type: 'string', value: '',
 	description: 'path to the armv8_crypto library installation directory')
+option('bnxt_eem_system', type: 'boolean', value: false,
+	description: 'EEM system memory support')
 option('disable_drivers', type: 'string', value: '',
 	description: 'Comma-separated list of drivers to explicitly disable.')
 option('drivers_install_subdir', type: 'string', value: 'dpdk/pmds-<VERSION>',
-- 
2.21.1 (Apple Git-122.3)


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [dpdk-dev] [PATCH 2/2] doc: update bnxt doc
  2020-07-21 17:47 [dpdk-dev] [PATCH 1/2] net/bnxt: add meson build option Ajit Khaparde
@ 2020-07-21 17:47 ` Ajit Khaparde
  2020-07-21 23:09 ` [dpdk-dev] [PATCH 1/2] net/bnxt: add meson build option Ferruh Yigit
  1 sibling, 0 replies; 4+ messages in thread
From: Ajit Khaparde @ 2020-07-21 17:47 UTC (permalink / raw)
  To: dev

Update bnxt doc to indicate support for VF-representors and some notes
about rte_flow API implementation.

Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
---
 doc/guides/nics/bnxt.rst | 46 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 46 insertions(+)

diff --git a/doc/guides/nics/bnxt.rst b/doc/guides/nics/bnxt.rst
index dcb4309d2..98c47a243 100644
--- a/doc/guides/nics/bnxt.rst
+++ b/doc/guides/nics/bnxt.rst
@@ -688,6 +688,52 @@ optimizes flow insertions and deletions.
 This is a tech preview feature, and is disabled by default. It can be enabled
 using bnxt devargs. For ex: "-w 0000:0d:00.0,host-based-truflow=1”.
 
+Notes
+-----
+
+- On stopping a device port, all the flows created on a port by the
+  application will be flushed from the hardware and any tables maintained
+  by the PMD. After stopping the device port, all flows on the port become
+  invalid and are not represented in the system anymore.
+  Instead of destroying or flushing such flows an application should discard
+  all references to these flows and re-create the flows as required after the
+  port is restarted.
+
+- While an application is free to use the group id attribute to group flows
+  together using a specific criteria, the BNXT PMD currently associates this
+  group id to a VNIC id. One such case is grouping of flows which are filtered
+  on the same source or destination MAC address. This allows packets of such
+  flows to be directed to one or more queues associated with the VNIC id.
+  This implementation is supported only when TRUFLOW functionality is disabled.
+
+Note: A VNIC represents a virtual interface in the hardware. It is a resource
+in the RX path of the chip and is used to setup various target actions such as
+RSS, MAC filtering etc. for the physical function in use.
+
+Virtual Function Port Representors
+----------------------------------
+The BNXT PMD supports the creation of VF port representors for the control
+and monitoring of BNXT virtual function devices. Each port representor
+corresponds to a single virtual function of that device that is connected to a
+VF. When there is no hardware flow offload, each packet transmitted by the VF
+will be received by the corresponding representor. Similarly each packet that is
+sent to a representor will be received by the VF. Applications can take
+advantage of this feature when SRIOV is enabled. The representor will allow the
+first packet that is transmitted by the VF to be received by the DPDK
+application which can then decide if the flow should be offloaded to the
+hardware. Once the flow is offloaded in the hardware, any packet matching the
+flow will be received by the VF while the DPDK application will not receive it
+any more. The BNXT PMD supports creation and handling of the port representors
+when the PMD is initialized on a PF or trusted-VF. The user can specify the list
+of VF IDs of the VFs for which the representors are needed by using the
+``devargs`` option ``representor``.::
+
+  -w DBDF,representor=[0,1,4]
+
+Note that currently hot-plugging of representor ports is not supported so all
+the required representors must be specified on the creation of the PF or the
+trusted VF.
+
 Application Support
 -------------------
 
-- 
2.21.1 (Apple Git-122.3)


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [dpdk-dev] [PATCH 1/2] net/bnxt: add meson build option
  2020-07-21 17:47 [dpdk-dev] [PATCH 1/2] net/bnxt: add meson build option Ajit Khaparde
  2020-07-21 17:47 ` [dpdk-dev] [PATCH 2/2] doc: update bnxt doc Ajit Khaparde
@ 2020-07-21 23:09 ` Ferruh Yigit
  2020-07-22  0:18   ` Ajit Khaparde
  1 sibling, 1 reply; 4+ messages in thread
From: Ferruh Yigit @ 2020-07-21 23:09 UTC (permalink / raw)
  To: Ajit Khaparde, dev, Bruce Richardson, Thomas Monjalon, David Marchand

On 7/21/2020 6:47 PM, Ajit Khaparde wrote:
> Add an option in meson build to indicate the memory management scheme.
> bnxt_eem_system is set to false by default.
> 
> Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>

<...>

> --- a/meson_options.txt
> +++ b/meson_options.txt
> @@ -2,6 +2,8 @@
>  
>  option('armv8_crypto_dir', type: 'string', value: '',
>  	description: 'path to the armv8_crypto library installation directory')
> +option('bnxt_eem_system', type: 'boolean', value: false,
> +	description: 'EEM system memory support')
>  option('disable_drivers', type: 'string', value: '',
>  	description: 'Comma-separated list of drivers to explicitly disable.')
>  option('drivers_install_subdir', type: 'string', value: 'dpdk/pmds-<VERSION>',
> 

I think it was a design decision to not have all Make config options to meson
build, and reduce compile time configuration as much as possible.

For a while we are pushing back new compile time config options unless they are
really must, the 'RTE_LIBRTE_BNXT_PMD_SYSTEM' has been merged mostly because it
has been missed.

Instead of introducing this PMD level compile time option to meson, can it be
possible to convert the config to runtime config. In the past we have used the
device arguments many times for same reason, can something similar be used here?

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [dpdk-dev] [PATCH 1/2] net/bnxt: add meson build option
  2020-07-21 23:09 ` [dpdk-dev] [PATCH 1/2] net/bnxt: add meson build option Ferruh Yigit
@ 2020-07-22  0:18   ` Ajit Khaparde
  0 siblings, 0 replies; 4+ messages in thread
From: Ajit Khaparde @ 2020-07-22  0:18 UTC (permalink / raw)
  To: Ferruh Yigit; +Cc: dpdk-dev, Bruce Richardson, Thomas Monjalon, David Marchand

On Tue, Jul 21, 2020 at 4:09 PM Ferruh Yigit <ferruh.yigit@intel.com> wrote:

> On 7/21/2020 6:47 PM, Ajit Khaparde wrote:
> > Add an option in meson build to indicate the memory management scheme.
> > bnxt_eem_system is set to false by default.
> >
> > Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
>
> <...>
>
> > --- a/meson_options.txt
> > +++ b/meson_options.txt
> > @@ -2,6 +2,8 @@
> >
> >  option('armv8_crypto_dir', type: 'string', value: '',
> >       description: 'path to the armv8_crypto library installation
> directory')
> > +option('bnxt_eem_system', type: 'boolean', value: false,
> > +     description: 'EEM system memory support')
> >  option('disable_drivers', type: 'string', value: '',
> >       description: 'Comma-separated list of drivers to explicitly
> disable.')
> >  option('drivers_install_subdir', type: 'string', value:
> 'dpdk/pmds-<VERSION>',
> >
>
> I think it was a design decision to not have all Make config options to
> meson
> build, and reduce compile time configuration as much as possible.
>
> For a while we are pushing back new compile time config options unless
> they are
> really must, the 'RTE_LIBRTE_BNXT_PMD_SYSTEM' has been merged mostly
> because it
> has been missed.
>
> Instead of introducing this PMD level compile time option to meson, can it
> be
> possible to convert the config to runtime config. In the past we have used
> the
> device arguments many times for same reason, can something similar be used
> here?
>
Sure. I can take a look at that.

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2020-07-22  0:19 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-07-21 17:47 [dpdk-dev] [PATCH 1/2] net/bnxt: add meson build option Ajit Khaparde
2020-07-21 17:47 ` [dpdk-dev] [PATCH 2/2] doc: update bnxt doc Ajit Khaparde
2020-07-21 23:09 ` [dpdk-dev] [PATCH 1/2] net/bnxt: add meson build option Ferruh Yigit
2020-07-22  0:18   ` Ajit Khaparde

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).