X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fipip%2Fipip.c;h=9c58e5206238376cc943ff1cdc640852c8b59f99;hb=609e121;hp=c49be099d9a67bb95b7f49156add161365ca18c9;hpb=cd30774fa9280736ffaea3e9a51948593e8eebc2;p=vpp.git diff --git a/src/vnet/ipip/ipip.c b/src/vnet/ipip/ipip.c index c49be099d9a..9c58e520623 100644 --- a/src/vnet/ipip/ipip.c +++ b/src/vnet/ipip/ipip.c @@ -138,6 +138,10 @@ ipip6_fixup (vlib_main_t * vm, ip_adjacency_t * adj, vlib_buffer_t * b, ip6_header_t *ip6; const ipip_tunnel_t *t = data; + /* Must set locally originated otherwise we're not allowed to + fragment the packet later */ + b->flags |= VNET_BUFFER_F_LOCALLY_ORIGINATED; + ip6 = vlib_buffer_get_current (b); ip6->payload_length = clib_host_to_net_u16 (vlib_buffer_length_in_chain (vm, b) - @@ -481,7 +485,7 @@ ipip_add_tunnel (ipip_transport_t transport, return VNET_API_ERROR_IF_ALREADY_EXISTS; pool_get_aligned (gm->tunnels, t, CLIB_CACHE_LINE_BYTES); - memset (t, 0, sizeof (*t)); + clib_memset (t, 0, sizeof (*t)); /* Reconcile the real dev_instance and a possible requested instance */ u32 t_idx = t - gm->tunnels; /* tunnel index (or instance) */ @@ -586,7 +590,7 @@ ipip_init (vlib_main_t * vm) { ipip_main_t *gm = &ipip_main; - memset (gm, 0, sizeof (gm[0])); + clib_memset (gm, 0, sizeof (gm[0])); gm->vlib_main = vm; gm->vnet_main = vnet_get_main (); gm->tunnel_by_key =