DPDK patches and discussions
 help / color / mirror / Atom feed
From: "Zhang, Helin" <helin.zhang@intel.com>
To: Thomas Monjalon <thomas.monjalon@6wind.com>
Cc: "dev@dpdk.org" <dev@dpdk.org>
Subject: Re: [dpdk-dev] [PATCH v5 2/5] ethdev: add enum type and relevant structures for hash filter control
Date: Tue, 11 Nov 2014 06:46:52 +0000	[thread overview]
Message-ID: <F35DEAC7BCE34641BA9FAC6BCA4A12E70A7BB8D4@SHSMSX104.ccr.corp.intel.com> (raw)
In-Reply-To: <1845096.HFlylc4sxo@xps13>

Hi Thomas

In order to get things more generic, and remove any mappings on specific NIC hardwares, I planned to change the macros in rte_ethdev.h from

/* Supported RSS offloads */
/* for 1G & 10G */
#define ETH_RSS_IPV4_SHIFT                    0
#define ETH_RSS_IPV4_TCP_SHIFT                1
#define ETH_RSS_IPV6_SHIFT                    2
#define ETH_RSS_IPV6_EX_SHIFT                 3
#define ETH_RSS_IPV6_TCP_SHIFT                4
#define ETH_RSS_IPV6_TCP_EX_SHIFT             5
#define ETH_RSS_IPV4_UDP_SHIFT                6
#define ETH_RSS_IPV6_UDP_SHIFT                7
#define ETH_RSS_IPV6_UDP_EX_SHIFT             8
/* for 40G only */
#define ETH_RSS_NONF_IPV4_UDP_SHIFT           31
#define ETH_RSS_NONF_IPV4_TCP_SHIFT           33
#define ETH_RSS_NONF_IPV4_SCTP_SHIFT          34
#define ETH_RSS_NONF_IPV4_OTHER_SHIFT         35
#define ETH_RSS_FRAG_IPV4_SHIFT               36
#define ETH_RSS_NONF_IPV6_UDP_SHIFT           41
#define ETH_RSS_NONF_IPV6_TCP_SHIFT           43
#define ETH_RSS_NONF_IPV6_SCTP_SHIFT          44
#define ETH_RSS_NONF_IPV6_OTHER_SHIFT         45
#define ETH_RSS_FRAG_IPV6_SHIFT               46
#define ETH_RSS_FCOE_OX_SHIFT                 48
#define ETH_RSS_FCOE_RX_SHIFT                 49
#define ETH_RSS_FCOE_OTHER_SHIFT              50
#define ETH_RSS_L2_PAYLOAD_SHIFT              63

to

/* Supported RSS offloads */
/* for 1G & 10G */
#define ETH_FLOW_TYPE_IPV4                    0
#define ETH_FLOW_TYPE_IPV4_TCP                1
#define ETH_FLOW_TYPE_IPV6                    2
#define ETH_FLOW_TYPE_IPV6_EX                 3
#define ETH_FLOW_TYPE_IPV6_TCP                4
#define ETH_FLOW_TYPE_IPV6_TCP_EX             5
#define ETH_FLOW_TYPE_IPV4_UDP                6
#define ETH_FLOW_TYPE_IPV6_UDP                7
#define ETH_FLOW_TYPE_IPV6_UDP_EX             8
/* for 40G only */
#define ETH_FLOW_TYPE_NONFRAG_IPV4_UDP           9
#define ETH_FLOW_TYPE_NONFRAG_IPV4_TCP           10
#define ETH_FLOW_TYPE_NONFRAG_IPV4_SCTP          11
#define ETH_FLOW_TYPE_NONFRAG_IPV4_OTHER         12
#define ETH_FLOW_TYPE_FRAG_IPV4               13
#define ETH_FLOW_TYPE_NONFRAG_IPV6_UDP           14
#define ETH_FLOW_TYPE_NONFRAG_IPV6_TCP           15
#define ETH_FLOW_TYPE_NONFRAG_IPV6_SCTP          16
#define ETH_FLOW_TYPE_NONFRAG_IPV6_OTHER         17
#define ETH_FLOW_TYPE_FRAG_IPV6              18
#define ETH_FLOW_TYPE_L2_PAYLOAD              19

Any comments or better ideas on that? Thanks!

Regards,
Helin
> -----Original Message-----
> From: Thomas Monjalon [mailto:thomas.monjalon@6wind.com]
> Sent: Monday, November 3, 2014 3:57 PM
> To: Zhang, Helin
> Cc: dev@dpdk.org
> Subject: Re: [dpdk-dev] [PATCH v5 2/5] ethdev: add enum type and relevant
> structures for hash filter control
> 
> 2014-10-21 11:14, Helin Zhang:
> > +enum rte_eth_hash_filter_info_type {
> > +	RTE_ETH_HASH_FILTER_INFO_TYPE_UNKNOWN = 0,
> > +	RTE_ETH_HASH_FILTER_INFO_TYPE_SYM_HASH_ENA_PER_PCTYPE,
> 
> PCTYPE is an unknown word in the API layer.
> Could you replace it by something more generic?
> 
> > +	RTE_ETH_HASH_FILTER_INFO_TYPE_SYM_HASH_ENA_PER_PORT,
> > +	RTE_ETH_HASH_FILTER_INFO_TYPE_FILTER_SWAP,
> > +	RTE_ETH_HASH_FILTER_INFO_TYPE_HASH_FUNCTION,
> > +	RTE_ETH_HASH_FILTER_INFO_TYPE_MAX,
> > +};
> 
> You should comment each constant.
> 
> > +struct rte_eth_sym_hash_ena_info {
> > +	/**< packet classification type, defined in rte_ethdev.h */
> > +	uint8_t pctype;
> 
> No, PCTYPE is not anymore defined in ethdev.
> 
> > +/**
> > + * A structure used to set or get filter swap information, to support
> > + * 'RTE_ETH_FILTER_HASH', 'RTE_ETH_FILTER_GET/RTE_ETH_FILTER_SET',
> > + * with information type 'RTE_ETH_HASH_FILTER_INFO_TYPE_FILTER_SWAP'.
> > + */
> > +struct rte_eth_filter_swap_info {
> > +	/**< Packet classification type, defined in rte_ethdev.h */
> > +	uint8_t pctype;
> > +	/**< Offset of the 1st field of the 1st couple to be swapped. */
> > +	uint8_t off0_src0;
> > +	/**< Offset of the 2nd field of the 1st couple to be swapped. */
> > +	uint8_t off0_src1;
> > +	/**< Field length of the first couple. */
> > +	uint8_t len0;
> > +	/**< Offset of the 1st field of the 2nd couple to be swapped. */
> > +	uint8_t off1_src0;
> > +	/**< Offset of the 2nd field of the 2nd couple to be swapped. */
> > +	uint8_t off1_src1;
> > +	/**< Field length of the second couple. */
> > +	uint8_t len1;
> > +};
> 
> I guess it would be easier to understand if
> RTE_ETH_HASH_FILTER_INFO_TYPE_FILTER_SWAP was defined previously.
> 
> --
> Thomas

  parent reply	other threads:[~2014-11-11  6:38 UTC|newest]

Thread overview: 71+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-30  6:20 [dpdk-dev] [PATCH v3 0/7] Support configuring hash functions Helin Zhang
2014-09-30  6:20 ` [dpdk-dev] [PATCH v3 1/7] ethdev: add more annotations Helin Zhang
2014-10-13  6:12   ` [dpdk-dev] [PATCH v4 0/7] Support configuring hash functions Helin Zhang
2014-10-13  6:12     ` [dpdk-dev] [PATCH v4 1/7] ethdev: add more annotations Helin Zhang
2014-10-13  6:12     ` [dpdk-dev] [PATCH v4 2/7] ethdev: add interfaces and relevant for filter control Helin Zhang
2014-10-13  6:12     ` [dpdk-dev] [PATCH v4 3/7] ethdev: add structures and enum for hash " Helin Zhang
2014-10-13  6:12     ` [dpdk-dev] [PATCH v4 4/7] i40e: add hash filter control implementation Helin Zhang
2014-10-13 10:23       ` Chilikin, Andrey
2014-10-14  0:42         ` Zhang, Helin
2014-10-13  6:12     ` [dpdk-dev] [PATCH v4 5/7] i40e: add hardware initialization Helin Zhang
2014-10-13  6:12     ` [dpdk-dev] [PATCH v4 6/7] i40e: Use constant random hash keys Helin Zhang
2014-10-13  6:12     ` [dpdk-dev] [PATCH v4 7/7] app/testpmd: add commands to support hash filter control Helin Zhang
2014-10-13 12:27     ` [dpdk-dev] [PATCH v4 0/7] Support configuring hash functions Zhan, Zhaochen
2014-10-14  3:32     ` Wu, Jingjing
2014-10-21  3:14     ` [dpdk-dev] [PATCH v5 0/5] " Helin Zhang
2014-10-21  3:14       ` [dpdk-dev] [PATCH v5 1/5] i40e: Use constant random hash keys Helin Zhang
2014-11-03  7:49         ` Thomas Monjalon
2014-11-03  8:18           ` Zhang, Helin
2014-11-03  8:59             ` Thomas Monjalon
2014-11-06  7:52               ` Zhang, Helin
2014-11-11  3:30               ` Zhang, Helin
2014-10-21  3:14       ` [dpdk-dev] [PATCH v5 2/5] ethdev: add enum type and relevant structures for hash filter control Helin Zhang
2014-11-03  7:57         ` Thomas Monjalon
2014-11-06  3:41           ` Zhang, Helin
2014-11-06  8:43             ` Thomas Monjalon
2014-11-06  8:54               ` Zhang, Helin
2014-11-11  3:27           ` Zhang, Helin
2014-11-11  6:46           ` Zhang, Helin [this message]
2014-11-11 21:08             ` Thomas Monjalon
2014-11-12  5:52               ` Zhang, Helin
2014-11-12  9:30                 ` Thomas Monjalon
2014-11-12 14:22                   ` Zhang, Helin
2014-10-21  3:14       ` [dpdk-dev] [PATCH v5 3/5] i40e: add hash filter control implementation Helin Zhang
2014-10-21  3:14       ` [dpdk-dev] [PATCH v5 4/5] i40e: add hardware initialization Helin Zhang
2014-10-21  3:14       ` [dpdk-dev] [PATCH v5 5/5] app/testpmd: add commands to support hash filter Helin Zhang
2014-11-07  3:45       ` [dpdk-dev] [PATCH v5 0/5] Support configuring hash functions Chen, Erlu
2014-11-07  6:12       ` Chen, Erlu
2014-11-19 14:58       ` [dpdk-dev] [PATCH v6 0/3] " Helin Zhang
2014-11-19 14:58         ` [dpdk-dev] [PATCH v6 1/3] i40e: Use constant as the default hash keys Helin Zhang
2014-11-19 14:58         ` [dpdk-dev] [PATCH v6 2/3] i40e: support of controlling hash functions Helin Zhang
2014-11-19 14:58         ` [dpdk-dev] [PATCH v6 3/3] app/testpmd: add commands to support " Helin Zhang
2014-11-27 15:45         ` [dpdk-dev] [PATCH v6 0/3] Support configuring " Thomas Monjalon
2014-11-27 16:17           ` Zhang, Helin
2014-11-28 12:14         ` [dpdk-dev] [PATCH v7 0/4] " Helin Zhang
2014-11-28 12:14           ` [dpdk-dev] [PATCH v7 1/4] ethdev: code style fixes Helin Zhang
2014-11-28 12:14           ` [dpdk-dev] [PATCH v7 2/4] i40e: use constant as the default hash keys Helin Zhang
2014-11-28 12:14           ` [dpdk-dev] [PATCH v7 3/4] i40e: support of controlling hash functions Helin Zhang
2014-11-28 12:52             ` Ananyev, Konstantin
2014-11-28 12:14           ` [dpdk-dev] [PATCH v7 4/4] app/testpmd: app/testpmd: add commands to support " Helin Zhang
2014-12-02  2:19           ` [dpdk-dev] [PATCH v8 0/4] Support configuring " Helin Zhang
2014-12-02  2:19             ` [dpdk-dev] [PATCH v8 1/4] ethdev: code style fixes Helin Zhang
2014-12-02  2:19             ` [dpdk-dev] [PATCH v8 2/4] i40e: use constant as the default hash keys Helin Zhang
2014-12-02  2:19             ` [dpdk-dev] [PATCH v8 3/4] i40e: support of controlling hash functions Helin Zhang
2015-01-20  7:54               ` Thomas Monjalon
2015-01-21  0:13                 ` Zhang, Helin
2015-01-22  7:44                 ` Zhang, Helin
2014-12-02  2:19             ` [dpdk-dev] [PATCH v8 4/4] app/testpmd: add commands to support " Helin Zhang
2014-12-02 13:15             ` [dpdk-dev] [PATCH v8 0/4] Support configuring " Ananyev, Konstantin
2015-01-22  7:36             ` [dpdk-dev] [PATCH v9 0/5] " Helin Zhang
2015-01-22  7:36               ` [dpdk-dev] [PATCH v9 1/5] i40e: use constant as the default hash keys Helin Zhang
2015-01-22  7:36               ` [dpdk-dev] [PATCH v9 2/5] ethdev: code style fixes Helin Zhang
2015-01-22  7:36               ` [dpdk-dev] [PATCH v9 3/5] ethdev: support of configuring hash functions Helin Zhang
2015-01-22  7:36               ` [dpdk-dev] [PATCH v9 4/5] i40e: support of controlling " Helin Zhang
2015-01-22  7:36               ` [dpdk-dev] [PATCH v9 5/5] app/testpmd: add commands to support " Helin Zhang
     [not found]                 ` <5028514.8nkR6oWFO2@xps13>
2015-02-03  2:35                   ` Zhang, Helin
2014-09-30  6:20 ` [dpdk-dev] [PATCH v3 2/7] ethdev: add interfaces and relevant for filter control Helin Zhang
2014-09-30  6:20 ` [dpdk-dev] [PATCH v3 3/7] ethdev: add structures and enum for hash " Helin Zhang
2014-09-30  6:20 ` [dpdk-dev] [PATCH v3 4/7] i40e: add hash filter control implementation Helin Zhang
2014-09-30  6:20 ` [dpdk-dev] [PATCH v3 5/7] i40e: add hardware initialization Helin Zhang
2014-09-30  6:20 ` [dpdk-dev] [PATCH v3 6/7] i40e: Use constant random hash keys Helin Zhang
2014-09-30  6:20 ` [dpdk-dev] [PATCH v3 7/7] app/testpmd: add commands to support hash filter control Helin Zhang

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=F35DEAC7BCE34641BA9FAC6BCA4A12E70A7BB8D4@SHSMSX104.ccr.corp.intel.com \
    --to=helin.zhang@intel.com \
    --cc=dev@dpdk.org \
    --cc=thomas.monjalon@6wind.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).