On Thu, 2021-10-21 at 08:01 +0000, Li, Xiaoyun wrote:
> 
> > -----Original Message-----
> > From: Xueming(Steven) Li <xuemi...@nvidia.com>
> > Sent: Thursday, October 21, 2021 15:59
> > To: Li, Xiaoyun <xiaoyun...@intel.com>; Zhang, Yuying
> > <yuying.zh...@intel.com>; dev@dpdk.org
> > Cc: Ananyev, Konstantin <konstantin.anan...@intel.com>;
> > jerinjac...@gmail.com; NBU-Contact-Thomas Monjalon
> > <tho...@monjalon.net>; Slava Ovsiienko <viachesl...@nvidia.com>;
> > ajit.khapa...@broadcom.com; Yigit, Ferruh <ferruh.yi...@intel.com>;
> > andrew.rybche...@oktetlabs.ru; Lior Margalit <lmarga...@nvidia.com>
> > Subject: Re: [PATCH v12 7/7] app/testpmd: add forwarding engine for shared 
> > Rx
> > queue
> > 
> > On Thu, 2021-10-21 at 06:33 +0000, Li, Xiaoyun wrote:
> > > > -----Original Message-----
> > > > From: Xueming Li <xuemi...@nvidia.com>
> > > > Sent: Thursday, October 21, 2021 13:09
> > > > To: dev@dpdk.org; Zhang, Yuying <yuying.zh...@intel.com>; Li,
> > > > Xiaoyun <xiaoyun...@intel.com>
> > > > Cc: xuemi...@nvidia.com; Jerin Jacob <jerinjac...@gmail.com>; Yigit,
> > > > Ferruh <ferruh.yi...@intel.com>; Andrew Rybchenko
> > > > <andrew.rybche...@oktetlabs.ru>; Viacheslav Ovsiienko
> > > > <viachesl...@nvidia.com>; Thomas Monjalon <tho...@monjalon.net>;
> > > > Lior Margalit <lmarga...@nvidia.com>; Ananyev, Konstantin
> > > > <konstantin.anan...@intel.com>; Ajit Khaparde
> > > > <ajit.khapa...@broadcom.com>
> > > > Subject: [PATCH v12 7/7] app/testpmd: add forwarding engine for
> > > > shared Rx queue
> > > > 
> > > > To support shared Rx queue, this patch introduces dedicate
> > > > forwarding engine.
> > > > The engine groups received packets by mbuf->port into sub-group,
> > > > updates stream statistics and simply frees packets.
> > > > 
> > > > Signed-off-by: Xueming Li <xuemi...@nvidia.com>
> > > > Acked-by: Xiaoyun Li <xiaoyun...@intel.com>
> > > 
> > > I didn't ack you on this patch. I remember I added "+1" to the comment
> > > about your includes issue.
> > > It will confuse reviewers not to review new versions.
> > 
> > Yes, they there by mistake.
> > 
> > > 
> > > > Acked-by: Ajit Khaparde <ajit.khapa...@broadcom.com>
> > > 
> > > I didn't see he ack this patch as well.
> > > Please remove these acks.
> > > 
> > > > ---
> > > >  app/test-pmd/meson.build                    |   1 +
> > > >  app/test-pmd/shared_rxq_fwd.c               | 113
> > > > ++++++++++++++++++++
> > > >  app/test-pmd/testpmd.c                      |   1 +
> > > >  app/test-pmd/testpmd.h                      |   5 +
> > > >  doc/guides/testpmd_app_ug/run_app.rst       |   5 +-
> > > >  doc/guides/testpmd_app_ug/testpmd_funcs.rst |   5 +-
> > > >  6 files changed, 128 insertions(+), 2 deletions(-)  create mode
> > > > 100644 app/test-
> > > > pmd/shared_rxq_fwd.c
> > > > 
> > > > diff --git a/app/test-pmd/meson.build b/app/test-pmd/meson.build
> > > > index
> > > > 1ad54caef2c..b5a0f7b6209 100644
> > > > --- a/app/test-pmd/meson.build
> > > > +++ b/app/test-pmd/meson.build
> > > > @@ -22,6 +22,7 @@ sources = files(
> > > >          'noisy_vnf.c',
> > > >          'parameters.c',
> > > >          'rxonly.c',
> > > > +        'shared_rxq_fwd.c',
> > > >          'testpmd.c',
> > > >          'txonly.c',
> > > >          'util.c',
> > > > diff --git a/app/test-pmd/shared_rxq_fwd.c b/app/test-
> > > > pmd/shared_rxq_fwd.c new file mode 100644 index
> > > > 00000000000..c4684893674
> > > > --- /dev/null
> > > > +++ b/app/test-pmd/shared_rxq_fwd.c
> > > > @@ -0,0 +1,113 @@
> > > > +/* SPDX-License-Identifier: BSD-3-Clause
> > > > + * Copyright (c) 2021 NVIDIA Corporation & Affiliates  */
> > > > +
> > > 
> > > Please add "#include <rte_ethdev.h>" here.
> > > Your shared_rxq_fwd.c only needs this include.
> > 
> > As explained below, testpmd relies on rte_ethdev.h.
> > 
> > > 
> > > > +#include "testpmd.h"
> > > > +
> > > > +/*
> > > > + * Rx only sub-burst forwarding.
> > > > + */
> > > > +static void
> > > > +forward_rx_only(uint16_t nb_rx, struct rte_mbuf **pkts_burst) {
> > > > +       rte_pktmbuf_free_bulk(pkts_burst, nb_rx); }
> > > > +
> > > > +/**
> > > > + * Get packet source stream by source port and queue.
> > > > + * All streams of same shared Rx queue locates on same core.
> > > > + */
> > > > +static struct fwd_stream *
> > > > +forward_stream_get(struct fwd_stream *fs, uint16_t port) {
> > > <snip>
> > > > diff --git a/app/test-pmd/testpmd.h b/app/test-pmd/testpmd.h index
> > > > 9482dab3071..ef7a6199313 100644
> > > > --- a/app/test-pmd/testpmd.h
> > > > +++ b/app/test-pmd/testpmd.h
> > > > @@ -12,6 +12,10 @@
> > > >  #include <rte_gro.h>
> > > >  #include <rte_gso.h>
> > > >  #include <rte_os_shim.h>
> > > > +#include <rte_mbuf_dyn.h>
> > > > +#include <rte_flow.h>
> > > > +#include <rte_ethdev.h>
> > > > +
> > > 
> > > Please remove these includes and this blank line.
> > > You only need to add the lib you need in your file like I said above.
> > 
> > From test, testpmd.h used these headers, otherwise compile error if not
> > included by fwd engine.
> 
> Have you tried my way? Include "#include <rte_ethdev.h>" in shared_rxq_fwd.c.
> Please try this and see if there's any compiling issues.

It works, seems rte_ethdev.h has everything needed, thanks!

> 
> > 
> > > 
> > > >  #include <cmdline.h>
> > > >  #include <sys/queue.h>
> > > >  #ifdef RTE_HAS_JANSSON
> > > > @@ -339,6 +343,7 @@ extern struct fwd_engine
> > > > five_tuple_swap_fwd_engine; #ifdef RTE_LIBRTE_IEEE1588  extern
> > > > struct fwd_engine ieee1588_fwd_engine; #endif
> > > > +extern struct fwd_engine shared_rxq_engine;
> > > > 
> > > >  extern struct fwd_engine * fwd_engines[]; /**< NULL terminated
> > > > array. */ extern cmdline_parse_inst_t cmd_set_raw; diff --git
> > > > a/doc/guides/testpmd_app_ug/run_app.rst
> > > > b/doc/guides/testpmd_app_ug/run_app.rst
> > > > index faa3efb902c..74412bb82ca 100644
> > > > --- a/doc/guides/testpmd_app_ug/run_app.rst
> > > > +++ b/doc/guides/testpmd_app_ug/run_app.rst
> > > > @@ -258,6 +258,7 @@ The command line options are:
> > > >         tm
> > > >         noisy
> > > >         5tswap
> > > > +       shared-rxq
> > > > 
> > > >  *   ``--rss-ip``
> > > > 
> > > > @@ -399,7 +400,9 @@ The command line options are:
> > > > 
> > > >      Create queues in shared Rx queue mode if device supports.
> > > >      Shared Rx queues are grouped per X ports. X defaults to
> > > > UINT32_MAX,
> > > > -    implies all ports join share group 1.
> > > > +    implies all ports join share group 1. A new forwarding engine
> > > > +    "shared-rxq" should be used for shared Rx queues. This engine
> > > > does
> > > > +    Rx only and update stream statistics accordingly.
> > > > 
> > > >  *   ``--eth-link-speed``
> > > > 
> > > > diff --git a/doc/guides/testpmd_app_ug/testpmd_funcs.rst
> > > > b/doc/guides/testpmd_app_ug/testpmd_funcs.rst
> > > > index 6d127d9a7bc..78d23429c42 100644
> > > > --- a/doc/guides/testpmd_app_ug/testpmd_funcs.rst
> > > > +++ b/doc/guides/testpmd_app_ug/testpmd_funcs.rst
> > > > @@ -314,7 +314,7 @@ set fwd
> > > >  Set the packet forwarding mode::
> > > > 
> > > >     testpmd> set fwd (io|mac|macswap|flowgen| \
> > > > -                     rxonly|txonly|csum|icmpecho|noisy|5tswap)
> > > > (""|retry)
> > > > +
> > > > + rxonly|txonly|csum|icmpecho|noisy|5tswap|shared-rxq) (""|retry)
> > > > 
> > > >  ``retry`` can be specified for forwarding engines except
> > > > ``rx_only``.
> > > > 
> > > > @@ -357,6 +357,9 @@ The available information categories are:
> > > > 
> > > >    L4 swaps the source port and destination port of transport layer
> > > > (TCP and UDP).
> > > > 
> > > > +* ``shared-rxq``: Receive only for shared Rx queue.
> > > > +  Resolve packet source port from mbuf and update stream
> > > > statistics
> > > > accordingly.
> > > > +
> > > >  Example::
> > > > 
> > > >     testpmd> set fwd rxonly
> > > > --
> > > > 2.33.0
> > > 
> 

Reply via email to