- if (!known_next)
- {
- ethernet_header_t *e0, *e1, *e2, *e3;
-
- e0 = (ethernet_header_t *) b[0]->data;
- e1 = (ethernet_header_t *) b[1]->data;
- e2 = (ethernet_header_t *) b[2]->data;
- e3 = (ethernet_header_t *) b[3]->data;
-
- if (ethernet_frame_is_any_tagged_x4 (e0->type, e1->type,
- e2->type, e3->type))
- {
- next[0] = avf_find_next (rxve, b[0], 1);
- next[1] = avf_find_next (rxve + 1, b[1], 1);
- next[2] = avf_find_next (rxve + 2, b[2], 1);
- next[3] = avf_find_next (rxve + 3, b[3], 1);
- }
- else
- {
- next[0] = avf_find_next (rxve, b[0], 0);
- next[1] = avf_find_next (rxve + 1, b[1], 0);
- next[2] = avf_find_next (rxve + 2, b[2], 0);
- next[3] = avf_find_next (rxve + 3, b[3], 0);
- }
-
- if (PREDICT_FALSE (maybe_error))
- {
- avf_check_for_error (node, rxve + 0, b[0], next);
- avf_check_for_error (node, rxve + 1, b[1], next + 1);
- avf_check_for_error (node, rxve + 2, b[2], next + 2);
- avf_check_for_error (node, rxve + 3, b[3], next + 3);
- }
- }
- else if (bt->current_config_index)
- {
- b[0]->current_config_index = bt->current_config_index;
- b[1]->current_config_index = bt->current_config_index;
- b[2]->current_config_index = bt->current_config_index;
- b[3]->current_config_index = bt->current_config_index;
- vnet_buffer (b[0])->feature_arc_index =
- vnet_buffer (bt)->feature_arc_index;
- vnet_buffer (b[1])->feature_arc_index =
- vnet_buffer (bt)->feature_arc_index;
- vnet_buffer (b[2])->feature_arc_index =
- vnet_buffer (bt)->feature_arc_index;
- vnet_buffer (b[3])->feature_arc_index =
- vnet_buffer (bt)->feature_arc_index;
- }
-
- clib_memcpy (vnet_buffer (b[0])->sw_if_index,
- vnet_buffer (bt)->sw_if_index, 2 * sizeof (u32));
- clib_memcpy (vnet_buffer (b[1])->sw_if_index,
- vnet_buffer (bt)->sw_if_index, 2 * sizeof (u32));
- clib_memcpy (vnet_buffer (b[2])->sw_if_index,
- vnet_buffer (bt)->sw_if_index, 2 * sizeof (u32));
- clib_memcpy (vnet_buffer (b[3])->sw_if_index,
- vnet_buffer (bt)->sw_if_index, 2 * sizeof (u32));
+ clib_memcpy_fast (vnet_buffer (b[0])->sw_if_index,
+ vnet_buffer (bt)->sw_if_index, 2 * sizeof (u32));
+ clib_memcpy_fast (vnet_buffer (b[1])->sw_if_index,
+ vnet_buffer (bt)->sw_if_index, 2 * sizeof (u32));
+ clib_memcpy_fast (vnet_buffer (b[2])->sw_if_index,
+ vnet_buffer (bt)->sw_if_index, 2 * sizeof (u32));
+ clib_memcpy_fast (vnet_buffer (b[3])->sw_if_index,
+ vnet_buffer (bt)->sw_if_index, 2 * sizeof (u32));