> > The packet_ordering example works in two modes (opt via --disable-reorder): > > - When reorder is enabled: rx_thread - N*worker_thread - send_thread > > - When reorder is disabled: rx_thread - N*worker_thread - tx_thread N > > parallel worker_thread(s) > > generate out-of-order packets. > > > > When reorder is enabled, send_thread uses sequence number generated in > > rx_thread (L459) to > > enforce packet ordering. Otherwise rx_thread just sends any packet it > > receives. > > > > rx_thread writes sequence number into a dynamic field, which is only > > registered by calling > > rte_reorder_create() (Line 741) when reorder is enabled. However, rx_thread > > marks sequence > > number onto each packet no matter whether reorder is enabled, overwriting > > the leading bytes in > > packet mbufs when reorder is disabled, resulting in segfaults when PMD > > tries to DMA packets. > > > > `if (!disable_reorder_flag) {...}` is added in rx_thread to fix the bug. > > The test is inlined by the compiler to prevent any performance loss. > > > > Signed-off-by: Qian Hao <qi_an_...@126.com> > > Acked-by: Volodymyr Fialko <vfia...@marvell.com>
Applied, thanks.