Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DPDK rte_flow rules RSS support for more NICs - v1 #12315

Closed

Conversation

adaki4
Copy link

@adaki4 adaki4 commented Dec 20, 2024

Contribution style:

Our Contribution agreements:

Changes (if applicable):

Link to ticket: https://redmine.openinfosecfoundation.org/issues/7337

Describe changes:

  • move the base of rte_flow rules RSS configuration from util-dpdk-i40e.c to separate file
  • add rte_flow rules RSS configuration for mlx5, ixgbe and ice drivers (only i40e until now)
  • until now i40e hashed packets by 5 tuple, now (also other mentioned drivers) hash by ip src and ip dst only.

These changes were made for future support of more rte_flow rules (e.g. vxlan or nvgre header hardware offload) that can be chained on certain NICs via certain rte_flow attributes.

Ticket: #7337

Adam Kiripolsky added 4 commits December 20, 2024 15:23
Move and adjust the base of  RSS configuration from util-dpdk-i40e.c to
a new file that can be later utilized by other cards.

RSS configuration can be configured via rte_flow rules. This is useful
for possible future features such as specific header offload
(vxlan, nvgre) also implemented via rte_flow rules, as rte_flow
rules can be chained via groups and priorities.

Ticket: 7337
ixgbe driver requires different configuration
of rss rte_flow rule than i40e, with just one
generic rule matching all traffic.

Ticket: 7337
ice driver has similar approach to setting rte_flow rss rule as i40e,
only without explicitly setting queues.

Ticket: 7337
mlx5 driver uses only one generic rte_flow rss rule to match all traffic

Ticket: 7337
Copy link
Member

@victorjulien victorjulien left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would like to see a bit more explanation in the commit messages about what these flow rules do. Right now it seems to expect quite in-depth knowledge to be able to understand them.

if (strcmp(driver_name, "net_i40e") == 0)
i40eDeviceSetRSS(ptv->port_id, ptv->threads);
i40eDeviceSetRSS(ptv->port_id, ptv->threads, ptv->livedev->dev);
if (strcmp(driver_name, "net_ixgbe") == 0)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: should be else if's

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure, I can change that.

@adaki4
Copy link
Author

adaki4 commented Dec 21, 2024

Continues in #12317

@adaki4 adaki4 closed this Dec 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

Successfully merging this pull request may close these issues.

3 participants