From: Sid ali cherrati <scherrati1@gmail.com>
To: users@dpdk.org
Subject: RSS/Flow Rule Configuration Issue on Intel X710 (i40e Driver)
Date: Tue, 25 Mar 2025 11:42:31 +0100 [thread overview]
Message-ID: <CALn3+CMzLvE8hF4T0vdrit9S-wqb2nnETMByPY7aZ=4dQrhMGw@mail.gmail.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 2784 bytes --]
Dear DPDK Team,
I hope this message finds you well. I am reaching out to seek your
expertise regarding an issue I am encountering while configuring *DPDK flow
rules with RSS* on an *Intel X710 NIC* (using the i40e driver). Despite
multiple attempts, I have been unable to resolve the error and would
greatly appreciate your guidance.
*Objective* :
Redirect UDP traffic (specific destination IP/port) to *multiple RX queues*
using rte_flow with RSS.
*Error : *
Validation failed: RSS Queues not supported when pattern specified .
*Hardware/Software*:
-
NIC: Intel X710
- Driver: i40e
-
DPDK Version: 23.11
*Code Snippet:*
int flow_filtering(uint16_t port_id, uint32_t ip_addr, uint16_t udp_port) {
struct rte_flow_error error;
struct rte_flow_attr attr = { .ingress = 1, .priority = 0 };
struct rte_flow_item pattern[4];
struct rte_flow_action action[2];
struct rte_flow *flow;
// Ethernet
memset(pattern, 0, sizeof(pattern));
pattern[0].type = RTE_FLOW_ITEM_TYPE_ETH;
// IPv4
struct rte_flow_item_ipv4 ipv4_spec = { .hdr.dst_addr = RTE_BE32(ip_addr) };
struct rte_flow_item_ipv4 ipv4_mask = { .hdr.dst_addr = RTE_BE32(0xFFFFFFFF)
};
pattern[1].type = RTE_FLOW_ITEM_TYPE_IPV4;
pattern[1].spec = &ipv4_spec;
pattern[1].mask = &ipv4_mask;
// UDP
struct rte_flow_item_udp udp_spec = { .hdr.dst_port = RTE_BE16(udp_port) };
struct rte_flow_item_udp udp_mask = { .hdr.dst_port = RTE_BE16(0xFFFF) };
pattern[2].type = RTE_FLOW_ITEM_TYPE_UDP;
pattern[2].spec = &udp_spec;
pattern[2].mask = &udp_mask;
pattern[3].type = RTE_FLOW_ITEM_TYPE_END;
// action
action[0].type = RTE_FLOW_ACTION_TYPE_RSS;
// struct rte_flow_action_queue queue_action = { .index = RX_ID };
// action[0].conf = &queue_action;
// Configuration RSS
uint16_t queues[] = {1, 2, 3};
struct rte_flow_action_rss rss_conf = {
.func = RTE_ETH_HASH_FUNCTION_DEFAULT,
.types =
RTE_ETH_RSS_IPV4 |
RTE_ETH_RSS_UDP,
.key_len = 0,
.queue_num = 3,
.queue = queues,
};
action[0].type = RTE_FLOW_ACTION_TYPE_RSS;
action[0].conf = &rss_conf;
action[1].type = RTE_FLOW_ACTION_TYPE_END;
if (rte_flow_validate(port_id, &attr, pattern, action, &error) != 0) {
printf("Validation Failure: %s\n", error.message);
return -1;
}
// Flow rule creation
flow = rte_flow_create(port_id, &attr, pattern, action, &error);
if (flow == NULL) {
printf("Error creating flow rule : %s\n", error.message);
return -1;
}
printf("Flow rule created for IP %u.%u.%u.%u and UDP port %u\n",
(ip_addr >> 24) & 0xFF, (ip_addr >> 16) & 0xFF,
(ip_addr >> 8) & 0xFF, ip_addr & 0xFF, udp_port);
return 0;
}
I would be grateful for any insights, code examples, or documentation
references to resolve this issue. Please let me know if additional details
are required.
Thank you in advance for your time and support.
Best regards,
SidAli
[-- Attachment #2: Type: text/html, Size: 27339 bytes --]
next reply other threads:[~2025-03-25 10:42 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-25 10:42 Sid ali cherrati [this message]
2025-03-25 13:17 ` Lukáš Šišmiš
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='CALn3+CMzLvE8hF4T0vdrit9S-wqb2nnETMByPY7aZ=4dQrhMGw@mail.gmail.com' \
--to=scherrati1@gmail.com \
--cc=users@dpdk.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 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).