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

Reply via email to