u8 pfx_len = 0;
index_t uei;
- pool_get_aligned (udp_encap_pool, ue, CLIB_CACHE_LINE_BYTES);
+ pool_get_aligned_zero (udp_encap_pool, ue, CLIB_CACHE_LINE_BYTES);
uei = ue - udp_encap_pool;
vlib_validate_combined_counter (&(udp_encap_counters), uei);
#include <vnet/ip/ip4.h>
#include <vnet/ip/ip6.h>
#include <vnet/udp/udp_packet.h>
+#include <vnet/interface_output.h>
always_inline void *
vlib_buffer_push_udp (vlib_buffer_t * b, u16 sp, u16 dp, u8 offload_csum)
ip_udp_encap_one (vlib_main_t * vm, vlib_buffer_t * b0, u8 * ec0, word ec_len,
u8 is_ip4)
{
+ vnet_calc_checksums_inline (vm, b0, is_ip4, !is_ip4);
+
vlib_buffer_advance (b0, -ec_len);
if (is_ip4)
ASSERT (_vec_len (ec0) == _vec_len (ec1));
+ vnet_calc_checksums_inline (vm, b0, is_v4, !is_v4);
+ vnet_calc_checksums_inline (vm, b1, is_v4, !is_v4);
+
vlib_buffer_advance (b0, -ec_len);
vlib_buffer_advance (b1, -ec_len);