[dpdk-dev] [PATCH 14/15] net/bnxt: fix mbuf flags for PTP packets in vector mode Rx
Ajit Khaparde
ajit.khaparde at broadcom.com
Mon Sep 2 00:12:19 CEST 2019
From: Kalesh AP <kalesh-anakkur.purayil at 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 at broadcom.com>
Reviewed-by: Somnath Kotur <somnath.kotur at broadcom.com>
Reviewed-by: Lance Richardson <lance.richardson at broadcom.com>
Signed-off-by: Ajit Khaparde <ajit.khaparde at broadcom.com>
---
drivers/net/bnxt/bnxt_rxtx_vec_sse.c | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
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 &
--
2.20.1 (Apple Git-117)
More information about the dev
mailing list