netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] dcb: fix tc-maxrate unit conversions
@ 2025-10-08  3:16 Yijing Zeng
  2025-10-09 16:01 ` Petr Machata
  2025-10-11 22:25 ` [PATCH v2] " Yijing Zeng
  0 siblings, 2 replies; 4+ messages in thread
From: Yijing Zeng @ 2025-10-08  3:16 UTC (permalink / raw)
  To: netdev; +Cc: stephen, me, kuba, yijingzeng

From: Yijing Zeng <yijingzeng@meta.com>

The ieee_maxrate UAPI is defined as kbps, but dcb_maxrate uses Bps.
This fix patch converts Bps to kbps for parse, and convert kbps to Bps for print_rate().

Fixes: 117939d9 ("dcb: Add a subtool for the DCB maxrate object")
Signed-off-by: Yijing Zeng <yijingzeng@meta.com>
---
 dcb/dcb_maxrate.c | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/dcb/dcb_maxrate.c b/dcb/dcb_maxrate.c
index 1538c6d7..af012dba 100644
--- a/dcb/dcb_maxrate.c
+++ b/dcb/dcb_maxrate.c
@@ -42,13 +42,16 @@ static void dcb_maxrate_help(void)
 
 static int dcb_maxrate_parse_mapping_tc_maxrate(__u32 key, char *value, void *data)
 {
-	__u64 rate;
+	__u64 rate_Bps;
 
-	if (get_rate64(&rate, value))
+	if (get_rate64(&rate_Bps, value))
 		return -EINVAL;
 
+	/* get_rate64() returns Bps. ieee_maxrate UAPI expects kbps. */
+	__u64 rate_kbps = (rate_Bps * 8) / 1000;
+
 	return dcb_parse_mapping("TC", key, IEEE_8021QAZ_MAX_TCS - 1,
-				 "RATE", rate, -1,
+				 "RATE", rate_kbps, -1,
 				 dcb_set_u64, data);
 }
 
@@ -62,8 +65,11 @@ static void dcb_maxrate_print_tc_maxrate(struct dcb *dcb, const struct ieee_maxr
 	print_string(PRINT_FP, NULL, "tc-maxrate ", NULL);
 
 	for (i = 0; i < size; i++) {
+		/* ieee_maxrate UAPI returns kbps. print_rate() expects Bps for display */
+		__u64 rate_Bps  = maxrate->tc_maxrate[i] * 1000 / 8;
+
 		snprintf(b, sizeof(b), "%zd:%%s ", i);
-		print_rate(dcb->use_iec, PRINT_ANY, NULL, b, maxrate->tc_maxrate[i]);
+		print_rate(dcb->use_iec, PRINT_ANY, NULL, b, rate_Bps);
 	}
 
 	close_json_array(PRINT_JSON, "tc_maxrate");
-- 
2.50.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2025-10-16 22:10 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-10-08  3:16 [PATCH] dcb: fix tc-maxrate unit conversions Yijing Zeng
2025-10-09 16:01 ` Petr Machata
2025-10-11 22:25 ` [PATCH v2] " Yijing Zeng
2025-10-16 22:10   ` patchwork-bot+netdevbpf

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).