All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Monjalon <thomas.monjalon-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>
To: "Wu, Jingjing" <jingjing.wu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
Cc: dev-VfR2kkLFssw@public.gmane.org
Subject: Re: [PATCH v4 04/21] ethdev: define structures for adding/deleting flow director
Date: Tue, 28 Oct 2014 14:17:31 +0100	[thread overview]
Message-ID: <1719360.TZiYukypUI@xps13> (raw)
In-Reply-To: <9BB6961774997848B5B42BEC655768F8B2467E-0J0gbvR4kTg/UvCtAeCM4rfspsVTdybXVpNB7YpNyf8@public.gmane.org>

2014-10-28 01:18, Wu, Jingjing:
> From: Thomas Monjalon [mailto:thomas.monjalon-pdR9zngts4EAvxtiuMwx3w@public.gmane.org]
> > 2014-10-22 09:01, Jingjing Wu:
> > > +#define RTE_ETH_FDIR_MAX_FLEXWORD_LEN  8
> > > +/**
> > > + * A structure used to contain extend input of flow  */ struct
> > > +rte_eth_fdir_flow_ext {
> > > +	uint16_t vlan_tci;
> > > +	uint8_t num_flexwords;         /**< number of flexwords */
> > > +	uint16_t flexwords[RTE_ETH_FDIR_MAX_FLEXWORD_LEN];
> > > +	uint16_t dest_id;              /**< destination vsi or pool id*/
> > > +};
> > 
> > Flexword should be explained.
> > 
> The flexword means the application can choose a part of packet's payload
> as key words to compare match. It is flexible.
> In Ixgbe, the flexwords is 1 word (2 bytes), while Fortville extend it to 8 words.

OK. The problem is that I don't know how to fill the flexwords bytes.
You should explain it in the doxygen comment.
You say it's flexible. Is it usable with a non-IP packet?
Please explain constraints and syntax.

> > > +struct rte_eth_fdir_input {
> > > +	enum rte_eth_flow_type flow_type;      /**< type of flow */
> > > +	union rte_eth_fdir_flow flow;          /**< specific flow structure */
> > > +	struct rte_eth_fdir_flow_ext flow_ext; /**< specific flow info */ };
> > 
> > I don't understand the logic behind flow/flow_ext.
> > Why flow_ext is not merged into flow ?
> > 
> The flow defines the key words for each flow_type, while the flow_ext
> has other elements which have little to do with flow_type.
> For example the flexword, dst_id (can used as pool id), I think it is not
> reasonable to make it as an element in the flow.

Sorry, I don't understand.
flow and flow_ext are associated with a flow type.
The comments are "specific flow structure" and "specific flow info" which
doesn't bring any useful information.

> > > +/**
> > > + * Flow director report status
> > > + */
> > > +enum rte_eth_fdir_status {
> > > +	RTE_ETH_FDIR_NO_REPORT_STATUS = 0, /**< no report FDIR. */
> > > +	RTE_ETH_FDIR_REPORT_FD_ID,         /**< only report FD ID. */
> > > +	RTE_ETH_FDIR_REPORT_FD_ID_FLEX_4,  /**< report FD ID and 4 flex bytes. */
> > > +	RTE_ETH_FDIR_REPORT_FLEX_8,        /**< report 8 flex bytes. */
> > > +};
> > 
> > The names and explanations are cryptics.
> 
> The enum defines what will be reported when FIR match.
> Can be FD_ID or flex bytes

Just to be sure, have you understood that I'm requesting more explanations
in the comments to allow users of your API to understand it?

> > > +/**
> > > + * A structure used to define an action when match FDIR packet filter.
> > > + */
> > > +struct rte_eth_fdir_action {
> > > +	uint16_t rx_queue;        /**< queue assigned to if fdir match. */
> > > +	uint16_t cnt_idx;         /**< statistic counter index */
> > 
> > what is the action of "statistic counter index"?
> 
> When FD match happened, the counter will increase.

Which counter?
Which value should be set in cnt_idx?

> Fortville can support to configure the different counter for filter entries.
> The action is a part of a filter entry, so this element means which counter the entry will use.

I perfectly understand that you are writing some code to allow usage of
Fortville features through DPDK. Thank you for bringing new features.
But I want to know if I'm allowed to use it without reading the Fortville datasheet?
And could this API be shared by other hardwares (e.g. ixgbe)?

> > > +	uint8_t  drop;            /**< accept or reject */
> > > +	uint8_t  flex_off;        /**< offset used define words to report */
> > 
> > still difficult to understand the flex logic
> 
> Just as mentioned above, Fortville can support 8 flex words comparing.
> But for reporting, only 4 or 8 bytes in the flex words can be reported.
> So need to specify the offset to choose the 4 or 8 bytes.

I don't even know what are the meaning of these 4 or 8 bytes.
Please don't consider that every DPDK user know the Fortville datasheet.

> > > +/**
> > > + * A structure used to define the flow director filter entry by
> > > +filter_ctl API
> > > + * to support RTE_ETH_FILTER_FDIR with RTE_ETH_FILTER_ADD and
> > > + * RTE_ETH_FILTER_DELETE operations.
> > > + */
> > > +struct rte_eth_fdir_filter {
> > > +	uint32_t soft_id;                   /**< id */
> > 
> > Should the application handle the id numbering?
> > Why is it soft_id instead of id?
> 
> Yes, the soft_id is just id, is also reported id when entry match.
> The id is specified by user, and can be used to identify this entry,
> application should handle it.

OK, so explain it in comments.
Or better, generate and return the id when creating a filter.

Thanks
-- 
Thomas

  parent reply	other threads:[~2014-10-28 13:17 UTC|newest]

Thread overview: 123+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-26  6:03 [PATCH v3 00/20] Support flow director programming on Fortville Jingjing Wu
     [not found] ` <1411711418-12881-1-git-send-email-jingjing.wu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-09-26  6:03   ` [PATCH v3 01/20] i40e: set up and initialize flow director Jingjing Wu
2014-09-26  6:03   ` [PATCH v3 02/20] i40e: tear down " Jingjing Wu
2014-09-26  6:03   ` [PATCH v3 03/20] i40e: initialize flexible payload setting Jingjing Wu
2014-09-26  6:03   ` [PATCH v3 04/20] lib/librte_ether: new filter APIs definition Jingjing Wu
2014-09-26  6:03   ` [PATCH v3 05/20] lib/librte_ether: define structures for adding/deleting flow director Jingjing Wu
2014-09-26  6:03   ` [PATCH v3 06/20] i40e: implement operations to add/delete " Jingjing Wu
2014-09-26  6:03   ` [PATCH v3 07/20] app/test-pmd: add test commands to add/delete flow director filter Jingjing Wu
2014-09-26  6:03   ` [PATCH v3 08/20] i40e: match counter for flow director Jingjing Wu
2014-09-26  6:03   ` [PATCH v3 09/20] i40e: report flow director match info to mbuf Jingjing Wu
2014-09-26  6:03   ` [PATCH v3 10/20] lib/librte_ether: define structures for getting flow director information Jingjing Wu
2014-09-26  6:03   ` [PATCH v3 11/20] i40e: implement operations to get fdir info Jingjing Wu
2014-09-26  6:03   ` [PATCH v3 12/20] app/test-pmd: display fdir statistics Jingjing Wu
2014-09-26  6:03   ` [PATCH v3 13/20] i40e: implement operation to flush flow director table Jingjing Wu
2014-09-26  6:03   ` [PATCH v3 14/20] app/test-pmd: add test command " Jingjing Wu
2014-09-26  6:03   ` [PATCH v3 15/20] lib/librte_ether: define structures for configuring flexible payload Jingjing Wu
2014-09-26  6:03   ` [PATCH v316/20] i40e: implement operations to configure " Jingjing Wu
2014-09-26  6:03   ` [PATCH v3 17/20] app/test-pmd: add test command " Jingjing Wu
2014-09-26  6:03   ` [PATCH v3 18/20] lib/librte_ether: define structures for configuring flex masks Jingjing Wu
2014-09-26  6:03   ` [PATCH v3 19/20] i40e: implement operations to configure flexible masks Jingjing Wu
2014-09-26  6:03   ` [PATCH v3 20/20] app/test-pmd: add test command " Jingjing Wu
     [not found]     ` <1411711418-12881-21-git-send-email-jingjing.wu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-10-13 15:58       ` De Lara Guarch, Pablo
2014-10-22  1:01   ` [PATCH v4 00/21] Support flow director programming on Fortville Jingjing Wu
     [not found]     ` <1413939687-11177-1-git-send-email-jingjing.wu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-10-22  1:01       ` [PATCH v4 01/21] i40e: set up and initialize flow director Jingjing Wu
2014-10-22  1:01       ` [PATCH v4 02/21] i40e: tear down " Jingjing Wu
2014-10-22  1:01       ` [PATCH v4 03/21] i40e: initialize flexible payload setting Jingjing Wu
2014-10-22  1:01       ` [PATCH v4 04/21] ethdev: define structures for adding/deleting flow director Jingjing Wu
     [not found]         ` <1413939687-11177-5-git-send-email-jingjing.wu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-10-27 16:57           ` Thomas Monjalon
2014-10-28  1:18             ` Wu, Jingjing
     [not found]               ` <9BB6961774997848B5B42BEC655768F8B2467E-0J0gbvR4kTg/UvCtAeCM4rfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-10-28 13:17                 ` Thomas Monjalon [this message]
2014-10-29  1:29                   ` Wu, Jingjing
2014-10-22  1:01       ` [PATCH v4 05/21] i40e: implement operations to add/delete " Jingjing Wu
2014-10-22  1:01       ` [PATCH v4 06/21] testpmd: add test commands to add/delete flow director filter Jingjing Wu
     [not found]         ` <1413939687-11177-7-git-send-email-jingjing.wu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-10-28 13:23           ` Thomas Monjalon
2014-10-22  1:01       ` [PATCH v4 07/21] i40e: match counter for flow director Jingjing Wu
2014-10-22  1:01       ` [PATCH v4 08/21] mbuf: extend fdir field Jingjing Wu
     [not found]         ` <1413939687-11177-9-git-send-email-jingjing.wu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-10-28 13:28           ` Thomas Monjalon
2014-10-29  1:45             ` Wu, Jingjing
2014-10-22  1:01       ` [PATCH v4 09/21] i40e: report flow director match info to mbuf Jingjing Wu
2014-10-22  1:01       ` [PATCH v4 10/21] testpmd: print extended fdir info in mbuf Jingjing Wu
2014-10-22  1:01       ` [PATCH v4 11/21] ethdev: define structures for getting flow director information Jingjing Wu
     [not found]         ` <1413939687-11177-12-git-send-email-jingjing.wu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-10-28 13:44           ` Thomas Monjalon
2014-10-29  2:10             ` Wu, Jingjing
     [not found]               ` <9BB6961774997848B5B42BEC655768F8B24F58-0J0gbvR4kTg/UvCtAeCM4rfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-10-29  9:48                 ` Thomas Monjalon
2014-10-22  1:01       ` [PATCH v4 12/21] i40e: implement operations to get fdir info Jingjing Wu
2014-10-22  1:01       ` [PATCH v4 13/21] testpmd: display fdir statistics Jingjing Wu
2014-10-22  1:01       ` [PATCH v4 14/21] i40e: implement operation to flush flow director table Jingjing Wu
2014-10-22  1:01       ` [PATCH v4 15/21] testpmd: add test command " Jingjing Wu
     [not found]         ` <1413939687-11177-16-git-send-email-jingjing.wu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-10-28 13:53           ` Thomas Monjalon
2014-10-22  1:01       ` [PATCH v4 16/21] ethdev: define structures for configuring flexible payload Jingjing Wu
     [not found]         ` <1413939687-11177-17-git-send-email-jingjing.wu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-10-28 14:14           ` Thomas Monjalon
2014-10-29  3:21             ` Wu, Jingjing
     [not found]               ` <9BB6961774997848B5B42BEC655768F8B24FC7-0J0gbvR4kTg/UvCtAeCM4rfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-10-29  9:55                 ` Thomas Monjalon
2014-10-22  1:01       ` [PATCH v4 17/21] i40e: implement operations to configure " Jingjing Wu
2014-10-22  1:01       ` [PATCH v4 18/21] testpmd: add test command " Jingjing Wu
2014-10-22  1:01       ` [PATCH v4 19/21] ethdev: define structures for configuring flex masks Jingjing Wu
2014-10-22  1:01       ` [PATCH v4 20/21] i40e: implement operations to configure flexible masks Jingjing Wu
2014-10-22  1:01       ` [PATCH v4 21/21] testpmd: add test command " Jingjing Wu
     [not found]         ` <1413939687-11177-22-git-send-email-jingjing.wu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-10-28 14:18           ` Thomas Monjalon
2014-10-29  2:35             ` Wu, Jingjing
2014-10-27 15:22       ` [PATCH v4 00/21] Support flow director programming on Fortville Thomas Monjalon
2014-10-28  0:48       ` Zhang, Helin
2014-10-30  7:26       ` [PATCH v5 " Jingjing Wu
     [not found]         ` <1414654006-7472-1-git-send-email-jingjing.wu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-10-30  7:26           ` [PATCH v5 01/21] i40e: set up and initialize flow director Jingjing Wu
     [not found]             ` <1414654006-7472-2-git-send-email-jingjing.wu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-10-30  8:25               ` Wu, Jingjing
2014-10-30  7:26           ` [PATCH v5 02/21] i40e: tear down " Jingjing Wu
     [not found]             ` <1414654006-7472-3-git-send-email-jingjing.wu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-11-19  7:53               ` Cao, Min
2014-10-30  7:26           ` [PATCH v5 03/21] i40e: initialize flexible payload setting Jingjing Wu
2014-10-30  7:26           ` [PATCH v5 04/21] ethdev: define structures for adding/deleting flow director Jingjing Wu
2014-10-30  7:26           ` [PATCH v5 05/21] i40e: implement operations to add/delete " Jingjing Wu
     [not found]             ` <1414654006-7472-6-git-send-email-jingjing.wu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-11-05 21:18               ` De Lara Guarch, Pablo
     [not found]                 ` <E115CCD9D858EF4F90C690B0DCB4D8972683387D-kPTMFJFq+rEMvF1YICWikbfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-11-13  9:50                   ` Thomas Monjalon
2014-11-13 11:36                     ` Wu, Jingjing
2014-10-30  7:26           ` [PATCH v5 06/21] testpmd: add test commands to add/delete flow director filter Jingjing Wu
2014-10-30  7:26           ` [PATCH v5 07/21] i40e: match counter for flow director Jingjing Wu
2014-10-30  7:26           ` [PATCH v5 08/21] mbuf: extend fdir field Jingjing Wu
2014-10-30  7:26           ` [PATCH v5 09/21] i40e: report flow director match info to mbuf Jingjing Wu
2014-10-30  7:26           ` [PATCH v5 10/21] testpmd: print extended fdir info in mbuf Jingjing Wu
2014-10-30  7:26           ` [PATCH v5 11/21] ethdev: define structures for getting flow director information Jingjing Wu
2014-10-30  7:26           ` [PATCH v5 12/21] i40e: implement operations to get fdir info Jingjing Wu
2014-10-30  7:26           ` [PATCH v5 13/21] testpmd: display fdir statistics Jingjing Wu
2014-10-30  7:26           ` [PATCH v5 14/21] i40e: implement operation to flush flow director table Jingjing Wu
2014-10-30  7:26           ` [PATCH v5 15/21] testpmd: add test command " Jingjing Wu
2014-10-30  7:26           ` [PATCH v5 16/21] ethdev: define structures for configuring flexible payload Jingjing Wu
2014-10-30  7:26           ` [PATCH v5 17/21] i40e: implement operations to configure " Jingjing Wu
2014-10-30  7:26           ` [PATCH v5 18/21] testpmd: add test command " Jingjing Wu
2014-10-30  7:26           ` [PATCH v5 19/21] ethdev: define structures for configuring flex masks Jingjing Wu
2014-10-30  7:26           ` [PATCH v5 20/21] i40e: implement operations to configure flexible masks Jingjing Wu
2014-10-30  7:26           ` [PATCH v5 21/21] testpmd: add test command " Jingjing Wu
2014-10-30  8:07           ` [PATCH v5 01/21] i40e: set up and initialize flow director Jingjing Wu
2014-11-21  0:46           ` [PATCH v6 00/22] Support flow director programming on Fortville Jingjing Wu
     [not found]             ` <1416530816-2159-1-git-send-email-jingjing.wu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-11-21  0:46               ` [PATCH v6 01/22] i40e: set up and initialize flow director Jingjing Wu
2014-11-21  0:46               ` [PATCH v6 02/22] i40e: tear down " Jingjing Wu
2014-11-21  0:46               ` [PATCH v6 03/22] i40e: initialize flexible payload setting Jingjing Wu
2014-11-21  0:46               ` [PATCH v6 04/22] ethdev: define structures for adding/deleting flow director Jingjing Wu
2014-11-21  0:46               ` [PATCH v6 05/22] i40e: define functions for transition between flow_type and pctype Jingjing Wu
2014-11-21  0:46               ` [PATCH v6 06/22] i40e: implement operations to add/delete flow director Jingjing Wu
2014-11-21  0:46               ` [PATCH v6 07/22] testpmd: add test commands to add/delete flow director filter Jingjing Wu
2014-11-21  0:46               ` [PATCH v6 08/22] i40e: match counter for flow director Jingjing Wu
2014-11-21  0:46               ` [PATCH v6 09/22] mbuf: extend fdir field Jingjing Wu
     [not found]                 ` <1416530816-2159-10-git-send-email-jingjing.wu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-11-21 17:03                   ` Chilikin, Andrey
     [not found]                     ` <AAC06825A3B29643AF5372F5E0DDF0533503494E-kPTMFJFq+rFT4JjzTwqWc7fspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-11-21 19:34                       ` Ananyev, Konstantin
     [not found]                         ` <2601191342CEEE43887BDE71AB977258213B87A6-kPTMFJFq+rEu0RiL9chJVbfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-11-21 19:37                           ` Chilikin, Andrey
2014-11-21  0:46               ` [PATCH v6 10/22] i40e: report flow director match info to mbuf Jingjing Wu
2014-11-21  0:46               ` [PATCH v6 11/22] testpmd: print extended fdir info in mbuf Jingjing Wu
2014-11-21  0:46               ` [PATCH v6 12/22] i40e: implement operation to flush flow director table Jingjing Wu
2014-11-21  0:46               ` [PATCH v6 13/22] testpmd: add test command " Jingjing Wu
2014-11-21  0:46               ` [PATCH v6 14/22] ethdev: define structures for getting flow director information Jingjing Wu
2014-11-21  0:46               ` [PATCH v6 15/22] i40e: implement operations to get fdir info Jingjing Wu
2014-11-21  0:46               ` [PATCH v6 16/22] ethdev: define structures for getting flow director statistics Jingjing Wu
2014-11-21  0:46               ` [PATCH v6 17/22] i40e: implement operations to get fdir statistics Jingjing Wu
2014-11-21  0:46               ` [PATCH v6 18/22] testpmd: display fdir info Jingjing Wu
2014-11-21  0:46               ` [PATCH v6 19/22] ethdev: add flexible payload setting in eth_conf Jingjing Wu
2014-11-21  0:46               ` [PATCH v6 20/22] i40e: take flow director flexible payload configuration Jingjing Wu
2014-11-21  0:46               ` [PATCH v6 21/22] testpmd: add test command to configure flexible mask Jingjing Wu
2014-11-21  0:46               ` [PATCH v6 22/22] testpmd: add test command to configure flexible payload Jingjing Wu
2014-11-21 11:34               ` [PATCH v6 00/22] Support flow director programming on Fortville Ananyev, Konstantin
     [not found]                 ` <2601191342CEEE43887BDE71AB977258213B85BF-kPTMFJFq+rEu0RiL9chJVbfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-11-24 23:20                   ` Thomas Monjalon
2014-11-25  4:51                     ` Wu, Jingjing
     [not found]                       ` <9BB6961774997848B5B42BEC655768F8B550A3-0J0gbvR4kTg/UvCtAeCM4rfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-11-25  9:23                         ` Thomas Monjalon
2014-10-30  7:34       ` [PATCH v4 00/21] " Cao, Min
2014-11-19  7:53       ` Cao, Min
2014-10-30  7:12   ` [PATCH v3 00/20] " Cao, Min

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=1719360.TZiYukypUI@xps13 \
    --to=thomas.monjalon-pdr9zngts4eavxtiumwx3w@public.gmane.org \
    --cc=dev-VfR2kkLFssw@public.gmane.org \
    --cc=jingjing.wu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.