- while (vec_len (vec_icmp_bi) > 0)
- {
- vlib_frame_t *f =
- vlib_get_frame_to_node (vm, rm->ip6_icmp_error_idx);
- u32 *to_next = vlib_frame_vector_args (f);
- u32 n_left_to_next = VLIB_FRAME_SIZE - f->n_vectors;
- int trace_frame = 0;
- while (vec_len (vec_icmp_bi) > 0 && n_left_to_next > 0)
- {
- u32 bi = vec_pop (vec_icmp_bi);
- vlib_buffer_t *b = vlib_get_buffer (vm, bi);
- if (PREDICT_FALSE (b->flags & VLIB_BUFFER_IS_TRACED))
- {
- trace_frame = 1;
- }
- b->error = node->errors[IP6_ERROR_REASS_TIMEOUT];
- to_next[0] = bi;
- ++f->n_vectors;
- to_next += 1;
- n_left_to_next -= 1;
- }
- f->frame_flags |= (trace_frame * VLIB_FRAME_TRACE);
- vlib_put_frame_to_node (vm, rm->ip6_icmp_error_idx, f);
- }
-