Fix ip checksum offload, move badly-placed ASSERT 81/7881/2
authorDave Barach <dbarach@cisco.com>
Wed, 2 Aug 2017 13:19:32 +0000 (09:19 -0400)
committerKeith Burns <alagalah@gmail.com>
Wed, 2 Aug 2017 14:13:08 +0000 (14:13 +0000)
Change-Id: I5e04d618c4b4987edc64f6d82fd0a81b8362dbb0
Signed-off-by: Dave Barach <dbarach@cisco.com>
src/vnet/ip/ip4.h
src/vnet/tcp/builtin_client.c

index 74faa05..8f9a8e2 100644 (file)
@@ -354,6 +354,8 @@ vlib_buffer_push_ip4 (vlib_main_t * vm, vlib_buffer_t * b,
       ih->checksum = 0;
       b->flags |= VNET_BUFFER_F_OFFLOAD_IP_CKSUM | VNET_BUFFER_F_IS_IP4;
       vnet_buffer (b)->l3_hdr_offset = (u8 *) ih - b->data;
+      vnet_buffer (b)->l4_hdr_offset = vnet_buffer (b)->l3_hdr_offset +
+       sizeof (*ih);
     }
   else
     ih->checksum = ip4_header_checksum (ih);
index 48daffb..0cb9faa 100644 (file)
@@ -433,8 +433,6 @@ builtin_session_connected_callback (u32 app_index, u32 api_context,
   u32 session_index;
   u8 thread_index = vlib_get_thread_index ();
 
-  ASSERT (s->thread_index == thread_index);
-
   if (is_fail)
     {
       clib_warning ("connection %d failed!", api_context);
@@ -442,6 +440,8 @@ builtin_session_connected_callback (u32 app_index, u32 api_context,
       return 0;
     }
 
+  ASSERT (s->thread_index == thread_index);
+
   if (!tm->vpp_event_queue[thread_index])
     tm->vpp_event_queue[thread_index] =
       session_manager_get_vpp_event_queue (thread_index);