From 282093f1fe783b5d36a014d4495995cd64e2e3fb Mon Sep 17 00:00:00 2001 From: Ole Troan Date: Wed, 19 Sep 2018 12:38:51 +0200 Subject: IPIP and IPv6 fragmentation - Error where ICMPv6 error code doesn't reset VLIB_TX = -1 Leading to crash for ICMP generated on tunnelled packets - Missed setting VNET_BUFFER_F_LOCALLY_ORIGINATED, so IP in IPv6 packets never got fragmented. - Add support for fragmentation of buffer chains. - Remove support for inner fragmentation in frag code itself. Change-Id: If9a97301b7e35ca97ffa5c0fada2b9e7e7dbfb27 Signed-off-by: Ole Troan --- src/plugins/map/ip6_map.c | 4 ---- 1 file changed, 4 deletions(-) (limited to 'src/plugins/map/ip6_map.c') diff --git a/src/plugins/map/ip6_map.c b/src/plugins/map/ip6_map.c index 01b2d87f5dc..5b80209ae0a 100644 --- a/src/plugins/map/ip6_map.c +++ b/src/plugins/map/ip6_map.c @@ -308,7 +308,6 @@ ip6_map (vlib_main_t * vm, vlib_node_runtime_t * node, vlib_frame_t * frame) (d0->mtu && (clib_host_to_net_u16 (ip40->length) > d0->mtu))) { - vnet_buffer (p0)->ip_frag.header_offset = 0; vnet_buffer (p0)->ip_frag.flags = 0; vnet_buffer (p0)->ip_frag.next_index = IP4_FRAG_NEXT_IP4_LOOKUP; @@ -341,7 +340,6 @@ ip6_map (vlib_main_t * vm, vlib_node_runtime_t * node, vlib_frame_t * frame) (d1->mtu && (clib_host_to_net_u16 (ip41->length) > d1->mtu))) { - vnet_buffer (p1)->ip_frag.header_offset = 0; vnet_buffer (p1)->ip_frag.flags = 0; vnet_buffer (p1)->ip_frag.next_index = IP4_FRAG_NEXT_IP4_LOOKUP; @@ -495,7 +493,6 @@ ip6_map (vlib_main_t * vm, vlib_node_runtime_t * node, vlib_frame_t * frame) (d0->mtu && (clib_host_to_net_u16 (ip40->length) > d0->mtu))) { - vnet_buffer (p0)->ip_frag.header_offset = 0; vnet_buffer (p0)->ip_frag.flags = 0; vnet_buffer (p0)->ip_frag.next_index = IP4_FRAG_NEXT_IP4_LOOKUP; @@ -935,7 +932,6 @@ ip6_map_ip4_reass (vlib_main_t * vm, (d0->mtu && (clib_host_to_net_u16 (ip40->length) > d0->mtu) && error0 == MAP_ERROR_NONE && !cached)) { - vnet_buffer (p0)->ip_frag.header_offset = 0; vnet_buffer (p0)->ip_frag.flags = 0; vnet_buffer (p0)->ip_frag.next_index = IP4_FRAG_NEXT_IP4_LOOKUP; vnet_buffer (p0)->ip_frag.mtu = d0->mtu; -- cgit 1.2.3-korg