HARQ memory implementation could have different size assumptions.
Extending HARQ tolerance to cover different implementations.
Fixes: 335c11fd276 ("app/bbdev: support HARQ validation")
Cc: sta...@dpdk.org

Signed-off-by: Hernan Vargas <hernan.var...@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coque...@redhat.com>
---
 app/test-bbdev/test_bbdev_perf.c | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/app/test-bbdev/test_bbdev_perf.c b/app/test-bbdev/test_bbdev_perf.c
index 027f32cbf1b7..74e7e1394092 100644
--- a/app/test-bbdev/test_bbdev_perf.c
+++ b/app/test-bbdev/test_bbdev_perf.c
@@ -95,6 +95,7 @@
 #define K0_3_1 56 /* K0 fraction numerator for rv 3 and BG 1 */
 #define K0_3_2 43 /* K0 fraction numerator for rv 3 and BG 2 */
 
+#define HARQ_MEM_TOLERANCE 256
 static struct test_bbdev_vector test_vector;
 
 /* Switch between PMD and Interrupt for throughput TC */
@@ -2090,13 +2091,17 @@ validate_op_harq_chain(struct rte_bbdev_op_data *op,
                uint16_t data_len = rte_pktmbuf_data_len(m) - offset;
                total_data_size += orig_op->segments[i].length;
 
-               TEST_ASSERT(orig_op->segments[i].length <
-                               (uint32_t)(data_len + 64),
+               TEST_ASSERT(orig_op->segments[i].length < (uint32_t)(data_len + 
HARQ_MEM_TOLERANCE),
                                "Length of segment differ in original (%u) and 
filled (%u) op",
                                orig_op->segments[i].length, data_len);
                harq_orig = (int8_t *) orig_op->segments[i].addr;
                harq_out = rte_pktmbuf_mtod_offset(m, int8_t *, offset);
 
+               /* Cannot compare HARQ output data for such cases */
+               if ((ldpc_llr_decimals > 1) && ((ops_ld->op_flags & 
RTE_BBDEV_LDPC_LLR_COMPRESSION)
+                               || (ops_ld->op_flags & 
RTE_BBDEV_LDPC_HARQ_6BIT_COMPRESSION)))
+                       break;
+
                if (!(ldpc_cap_flags &
                                RTE_BBDEV_LDPC_INTERNAL_HARQ_MEMORY_FILLERS
                                ) || (ops_ld->op_flags &
@@ -2172,7 +2177,7 @@ validate_op_harq_chain(struct rte_bbdev_op_data *op,
 
        /* Validate total mbuf pkt length */
        uint32_t pkt_len = rte_pktmbuf_pkt_len(op->data) - op->offset;
-       TEST_ASSERT(total_data_size < pkt_len + 64,
+       TEST_ASSERT(total_data_size < pkt_len + HARQ_MEM_TOLERANCE,
                        "Length of data differ in original (%u) and filled (%u) 
op",
                        total_data_size, pkt_len);
 
-- 
2.37.1

Reply via email to