For received PTP packets, the flag "RTE_MBUF_F_RX_IEEE1588_TMST" has not
been set which leads to received PTP packet not timestamped by hardware
shown in testpmd/ieee1588 fwd.

Fixes: 646dcbe6c701 ("net/ice: support IEEE 1588 PTP")
Cc: sta...@dpdk.org

Signed-off-by: Simei Su <simei...@intel.com>
---
 drivers/net/ice/ice_rxtx.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/drivers/net/ice/ice_rxtx.c b/drivers/net/ice/ice_rxtx.c
index d50acf5..d7276d7 100644
--- a/drivers/net/ice/ice_rxtx.c
+++ b/drivers/net/ice/ice_rxtx.c
@@ -1554,6 +1554,9 @@ ice_rxd_to_vlan_tci(struct rte_mbuf *mb, volatile union 
ice_rx_flex_desc *rxdp)
 #if (ICE_LOOK_AHEAD != 8)
 #error "PMD ICE: ICE_LOOK_AHEAD must be 8\n"
 #endif
+
+#define ICE_PTP_TS_VALID 0x1
+
 static inline int
 ice_rx_scan_hw_ring(struct ice_rx_queue *rxq)
 {
@@ -1634,6 +1637,10 @@ ice_rx_scan_hw_ring(struct ice_rx_queue *rxq)
                                   rte_le_to_cpu_32(rxdp[j].wb.flex_ts.ts_high);
                                mb->timesync = rxq->queue_id;
                                pkt_flags |= RTE_MBUF_F_RX_IEEE1588_PTP;
+                               if (rxdp[j].wb.time_stamp_low &
+                                   ICE_PTP_TS_VALID)
+                                       pkt_flags |=
+                                               RTE_MBUF_F_RX_IEEE1588_TMST;
                        }
 #endif
                        mb->ol_flags |= pkt_flags;
-- 
2.9.5

Reply via email to