[dpdk-dev] [PATCH v2] net/iavf: fix wrong bandwidth unit in TM capability querying

Ting Xu ting.xu at intel.com
Thu Jul 15 12:32:40 CEST 2021


In IAVF node TM capability querying, the unit of bandwidth is Kbps,
which is not correct according to TM specification. Change the unit to
Byte per second. Refine some unclear comments as well.

Fixes: 44d0a720a538 ("net/iavf: query QoS capabilities and set queue TC mapping")
Cc: stable at dpdk.org

Signed-off-by: Ting Xu <ting.xu at intel.com>
---
 drivers/net/iavf/iavf_tm.c | 19 +++++++++++--------
 1 file changed, 11 insertions(+), 8 deletions(-)

diff --git a/drivers/net/iavf/iavf_tm.c b/drivers/net/iavf/iavf_tm.c
index 558021014e..613c472619 100644
--- a/drivers/net/iavf/iavf_tm.c
+++ b/drivers/net/iavf/iavf_tm.c
@@ -469,9 +469,9 @@ iavf_tm_capabilities_get(struct rte_eth_dev *dev,
 	cap->shaper_private_n_max = cap->n_nodes_max;
 	cap->shaper_private_dual_rate_n_max = 0;
 	cap->shaper_private_rate_min = 0;
-	/* GBps */
+	/* Bytes per second */
 	cap->shaper_private_rate_max =
-		vf->link_speed * 1000 / IAVF_BITS_PER_BYTE;
+		(uint64_t)vf->link_speed * 1000 / IAVF_BITS_PER_BYTE;
 	cap->shaper_private_packet_mode_supported = 0;
 	cap->shaper_private_byte_mode_supported = 1;
 	cap->shaper_shared_n_max = 0;
@@ -544,9 +544,9 @@ iavf_level_capabilities_get(struct rte_eth_dev *dev,
 		cap->nonleaf.shaper_private_supported = true;
 		cap->nonleaf.shaper_private_dual_rate_supported = false;
 		cap->nonleaf.shaper_private_rate_min = 0;
-		/* GBps */
+		/* Bytes per second */
 		cap->nonleaf.shaper_private_rate_max =
-			vf->link_speed * 1000 / IAVF_BITS_PER_BYTE;
+			(uint64_t)vf->link_speed * 1000 / IAVF_BITS_PER_BYTE;
 		cap->nonleaf.shaper_private_packet_mode_supported = 0;
 		cap->nonleaf.shaper_private_byte_mode_supported = 1;
 		cap->nonleaf.shaper_shared_n_max = 0;
@@ -573,9 +573,9 @@ iavf_level_capabilities_get(struct rte_eth_dev *dev,
 	cap->leaf.shaper_private_supported = false;
 	cap->leaf.shaper_private_dual_rate_supported = false;
 	cap->leaf.shaper_private_rate_min = 0;
-	/* GBps */
+	/* Bytes per second */
 	cap->leaf.shaper_private_rate_max =
-		vf->link_speed * 1000 / IAVF_BITS_PER_BYTE;
+		(uint64_t)vf->link_speed * 1000 / IAVF_BITS_PER_BYTE;
 	cap->leaf.shaper_private_packet_mode_supported = 0;
 	cap->leaf.shaper_private_byte_mode_supported = 1;
 	cap->leaf.shaper_shared_n_max = 0;
@@ -632,8 +632,11 @@ iavf_node_capabilities_get(struct rte_eth_dev *dev,
 
 	cap->shaper_private_supported = true;
 	cap->shaper_private_dual_rate_supported = false;
-	cap->shaper_private_rate_min = tc_cap.shaper.committed;
-	cap->shaper_private_rate_max = tc_cap.shaper.peak;
+	/* Bytes per second */
+	cap->shaper_private_rate_min =
+		(uint64_t)tc_cap.shaper.committed * 1000 / IAVF_BITS_PER_BYTE;
+	cap->shaper_private_rate_max =
+		(uint64_t)tc_cap.shaper.peak * 1000 / IAVF_BITS_PER_BYTE;
 	cap->shaper_shared_n_max = 0;
 	cap->nonleaf.sched_n_children_max = vf->num_queue_pairs;
 	cap->nonleaf.sched_sp_n_priorities_max = 1;
-- 
2.17.1



More information about the dev mailing list