from += 1;
n_left_from -= 1;
+ /* Enqueue packet to next graph node */
+ to_next[0] = bi0;
+ to_next += 1;
+ n_left_to_next -= 1;
+
b0 = vlib_get_buffer (vm, bi0);
if (PREDICT_FALSE ((node->flags & VLIB_NODE_FLAG_TRACE) &&
if (cicn_cs_enabled (&rt->pitcs))
{
+ /* Remove b0 from the frame, we hold it in the CS */
+ to_next -= 1;
+ n_left_to_next += 1;
+
/* At this point we think we're safe to proceed.
* Store the CS buf in the PIT/CS hashtable entry
*/
/* Store the original packet buffer in the CS node */
pitp->u.cs.cs_pkt_buf = vlib_get_buffer_index (vm, b0);
+
/* Add to CS LRU */
cicn_cs_lru_insert (&rt->pitcs, nodep, pitp);
t->next_index = next0;
}
- /* Speculatively enqueue packet b0 (index in bi0)
- * to the current next frame
- */
- to_next[0] = bi0;
- to_next += 1;
- n_left_to_next -= 1;
-
/* Incr packet counter */
pkts_processed += 1;