net/hns3: fix IEEE 1588 PTP for scalar scattered Rx
authorMin Hu (Connor) <humin29@huawei.com>
Thu, 29 Apr 2021 09:19:03 +0000 (17:19 +0800)
committerFerruh Yigit <ferruh.yigit@intel.com>
Tue, 4 May 2021 14:48:18 +0000 (16:48 +0200)
When jumbo frame is enabled, Rx function will choose 'Scalar Scattered'
function which has no PTP handling.

This patch fixes it by adding PTP handling in 'Scalar Scattered'
function.

Fixes: 38b539d96eb6 ("net/hns3: support IEEE 1588 PTP")

Signed-off-by: Min Hu (Connor) <humin29@huawei.com>
drivers/net/hns3/hns3_rxtx.c

index 7ac3a48..a76b141 100644 (file)
@@ -2654,6 +2654,9 @@ hns3_recv_scattered_pkts(void *rx_queue,
                        continue;
                }
 
+               if (unlikely(bd_base_info & BIT(HNS3_RXD_TS_VLD_B)))
+                       hns3_rx_ptp_timestamp_handle(rxq, first_seg, rxdp);
+
                /*
                 * The last buffer of the received packet. packet len from
                 * buffer description may contains CRC len, packet len should
@@ -2704,6 +2707,9 @@ hns3_recv_scattered_pkts(void *rx_queue,
                first_seg->packet_type = hns3_rx_calc_ptype(rxq,
                                                l234_info, ol_info);
 
+               if (first_seg->packet_type == RTE_PTYPE_L2_ETHER_TIMESYNC)
+                       rxm->ol_flags |= PKT_RX_IEEE1588_PTP;
+
                hns3_rxd_to_vlan_tci(rxq, first_seg, l234_info, &rxd);
 
                /* Increment bytes counter */