X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fipip%2Fipip.c;h=718463d735217319cb86de01262a528dfad043de;hb=282093f1fe783b5d36a014d4495995cd64e2e3fb;hp=c39d27d5e4f474dfa34e6c3fefc348c948fad71a;hpb=d57f63698f99fad0288ac040d83b3ecd380d4bfd;p=vpp.git diff --git a/src/vnet/ipip/ipip.c b/src/vnet/ipip/ipip.c index c39d27d5e4f..718463d7352 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) - @@ -355,7 +359,7 @@ ipip_tunnel_t * ipip_tunnel_db_find_by_sw_if_index (u32 sw_if_index) { ipip_main_t *gm = &ipip_main; - if (vec_len (gm->tunnel_index_by_sw_if_index) < sw_if_index) + if (vec_len (gm->tunnel_index_by_sw_if_index) <= sw_if_index) return NULL; u32 ti = gm->tunnel_index_by_sw_if_index[sw_if_index]; if (ti == ~0) @@ -526,10 +530,8 @@ ipip_add_tunnel (ipip_transport_t transport, hi->min_packet_bytes = 64 + sizeof (ip6_header_t); } - hi->per_packet_overhead_bytes = /* preamble */ 8 + /* inter frame gap */ 12; - /* Standard default ipip MTU. */ - hi->max_l3_packet_bytes[VLIB_RX] = hi->max_l3_packet_bytes[VLIB_TX] = 9000; + vnet_sw_interface_set_mtu (vnm, sw_if_index, 9000); t->tunnel_src = *src; t->tunnel_dst = *dst;