- /* ship copies to the rest of the buckets */
- for (bucket = 1; bucket < rep0->rep_n_buckets; bucket++)
- {
- /*
- * After the enqueue of the first buffer, and of all subsequent
- * buffers in this loop, it is possible that we over-flow the
- * frame of the to-next node. When this happens we need to 'put'
- * that full frame to the node and get a fresh empty one.
- * Note that these are macros with side effects that change
- * to_next & n_left_to_next
- */
- if (PREDICT_FALSE(0 == n_left_to_next))
- {
- vlib_put_next_frame (vm, node, next_index, n_left_to_next);
- vlib_get_next_frame (vm, node, next_index, to_next, n_left_to_next);
- }
+ if (num_cloned != rep0->rep_n_buckets)
+ {
+ vlib_node_increment_counter
+ (vm, node->node_index,
+ REPLICATE_DPO_ERROR_BUFFER_ALLOCATION_FAILURE, 1);
+ }