X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fip%2Fip4_to_ip6.h;h=e78985bd9be6ecb69f313e66f15b11cb66c750ed;hb=180210f99b74b97b127b7800bdc7bd243713cbf4;hp=21538a90e44370f77de95b92108287f322700e6d;hpb=fc0992cb8d87e35a65ed537b732e6a32ceb39589;p=vpp.git diff --git a/src/vnet/ip/ip4_to_ip6.h b/src/vnet/ip/ip4_to_ip6.h index 21538a90e44..e78985bd9be 100644 --- a/src/vnet/ip/ip4_to_ip6.h +++ b/src/vnet/ip/ip4_to_ip6.h @@ -414,8 +414,8 @@ icmp_to_icmp6 (vlib_buffer_t * p, ip4_to_ip6_set_fn_t fn, void *ctx, if ((rv = fn (p, ip4, ip6, ctx)) != 0) return rv; - //Truncate when the packet exceeds the minimal IPv6 MTU - if (p->current_length > 1280) + //Truncate when ICMPv6 error message exceeds the minimal IPv6 MTU + if (p->current_length > 1280 && icmp->type < 128) { ip6->payload_length = clib_host_to_net_u16 (1280 - sizeof (*ip6)); p->current_length = 1280; //Looks too simple to be correct...