diff options
authorTom Barbette <>2017-07-05 15:59:44 +0200
committerThomas Monjalon <>2017-07-10 00:46:38 +0200
commite6d902be09733ca5a00e3e3d80429e6fad4ced40 (patch)
parent4188620d02f088a93867ae7d13dd8b7f13533bfc (diff)
ethdev: document VMDq Rx configuration
From documentation it is very unclear how VMDq configuration can be tweaked, and online search offer very poor results. This patch will ultimately spawn an online documentation page for the rte_eth_vmdq_rx_conf struct which will eventually add a bit of documentation about the rx_mode tag and how to allow e.g. VMDq pools to receive packets without VLAN tags. Signed-off-by: Tom Barbette <> Acked-by: John McNamara <>
1 files changed, 18 insertions, 0 deletions
diff --git a/lib/librte_ether/rte_ethdev.h b/lib/librte_ether/rte_ethdev.h
index 93182b8..fd6baf3 100644
--- a/lib/librte_ether/rte_ethdev.h
+++ b/lib/librte_ether/rte_ethdev.h
@@ -637,6 +637,24 @@ struct rte_eth_vmdq_dcb_conf {
/**< Selects a queue in a pool */
+ * 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 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.
+ */
struct rte_eth_vmdq_rx_conf {
enum rte_eth_nb_pools nb_queue_pools; /**< VMDq only mode, 8 or 64 pools */
uint8_t enable_default_pool; /**< If non-zero, use a default pool */