[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <B6A0B441-A9C9-40B5-8944-B596CB57CF0E@8x8.com>
Date: Tue, 18 Feb 2025 15:10:44 -0500
From: Jonathan Lennox <jonathan.lennox@....com>
To: netdev@...r.kernel.org
Cc: Stephen Hemminger <stephen@...workplumber.org>
Subject: [PATCH iproute2 v2] tc: Fix rounding in tc_calc_xmittime and
tc_calc_xmitsize.
Signed-off-by: Jonathan Lennox <jonathan.lennox@....com>
---
tc/tc_core.c | 6 +++---
tc/tc_core.h | 2 +-
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/tc/tc_core.c b/tc/tc_core.c
index 37547e9b..32fd094f 100644
--- a/tc/tc_core.c
+++ b/tc/tc_core.c
@@ -23,12 +23,12 @@
static double tick_in_usec = 1;
static double clock_factor = 1;
-static unsigned int tc_core_time2tick(unsigned int time)
+static double tc_core_time2tick(double time)
{
return time * tick_in_usec;
}
-unsigned int tc_core_tick2time(unsigned int tick)
+double tc_core_tick2time(double tick)
{
return tick / tick_in_usec;
}
@@ -45,7 +45,7 @@ unsigned int tc_core_ktime2time(unsigned int ktime)
unsigned int tc_calc_xmittime(__u64 rate, unsigned int size)
{
- return tc_core_time2tick(TIME_UNITS_PER_SEC*((double)size/(double)rate));
+ return ceil(tc_core_time2tick(TIME_UNITS_PER_SEC*((double)size/(double)rate)));
}
unsigned int tc_calc_xmitsize(__u64 rate, unsigned int ticks)
diff --git a/tc/tc_core.h b/tc/tc_core.h
index 7a986ac2..c0fb7481 100644
--- a/tc/tc_core.h
+++ b/tc/tc_core.h
@@ -12,7 +12,7 @@ enum link_layer {
};
-unsigned tc_core_tick2time(unsigned tick);
+double tc_core_tick2time(double tick);
unsigned tc_core_time2ktime(unsigned time);
unsigned tc_core_ktime2time(unsigned ktime);
unsigned tc_calc_xmittime(__u64 rate, unsigned size);
Powered by blists - more mailing lists