misc: fix the formatting style
[vpp.git] / src / vnet / gso / node.c
index b57830f..23213a7 100644 (file)
@@ -42,14 +42,14 @@ format_gso_trace (u8 * s, va_list * args)
 
   if (t->flags & VNET_BUFFER_F_GSO)
     {
-      s = format (s, "gso_sz %d gso_l4_hdr_sz %d %U",
+      s = format (s, "gso_sz %d gso_l4_hdr_sz %d\n%U",
                  t->gso_size, t->gso_l4_hdr_sz, format_generic_header_offset,
                  &t->gho);
     }
   else
     {
       s =
-       format (s, "non-gso buffer %U", format_generic_header_offset,
+       format (s, "non-gso buffer\n%U", format_generic_header_offset,
                &t->gho);
     }
 
@@ -261,7 +261,7 @@ tso_init_buf_from_template (vlib_main_t * vm, vlib_buffer_t * nb0,
 
 static_always_inline void
 tso_fixup_segmented_buf (vlib_main_t * vm, vlib_buffer_t * b0, u8 tcp_flags,
-                        int is_ip6, generic_header_offset_t * gho)
+                        int is_l2, int is_ip6, generic_header_offset_t * gho)
 {
   ip4_header_t *ip4 =
     (ip4_header_t *) (vlib_buffer_get_current (b0) + gho->l3_hdr_offset);
@@ -300,7 +300,7 @@ tso_fixup_segmented_buf (vlib_main_t * vm, vlib_buffer_t * b0, u8 tcp_flags,
       b0->flags &= ~VNET_BUFFER_F_OFFLOAD_IP_CKSUM;
     }
 
-  if ((gho->gho_flags & GHO_F_TUNNEL) == 0)
+  if (!is_l2 && ((gho->gho_flags & GHO_F_TUNNEL) == 0))
     {
       u32 adj_index0 = vnet_buffer (b0)->ip.adj_index[VLIB_TX];
 
@@ -326,7 +326,8 @@ tso_fixup_segmented_buf (vlib_main_t * vm, vlib_buffer_t * b0, u8 tcp_flags,
 static_always_inline u32
 tso_segment_buffer (vlib_main_t * vm, vnet_interface_per_thread_data_t * ptd,
                    u32 sbi0, vlib_buffer_t * sb0,
-                   generic_header_offset_t * gho, u32 n_bytes_b0, int is_ip6)
+                   generic_header_offset_t * gho, u32 n_bytes_b0, int is_l2,
+                   int is_ip6)
 {
   u32 n_tx_bytes = 0;
   u16 gso_size = vnet_buffer2 (sb0)->gso_size;
@@ -374,7 +375,8 @@ tso_segment_buffer (vlib_main_t * vm, vnet_interface_per_thread_data_t * ptd,
       src_ptr = vlib_buffer_get_current (sb0) + l234_sz + first_data_size;
       src_left = sb0->current_length - l234_sz - first_data_size;
 
-      tso_fixup_segmented_buf (vm, b0, tcp_flags_no_fin_psh, is_ip6, gho);
+      tso_fixup_segmented_buf (vm, b0, tcp_flags_no_fin_psh, is_l2, is_ip6,
+                              gho);
 
       /* grab a second buffer and prepare the loop */
       ASSERT (dbi < vec_len (ptd->split_buffers));
@@ -423,8 +425,8 @@ tso_segment_buffer (vlib_main_t * vm, vnet_interface_per_thread_data_t * ptd,
          if (0 == dst_left && total_src_left)
            {
              n_tx_bytes += cdb0->current_length;
-             tso_fixup_segmented_buf (vm, cdb0, tcp_flags_no_fin_psh, is_ip6,
-                                      gho);
+             tso_fixup_segmented_buf (vm, cdb0, tcp_flags_no_fin_psh, is_l2,
+                                      is_ip6, gho);
              ASSERT (dbi < vec_len (ptd->split_buffers));
              cdb0 = vlib_get_buffer (vm, ptd->split_buffers[dbi++]);
              tso_init_buf_from_template (vm, cdb0, b0, l234_sz,
@@ -433,7 +435,7 @@ tso_segment_buffer (vlib_main_t * vm, vnet_interface_per_thread_data_t * ptd,
            }
        }
 
-      tso_fixup_segmented_buf (vm, cdb0, save_tcp_flags, is_ip6, gho);
+      tso_fixup_segmented_buf (vm, cdb0, save_tcp_flags, is_l2, is_ip6, gho);
 
       n_tx_bytes += cdb0->current_length;
     }
@@ -651,6 +653,7 @@ vnet_gso_node_inline (vlib_main_t * vm,
                  generic_header_offset_t gho = { 0 };
                  u32 n_bytes_b0 = vlib_buffer_length_in_chain (vm, b[0]);
                  u32 n_tx_bytes = 0;
+                 u32 inner_is_ip6 = is_ip6;
 
                  vnet_generic_header_offset_parser (b[0], &gho, is_l2,
                                                     is_ip4, is_ip6);
@@ -672,12 +675,12 @@ vnet_gso_node_inline (vlib_main_t * vm,
                      vnet_get_inner_header (b[0], &gho);
 
                      n_bytes_b0 -= gho.outer_hdr_sz;
-                     is_ip6 = (gho.gho_flags & GHO_F_IP6) != 0;
+                     inner_is_ip6 = (gho.gho_flags & GHO_F_IP6) != 0;
                    }
 
                  n_tx_bytes =
                    tso_segment_buffer (vm, ptd, bi0, b[0], &gho, n_bytes_b0,
-                                       is_ip6);
+                                       is_l2, inner_is_ip6);
 
                  if (PREDICT_FALSE (n_tx_bytes == 0))
                    {
@@ -863,13 +866,13 @@ VNET_FEATURE_INIT (gso_l2_ip6_node, static) = {
 VNET_FEATURE_INIT (gso_ip4_node, static) = {
   .arc_name = "ip4-output",
   .node_name = "gso-ip4",
-  .runs_before = VNET_FEATURES ("esp4-encrypt-tun","ipsec4-output-feature"),
+  .runs_before = VNET_FEATURES ("ipsec4-output-feature"),
 };
 
 VNET_FEATURE_INIT (gso_ip6_node, static) = {
   .arc_name = "ip6-output",
   .node_name = "gso-ip6",
-  .runs_before = VNET_FEATURES ("esp6-encrypt-tun","ipsec6-output-feature"),
+  .runs_before = VNET_FEATURES ("ipsec6-output-feature"),
 };
 
 /*