tcp: avoid fr segments less than mss if possible
[vpp.git] / src / vnet / interface_format.c
index f66797c..0eff8c4 100644 (file)
@@ -120,7 +120,7 @@ format_vnet_hw_interface_link_speed (u8 * s, va_list * args)
 {
   u32 link_speed = va_arg (*args, u32);
 
-  if (link_speed == 0)
+  if (link_speed == 0 || link_speed == UINT32_MAX)
     return format (s, "unknown");
 
   if (link_speed >= 1000000)
@@ -143,11 +143,9 @@ format_vnet_hw_interface_rss_queues (u8 * s, va_list * args)
 
   if (bitmap)
     {
-    /* *INDENT-OFF* */
     clib_bitmap_foreach (i, bitmap)  {
       s = format (s, "%u ", i);
     }
-    /* *INDENT-ON* */
     }
 
   return s;
@@ -212,14 +210,19 @@ format_vnet_hw_interface (u8 * s, va_list * args)
   if (vec_len (hi->tx_queue_indices))
     {
       s = format (s, "\n%UTX Queues:", format_white_space, indent + 2);
-      s = format (s, "\n%U%-6s%-15s", format_white_space, indent + 4, "queue",
-                 "thread(s)");
+      s = format (
+       s, "\n%UTX Hash: %U", format_white_space, indent + 4, format_vnet_hash,
+       vnet_hash_function_from_func (hi->hf, hw_class->tx_hash_fn_type));
+      s = format (s, "\n%U%-6s%-7s%-15s", format_white_space, indent + 4,
+                 "queue", "shared", "thread(s)");
       for (int i = 0; i < vec_len (hi->tx_queue_indices); i++)
        {
          vnet_hw_if_tx_queue_t *txq;
          txq = vnet_hw_if_get_tx_queue (vnm, hi->tx_queue_indices[i]);
-         s = format (s, "\n%U%-6u%U", format_white_space, indent + 4,
-                     txq->queue_id, format_bitmap_list, txq->threads);
+         s = format (
+           s, "\n%U%-6u%-7s%U", format_white_space, indent + 4, txq->queue_id,
+           clib_bitmap_count_set_bits (txq->threads) > 1 ? "yes" : "no",
+           format_bitmap_list, txq->threads);
        }
     }
 
@@ -285,7 +288,7 @@ format_vnet_sw_if_index_name (u8 * s, va_list * args)
 
   if (NULL == si)
     {
-      return format (s, "DELETED");
+      return format (s, "DELETED (%u)", sw_if_index);
     }
   return format (s, "%U", format_vnet_sw_interface_name, vnm, si);
 }
@@ -300,7 +303,7 @@ format_vnet_hw_if_index_name (u8 * s, va_list * args)
   hi = vnet_get_hw_interface (vnm, hw_if_index);
 
   if (hi == 0)
-    return format (s, "DELETED");
+    return format (s, "DELETED (%u)", hw_if_index);
 
   return format (s, "%v", hi->name);
 }
@@ -364,11 +367,11 @@ format_vnet_sw_interface_cntrs (u8 * s, vnet_interface_main_t * im,
       n_printed += 2;
 
       if (n)
-       _vec_len (n) = 0;
+       vec_set_len (n, 0);
       n = format (n, "%s packets", cm->name);
       s = format (s, "%-16v%16Ld", n, vtotal.packets);
 
-      _vec_len (n) = 0;
+      vec_set_len (n, 0);
       n = format (n, "%s bytes", cm->name);
       s = format (s, "\n%U%-16v%16Ld",
                  format_white_space, indent, n, vtotal.bytes);
@@ -597,9 +600,9 @@ format_vnet_buffer_opaque (u8 * s, va_list * args)
 
   s = format (s,
              "l2_classify.table_index: %d, l2_classify.opaque_index: %d, "
-             "l2_classify.hash: 0x%llx",
-             o->l2_classify.table_index,
-             o->l2_classify.opaque_index, o->l2_classify.hash);
+             "l2_classify.hash: 0x%lx",
+             o->l2_classify.table_index, o->l2_classify.opaque_index,
+             o->l2_classify.hash);
   vec_add1 (s, '\n');
 
   s = format (s, "policer.index: %d", o->policer.index);
@@ -692,17 +695,10 @@ format_vnet_buffer_opaque2 (u8 * s, va_list * args)
   s = format (s, "loop_counter: %d", o->loop_counter);
   vec_add1 (s, '\n');
 
-  s = format (s, "gbp.flags: %x, gbp.sclass: %d",
-             (u32) (o->gbp.flags), (u32) (o->gbp.sclass));
-  vec_add1 (s, '\n');
-
   s = format (s, "gso_size: %d, gso_l4_hdr_sz: %d",
              (u32) (o->gso_size), (u32) (o->gso_l4_hdr_sz));
   vec_add1 (s, '\n');
 
-  s = format (s, "pg_replay_timestamp: %llu", (u32) (o->pg_replay_timestamp));
-  vec_add1 (s, '\n');
-
   for (i = 0; i < vec_len (im->buffer_opaque2_format_helpers); i++)
     {
       helper_fp = im->buffer_opaque2_format_helpers[i];