DPDK patches and discussions
 help / color / mirror / Atom feed
From: Chaoyong He <chaoyong.he@corigine.com>
To: Ferruh Yigit <ferruh.yigit@amd.com>
Cc: oss-drivers <oss-drivers@corigine.com>,
	Niklas Soderlund <niklas.soderlund@corigine.com>,
	"dev@dpdk.org" <dev@dpdk.org>
Subject: RE: [PATCH v2 03/24] net/nfp: add the flow APIs of nfp PMD
Date: Wed, 19 Oct 2022 03:00:49 +0000	[thread overview]
Message-ID: <SJ0PR13MB5545ED836D376C611882E9819E2B9@SJ0PR13MB5545.namprd13.prod.outlook.com> (raw)
In-Reply-To: <0f2d733d-4f52-b117-9d0d-762cb890b82e@amd.com>

> On 10/10/2022 7:08 AM, Chaoyong He wrote:
> > Add the flow validate/create/query/destroy/flush API of nfp PMD.
> >
> > The flow create API construct a control cmsg and send it to firmware,
> > then add this flow  to the hash table.
> >
> > The flow query API get flow stats from the flow_priv structure.
> > Note there exist an rte_spin_lock to prevent the update and query
> > action occur at the same time.
> >
> > The flow destroy API construct a control cmsg and send it to firmware,
> > then adelete this flow from the hash table.
> >
> > The flow flush API just iterate the flows in hash table and call the
> > flow destroy API.
> >
> > Signed-off-by: Chaoyong He <chaoyong.he@corigine.com>
> > Reviewed-by: Niklas Söderlund <niklas.soderlund@corigine.com>
> 
> <...>
> 
> > +static void
> > +nfp_flow_stats_get(struct rte_eth_dev *dev,
> > +             struct rte_flow *nfp_flow,
> > +             void *data)
> > +{
> > +     uint32_t ctx_id;
> > +     struct rte_flow *flow;
> > +     struct nfp_flow_priv *priv;
> > +     struct nfp_fl_stats *stats;
> > +     struct rte_flow_query_count *query;
> > +
> > +     priv = nfp_flow_dev_to_priv(dev);
> > +     flow = nfp_flow_table_search(priv, nfp_flow);
> > +     if (flow == NULL) {
> > +             PMD_DRV_LOG(ERR, "Can not find statistics for this flow.");
> > +             return;
> > +     }
> > +
> > +     query = (struct rte_flow_query_count *)data;
> > +     ctx_id = rte_be_to_cpu_32(nfp_flow->payload.meta->host_ctx_id);
> > +     stats = &priv->stats[ctx_id];
> > +
> > +     rte_spinlock_lock(&priv->stats_lock);
> > +     if (stats->pkts && stats->bytes) {
> 
> Is it guaranteed that 'query' ("void *data") is zeroed out when it is provided
> by application?
> 
> > +             query->hits = stats->pkts;
> > +             query->bytes = stats->bytes;
> > +             query->hits_set = 1;
> > +             query->bytes_set = 1;
> > +             stats->pkts = 0;
> > +             stats->bytes = 0;
> 
> need to check 'reset' field of action to decide reset or not.
> 
> <...>
> 
> > @@ -75,6 +101,7 @@ struct nfp_fl_stats {
> >
> >   struct nfp_flow_priv {
> >       uint32_t hash_seed; /**< Hash seed for hash tables in this
> > structure. */
> > +     uint64_t flower_version; /**< Flow version, always increase. */
> 
> Is this version to keep unique value per flow configuration? If so as far as I
> can see '.validate' is updating this value, is this expected?
> 
> Also who suppose to use this value?

Yes, it is expected.

This value is part of the nfp_flow_meta, and which is part of the flow offloaded
to the firmware.
And the content of the flow offloaded to the firmware is the ABI of the firmware,
so it's can't easily change. 

  reply	other threads:[~2022-10-19  3:00 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-10-10  6:08 [PATCH v2 00/24] add the basic rte_flow offload support " Chaoyong He
2022-10-10  6:08 ` [PATCH v2 01/24] net/nfp: add the stats process logic in ctrl VNIC service Chaoyong He
2022-10-10 14:48   ` Ferruh Yigit
2022-10-10  6:08 ` [PATCH v2 02/24] net/nfp: add the structures and functions for flow offload Chaoyong He
2022-10-10 14:49   ` Ferruh Yigit
2022-10-19  2:50     ` Chaoyong He
2022-10-19 10:48       ` Ferruh Yigit
2022-10-10  6:08 ` [PATCH v2 03/24] net/nfp: add the flow APIs of nfp PMD Chaoyong He
2022-10-10 14:51   ` Ferruh Yigit
2022-10-19  3:00     ` Chaoyong He [this message]
2022-10-19 11:11       ` Ferruh Yigit
2022-10-19 11:30         ` Chaoyong He
2022-10-19 11:38           ` Ferruh Yigit
2022-10-10  6:08 ` [PATCH v2 04/24] net/nfp: add the offload support of basic items Chaoyong He
2022-10-10  6:08 ` [PATCH v2 05/24] net/nfp: add the offload support of basic actions Chaoyong He
2022-10-10 14:52   ` Ferruh Yigit
2022-10-19 11:32     ` Chaoyong He
2022-10-10  6:08 ` [PATCH v2 06/24] net/nfp: add the offload support of VLAN item Chaoyong He
2022-10-10  6:08 ` [PATCH v2 07/24] net/nfp: add the offload support of IPv4 item Chaoyong He
2022-10-10  6:08 ` [PATCH v2 08/24] net/nfp: add the offload support of IPv6 item Chaoyong He
2022-10-10 14:53   ` Ferruh Yigit
2022-10-19 11:33     ` Chaoyong He
2022-10-10  6:08 ` [PATCH v2 09/24] net/nfp: add the offload support of TCP item Chaoyong He
2022-10-10  6:08 ` [PATCH v2 10/24] net/nfp: add the offload support of UDP item Chaoyong He
2022-10-10  6:08 ` [PATCH v2 11/24] net/nfp: add the offload support of SCTP item Chaoyong He
2022-10-10  6:08 ` [PATCH v2 12/24] net/nfp: add the offload support of set SRC MAC action Chaoyong He
2022-10-10  6:08 ` [PATCH v2 13/24] net/nfp: add the offload support of set DST " Chaoyong He
2022-10-10  6:08 ` [PATCH v2 14/24] net/nfp: add the offload support of pop VLAN action Chaoyong He
2022-10-10  6:08 ` [PATCH v2 15/24] net/nfp: add the offload support of push " Chaoyong He
2022-10-10  6:08 ` [PATCH v2 16/24] net/nfp: add the offload support of set SRC IPv4 action Chaoyong He
2022-10-10  6:08 ` [PATCH v2 17/24] net/nfp: add the offload support of set DST " Chaoyong He
2022-10-10  6:08 ` [PATCH v2 18/24] net/nfp: add the offload support of set SRC IPv6 action Chaoyong He
2022-10-10  6:08 ` [PATCH v2 19/24] net/nfp: add the offload support of set DST " Chaoyong He
2022-10-10  6:08 ` [PATCH v2 20/24] net/nfp: add the offload support of set TP SRC port action Chaoyong He
2022-10-10  6:08 ` [PATCH v2 21/24] net/nfp: add the offload support of set TP DST " Chaoyong He
2022-10-10  6:09 ` [PATCH v2 22/24] net/nfp: add the offload support of set TTL action Chaoyong He
2022-10-10  6:09 ` [PATCH v2 23/24] net/nfp: add the offload support of set IPv4 DSCP action Chaoyong He
2022-10-10  6:09 ` [PATCH v2 24/24] net/nfp: add the offload support of set IPv6 " Chaoyong He

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=SJ0PR13MB5545ED836D376C611882E9819E2B9@SJ0PR13MB5545.namprd13.prod.outlook.com \
    --to=chaoyong.he@corigine.com \
    --cc=dev@dpdk.org \
    --cc=ferruh.yigit@amd.com \
    --cc=niklas.soderlund@corigine.com \
    --cc=oss-drivers@corigine.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).