[v2] net/iavf: fix wrong bandwidth unit in TM capability querying

Message ID 20210715103606.13551-1-ting.xu@intel.com (mailing list archive)
State Accepted, archived
Delegated to: Qi Zhang
Headers
Series [v2] net/iavf: fix wrong bandwidth unit in TM capability querying |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/github-robot success github build: passed
ci/Intel-compilation success Compilation OK
ci/iol-intel-Functional success Functional Testing PASS
ci/iol-abi-testing success Testing PASS
ci/iol-testing fail Testing issues
ci/iol-intel-Performance fail Performance Testing issues
ci/intel-Testing success Testing PASS

Commit Message

Xu, Ting July 15, 2021, 10:36 a.m. UTC
  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@dpdk.org

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

Comments

Qi Zhang July 16, 2021, 8:15 a.m. UTC | #1
> -----Original Message-----
> From: Xu, Ting <ting.xu@intel.com>
> Sent: Thursday, July 15, 2021 6:36 PM
> To: dev@dpdk.org
> Cc: Zhang, Qi Z <qi.z.zhang@intel.com>; Wu, Jingjing <jingjing.wu@intel.com>;
> Xing, Beilei <beilei.xing@intel.com>; Xu, Ting <ting.xu@intel.com>;
> stable@dpdk.org
> Subject: [PATCH v2] net/iavf: fix wrong bandwidth unit in TM capability
> querying
> 
> 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@dpdk.org
> 
> Signed-off-by: Ting Xu <ting.xu@intel.com>

Acked-by: Qi Zhang <qi.z.zhang@intel.com>

Applied to dpdk-next-net-intel.

Thanks
Qi
  

Patch

diff --git a/drivers/net/iavf/iavf_tm.c b/drivers/net/iavf/iavf_tm.c
index 558021014e..3c80276ff3 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 * 1000000 / 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 * 1000000 / 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 * 1000000 / 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;