On 20/08/2015 12:38, Mukesh Dua wrote: > 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 Hi Mukesh,
The reason for that change is explained in its commit message and also in this thread: http://dpdk.org/ml/archives/dev/2015-May/017930.html Hope this info helps to clarify your concern. Sergio