ip: fix ip zero checksum verification
[vpp.git] / src / plugins / ping / ping.c
old mode 100755 (executable)
new mode 100644 (file)
index 7045648..0ce4f96
@@ -474,8 +474,8 @@ ip4_icmp_echo_request (vlib_main_t * vm,
          ip0->checksum = ip_csum_fold (sum0);
          ip1->checksum = ip_csum_fold (sum1);
 
-         ASSERT (ip0->checksum == ip4_header_checksum (ip0));
-         ASSERT (ip1->checksum == ip4_header_checksum (ip1));
+         ASSERT (ip4_header_checksum_is_valid (ip0));
+         ASSERT (ip4_header_checksum_is_valid (ip1));
 
          p0->flags |= VNET_BUFFER_F_LOCALLY_ORIGINATED;
          p1->flags |= VNET_BUFFER_F_LOCALLY_ORIGINATED;
@@ -531,7 +531,7 @@ ip4_icmp_echo_request (vlib_main_t * vm,
 
          ip0->checksum = ip_csum_fold (sum0);
 
-         ASSERT (ip0->checksum == ip4_header_checksum (ip0));
+         ASSERT (ip4_header_checksum_is_valid (ip0));
 
          p0->flags |= VNET_BUFFER_F_LOCALLY_ORIGINATED;
        }
@@ -933,6 +933,8 @@ ip46_enqueue_packet (vlib_main_t * vm, vlib_buffer_t * b0, u32 burst,
    * we did not enqueue it here yet.
    */
 ship_and_ret:
+  ASSERT (n_to_send <= f->n_vectors);
+  f->n_vectors -= n_to_send;
   n_sent += f->n_vectors;
   vlib_put_frame_to_node (vm, lookup_node_index, f);
   return n_sent;