[v2] net/iavf: fix wrong bandwidth unit in TM capability querying
Checks
Commit Message
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
> -----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
@@ -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;