patch 'net/bnxt: fix PTP timestamp flags in scalar Rx' has been queued to stable release 24.11.7
luca.boccassi at gmail.com
luca.boccassi at gmail.com
Thu Jun 11 15:21:03 CEST 2026
Hi,
FYI, your patch has been queued to stable release 24.11.7
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 06/13/26. So please
shout if anyone has objections.
Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.
Queued patches are on a temporary branch at:
https://github.com/bluca/dpdk-stable
This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/a8ff02587f0624ec2f4b642b53b1870193002d41
Thanks.
Luca Boccassi
---
>From a8ff02587f0624ec2f4b642b53b1870193002d41 Mon Sep 17 00:00:00 2001
From: Mohammad Shuab Siddique <mohammad-shuab.siddique at broadcom.com>
Date: Fri, 22 May 2026 16:21:57 -0600
Subject: [PATCH] net/bnxt: fix PTP timestamp flags in scalar Rx
[ upstream commit feb485b62cd46cfb627b4de7576749e1e2080ed4 ]
Added a check so that if bp->ptp_all_rx_tstamp is true
- it is always set to true when set fwd ieee1588 is called via
bnxt_timesync_enable - the hardware must also report that the packet
is ptp. Also changed the code so that the path properly reports if
the packet has a timestamp.
Fixes: 925cd0705836 ("net/bnxt: update PTP support on Thor")
Signed-off-by: Keegan Freyhof <keegan.freyhof at broadcom.com>
Signed-off-by: Mohammad Shuab Siddique <mohammad-shuab.siddique at broadcom.com>
---
drivers/net/bnxt/bnxt_hwrm.c | 28 +++-------------------------
drivers/net/bnxt/bnxt_rxr.c | 11 +++++++----
drivers/net/bnxt/bnxt_stats.c | 3 +++
3 files changed, 13 insertions(+), 29 deletions(-)
diff --git a/drivers/net/bnxt/bnxt_hwrm.c b/drivers/net/bnxt/bnxt_hwrm.c
index 8bef174b9f..1cc389511a 100644
--- a/drivers/net/bnxt/bnxt_hwrm.c
+++ b/drivers/net/bnxt/bnxt_hwrm.c
@@ -4330,6 +4330,9 @@ static int bnxt_hwrm_set_tpa(struct bnxt *bp)
bool tpa_flags = 0;
int rc, i;
+ if (!BNXT_SUPPORTS_TPA(bp))
+ return 0;
+
tpa_flags = (rx_offloads & RTE_ETH_RX_OFFLOAD_TCP_LRO) ? true : false;
for (i = 0; i < bp->max_vnics; i++) {
struct bnxt_vnic_info *vnic = &bp->vnic_info[i];
@@ -4929,31 +4932,6 @@ int bnxt_hwrm_pf_evb_mode(struct bnxt *bp)
return rc;
}
-static int bnxt_hwrm_set_tpa(struct bnxt *bp)
-{
- struct rte_eth_conf *dev_conf = &bp->eth_dev->data->dev_conf;
- uint64_t rx_offloads = dev_conf->rxmode.offloads;
- bool tpa_flags = 0;
- int rc, i;
-
- if (!BNXT_SUPPORTS_TPA(bp))
- return 0;
-
- tpa_flags = (rx_offloads & RTE_ETH_RX_OFFLOAD_TCP_LRO) ? true : false;
- for (i = 0; i < bp->max_vnics; i++) {
- struct bnxt_vnic_info *vnic = &bp->vnic_info[i];
-
- if (vnic->fw_vnic_id == INVALID_HW_RING_ID)
- continue;
-
- rc = bnxt_hwrm_vnic_tpa_cfg(bp, vnic, tpa_flags);
- if (rc)
- return rc;
- }
- return 0;
-}
-
-
int bnxt_hwrm_tunnel_dst_port_alloc(struct bnxt *bp, uint16_t port,
uint8_t tunnel_type)
{
diff --git a/drivers/net/bnxt/bnxt_rxr.c b/drivers/net/bnxt/bnxt_rxr.c
index 27d7dee501..818f274aac 100644
--- a/drivers/net/bnxt/bnxt_rxr.c
+++ b/drivers/net/bnxt/bnxt_rxr.c
@@ -1202,10 +1202,13 @@ static int bnxt_rx_pkt(struct rte_mbuf **rx_pkt,
mbuf->data_len = mbuf->pkt_len;
mbuf->port = rxq->port_id;
- if (unlikely((rte_le_to_cpu_16(rxcmp->flags_type) &
- RX_PKT_CMPL_FLAGS_MASK) ==
- RX_PKT_CMPL_FLAGS_ITYPE_PTP_W_TIMESTAMP) ||
- bp->ptp_all_rx_tstamp) {
+ if (unlikely((((rte_le_to_cpu_16(rxcmp->flags_type) &
+ RX_PKT_CMPL_FLAGS_MASK) ==
+ RX_PKT_CMPL_FLAGS_ITYPE_PTP_W_TIMESTAMP) ||
+ ((rte_le_to_cpu_16(rxcmp->flags_type) &
+ RX_PKT_CMPL_FLAGS_MASK) ==
+ RX_PKT_CMPL_FLAGS_ITYPE_PTP_WO_TIMESTAMP)) &&
+ bp->ptp_all_rx_tstamp)) {
if (BNXT_CHIP_P5_P7(bp))
bnxt_get_rx_ts_p5_p7(rxq->bp, rxcmp1->reorder);
else
diff --git a/drivers/net/bnxt/bnxt_stats.c b/drivers/net/bnxt/bnxt_stats.c
index e92639cff4..3c5549305a 100644
--- a/drivers/net/bnxt/bnxt_stats.c
+++ b/drivers/net/bnxt/bnxt_stats.c
@@ -680,6 +680,9 @@ static int bnxt_stats_get_ext(struct rte_eth_dev *eth_dev,
struct bnxt_cp_ring_info *cpr = txq->cp_ring;
struct bnxt_ring_stats_ext ring_stats = {0};
+ bnxt_stats->oerrors += rte_atomic_load_explicit(&txq->tx_mbuf_drop,
+ rte_memory_order_relaxed);
+
if (!txq->tx_started)
continue;
--
2.47.3
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2026-06-11 14:20:05.812606987 +0100
+++ 0114-net-bnxt-fix-PTP-timestamp-flags-in-scalar-Rx.patch 2026-06-11 14:20:01.386750162 +0100
@@ -1 +1 @@
-From feb485b62cd46cfb627b4de7576749e1e2080ed4 Mon Sep 17 00:00:00 2001
+From a8ff02587f0624ec2f4b642b53b1870193002d41 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit feb485b62cd46cfb627b4de7576749e1e2080ed4 ]
+
@@ -13 +14,0 @@
-Cc: stable at dpdk.org
@@ -18,5 +19,4 @@
- drivers/net/bnxt/bnxt_ethdev.c | 2 --
- drivers/net/bnxt/bnxt_hwrm.c | 28 +++-------------------------
- drivers/net/bnxt/bnxt_rxr.c | 13 ++++++++-----
- drivers/net/bnxt/bnxt_stats.c | 3 +++
- 4 files changed, 14 insertions(+), 32 deletions(-)
+ drivers/net/bnxt/bnxt_hwrm.c | 28 +++-------------------------
+ drivers/net/bnxt/bnxt_rxr.c | 11 +++++++----
+ drivers/net/bnxt/bnxt_stats.c | 3 +++
+ 3 files changed, 13 insertions(+), 29 deletions(-)
@@ -24,13 +23,0 @@
-diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c
-index d07124a7f5..b4ed03e3db 100644
---- a/drivers/net/bnxt/bnxt_ethdev.c
-+++ b/drivers/net/bnxt/bnxt_ethdev.c
-@@ -1493,8 +1493,6 @@ bnxt_receive_function(struct rte_eth_dev *eth_dev)
- bp->flags |= BNXT_FLAG_RX_VECTOR_PKT_MODE;
- if (bnxt_compressed_rx_cqe_mode_enabled(bp))
- return bnxt_crx_pkts_vec_avx2;
-- if (BNXT_TRUFLOW_EN(bp) && bnxt_ulp_explicit_mark_enabled(bp))
-- goto use_scalar_rx;
- if (BNXT_CHIP_P7(bp))
- return bnxt_recv_pkts_vec_avx2_v3;
- else
@@ -38 +25 @@
-index 590543ad6a..4a5b83d29c 100644
+index 8bef174b9f..1cc389511a 100644
@@ -41 +28 @@
-@@ -4347,6 +4347,9 @@ static int bnxt_hwrm_set_tpa(struct bnxt *bp)
+@@ -4330,6 +4330,9 @@ static int bnxt_hwrm_set_tpa(struct bnxt *bp)
@@ -51 +38 @@
-@@ -4946,31 +4949,6 @@ int bnxt_hwrm_pf_evb_mode(struct bnxt *bp)
+@@ -4929,31 +4932,6 @@ int bnxt_hwrm_pf_evb_mode(struct bnxt *bp)
@@ -84 +71 @@
-index ab2175d21a..046276f931 100644
+index 27d7dee501..818f274aac 100644
@@ -87 +74 @@
-@@ -1203,11 +1203,14 @@ static int bnxt_rx_pkt(struct rte_mbuf **rx_pkt,
+@@ -1202,10 +1202,13 @@ static int bnxt_rx_pkt(struct rte_mbuf **rx_pkt,
@@ -91 +78 @@
-- if (unlikely(((rte_le_to_cpu_16(rxcmp->flags_type) &
+- if (unlikely((rte_le_to_cpu_16(rxcmp->flags_type) &
@@ -94,2 +81 @@
-- bp->ptp_all_rx_tstamp) && bp->ieee_1588 &&
-- bp->ptp_cfg) {
+- bp->ptp_all_rx_tstamp) {
@@ -102,4 +88 @@
-+ bp->ptp_all_rx_tstamp) && bp->ieee_1588 &&
-+ bp->ptp_cfg) {
- mbuf->ol_flags |= RTE_MBUF_F_RX_IEEE1588_PTP |
- RTE_MBUF_F_RX_IEEE1588_TMST;
++ bp->ptp_all_rx_tstamp)) {
@@ -106,0 +90,2 @@
+ bnxt_get_rx_ts_p5_p7(rxq->bp, rxcmp1->reorder);
+ else
@@ -108 +93 @@
-index 49367588e4..ba858710a5 100644
+index e92639cff4..3c5549305a 100644
@@ -111 +96 @@
-@@ -695,6 +695,9 @@ static int bnxt_stats_get_ext(struct rte_eth_dev *eth_dev,
+@@ -680,6 +680,9 @@ static int bnxt_stats_get_ext(struct rte_eth_dev *eth_dev,
More information about the stable
mailing list