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