From: Wei Fang <wei.fang@nxp.com>
To: robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org,
richardcochran@gmail.com, claudiu.manoil@nxp.com,
vladimir.oltean@nxp.com, xiaoning.wang@nxp.com,
andrew+netdev@lunn.ch, davem@davemloft.net, edumazet@google.com,
kuba@kernel.org, pabeni@redhat.com, vadim.fedorenko@linux.dev,
Frank.Li@nxp.com, shawnguo@kernel.org, s.hauer@pengutronix.de,
festevam@gmail.com
Cc: fushi.peng@nxp.com, devicetree@vger.kernel.org,
netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
imx@lists.linux.dev, kernel@pengutronix.de
Subject: [PATCH v2 net-next 13/14] net: enetc: don't update sync packet checksum if checksum offload is used
Date: Wed, 16 Jul 2025 15:31:10 +0800 [thread overview]
Message-ID: <20250716073111.367382-14-wei.fang@nxp.com> (raw)
In-Reply-To: <20250716073111.367382-1-wei.fang@nxp.com>
For ENETC v4, the hardware has the capability to support Tx checksum
offload. so the enetc driver does not need to update the UDP checksum
of PTP sync packets if Tx checksum offload is enabled.
Signed-off-by: Wei Fang <wei.fang@nxp.com>
---
drivers/net/ethernet/freescale/enetc/enetc.c | 17 +++++++++--------
1 file changed, 9 insertions(+), 8 deletions(-)
diff --git a/drivers/net/ethernet/freescale/enetc/enetc.c b/drivers/net/ethernet/freescale/enetc/enetc.c
index 6e04dd825a95..cf72d50246a9 100644
--- a/drivers/net/ethernet/freescale/enetc/enetc.c
+++ b/drivers/net/ethernet/freescale/enetc/enetc.c
@@ -247,7 +247,7 @@ static void enetc4_set_one_step_ts(struct enetc_si *si, bool udp, int offset)
}
static u32 enetc_update_ptp_sync_msg(struct enetc_ndev_priv *priv,
- struct sk_buff *skb)
+ struct sk_buff *skb, bool csum_offload)
{
struct enetc_skb_cb *enetc_cb = ENETC_SKB_CB(skb);
u16 tstamp_off = enetc_cb->origin_tstamp_off;
@@ -269,18 +269,17 @@ static u32 enetc_update_ptp_sync_msg(struct enetc_ndev_priv *priv,
* - 48 bits seconds field
* - 32 bits nanseconds field
*
- * In addition, the UDP checksum needs to be updated
- * by software after updating originTimestamp field,
- * otherwise the hardware will calculate the wrong
- * checksum when updating the correction field and
- * update it to the packet.
+ * In addition, if csum_offload is false, the UDP checksum needs
+ * to be updated by software after updating originTimestamp field,
+ * otherwise the hardware will calculate the wrong checksum when
+ * updating the correction field and update it to the packet.
*/
data = skb_mac_header(skb);
new_sec_h = htons((sec >> 32) & 0xffff);
new_sec_l = htonl(sec & 0xffffffff);
new_nsec = htonl(nsec);
- if (enetc_cb->udp) {
+ if (enetc_cb->udp && !csum_offload) {
struct udphdr *uh = udp_hdr(skb);
__be32 old_sec_l, old_nsec;
__be16 old_sec_h;
@@ -319,6 +318,7 @@ static int enetc_map_tx_buffs(struct enetc_bdr *tx_ring, struct sk_buff *skb)
struct enetc_tx_swbd *tx_swbd;
int len = skb_headlen(skb);
union enetc_tx_bd temp_bd;
+ bool csum_offload = false;
union enetc_tx_bd *txbd;
int i, count = 0;
skb_frag_t *frag;
@@ -345,6 +345,7 @@ static int enetc_map_tx_buffs(struct enetc_bdr *tx_ring, struct sk_buff *skb)
temp_bd.l4_aux = FIELD_PREP(ENETC_TX_BD_L4T,
ENETC_TXBD_L4T_UDP);
flags |= ENETC_TXBD_FLAGS_CSUM_LSO | ENETC_TXBD_FLAGS_L4CS;
+ csum_offload = true;
} else if (skb_checksum_help(skb)) {
return 0;
}
@@ -352,7 +353,7 @@ static int enetc_map_tx_buffs(struct enetc_bdr *tx_ring, struct sk_buff *skb)
if (enetc_cb->flag & ENETC_F_TX_ONESTEP_SYNC_TSTAMP) {
do_onestep_tstamp = true;
- tstamp = enetc_update_ptp_sync_msg(priv, skb);
+ tstamp = enetc_update_ptp_sync_msg(priv, skb, csum_offload);
} else if (enetc_cb->flag & ENETC_F_TX_TSTAMP) {
do_twostep_tstamp = true;
}
--
2.34.1
next prev parent reply other threads:[~2025-07-16 7:52 UTC|newest]
Thread overview: 64+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-07-16 7:30 [PATCH v2 net-next 00/14] Add NETC Timer PTP driver and add PTP support for i.MX95 Wei Fang
2025-07-16 7:30 ` [PATCH v2 net-next 01/14] dt-bindings: ptp: add NETC Timer PTP clock Wei Fang
2025-07-16 19:19 ` Frank Li
2025-07-17 7:40 ` Krzysztof Kozlowski
2025-07-17 8:30 ` Wei Fang
2025-07-17 9:05 ` Vladimir Oltean
2025-07-17 9:55 ` Wei Fang
2025-07-17 12:42 ` Vladimir Oltean
2025-07-17 15:06 ` Frank Li
2025-07-22 14:36 ` Vladimir Oltean
2025-07-22 18:25 ` Frank Li
2025-07-17 10:04 ` Krzysztof Kozlowski
2025-07-17 10:28 ` Wei Fang
2025-07-16 7:30 ` [PATCH v2 net-next 02/14] dt-bindings: net: add nxp,netc-timer property Wei Fang
2025-07-16 19:28 ` Frank Li
2025-07-17 3:23 ` Wei Fang
2025-07-17 7:42 ` Krzysztof Kozlowski
2025-07-17 8:32 ` Wei Fang
2025-07-17 9:12 ` Krzysztof Kozlowski
2025-07-17 9:49 ` Wei Fang
2025-07-17 10:06 ` Krzysztof Kozlowski
2025-07-17 10:26 ` Wei Fang
2025-07-18 7:46 ` Krzysztof Kozlowski
2025-07-18 7:50 ` Krzysztof Kozlowski
2025-07-18 12:01 ` Vladimir Oltean
2025-07-21 6:00 ` Wei Fang
2025-07-21 12:23 ` Krzysztof Kozlowski
2025-07-16 7:31 ` [PATCH v2 net-next 03/14] ptp: netc: add NETC Timer PTP driver support Wei Fang
2025-07-16 19:58 ` Frank Li
2025-07-17 8:42 ` Wei Fang
2025-07-23 16:09 ` Vladimir Oltean
2025-07-24 2:36 ` Wei Fang
2025-07-16 7:31 ` [PATCH v2 net-next 04/14] ptp: netc: add PTP_CLK_REQ_PPS support Wei Fang
2025-07-16 20:05 ` Frank Li
2025-07-17 11:59 ` Wei Fang
2025-07-17 15:15 ` Frank Li
2025-07-18 2:08 ` Wei Fang
2025-07-16 7:31 ` [PATCH v2 net-next 05/14] ptp: netc: add periodic pulse output support Wei Fang
2025-07-16 20:26 ` Frank Li
2025-07-17 12:11 ` Wei Fang
2025-07-16 7:31 ` [PATCH v2 net-next 06/14] ptp: netc: add external trigger stamp support Wei Fang
2025-07-16 20:30 ` Frank Li
2025-07-16 7:31 ` [PATCH v2 net-next 07/14] ptp: netc: add debugfs support to loop back pulse signal Wei Fang
2025-07-16 20:32 ` Frank Li
2025-07-16 7:31 ` [PATCH v2 net-next 08/14] MAINTAINERS: add NETC Timer PTP clock driver section Wei Fang
2025-07-16 20:33 ` Frank Li
2025-07-16 7:31 ` [PATCH v2 net-next 09/14] net: enetc: save the parsed information of PTP packet to skb->cb Wei Fang
2025-07-16 20:46 ` Frank Li
2025-07-17 12:20 ` Wei Fang
2025-07-16 7:31 ` [PATCH v2 net-next 10/14] net: enetc: Add enetc_update_ptp_sync_msg() to process PTP sync packet Wei Fang
2025-07-16 20:49 ` Frank Li
2025-07-16 7:31 ` [PATCH v2 net-next 11/14] net: enetc: remove unnecessary CONFIG_FSL_ENETC_PTP_CLOCK check Wei Fang
2025-07-16 20:50 ` Frank Li
2025-07-16 7:31 ` [PATCH v2 net-next 12/14] net: enetc: add PTP synchronization support for ENETC v4 Wei Fang
2025-07-16 21:01 ` Frank Li
2025-07-17 12:35 ` Wei Fang
2025-07-17 22:07 ` Frank Li
2025-07-18 2:08 ` Wei Fang
2025-07-22 12:57 ` Vladimir Oltean
2025-07-22 13:41 ` Wei Fang
2025-07-16 7:31 ` Wei Fang [this message]
2025-07-16 21:03 ` [PATCH v2 net-next 13/14] net: enetc: don't update sync packet checksum if checksum offload is used Frank Li
2025-07-16 7:31 ` [PATCH v2 14/14] arm64: dts: imx95: Add NETC Timer support Wei Fang
2025-07-16 21:04 ` Frank Li
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250716073111.367382-14-wei.fang@nxp.com \
--to=wei.fang@nxp.com \
--cc=Frank.Li@nxp.com \
--cc=andrew+netdev@lunn.ch \
--cc=claudiu.manoil@nxp.com \
--cc=conor+dt@kernel.org \
--cc=davem@davemloft.net \
--cc=devicetree@vger.kernel.org \
--cc=edumazet@google.com \
--cc=festevam@gmail.com \
--cc=fushi.peng@nxp.com \
--cc=imx@lists.linux.dev \
--cc=kernel@pengutronix.de \
--cc=krzk+dt@kernel.org \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=richardcochran@gmail.com \
--cc=robh@kernel.org \
--cc=s.hauer@pengutronix.de \
--cc=shawnguo@kernel.org \
--cc=vadim.fedorenko@linux.dev \
--cc=vladimir.oltean@nxp.com \
--cc=xiaoning.wang@nxp.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).