Bill, you clicked to review on github page, can you please
write review by in email if reviewed?
Also one comment bellow.
On 05/04/2017 01:00 PM, Github ODP bot wrote:
From: Dmitriy Krot <globax...@gmail.com>
Usage of 0x10000 in the inverted weight calculation causes overflow of uint16_t
if weight=1.
As a result of this bug, frame len used for virtual finish time calculation is
always zero, despite of packet size, so packets from input with weight=1 always
pass first.
Signed-off-by: Dmitriy Krot <globax...@gmail.com>
---
/** Email created from pull request 21 (dkrot:master)
** https://github.com/Linaro/odp/pull/21
** Patch: https://github.com/Linaro/odp/pull/21.patch
** Base sha: 79ba737a404d2833ad33d8f84ed6ce82c9a8c18e
** Merge commit sha: 52076413a304fa921e43dbbb64e4fa1989f2cabc
**/
platform/linux-generic/odp_traffic_mngr.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/platform/linux-generic/odp_traffic_mngr.c
b/platform/linux-generic/odp_traffic_mngr.c
index 4e9358b..a93b3ba 100644
--- a/platform/linux-generic/odp_traffic_mngr.c
+++ b/platform/linux-generic/odp_traffic_mngr.c
@@ -3238,7 +3238,7 @@ static void tm_sched_params_cvt_to(odp_tm_sched_params_t
*odp_sched_params,
if (weight == 0)
inv_weight = 0;
else
- inv_weight = 0x10000 / weight;
+ inv_weight = 0xFFFF / weight;
|Will it be more readable if we write ((uint16_t)-1) instead of 0xFFFF ?
I.e. maximum value for this type? Maxim. |
tm_sched_params->sched_modes[priority] = sched_mode;
tm_sched_params->inverted_weights[priority] = inv_weight;
@@ -3254,7 +3254,7 @@ static void tm_sched_params_cvt_from(tm_sched_params_t
*tm_sched_params,
for (priority = 0; priority < ODP_TM_MAX_PRIORITIES; priority++) {
sched_mode = tm_sched_params->sched_modes[priority];
inv_weight = tm_sched_params->inverted_weights[priority];
- weight = 0x10000 / inv_weight;
+ weight = 0xFFFF / inv_weight;
odp_sched_params->sched_modes[priority] = sched_mode;
odp_sched_params->sched_weights[priority] = weight;