RTE_EVENT_ETH_RX_ADAPTER_QUEUE_CONF(3)

πŸ’– rte_event_eth_rx_adapter_queue_conf πŸ’–

okay bestie, so this is a page from the Library Functions Manual, and it's literally all about one little struct: rte_event_eth_rx_adapter_queue_conf. It's giving "the config object that tells the Rx adapter how to handle a queue" energy. Let's get into it 🫢


✨ NAME ✨

rte_event_eth_rx_adapter_queue_conf β€” the Rx queue configuration structure, no cap.


🌸 SYNOPSIS 🌸

#include <rte_event_eth_rx_adapter.h>

Data Fields

  • uint32_t rx_queue_flags
  • uint16_t servicing_weight
  • struct rte_event ev
  • uint16_t vector_sz
  • uint64_t vector_timeout_ns
  • struct rte_mempool * vector_mp
  • uint16_t event_buf_size

πŸ¦‹ Detailed Description πŸ¦‹

It's the Rx queue configuration structure, periodt. That's the whole vibe.

Defined at line 158 of the file rte_event_eth_rx_adapter.h.


πŸ’… Field Documentation πŸ’…

uint32_t rx_queue_flags

These are your flags for handling received packets, bestie. They decide how the packets coming in get treated.

See also β€” RTE_EVENT_ETH_RX_ADAPTER_QUEUE_FLOW_ID_VALID

Defined at line 159 of the file rte_event_eth_rx_adapter.h.


uint16_t servicing_weight

This one is the relative polling frequency of the ethernet receive queue β€” and that matters when the adapter is using a service core function to do ethernet-to-event-device transfers. So like, it's the weighting of how often this queue gets looked at compared to its siblings.

And here's the plot twist, bestie: if you set it to zero, the Rx queue becomes interrupt driven β€” unless, of course, rx queue interrupts aren't enabled for the ethernet device. Then it's just... not that. 😭

Defined at line 163 of the file rte_event_eth_rx_adapter.h.


struct rte_event ev

The values from these event fields get used when queuing mbuf events, okay? Buckle up, here's the lineup:

  • event_queue_id: the targeted event queue ID for received packets.
  • event_priority: the event priority of packets from this Rx queue, in the event queue, relative to the other events.
  • sched_type: the scheduling type for packets from this Rx queue.
  • flow_id: if the RTE_ETH_RX_EVENT_ADAPTER_QUEUE_FLOW_ID_VALID bit is set in rx_queue_flags, then this flow_id is used for all packets received from this queue. Otherwise the flow ID gets set to the RSS hash of the src and dst IPv4/6 addresses.

Also, heads up: the event adapter sets ev.event_type to RTE_EVENT_TYPE_ETHDEV in the enqueued event. Slay. πŸ‘‘

Defined at line 170 of the file rte_event_eth_rx_adapter.h.


uint16_t vector_sz

This indicates the maximum number of mbufs to combine and form a vector. Should be within... πŸ‘€

See also - rte_event_eth_rx_adapter_vector_limits::min_vector_sz - rte_event_eth_rx_adapter_vector_limits::max_vector_sz β€” Valid when the RTE_EVENT_ETH_RX_ADAPTER_QUEUE_EVENT_VECTOR flag is set in - rte_event_eth_rx_adapter_queue_conf::rx_queue_flags

Defined at line 187 of the file rte_event_eth_rx_adapter.h.


uint64_t vector_timeout_ns

This is the maximum number of nanoseconds to wait for receiving mbufs. Should be within the vectorization limits of the adapter.

See also - rte_event_eth_rx_adapter_vector_limits::min_vector_ns - rte_event_eth_rx_adapter_vector_limits::max_vector_ns β€” Valid when the RTE_EVENT_ETH_RX_ADAPTER_QUEUE_EVENT_VECTOR flag is set in - rte_event_eth_rx_adapter_queue_conf::rx_queue_flags

Defined at line 196 of the file rte_event_eth_rx_adapter.h.


struct rte_mempool* vector_mp

This is the mempool that should be used for allocating the rte_event_vector container. It should be created by using rte_event_vector_pool_create. Valid when the RTE_EVENT_ETH_RX_ADAPTER_QUEUE_EVENT_VECTOR flag is set in...

See also β€” rte_event_eth_rx_adapter_queue_conf::rx_queue_flags.

Defined at line 206 of the file rte_event_eth_rx_adapter.h.


uint16_t event_buf_size

The event buffer size for this queue. That's it, that's the field. πŸŽ€

Defined at line 214 of the file rte_event_eth_rx_adapter.h.


🧚 Author 🧚

Generated automatically by Doxygen for DPDK from the source code. The robots did this one, not me. πŸ™ˆ


aaaand that's the whole page!! this was DPDK, Version 25.11.3, from the rte_event_..._queue_conf(3) era of the manual β€” ty for reading bestie, go configure your queues responsibly, mwah πŸ’–βœ¨πŸŒˆ

πŸ“¦ where this page comes from