MCPcopy Create free account
hub / github.com/F-Stack/f-stack / rss_setup

Function rss_setup

dpdk/examples/pipeline/obj.c:38–68  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

36#define RETA_CONF_SIZE (RTE_ETH_RSS_RETA_SIZE_512 / RTE_ETH_RETA_GROUP_SIZE)
37
38static int
39rss_setup(uint16_t port_id,
40 uint16_t reta_size,
41 struct ethdev_params_rss *rss)
42{
43 struct rte_eth_rss_reta_entry64 reta_conf[RETA_CONF_SIZE];
44 uint32_t i;
45 int status;
46
47 /* RETA setting */
48 memset(reta_conf, 0, sizeof(reta_conf));
49
50 for (i = 0; i < reta_size; i++)
51 reta_conf[i / RTE_ETH_RETA_GROUP_SIZE].mask = UINT64_MAX;
52
53 for (i = 0; i < reta_size; i++) {
54 uint32_t reta_id = i / RTE_ETH_RETA_GROUP_SIZE;
55 uint32_t reta_pos = i % RTE_ETH_RETA_GROUP_SIZE;
56 uint32_t rss_qs_pos = i % rss->n_queues;
57
58 reta_conf[reta_id].reta[reta_pos] =
59 (uint16_t) rss->queue_id[rss_qs_pos];
60 }
61
62 /* RETA update */
63 status = rte_eth_dev_rss_reta_update(port_id,
64 reta_conf,
65 reta_size);
66
67 return status;
68}
69
70int
71ethdev_config(const char *name, struct ethdev_params *params)

Callers 1

ethdev_configFunction · 0.70

Calls 2

memsetFunction · 0.85

Tested by

no test coverage detected