DPDK patches and discussions
 help / color / mirror / Atom feed
From: Stephen Hemminger <stephen@networkplumber.org>
To: Feifei Wang <wff_light@vip.163.com>
Cc: dev@dpdk.org, Yi Chen <chenyi221@huawei.com>,
	Xin Wang <wangxin679@h-partners.com>,
	Feifei Wang <wangfeifei40@huawei.com>
Subject: Re: [V2 17/18] net/hinic3: add FDIR flow control module
Date: Thu, 26 Jun 2025 12:58:07 -0700	[thread overview]
Message-ID: <20250626125807.26d650ae@hermes.local> (raw)
In-Reply-To: <20250625022827.3091-18-wff_light@vip.163.com>

On Wed, 25 Jun 2025 10:28:13 +0800
Feifei Wang <wff_light@vip.163.com> wrote:

> diff --git a/drivers/net/hinic3/hinic3_fdir.c b/drivers/net/hinic3/hinic3_fdir.c
> new file mode 100644
> index 0000000000..32fc5472bd
> --- /dev/null
> +++ b/drivers/net/hinic3/hinic3_fdir.c
> @@ -0,0 +1,1394 @@

Suggestion: Don't call this fdir since that implies the old Intel Flow Director
stuff which was deprecated and (mostly) removed from DPDK.
Your code is for the current rte_flow API.

> +static int
> +hinic3_flow_fdir_vxlan(struct rte_flow_error *error,
> +		       struct hinic3_filter_t *filter,
> +		       const struct rte_flow_item *flow_item)
> +{
> +	const struct rte_flow_item_vxlan *spec_vxlan, *mask_vxlan;
> +	uint32_t vxlan_vni_id = 0;
> +
> +	spec_vxlan = (const struct rte_flow_item_vxlan *)flow_item->spec;
> +	mask_vxlan = (const struct rte_flow_item_vxlan *)flow_item->mask;
> +
> +	filter->fdir_filter.tunnel_type = HINIC3_FDIR_TUNNEL_MODE_VXLAN;
> +
> +	if (!spec_vxlan && !mask_vxlan) {
> +		return 0;
> +	} else if (filter->fdir_filter.outer_ip_type == HINIC3_FDIR_IP_TYPE_IPV6) {
> +		rte_flow_error_set(error, EINVAL, HINIC3_FLOW_ERROR_TYPE_ITEM,
> +				   flow_item,
> +				   "Invalid fdir filter vxlan mask or spec, "
> +				   "ipv6 vxlan, don't support vni");
> +		return -rte_errno;
> +	}
> +
> +	if (!spec_vxlan || !mask_vxlan) {
> +		rte_flow_error_set(error, EINVAL, HINIC3_FLOW_ERROR_TYPE_ITEM,
> +				   flow_item,
> +				   "Invalid fdir filter vxlan mask or spec");
> +		return -rte_errno;
> +	}
> +
> +	rte_memcpy(((uint8_t *)&vxlan_vni_id + 1), spec_vxlan->vni, 3);

No need for rte_memcpy here, not fast path. use memcpy instead.
Don't hard code value of 3; instead use sizeof(spec_vxlan->vni)

  parent reply	other threads:[~2025-06-26 19:58 UTC|newest]

Thread overview: 82+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-04-18  9:05 [RFC 00/18] add hinic3 PMD driver Feifei Wang
2025-04-18  9:05 ` [RFC 01/18] net/hinic3: add intro doc for hinic3 Feifei Wang
2025-04-18  9:05 ` [RFC 02/18] net/hinic3: add basic header files Feifei Wang
2025-04-18  9:05 ` [RFC 03/18] net/hinic3: add hardware interfaces of BAR operation Feifei Wang
2025-04-18  9:05 ` [RFC 04/18] net/hinic3: add support for cmdq mechanism Feifei Wang
2025-04-18  9:05 ` [RFC 05/18] net/hinic3: add NIC event module Feifei Wang
2025-04-18  9:05 ` [RFC 06/18] net/hinic3: add eq mechanism function code Feifei Wang
2025-04-18  9:05 ` [RFC 07/18] net/hinic3: add mgmt module " Feifei Wang
2025-04-18  9:05 ` [RFC 08/18] net/hinic3: add module about hardware operation Feifei Wang
2025-04-18  9:05 ` [RFC 09/18] net/hinic3: add a NIC business configuration module Feifei Wang
2025-04-18  9:05 ` [RFC 10/18] net/hinic3: add context and work queue support Feifei Wang
2025-04-18  9:05 ` [RFC 11/18] net/hinic3: add a mailbox communication module Feifei Wang
2025-04-18  9:05 ` [RFC 12/18] net/hinic3: add device initailization Feifei Wang
2025-04-18  9:05 ` [RFC 13/18] net/hinic3: add dev ops Feifei Wang
2025-06-26 21:29   ` Stephen Hemminger
2025-06-26 21:30   ` Stephen Hemminger
2025-06-26 21:32   ` Stephen Hemminger
2025-04-18  9:06 ` [RFC 14/18] net/hinic3: add Rx/Tx functions Feifei Wang
2025-06-26 21:40   ` Stephen Hemminger
2025-06-26 21:41   ` Stephen Hemminger
2025-04-18  9:06 ` [RFC 15/18] net/hinic3: add MML and EEPROM access feature Feifei Wang
2025-04-18  9:06 ` [RFC 16/18] net/hinic3: add RSS promiscuous ops Feifei Wang
2025-04-18  9:06 ` [RFC 17/18] net/hinic3: add FDIR flow control module Feifei Wang
2025-04-18 18:25   ` Stephen Hemminger
2025-04-18 18:27   ` Stephen Hemminger
2025-04-18 18:28   ` Stephen Hemminger
2025-04-18 18:30   ` Stephen Hemminger
2025-04-18  9:06 ` [RFC 18/18] drivers/net: add hinic3 PMD build and doc files Feifei Wang
2025-04-18 17:22   ` Stephen Hemminger
2025-04-19  2:52     ` 回复: " wangfeifei (J)
2025-05-29  8:14   ` [PATCH v1 00/18] add hinic3 pmd driver Feifei
2025-05-29  8:15   ` [PATCH v1 01/18] This patch adds some basic files to describe the hinic3 driver Feifei
2025-05-29  8:15   ` [PATCH v1 02/18] net/hinic3: add basic header files Feifei
2025-05-29  8:15   ` [PATCH v1 03/18] net/hinic3: add hardware interfaces of BAR operation Feifei
2025-05-29  8:15   ` [PATCH v1 04/18] net/hinic3: add support for cmdq mechanism Feifei
2025-05-29  8:15   ` [PATCH v1 05/18] net/hinic3: add NIC event module Feifei
2025-05-29  8:15   ` [PATCH v1 06/18] net/hinic3: add eq mechanism function code Feifei
2025-05-29  8:15   ` [PATCH v1 07/18] net/hinic3: add mgmt module " Feifei
2025-05-29  8:15   ` [PATCH v1 08/18] net/hinic3: add module about hardware operation Feifei
2025-05-29  8:15   ` [PATCH v1 09/18] net/hinic3: add a NIC business configuration module Feifei
2025-05-29  8:15   ` [PATCH v1 10/18] net/hinic3: add context and work queue support Feifei
2025-05-29  8:15   ` [PATCH v1 11/18] net/hinic3: add a mailbox communication module Feifei
2025-05-29  8:15   ` [PATCH v1 12/18] net/hinic3: add device initialization Feifei
2025-05-29  8:15   ` [PATCH v1 13/18] net/hinic3: add dev ops Feifei
2025-05-29  8:15   ` [PATCH v1 14/18] net/hinic3: add Rx/Tx functions Feifei
2025-05-29  8:15   ` [PATCH v1 15/18] net/hinic3: add MML and EEPROM access feature Feifei
2025-05-29  8:15   ` [PATCH v1 16/18] net/hinic3: add RSS promiscuous ops Feifei
2025-05-29  8:15   ` [PATCH v1 17/18] net/hinic3: add FDIR flow control module Feifei
2025-05-29  8:15   ` [PATCH v1 18/18] drivers/net: add hinic3 PMD build and doc files Feifei
2025-04-18 18:18 ` [RFC 00/18] add hinic3 PMD driver Stephen Hemminger
2025-04-19  2:44   ` 回复: " wangfeifei (J)
2025-04-18 18:20 ` Stephen Hemminger
2025-04-18 18:32 ` Stephen Hemminger
2025-04-19  3:30   ` 回复: " wangfeifei (J)
2025-06-04  2:52 ` Stephen Hemminger
2025-06-09 16:40 ` Stephen Hemminger
2025-06-25  2:27 ` [V2 00/18] add hinic3 pmd driver Feifei Wang
2025-06-25  2:27   ` [V2 01/18] add some basic files about hinic3 driver Feifei Wang
2025-06-26 15:46     ` Stephen Hemminger
2025-06-26 15:58     ` Stephen Hemminger
2025-06-25  2:27   ` [V2 02/18] net/hinic3: add basic header files Feifei Wang
2025-06-25  2:27   ` [V2 03/18] net/hinic3: add hardware interfaces of BAR operation Feifei Wang
2025-06-25  2:28   ` [V2 04/18] net/hinic3: add support for cmdq mechanism Feifei Wang
2025-06-25  2:28   ` [V2 05/18] net/hinic3: add NIC event module Feifei Wang
2025-06-25  2:28   ` [V2 06/18] net/hinic3: add eq mechanism function code Feifei Wang
2025-06-25  2:28   ` [V2 07/18] net/hinic3: add mgmt module " Feifei Wang
2025-06-25  2:28   ` [V2 08/18] net/hinic3: add module about hardware operation Feifei Wang
2025-06-25  2:28   ` [V2 09/18] net/hinic3: add a NIC business configuration module Feifei Wang
2025-06-25  2:28   ` [V2 10/18] net/hinic3: add context and work queue support Feifei Wang
2025-06-25  2:28   ` [V2 11/18] net/hinic3: add a mailbox communication module Feifei Wang
2025-06-25  2:28   ` [V2 12/18] net/hinic3: add device initialization Feifei Wang
2025-06-25  2:28   ` [V2 13/18] net/hinic3: add dev ops Feifei Wang
2025-06-25  2:28   ` [V2 14/18] net/hinic3: add Rx/Tx functions Feifei Wang
2025-06-26 20:04     ` Stephen Hemminger
2025-06-25  2:28   ` [V2 15/18] net/hinic3: add MML and EEPROM access feature Feifei Wang
2025-06-25  2:28   ` [V2 16/18] net/hinic3: add RSS promiscuous ops Feifei Wang
2025-06-25  2:28   ` [V2 17/18] net/hinic3: add FDIR flow control module Feifei Wang
2025-06-26 15:59     ` Stephen Hemminger
2025-06-26 19:58     ` Stephen Hemminger [this message]
2025-06-25  2:28   ` [V2 18/18] drivers/net: add hinic3 PMD build and doc files Feifei Wang
2025-06-26 15:47   ` [V2 00/18] add hinic3 pmd driver Stephen Hemminger
2025-06-26 21:41   ` Stephen Hemminger

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=20250626125807.26d650ae@hermes.local \
    --to=stephen@networkplumber.org \
    --cc=chenyi221@huawei.com \
    --cc=dev@dpdk.org \
    --cc=wangfeifei40@huawei.com \
    --cc=wangxin679@h-partners.com \
    --cc=wff_light@vip.163.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).