tcp: fix single loop prefetch

Also add single loop prefetch in session tx

Change-Id: Ib2725a2552fcc1a65050d7a2eb10491a7b34db62
Signed-off-by: Florin Coras <fcoras@cisco.com>
diff --git a/src/vnet/session/session_node.c b/src/vnet/session/session_node.c
index 0087463..aec353d 100644
--- a/src/vnet/session/session_node.c
+++ b/src/vnet/session/session_node.c
@@ -483,7 +483,13 @@
       vlib_buffer_t *b0;
       u32 bi0;
 
-      ASSERT (n_bufs >= 1);
+      if (n_left > 1)
+	{
+	  pbi = smm->tx_buffers[thread_index][n_bufs - 2];
+	  pb = vlib_get_buffer (vm, pbi);
+	  vlib_prefetch_buffer_header (pb, STORE);
+	}
+
       to_next[0] = bi0 = smm->tx_buffers[thread_index][--n_bufs];
       b0 = vlib_get_buffer (vm, bi0);
       session_tx_fill_buffer (vm, ctx, b0, &n_bufs, peek_data);