FDIR packet distribution with specific multiple RX queues.

Stephen Hemminger stephen at networkplumber.org
Thu Jul 18 17:36:07 CEST 2024


On Thu, 18 Jul 2024 11:36:43 +0000
Raghavan V <Raghavan.V2 at tatacommunications.com> wrote:

> Is there any way to distribute packets evenly (Like RSS) to specific multiple RX queues in RTE_FLOW_ACTION_TYPE_QUEUE DPDK Flow director?
> 
> Desired action:
> 
> uint16_t queue_indices[] = {10, 11, 12, 13, 14, 15};
> struct rte_flow_action_queue queue = {.index = queue_indices};
> struct rte_flow_action action[]={
>     [0]={.type = RTE_FLOW_ACTION_TYPE_QUEUE,.conf = &queue},
>     [1]={.type = RTE_FLOW_ACTION_TYPE_END}
> };

You want RTE_FLOW_ACTION_TYPE_RSS

uint16_t queue_indices[] = {10, 11, 12, 13, 14, 15};
struct rte_flow_action_rss rss = {
	.types =  RTE_ETH_RSS_UDP | RTE_ETH_RSS_TCP,
	.queue_num = RTE_DIM(queue_indicies),
	.queue = queue_indicies,
};

struct rte_flow_action action[]={
     [0]={.type = RTE_FLOW_ACTION_TYPE_RSS,.conf = &rss},
    [1]={.type = RTE_FLOW_ACTION_TYPE_END}
};

> Is this action limited to drivers specific?
Yes, drivers implement only what hardware can support.


More information about the dev mailing list