All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stephen Hemminger <stephen@networkplumber.org>
To: dev@dpdk.org
Cc: Stephen Hemminger <stephen@networkplumber.org>,
	Jie Hai <haijie1@huawei.com>
Subject: [RFC] net/hns3: clarify handling of crc reinsert
Date: Tue, 26 Nov 2024 15:17:11 -0800	[thread overview]
Message-ID: <20241126231758.133355-1-stephen@networkplumber.org> (raw)
In-Reply-To: <20240718114806.577298-4-haijie1@huawei.com>

Use a static assert rather than a comment to express why
there will be space in the buffer.  Use memcpy() rather
than rte_memcpy().

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 drivers/net/hns3/hns3_rxtx.c | 24 ++++++++++++++----------
 1 file changed, 14 insertions(+), 10 deletions(-)

diff --git a/drivers/net/hns3/hns3_rxtx.c b/drivers/net/hns3/hns3_rxtx.c
index 861511547d..9272584d24 100644
--- a/drivers/net/hns3/hns3_rxtx.c
+++ b/drivers/net/hns3/hns3_rxtx.c
@@ -2449,6 +2449,15 @@ hns3_need_recalculate_crc(struct hns3_rx_queue *rxq, struct rte_mbuf *m)
 	return true;
 }
 
+/*
+ * The hns3 driver requires that mbuf size must be at least 512B.
+ * When CRC is stripped by hardware, the pkt_len must be less than
+ * or equal to 60B. Therefore, the space of the mbuf is enough
+ * to insert the CRC.
+ */
+static_assert(HNS3_KEEP_CRC_OK_MIN_PKT_LEN < HNS3_MIN_BD_BUF_SIZE,
+	      "buffer size too small to insert CRC");
+
 static inline void
 hns3_recalculate_crc(struct rte_mbuf *m)
 {
@@ -2459,18 +2468,13 @@ hns3_recalculate_crc(struct rte_mbuf *m)
 			       m->data_len, RTE_NET_CRC32_ETH);
 
 	/*
-	 * The hns3 driver requires that mbuf size must be at least 512B.
-	 * When CRC is stripped by hardware, the pkt_len must be less than
-	 * or equal to 60B. Therefore, the space of the mbuf is enough
-	 * to insert the CRC.
-	 *
-	 * In addition, after CRC is stripped by hardware, pkt_len and data_len
-	 * do not contain the CRC length. Therefore, after CRC data is appended
-	 * by PMD again, both pkt_len and data_len add the CRC length.
+	 * After CRC is stripped by hardware, pkt_len and data_len do not contain the CRC length.
+	 * Therefore, after CRC data is appended by PMD again.
 	 */
 	append_data = rte_pktmbuf_append(m, RTE_NET_CRC32_ETH);
-	/* The CRC data is binary data and does not care about the byte order. */
-	rte_memcpy(append_data, (void *)&crc, RTE_NET_CRC32_ETH);
+
+	/* CRC data is binary data and does not care about the byte order. */
+	memcpy(append_data, &crc, RTE_NET_CRC32_ETH);
 }
 
 uint16_t
-- 
2.45.2


  reply	other threads:[~2024-11-26 23:18 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-02-06  1:10 [PATCH] net/hns3: fix Rx packet truncation when KEEP CRC enabled Jie Hai
2024-02-07 14:15 ` Ferruh Yigit
2024-02-20  3:58   ` Jie Hai
2024-02-23 13:53     ` Ferruh Yigit
2024-02-26  3:16       ` Jie Hai
2024-02-26 16:43         ` Ferruh Yigit
2024-02-28  2:27           ` huangdengdui
2024-02-28 13:07             ` Ferruh Yigit
2024-02-29  3:58               ` huangdengdui
2024-02-29  9:25                 ` Ferruh Yigit
2024-03-01  6:55                   ` huangdengdui
2024-03-01 11:10                     ` Ferruh Yigit
2024-03-08 11:36                       ` Jie Hai
2024-03-22  6:28                         ` Jie Hai
2024-06-03  1:38                       ` Jie Hai
2024-06-03  2:33                         ` Stephen Hemminger
2024-06-03  5:24                           ` Morten Brørup
2024-06-03  7:07                           ` Andrew Rybchenko
2024-07-18 11:48 ` [PATCH v2 0/3] bugfix about KEEP CRC offload Jie Hai
2024-07-18 11:48   ` [PATCH v2 1/3] ethdev: add description for " Jie Hai
2024-07-18 11:57     ` Morten Brørup
2024-07-18 11:48   ` [PATCH v2 2/3] net/hns3: fix packet length do not contain CRC data length Jie Hai
2024-07-18 11:48   ` [PATCH v2 3/3] net/hns3: fix Rx packet without CRC data Jie Hai
2024-11-26 23:17     ` Stephen Hemminger [this message]
2024-07-18 12:35   ` [PATCH v2 0/3] bugfix about KEEP CRC offload lihuisong (C)
2024-11-26 23:12   ` Stephen Hemminger
2024-07-19  9:04 ` [PATCH v3 " Jie Hai
2024-07-19  9:04   ` [PATCH v3 1/3] ethdev: add description for " Jie Hai
2024-09-05  6:33     ` Andrew Rybchenko
2024-11-22 17:10     ` Stephen Hemminger
2024-11-26  7:47       ` Jie Hai
2024-11-26 23:51         ` Stephen Hemminger
2024-11-22 17:35     ` Stephen Hemminger
2024-07-19  9:04   ` [PATCH v3 2/3] net/hns3: fix packet length do not contain CRC data length Jie Hai
2024-07-19  9:04   ` [PATCH v3 3/3] net/hns3: fix Rx packet without CRC data Jie Hai
2024-11-24 19:42     ` Stephen Hemminger
2024-11-25 17:45     ` Stephen Hemminger
2024-11-26  2:40       ` huangdengdui
2024-11-26  3:16         ` Stephen Hemminger
2024-11-27  0:16     ` Stephen Hemminger
2024-11-27  2:32       ` Jie Hai
2024-11-27  3:21         ` Stephen Hemminger
2024-07-19  9:49   ` [PATCH v3 0/3] bugfix about KEEP CRC offload fengchengwen
2024-08-09  9:21   ` Jie Hai
2024-09-05  2:53   ` Jie Hai
2024-10-18  1:39   ` Jie Hai
2024-11-06  2:19   ` Jie Hai
2024-11-13  3:14   ` Jie Hai
2024-11-27 10:08 ` [PATCH v4] net/hns3: fix Rx packet without CRC data Jie Hai
2024-11-29  1:36   ` Jie Hai
2024-11-29 17:12     ` Stephen Hemminger
2024-11-30  2:26       ` huangdengdui
2024-12-02 19:35   ` Stephen Hemminger
2025-05-16  7:15   ` [PATCH v5 0/2] bugfix about KEEP CRC offload Dengdui Huang
2025-05-16  7:15     ` [PATCH v5 1/2] net/hns3: fix cannot look the CRC data Dengdui Huang
2025-05-16  7:15     ` [PATCH v5 2/2] net/hns3: fix Rx packet without " Dengdui Huang

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=20241126231758.133355-1-stephen@networkplumber.org \
    --to=stephen@networkplumber.org \
    --cc=dev@dpdk.org \
    --cc=haijie1@huawei.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.