Skip to content

Commit

Permalink
Fix flow rules failing after verification on PF
Browse files Browse the repository at this point in the history
DPDK backend flow rules are failing on the E810 PF
when ETH rules are ignored on the default
attribute group 0.

Retry applying the flow rules on the queue with
group 2 if applying to group 0 fails but passes
verification.
  • Loading branch information
DawidWesierski4 committed Dec 16, 2024
1 parent 1580c7f commit 83ef9e2
Showing 1 changed file with 11 additions and 0 deletions.
11 changes: 11 additions & 0 deletions lib/src/mt_flow.c
Original file line number Diff line number Diff line change
Expand Up @@ -178,6 +178,17 @@ static struct rte_flow* rte_rx_flow_create(struct mt_interface* inf, uint16_t q,
mt_pthread_mutex_lock(&inf->vf_cmd_mutex);
r_flow = rte_flow_create(port_id, &attr, pattern, action, &error);
mt_pthread_mutex_unlock(&inf->vf_cmd_mutex);

/* WA for PF interfaces */
if (!has_ip_flow && !r_flow) {
info("%s(%d), Flow creation failed on default group, retrying with group 2\n",
__func__, port);
mt_pthread_mutex_lock(&inf->vf_cmd_mutex);
attr.group = 2;
r_flow = rte_flow_create(port_id, &attr, pattern, action, &error);
mt_pthread_mutex_unlock(&inf->vf_cmd_mutex);
}

if (!r_flow) {
err("%s(%d), rte_flow_create fail for queue %d, %s\n", __func__, port, q,
mt_string_safe(error.message));
Expand Down

0 comments on commit 83ef9e2

Please sign in to comment.