net/ixgbe: support checksum flags in SSE vector Rx
[dpdk.git] / drivers / net / ixgbe / ixgbe_rxtx_vec_neon.c
index 9c1d124..f96cc85 100644 (file)
@@ -280,10 +280,10 @@ _recv_raw_pkts_vec(struct ixgbe_rx_queue *rxq, struct rte_mbuf **rx_pkts,
                vst1q_u64((uint64_t *)&rx_pkts[pos + 2], mbp2);
 
                if (split_packet) {
-                       rte_prefetch_non_temporal(&rx_pkts[pos]->cacheline1);
-                       rte_prefetch_non_temporal(&rx_pkts[pos + 1]->cacheline1);
-                       rte_prefetch_non_temporal(&rx_pkts[pos + 2]->cacheline1);
-                       rte_prefetch_non_temporal(&rx_pkts[pos + 3]->cacheline1);
+                       rte_mbuf_prefetch_part2(rx_pkts[pos]);
+                       rte_mbuf_prefetch_part2(rx_pkts[pos + 1]);
+                       rte_mbuf_prefetch_part2(rx_pkts[pos + 2]);
+                       rte_mbuf_prefetch_part2(rx_pkts[pos + 3]);
                }
 
                /* D.1 pkt 3,4 convert format from desc to pktmbuf */
@@ -556,5 +556,11 @@ ixgbe_txq_vec_setup(struct ixgbe_tx_queue *txq)
 int __attribute__((cold))
 ixgbe_rx_vec_dev_conf_condition_check(struct rte_eth_dev *dev)
 {
+       struct rte_eth_rxmode *rxmode = &dev->data->dev_conf.rxmode;
+
+       /* no csum error report support */
+       if (rxmode->hw_ip_checksum == 1)
+               return -1;
+
        return ixgbe_rx_vec_dev_conf_condition_check_default(dev);
 }