DPDK  23.03.0
Data Fields
rte_eth_vmdq_rx_conf Struct Reference

#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

A structure used to configure the VMDq feature of an Ethernet port when not combined with the DCB feature.

Using this feature, packets are routed to a pool of queues. By default, the pool selection is based on the MAC address, the VLAN ID in the VLAN tag as specified in the pool_map array. Passing the RTE_ETH_VMDQ_ACCEPT_UNTAG in the rx_mode field allows pool selection using only the MAC address. MAC address to pool mapping is done using the rte_eth_dev_mac_addr_add function, with the pool parameter corresponding to the pool ID.

Queue selection within the selected pool will be done using RSS when it is enabled or revert to the first queue of the pool if not.

A default pool may be used, if desired, to route all traffic which does not match the VLAN filter rules or any pool MAC address.

Examples:
examples/vhost/main.c, examples/vmdq/main.c, and examples/vmdq_dcb/main.c.

Definition at line 947 of file rte_ethdev.h.

Field Documentation

◆ nb_queue_pools

enum rte_eth_nb_pools nb_queue_pools

VMDq only mode, 8 or 64 pools

Examples:
examples/vmdq/main.c, and examples/vmdq_dcb/main.c.

Definition at line 948 of file rte_ethdev.h.

◆ enable_default_pool

uint8_t enable_default_pool

If non-zero, use a default pool

Examples:
examples/vmdq/main.c, and examples/vmdq_dcb/main.c.

Definition at line 949 of file rte_ethdev.h.

◆ default_pool

uint8_t default_pool

The default pool, if applicable

Examples:
examples/vmdq/main.c, and examples/vmdq_dcb/main.c.

Definition at line 950 of file rte_ethdev.h.

◆ enable_loop_back

uint8_t enable_loop_back

Enable VT loop back

Examples:
examples/vhost/main.c.

Definition at line 951 of file rte_ethdev.h.

◆ nb_pool_maps

uint8_t nb_pool_maps

We can have up to 64 filters/mappings

Examples:
examples/vmdq/main.c, and examples/vmdq_dcb/main.c.

Definition at line 952 of file rte_ethdev.h.

◆ rx_mode

uint32_t rx_mode

Flags from RTE_ETH_VMDQ_ACCEPT_*

Examples:
examples/vhost/main.c.

Definition at line 953 of file rte_ethdev.h.

◆ vlan_id

uint16_t vlan_id

The VLAN ID of the received frame

Examples:
examples/vmdq/main.c, and examples/vmdq_dcb/main.c.

Definition at line 955 of file rte_ethdev.h.

◆ pools

uint64_t pools

Bitmask of pools for packet Rx

Examples:
examples/vmdq/main.c, and examples/vmdq_dcb/main.c.

Definition at line 956 of file rte_ethdev.h.

◆ pool_map

struct { ... } pool_map[RTE_ETH_VMDQ_MAX_VLAN_FILTERS]

VMDq VLAN pool maps.

Examples:
examples/vmdq/main.c, and examples/vmdq_dcb/main.c.

The documentation for this struct was generated from the following file: