ip: fix assert in ip4_ttl_inc
[vpp.git] / src / vnet / ip / ip4_forward.c
index 4d06382..3556d35 100644 (file)
@@ -1508,9 +1508,8 @@ ip4_local_set_next_and_error (vlib_node_runtime_t * error_node,
       next_index = *next;
       if (PREDICT_TRUE (error == (u8) IP4_ERROR_UNKNOWN_PROTOCOL))
        {
-         vnet_feature_arc_start (arc_index,
-                                 vnet_buffer (b)->sw_if_index[VLIB_RX],
-                                 &next_index, b);
+         vnet_feature_arc_start (
+           arc_index, vnet_buffer (b)->ip.rx_sw_if_index, &next_index, b);
          *next = next_index;
        }
     }
@@ -2056,7 +2055,9 @@ ip4_ttl_inc (vlib_buffer_t * b, ip4_header_t * ip)
   ttl += 1;
   ip->ttl = ttl;
 
-  ASSERT (ip4_header_checksum_is_valid (ip));
+  ASSERT (ip4_header_checksum_is_valid (ip) ||
+         (vnet_buffer (b)->oflags & VNET_BUFFER_OFFLOAD_F_IP_CKSUM) ||
+         (vnet_buffer (b)->oflags & VNET_BUFFER_OFFLOAD_F_OUTER_IP_CKSUM));
 }
 
 /* Decrement TTL & update checksum.