vnet: ip4/6_local-> don't drop TCP/UCP marked for cksum calc fix 64/9264/3
authorJakub Grajciar <Jakub.Grajciar@pantheon.tech>
Tue, 7 Nov 2017 13:39:10 +0000 (14:39 +0100)
committerFlorin Coras <florin.coras@gmail.com>
Tue, 7 Nov 2017 16:29:32 +0000 (16:29 +0000)
Change-Id: Id14826eefe43168747c8ba69b3b600441a7d4047
Signed-off-by: Jakub Grajciar <Jakub.Grajciar@pantheon.tech>
src/vnet/ip/ip4_forward.c
src/vnet/ip/ip6_forward.c

index 4c559d5..60a7fab 100755 (executable)
@@ -1577,12 +1577,12 @@ ip4_local_inline (vlib_main_t * vm,
 
          good_tcp_udp0 =
            (p0->flags & VNET_BUFFER_F_L4_CHECKSUM_CORRECT
-            && !(p0->flags & VNET_BUFFER_F_OFFLOAD_TCP_CKSUM
-                 || p0->flags & VNET_BUFFER_F_OFFLOAD_UDP_CKSUM)) != 0;
+            || (p0->flags & VNET_BUFFER_F_OFFLOAD_TCP_CKSUM
+                || p0->flags & VNET_BUFFER_F_OFFLOAD_UDP_CKSUM)) != 0;
          good_tcp_udp1 = (p1->flags & VNET_BUFFER_F_L4_CHECKSUM_CORRECT
-                          && !(p1->flags & VNET_BUFFER_F_OFFLOAD_TCP_CKSUM
-                               || p1->flags &
-                               VNET_BUFFER_F_OFFLOAD_UDP_CKSUM)) != 0;
+                          || (p1->flags & VNET_BUFFER_F_OFFLOAD_TCP_CKSUM
+                              || p1->flags &
+                              VNET_BUFFER_F_OFFLOAD_UDP_CKSUM)) != 0;
 
          if (PREDICT_FALSE (ip4_local_do_l4_check (is_tcp_udp0, p0->flags)
                             || ip4_local_do_l4_check (is_tcp_udp1,
@@ -1740,8 +1740,8 @@ ip4_local_inline (vlib_main_t * vm,
 
          good_tcp_udp0 =
            (p0->flags & VNET_BUFFER_F_L4_CHECKSUM_CORRECT
-            && !(p0->flags & VNET_BUFFER_F_OFFLOAD_TCP_CKSUM
-                 || p0->flags & VNET_BUFFER_F_OFFLOAD_UDP_CKSUM)) != 0;
+            || (p0->flags & VNET_BUFFER_F_OFFLOAD_TCP_CKSUM
+                || p0->flags & VNET_BUFFER_F_OFFLOAD_UDP_CKSUM)) != 0;
 
          if (PREDICT_FALSE (ip4_local_do_l4_check (is_tcp_udp0, p0->flags)))
            {
index 7a8b5ed..a14bf09 100644 (file)
@@ -1342,12 +1342,12 @@ ip6_local_inline (vlib_main_t * vm, vlib_node_runtime_t * node,
          is_tcp_udp1 = ip6_next_proto_is_tcp_udp (p1, ip1, &udp_offset1);
 
          good_l4_csum0 = (flags0 & VNET_BUFFER_F_L4_CHECKSUM_CORRECT
-                          && !(flags0 & VNET_BUFFER_F_OFFLOAD_TCP_CKSUM
-                               || flags0 & VNET_BUFFER_F_OFFLOAD_UDP_CKSUM))
+                          || (flags0 & VNET_BUFFER_F_OFFLOAD_TCP_CKSUM
+                              || flags0 & VNET_BUFFER_F_OFFLOAD_UDP_CKSUM))
            != 0;
          good_l4_csum1 = (flags1 & VNET_BUFFER_F_L4_CHECKSUM_CORRECT
-                          && !(flags1 & VNET_BUFFER_F_OFFLOAD_TCP_CKSUM
-                               || flags1 & VNET_BUFFER_F_OFFLOAD_UDP_CKSUM))
+                          || (flags1 & VNET_BUFFER_F_OFFLOAD_TCP_CKSUM
+                              || flags1 & VNET_BUFFER_F_OFFLOAD_UDP_CKSUM))
            != 0;
          len_diff0 = 0;
          len_diff1 = 0;
@@ -1513,8 +1513,8 @@ ip6_local_inline (vlib_main_t * vm, vlib_node_runtime_t * node,
          flags0 = p0->flags;
          is_tcp_udp0 = ip6_next_proto_is_tcp_udp (p0, ip0, &udp_offset0);
          good_l4_csum0 = (flags0 & VNET_BUFFER_F_L4_CHECKSUM_CORRECT
-                          && !(flags0 & VNET_BUFFER_F_OFFLOAD_TCP_CKSUM
-                               || flags0 & VNET_BUFFER_F_OFFLOAD_UDP_CKSUM))
+                          || (flags0 & VNET_BUFFER_F_OFFLOAD_TCP_CKSUM
+                              || flags0 & VNET_BUFFER_F_OFFLOAD_UDP_CKSUM))
            != 0;
 
          len_diff0 = 0;