geneve4_tunnel_key_t last_key4;
geneve6_tunnel_key_t last_key6;
u32 pkts_decapsulated = 0;
- u32 thread_index = vlib_get_thread_index ();
+ u32 thread_index = vm->thread_index;
u32 stats_sw_if_index, stats_n_packets, stats_n_bytes;
if (is_ip4)
last_key4.as_u64 = ~0;
else
- memset (&last_key6, 0xff, sizeof (last_key6));
+ clib_memset (&last_key6, 0xff, sizeof (last_key6));
from = vlib_frame_vector_args (from_frame);
n_left_from = from_frame->n_vectors;
next0 = GENEVE_INPUT_NEXT_DROP;
goto trace0;
}
- clib_memcpy (&last_key6, &key6_0, sizeof (key6_0));
+ clib_memcpy_fast (&last_key6, &key6_0, sizeof (key6_0));
tunnel_index0 = last_tunnel_index = p0[0];
}
else
goto trace1;
}
- clib_memcpy (&last_key6, &key6_1, sizeof (key6_1));
+ clib_memcpy_fast (&last_key6, &key6_1, sizeof (key6_1));
tunnel_index1 = last_tunnel_index = p1[0];
}
else
next0 = GENEVE_INPUT_NEXT_DROP;
goto trace00;
}
- clib_memcpy (&last_key6, &key6_0, sizeof (key6_0));
+ clib_memcpy_fast (&last_key6, &key6_0, sizeof (key6_0));
tunnel_index0 = last_tunnel_index = p0[0];
}
else
}
/* Setup packet for next IP feature */
- vnet_feature_next (vnet_buffer (b0)->sw_if_index[VLIB_RX], &next0,
- b0);
- vnet_feature_next (vnet_buffer (b1)->sw_if_index[VLIB_RX], &next1,
- b1);
+ vnet_feature_next (&next0, b0);
+ vnet_feature_next (&next1, b1);
if (is_ip4)
{
ip60 = vlib_buffer_get_current (b0);
/* Setup packet for next IP feature */
- vnet_feature_next (vnet_buffer (b0)->sw_if_index[VLIB_RX], &next0,
- b0);
+ vnet_feature_next (&next0, b0);
if (is_ip4)
/* Treat IP4 frag packets as "experimental" protocol for now