MAP: Use explicit address/prefix types in API
[vpp.git] / src / plugins / map / ip6_map.c
index 01b2d87..35b5811 100644 (file)
@@ -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;
@@ -586,7 +583,7 @@ ip6_map_ip6_reass_prepare (vlib_main_t * vm, vlib_node_runtime_t * node,
       if (ip6_frag_hdr_offset (frag0))
        {
          //Not first fragment, add the IPv4 header
-         clib_memcpy (ip40, &r->ip4_header, 20);
+         clib_memcpy_fast (ip40, &r->ip4_header, 20);
        }
 
 #ifdef MAP_IP6_REASS_COUNT_BYTES
@@ -597,8 +594,8 @@ ip6_map_ip6_reass_prepare (vlib_main_t * vm, vlib_node_runtime_t * node,
       if (ip6_frag_hdr_more (frag0))
        {
          //Not last fragment, we copy end of next
-         clib_memcpy (u8_ptr_add (ip60, p0->current_length),
-                      r->fragments[i].next_data, 20);
+         clib_memcpy_fast (u8_ptr_add (ip60, p0->current_length),
+                           r->fragments[i].next_data, 20);
          p0->current_length += 20;
          ip60->payload_length = u16_net_add (ip60->payload_length, 20);
        }
@@ -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;
@@ -980,17 +976,16 @@ ip6_map_ip4_reass (vlib_main_t * vm,
              u32 len = vec_len (fragments_to_loopback);
              if (len <= VLIB_FRAME_SIZE)
                {
-                 clib_memcpy (from, fragments_to_loopback,
-                              sizeof (u32) * len);
+                 clib_memcpy_fast (from, fragments_to_loopback,
+                                   sizeof (u32) * len);
                  n_left_from = len;
                  vec_reset_length (fragments_to_loopback);
                }
              else
                {
-                 clib_memcpy (from,
-                              fragments_to_loopback + (len -
-                                                       VLIB_FRAME_SIZE),
-                              sizeof (u32) * VLIB_FRAME_SIZE);
+                 clib_memcpy_fast (from, fragments_to_loopback +
+                                   (len - VLIB_FRAME_SIZE),
+                                   sizeof (u32) * VLIB_FRAME_SIZE);
                  n_left_from = VLIB_FRAME_SIZE;
                  _vec_len (fragments_to_loopback) = len - VLIB_FRAME_SIZE;
                }