rte_eth_vmdq_rx_conf(3)
π rte_eth_vmdq_rx_conf(3) π
okay bestie, pull up a chair because we're talking about rte_eth_vmdq_rx_conf β a whole struct from the rte_ethdev.h world of DPDK, and she's here to configure VMDq on your Ethernet port. (And yes, the manual page name is literally rte_eth_vmdq_rx_conf(3), iykyk.) π«Ά
β¨ NAME β¨
rte_eth_vmdq_rx_conf β the struct that sets up VMDq packet routing vibes π
πΈ SYNOPSIS πΈ
#include <rte_ethdev.h>
π Data Fields
enum rte_eth_nb_pools nb_queue_pools
uint8_t enable_default_pool
uint8_t default_pool
uint8_t enable_loop_back
uint8_t nb_pool_maps
uint32_t rx_mode
struct {
uint16_t vlan_id
uint64_t pools
} pool_map [RTE_ETH_VMDQ_MAX_VLAN_FILTERS]
π¦ Detailed Description π¦
So like, this is the structure you use to configure the VMDq feature of an Ethernet port β but only when it's not combined with the DCB feature. Not both. Pick a lane, we love that for her. β¨
When you use this feature, packets get routed to a pool of queues. By default, pool selection is based on the MAC address and the VLAN ID in the VLAN tag, exactly as specified in the pool_map array. But if you pass RTE_ETH_VMDQ_ACCEPT_UNTAG in the rx_mode field, then pool selection happens using only the MAC address. MAC address to pool mapping is done using the rte_eth_dev_mac_addr_add function, where the pool parameter corresponds to the pool ID. Slay. π
Then, queue selection within the selected pool? That's done using RSS when it's enabled, or it reverts to the first queue of the pool if RSS isn't enabled. Main character behavior, no notes. π
And a default pool may be used, if you want, to route all traffic that doesn't match the VLAN filter rules or any pool MAC address. Catch-all queen. π
Definition at line 1025 of file rte_ethdev.h.
π Field Documentation π
π enum rte_eth_nb_pools nb_queue_pools
VMDq-only mode, 8 or 64 pools. Them's the options bestie, no in-between.
Definition at line 1026 of file rte_ethdev.h.
π uint8_t enable_default_pool
If it's non-zero, you're using a default pool. Simple as that.
Definition at line 1027 of file rte_ethdev.h.
π uint8_t default_pool
The default pool, if applicable. Only matters when enable_default_pool said yes.
Definition at line 1028 of file rte_ethdev.h.
π uint8_t enable_loop_back
Enable VT loop back. Loop-de-loop, iconic. π
Definition at line 1029 of file rte_ethdev.h.
π uint8_t nb_pool_maps
We can have up to 64 filters/mappings. That's the ceiling, don't push it.
Definition at line 1030 of file rte_ethdev.h.
π uint32_t rx_mode
Flags from RTE_ETH_VMDQ_ACCEPT_*. That's the family, go look at them.
Definition at line 1031 of file rte_ethdev.h.
π uint16_t vlan_id
The VLAN ID of the received frame. This is the inside-the-struct one, inside that anonymous struct, bestie β don't get confused. π
Definition at line 1033 of file rte_ethdev.h.
π uint64_t pools
Bitmask of pools for packet Rx. Bits go brrr. β
Definition at line 1034 of file rte_ethdev.h.
π struct { ... } pool_map[RTE_ETH_VMDQ_MAX_VLAN_FILTERS]
VMDq VLAN pool maps. It's the array of { vlan_id, pools } pairs above, one per VLAN filter entry. πΈ
π Author π
Generated automatically by Doxygen for DPDK from the source code. Not a human, just a very diligent robot. π€π
okay that's the whole page bestie, you ATE that struct documentation fr fr π
β¨ this was DPDK, Version 25.11.3, and the page is rte_eth_vmdq_rx_conf(3) β go configure those pools, you got this, periodt. ππ¦π
π¦ where this page comes from
- ubuntu resolute: dpdk-doc 25.11.3-0ubuntu0.26.04.1 Β· BSD-3-Clause
- ubuntu stonking: dpdk-doc 25.11.3-1 Β· BSD-3-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms