Three fixes in the iavf traffic manager. Patch 1 removes a second free of the queue TC map. The fault is in main only, after commit f6e33f09f766. No release has it.
Patch 2 sets the queue ID and TC of each queue node in the queue bandwidth message. Without it, a queue node with no shaper profile resets queue 0, and its own queue keeps the rate limit that the PF holds from an earlier process. Patch 3 returns -ENOTSUP from the TM ops that read qos_cap when the PF does not grant VIRTCHNL_VF_OFFLOAD_QOS, for example the in-tree ice PF. These ops cause a segmentation fault now. Tested with testpmd on an E830 VF, out-of-tree ice PF: - Patch 1: three hierarchy commits on a started port. Without the patch, an ASan build reports a heap-buffer-overflow in rte_free() from iavf_hierarchy_commit() at the second commit. With it, there is no report, also after port reset and close. - Patch 2: one process sets 100 Mbit/s on two queues and exits. The next process commits two queue nodes without a shaper profile. Without the patch, only queue 0 gets back its full rate. With it, both queues do. - Patch 3: in-tree ice PF, so the VF has no QoS offload. Without the patch, TM capabilities get, shaper profile add and node add give a segmentation fault. With it, they return an error. v2: - Patch 1: also remove the rte_free() of the map in iavf_uninit_vf() (Bruce Richardson). - Patch 2: commit message from Bruce Richardson. - Add the Acked-by of Bruce Richardson to the three patches. - Rebase on the current next-net-intel. Dawid Wesierski (3): net/iavf: fix invalid free of queue TC map net/iavf: fix bandwidth config of unshaped queues net/iavf: fix crash in TM ops without QoS capability drivers/net/intel/iavf/iavf_ethdev.c | 8 ------ drivers/net/intel/iavf/iavf_tm.c | 42 ++++++++++++++++++++++++---- 2 files changed, 37 insertions(+), 13 deletions(-) base-commit: 1ca8f490fd725ccdd558654144b11777e37d68fe -- 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.

