ixgbe: use scattered Rx with bulk allocation
authorVlad Zolotarov <vladz@cloudius-systems.com>
Wed, 29 Apr 2015 08:38:17 +0000 (11:38 +0300)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Thu, 7 May 2015 17:19:18 +0000 (19:19 +0200)
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@cloudius-systems.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
lib/librte_pmd_ixgbe/ixgbe_rxtx.c

index e3cf4fc..57c9430 100644 (file)
@@ -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) "