On 10/7/22 19:08, Thomas Monjalon wrote:
07/10/2022 16:37, Andrew Rybchenko:
@@ -1067,6 +1067,24 @@ struct rte_eth_rxconf {
*/
union rte_eth_rxseg *rx_seg;
+ /**
+ * Array of mempools to allocate Rx buffers from.
+ *
+ * This provides support for multiple mbuf pools per Rx queue.
+ * The capability is reported in device info via positive
+ * max_rx_mempools.
+ *
+ * It could be useful for more efficient usage of memory when an
+ * application creates different mempools to steer the specific
+ * size of the packet.
+ *
+ * Note that if Rx scatter is enabled, a packet may be delivered using
+ * a chain of mbufs obtained from single mempool or multiple mempools
+ * based on the NIC implementation.
+ */
+ struct rte_mempool **rx_mempools;
+ uint16_t rx_nmempool; /** < Number of Rx mempools */
The commit message suggests a configuration per packet size.
I guess it is not configurable in ethdev API?
If it is hard-configured in the HW or the driver only,
it should be specified here.
See v8
[...]
+ /**
+ * Maximum number of Rx mempools supported per Rx queue.
+ *
+ * Value greater than 0 means that the driver supports Rx queue
+ * mempools specification via rx_conf->rx_mempools.
+ */
+ uint16_t max_rx_mempools;