use switch instead of if, and it is more easy reading. Signed-off-by: Tonghao Zhang <xiangxia.m....@gmail.com> --- lib/librte_sched/rte_sched.c | 40 +++++++++++++++++++--------------------- 1 file changed, 19 insertions(+), 21 deletions(-)
diff --git a/lib/librte_sched/rte_sched.c b/lib/librte_sched/rte_sched.c index 587d5e6..17de6e6 100644 --- a/lib/librte_sched/rte_sched.c +++ b/lib/librte_sched/rte_sched.c @@ -385,7 +385,7 @@ enum rte_sched_port_array { uint32_t n_subports_per_port = params->n_subports_per_port; uint32_t n_pipes_per_subport = params->n_pipes_per_subport; uint32_t n_pipes_per_port = n_pipes_per_subport * n_subports_per_port; - uint32_t n_queues_per_port = RTE_SCHED_QUEUES_PER_PIPE * n_pipes_per_subport * n_subports_per_port; + uint32_t n_queues_per_port = RTE_SCHED_QUEUES_PER_PIPE * n_pipes_per_port; uint32_t size_subport = n_subports_per_port * sizeof(struct rte_sched_subport); uint32_t size_pipe = n_pipes_per_port * sizeof(struct rte_sched_pipe); @@ -407,35 +407,33 @@ enum rte_sched_port_array { size_queue_array = n_pipes_per_port * size_per_pipe_queue_array; base = 0; + switch (array) { + case e_RTE_SCHED_PORT_ARRAY_TOTAL: + base += RTE_CACHE_LINE_ROUNDUP(size_queue_array); - if (array == e_RTE_SCHED_PORT_ARRAY_SUBPORT) - return base; - base += RTE_CACHE_LINE_ROUNDUP(size_subport); + case e_RTE_SCHED_PORT_ARRAY_QUEUE_ARRAY: + base += RTE_CACHE_LINE_ROUNDUP(size_bmp_array); - if (array == e_RTE_SCHED_PORT_ARRAY_PIPE) - return base; - base += RTE_CACHE_LINE_ROUNDUP(size_pipe); + case e_RTE_SCHED_PORT_ARRAY_BMP_ARRAY: + base += RTE_CACHE_LINE_ROUNDUP(size_pipe_profiles); - if (array == e_RTE_SCHED_PORT_ARRAY_QUEUE) - return base; - base += RTE_CACHE_LINE_ROUNDUP(size_queue); + case e_RTE_SCHED_PORT_ARRAY_PIPE_PROFILES: + base += RTE_CACHE_LINE_ROUNDUP(size_queue_extra); - if (array == e_RTE_SCHED_PORT_ARRAY_QUEUE_EXTRA) - return base; - base += RTE_CACHE_LINE_ROUNDUP(size_queue_extra); + case e_RTE_SCHED_PORT_ARRAY_QUEUE_EXTRA: + base += RTE_CACHE_LINE_ROUNDUP(size_queue); - if (array == e_RTE_SCHED_PORT_ARRAY_PIPE_PROFILES) - return base; - base += RTE_CACHE_LINE_ROUNDUP(size_pipe_profiles); + case e_RTE_SCHED_PORT_ARRAY_QUEUE: + base += RTE_CACHE_LINE_ROUNDUP(size_pipe); - if (array == e_RTE_SCHED_PORT_ARRAY_BMP_ARRAY) - return base; - base += RTE_CACHE_LINE_ROUNDUP(size_bmp_array); + case e_RTE_SCHED_PORT_ARRAY_PIPE: + base += RTE_CACHE_LINE_ROUNDUP(size_subport); - if (array == e_RTE_SCHED_PORT_ARRAY_QUEUE_ARRAY) + case e_RTE_SCHED_PORT_ARRAY_SUBPORT: return base; - base += RTE_CACHE_LINE_ROUNDUP(size_queue_array); + } + RTE_LOG(DEBUG, SCHED, "Should not reach here. \n"); return base; } -- 1.8.3.1