[PATCH 2/3] net/iavf: fix bandwidth config of unshaped queues

Dawid Wesierski dawid.wesierski at intel.com
Wed Oct 14 14:24:17 CEST 2026


iavf_hierarchy_commit() sends one virtchnl_queue_bw entry for each queue
node, but it sets queue_id and tc only for a node that has a shaper
profile. The entry of a node without a profile keeps queue_id 0 and
tc 0. The PF then applies the default bandwidth to queue 0 once for
each such entry, and the queue that the node describes keeps its old
rate limit.

The ice PF keeps the queue rate limits of a VF and applies them again
at each queue enable, also for a later process on the same VF. Thus an
application cannot remove the rate limits of an earlier process with a
commit of queue nodes without shaper profiles.

Set queue_id and tc for each queue node. A node without a shaper
profile now gives the default bandwidth to its own queue.

Fixes: 5779a8894d15 ("net/iavf: support queue rate limit configuration")
Cc: stable at dpdk.org

Signed-off-by: Dawid Wesierski <dawid.wesierski at intel.com>
---
 drivers/net/intel/iavf/iavf_tm.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/intel/iavf/iavf_tm.c b/drivers/net/intel/iavf/iavf_tm.c
index 603da09bb5..57075ee5b8 100644
--- a/drivers/net/intel/iavf/iavf_tm.c
+++ b/drivers/net/intel/iavf/iavf_tm.c
@@ -867,15 +867,15 @@ static int iavf_hierarchy_commit(struct rte_eth_dev *dev,
 		}
 		q_tc_mapping->tc[tm_node->tc].req.queue_count++;
 
+		q_bw->cfg[node_committed].queue_id = tm_node->id;
+		q_bw->cfg[node_committed].tc = tm_node->tc;
 		if (tm_node->shaper_profile) {
-			q_bw->cfg[node_committed].queue_id = tm_node->id;
 			q_bw->cfg[node_committed].shaper.peak =
 			tm_node->shaper_profile->profile.peak.rate /
 			1000 * IAVF_BITS_PER_BYTE;
 			q_bw->cfg[node_committed].shaper.committed =
 			tm_node->shaper_profile->profile.committed.rate /
 			1000 * IAVF_BITS_PER_BYTE;
-			q_bw->cfg[node_committed].tc = tm_node->tc;
 		}
 
 		node_committed++;
-- 
2.43.0

---------------------------------------------------------------------
Intel Technology Poland sp. z o.o.
ul. Slowackiego 173 | 80-298 Gdansk | Sad Rejonowy Gdansk Polnoc | VII Wydzial Gospodarczy Krajowego Rejestru Sadowego - KRS 101882 | NIP 957-07-52-316 | Kapital zakladowy 200.000 PLN.
Spolka oswiadcza, ze posiada status duzego przedsiebiorcy w rozumieniu ustawy z dnia 8 marca 2013 r. o przeciwdzialaniu nadmiernym opoznieniom w transakcjach handlowych.

Ta wiadomosc wraz z zalacznikami jest przeznaczona dla okreslonego adresata i moze zawierac informacje poufne. W razie przypadkowego otrzymania tej wiadomosci, prosimy o powiadomienie nadawcy oraz trwale jej usuniecie; jakiekolwiek przegladanie lub rozpowszechnianie jest zabronione.
This e-mail and any attachments may contain confidential material for the sole use of the intended recipient(s). If you are not the intended recipient, please contact the sender and delete all copies; any review or distribution by others is strictly prohibited.



More information about the dev mailing list