Simply initialze rx_pkt_burst callback to ixgbe_recv_pkts_lro_bulk_alloc() if the conditions are right.
This is possible because work against HW in LRO and scattered cases is exactly the same and LRO callback already supports the bulk allocation. Signed-off-by: Vlad Zolotarov <vladz at cloudius-systems.com> --- lib/librte_pmd_ixgbe/ixgbe_rxtx.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/librte_pmd_ixgbe/ixgbe_rxtx.c b/lib/librte_pmd_ixgbe/ixgbe_rxtx.c index 1766c1a..63284c9 100644 --- a/lib/librte_pmd_ixgbe/ixgbe_rxtx.c +++ b/lib/librte_pmd_ixgbe/ixgbe_rxtx.c @@ -3780,6 +3780,11 @@ void ixgbe_set_rx_function(struct rte_eth_dev *dev) dev->data->port_id); dev->rx_pkt_burst = ixgbe_recv_scattered_pkts_vec; + } else if (adapter->rx_bulk_alloc_allowed) { + PMD_INIT_LOG(INFO, "Using a Scattered with bulk " + "allocation callback (port=%d).", + dev->data->port_id); + dev->rx_pkt_burst = ixgbe_recv_pkts_lro_bulk_alloc; } else { PMD_INIT_LOG(DEBUG, "Using Regualr (non-vector, " "single allocation) " -- 2.1.0