[14/15] net/bnxt: fix mbuf flags for PTP packets in vector mode Rx

Message ID 20190901221213.92149-15-ajit.khaparde@broadcom.com (mailing list archive)
State Changes Requested, archived
Delegated to: Ferruh Yigit
Headers
Series bnxt patchset |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation fail apply issues

Commit Message

Ajit Khaparde Sept. 1, 2019, 10:12 p.m. UTC
  From: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>

PKT_RX_IEEE1588_PTP and PKT_RX_IEEE1588_TMST flags need to be set
in the offload flags for the received pkt in case of PTP offload.

Fixes: bc4a000f2f53c ("net/bnxt: implement SSE vector mode")

Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>
Reviewed-by: Lance Richardson <lance.richardson@broadcom.com>
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
---
 drivers/net/bnxt/bnxt_rxtx_vec_sse.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)
  

Patch

diff --git a/drivers/net/bnxt/bnxt_rxtx_vec_sse.c b/drivers/net/bnxt/bnxt_rxtx_vec_sse.c
index 22d9f9e84..d1a68ad6b 100644
--- a/drivers/net/bnxt/bnxt_rxtx_vec_sse.c
+++ b/drivers/net/bnxt/bnxt_rxtx_vec_sse.c
@@ -251,6 +251,7 @@  bnxt_recv_pkts_vec(void *rx_queue, struct rte_mbuf **rx_pkts,
 			uint16_t cp_cons;
 			struct rte_mbuf *mbuf;
 			__m128i mm_rxcmp, pkt_mb;
+			uint16_t flags_type;
 
 			tmp_raw_cons = NEXT_RAW_CMP(raw_cons);
 			cp_cons = RING_CMP(cpr->cp_ring_struct, tmp_raw_cons);
@@ -280,9 +281,17 @@  bnxt_recv_pkts_vec(void *rx_queue, struct rte_mbuf **rx_pkts,
 
 			rte_compiler_barrier();
 
-			if (rxcmp->flags_type & RX_PKT_CMPL_FLAGS_RSS_VALID)
+			flags_type = rte_le_to_cpu_16(rxcmp->flags_type);
+
+			if (flags_type & RX_PKT_CMPL_FLAGS_RSS_VALID)
 				mbuf->ol_flags |= PKT_RX_RSS_HASH;
 
+#ifdef RTE_LIBRTE_IEEE1588
+			if ((flags_type & RX_PKT_CMPL_FLAGS_MASK) ==
+			    RX_PKT_CMPL_FLAGS_ITYPE_PTP_W_TIMESTAMP)
+				mbuf->ol_flags |= PKT_RX_IEEE1588_PTP |
+					PKT_RX_IEEE1588_TMST;
+#endif
 			if (rxcmp1->flags2 &
 			    RX_PKT_CMPL_FLAGS2_META_FORMAT_VLAN) {
 				mbuf->vlan_tci = rxcmp1->metadata &