New upstream version 16.11.5
[deb_dpdk.git] / drivers / net / bnxt / bnxt_rxr.c
index 5d93de2..5698f02 100644 (file)
@@ -72,7 +72,7 @@ static inline int bnxt_alloc_rx_data(struct bnxt_rx_queue *rxq,
 
        rx_buf->mbuf = data;
 
-       rxbd->addr = rte_cpu_to_le_64(RTE_MBUF_DATA_DMA_ADDR(rx_buf->mbuf));
+       rxbd->addr = rte_cpu_to_le_64(rte_mbuf_data_dma_addr_default(data));
 
        return 0;
 }
@@ -126,6 +126,7 @@ static uint16_t bnxt_rx_pkt(struct rte_mbuf **rx_pkt,
        mbuf = rx_buf->mbuf;
        rte_prefetch0(mbuf);
 
+       mbuf->data_off = RTE_PKTMBUF_HEADROOM;
        mbuf->nb_segs = 1;
        mbuf->next = NULL;
        mbuf->pkt_len = rxcmp->len;
@@ -148,6 +149,17 @@ static uint16_t bnxt_rx_pkt(struct rte_mbuf **rx_pkt,
        }
 
        rx_buf->mbuf = NULL;
+
+       if (likely(RX_CMP_IP_CS_OK(rxcmp1)))
+               mbuf->ol_flags |= PKT_RX_IP_CKSUM_GOOD;
+       else
+               mbuf->ol_flags |= PKT_RX_IP_CKSUM_BAD;
+
+       if (likely(RX_CMP_L4_CS_OK(rxcmp1)))
+               mbuf->ol_flags |= PKT_RX_L4_CKSUM_GOOD;
+       else
+               mbuf->ol_flags |= PKT_RX_L4_CKSUM_BAD;
+
        if (rxcmp1->errors_v2 & RX_CMP_L2_ERRORS) {
                /* Re-install the mbuf back to the rx ring */
                bnxt_reuse_rx_mbuf(rxr, cons, mbuf);