net/bnxt: update status of Rx IP/L4 CKSUM
authorAjit Khaparde <ajit.khaparde@broadcom.com>
Thu, 28 Sep 2017 21:43:31 +0000 (16:43 -0500)
committerFerruh Yigit <ferruh.yigit@intel.com>
Fri, 6 Oct 2017 00:49:49 +0000 (02:49 +0200)
update ol_flags with the appropriate status of IP/L4 cksum in Rx path.

Fixes: 2eb53b134aae ("net/bnxt: add initial Rx code")
Cc: stable@dpdk.org
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
drivers/net/bnxt/bnxt_rxr.c
drivers/net/bnxt/bnxt_rxr.h

index bf9f78a..28105b0 100644 (file)
@@ -418,6 +418,17 @@ static int bnxt_rx_pkt(struct rte_mbuf **rx_pkt,
                mbuf->ol_flags |= PKT_RX_VLAN_PKT;
        }
 
+       if (likely(RX_CMP_IP_CS_OK(rxcmp1)))
+               mbuf->ol_flags |= PKT_RX_IP_CKSUM_GOOD;
+       else
+               mbuf->ol_flags |= PKT_RX_IP_CKSUM_NONE;
+
+       if (likely(RX_CMP_L4_CS_OK(rxcmp1)))
+               mbuf->ol_flags |= PKT_RX_L4_CKSUM_GOOD;
+       else
+               mbuf->ol_flags |= PKT_RX_L4_CKSUM_NONE;
+
+
 #ifdef BNXT_DEBUG
        if (rxcmp1->errors_v2 & RX_CMP_L2_ERRORS) {
                /* Re-install the mbuf back to the rx ring */
index f8d6dc8..cb0cef3 100644 (file)
 #define BNXT_TPA_OUTER_L3_OFF(hdr_info)        \
        ((hdr_info) & 0x1ff)
 
+#define RX_CMP_L4_CS_BITS      rte_cpu_to_le_32(RX_PKT_CMPL_FLAGS2_L4_CS_CALC)
+
+#define RX_CMP_L4_CS_ERR_BITS  rte_cpu_to_le_32(RX_PKT_CMPL_ERRORS_L4_CS_ERROR)
+
+#define RX_CMP_L4_CS_OK(rxcmp1)                                                \
+           (((rxcmp1)->flags2 & RX_CMP_L4_CS_BITS) &&          \
+            !((rxcmp1)->errors_v2 & RX_CMP_L4_CS_ERR_BITS))
+
+#define RX_CMP_IP_CS_ERR_BITS  rte_cpu_to_le_32(RX_PKT_CMPL_ERRORS_IP_CS_ERROR)
+
+#define RX_CMP_IP_CS_BITS      rte_cpu_to_le_32(RX_PKT_CMPL_FLAGS2_IP_CS_CALC)
+
+#define RX_CMP_IP_CS_OK(rxcmp1)                                                \
+               (((rxcmp1)->flags2 & RX_CMP_IP_CS_BITS) &&      \
+               !((rxcmp1)->errors_v2 & RX_CMP_IP_CS_ERR_BITS))
+
 enum pkt_hash_types {
        PKT_HASH_TYPE_NONE,     /* Undefined type */
        PKT_HASH_TYPE_L2,       /* Input: src_MAC, dest_MAC */