session: fix populating chained buffers 47/31647/4
authorIvan Shvedunov <[email protected]>
Mon, 15 Mar 2021 16:05:14 +0000 (19:05 +0300)
committerFlorin Coras <[email protected]>
Wed, 17 Mar 2021 15:01:13 +0000 (15:01 +0000)
Type: fix

Signed-off-by: Ivan Shvedunov <[email protected]>
Change-Id: I3fdc1711d508bc5b0c2f56b3bd3fb4a56056eb54

src/vnet/session/session_node.c

index f5e8478..7ceb9ea 100644 (file)
@@ -632,16 +632,18 @@ session_tx_fifo_chain_tail (vlib_main_t * vm, session_tx_context_t * ctx,
              svm_fifo_t *f = ctx->s->tx_fifo;
              session_dgram_hdr_t *hdr = &ctx->hdr;
              u16 deq_now;
+             u32 offset;
+
              deq_now = clib_min (hdr->data_length - hdr->data_offset,
                                  len_to_deq);
-             n_bytes_read = svm_fifo_peek (f, hdr->data_offset, deq_now,
-                                           data);
+             offset = hdr->data_offset + SESSION_CONN_HDR_LEN;
+             n_bytes_read = svm_fifo_peek (f, offset, deq_now, data);
              ASSERT (n_bytes_read > 0);
 
              hdr->data_offset += n_bytes_read;
              if (hdr->data_offset == hdr->data_length)
                {
-                 u32 offset = hdr->data_length + SESSION_CONN_HDR_LEN;
+                 offset = hdr->data_length + SESSION_CONN_HDR_LEN;
                  svm_fifo_dequeue_drop (f, offset);
                  if (ctx->left_to_snd > n_bytes_read)
                    svm_fifo_peek (ctx->s->tx_fifo, 0, sizeof (ctx->hdr),