Change I4ad40f398f7b5cf introduced a bug with chained buffers.
This patch should fix it.
Change-Id: Ia409d5eb90fcd6d7ff3c7da0836edfd2eb25998b
Signed-off-by: Pierre Pfister <ppfister@cisco.com>
rte_mbuf header */
if (PREDICT_FALSE ((b->flags & VNET_BUFFER_RTE_MBUF_VALID) == 0))
{
- last_mb = mb = rte_mbuf_from_vlib_buffer (b);
+ vlib_buffer_t *b2 = b;
+ last_mb = mb = rte_mbuf_from_vlib_buffer (b2);
rte_pktmbuf_reset (mb);
- while (maybe_multiseg && (b->flags & VLIB_BUFFER_NEXT_PRESENT))
+ while (maybe_multiseg && (b2->flags & VLIB_BUFFER_NEXT_PRESENT))
{
- b = vlib_get_buffer (vm, b->next_buffer);
- mb = rte_mbuf_from_vlib_buffer (b);
+ b2 = vlib_get_buffer (vm, b2->next_buffer);
+ mb = rte_mbuf_from_vlib_buffer (b2);
last_mb->next = mb;
last_mb = mb;
rte_pktmbuf_reset (mb);