[dpdk-dev] Issue observed with execution of Reorder test app

Mukesh Dua mukesh.dua81 at gmail.com
Thu Aug 20 13:38:56 CEST 2015


I see issue with reorder test app failing on x86 environment due to changes
made between release 2.0.0 and 2.1.0:

App reorder_test (app/test/test_reorder.c)
============
Function failing: test_reorder_insert

There had been some changes with respect to addition of parameter
is_initialized to the structure rte_reorder_buffer. In parallel the changes
were made to initialize some of the parameters in function
rte_reorder_insert

rte_reorder_insert(struct rte_reorder_buffer *b, struct rte_mbuf *mbuf)
{
    uint32_t offset, position;
    struct cir_buffer *order_buf = &b->order_buf;

*    if (!b->is_initialized) {*
*        b->min_seqn = mbuf->seqn;*
        *b->is_initialized = 1;*
*    }*

=> I don't see any reason to set b->min_seqn to mbuf->seqn and if that has
to be done, the conditional checks should have been modified in function
test_reorder_insert soon after a call to rte_reorder_insert. Additionally,
the next seqn number being populated should have been changed in function
test_reorder_insert:

    ret = rte_reorder_insert(b, bufs[0]);
*    if (!((ret == -1) && (rte_errno == ERANGE))) {*
*        printf("%s:%d: No error inserting late packet with seqn:"*
*                " 3 * size\n", __func__, __LINE__);*
*        ret = -1;*
*        goto exit;*
*    }*

    for (i = 0; i < num_bufs; i++)
        bufs[i]->seqn = i;

On the other hand, changing the code in function rte_reorder_insert:
rte_reorder_insert(struct rte_reorder_buffer *b, struct rte_mbuf *mbuf)
{
    uint32_t offset, position;
    struct cir_buffer *order_buf = &b->order_buf;

    if (!b->is_initialized) {
*        b->min_seqn = 0;  //Removed initialization from mbuf->seqn*
        b->is_initialized = 1;
    }
fixes the issues and the test case passes.

Regards,
Mukesh


More information about the dev mailing list