tcp: improve timestamp rtt accuracy
[vpp.git] / src / vnet / tcp / tcp_cli.c
index ada2ac0..6030440 100644 (file)
@@ -205,10 +205,11 @@ format_tcp_vars (u8 * s, va_list * args)
              tc->rcv_opts.tsecr, tc->tsecr_last_ack,
              tcp_time_now () - tc->tsval_recent_age);
   s = format (s, " snd_mss %u\n", tc->snd_mss);
-  s = format (s, " rto %u rto_boff %u srtt %u us %.3f rttvar %u rtt_ts %.4f",
-             tc->rto, tc->rto_boff, tc->srtt, tc->mrtt_us * 1000, tc->rttvar,
-             tc->rtt_ts);
-  s = format (s, " rtt_seq %u\n", tc->rtt_seq - tc->iss);
+  s = format (s, " rto %u rto_boff %u srtt %.1f us %.3f rttvar %.1f",
+             tc->rto / 1000, tc->rto_boff, tc->srtt / 1000.0,
+             tc->mrtt_us * 1e3, tc->rttvar / 1000.0);
+  s = format (s, " rtt_ts %.4f rtt_seq %u\n", tc->rtt_ts,
+             tc->rtt_seq - tc->iss);
   s = format (s, " next_node %u opaque 0x%x fib_index %u\n",
              tc->next_node_index, tc->next_node_opaque, tc->c_fib_index);
   s = format (s, " cong:   %U", format_tcp_congestion, tc);
@@ -907,7 +908,7 @@ tcp_show_half_open (vlib_main_t * vm, u32 start, u32 end, u8 verbose)
   int max_index, i;
 
   n_elts = pool_elts (tm->half_open_connections);
-  max_index = pool_len (tm->half_open_connections) - 1;
+  max_index = clib_max (pool_len (tm->half_open_connections), 1) - 1;
   if (verbose && end == ~0 && n_elts > 50)
     {
       vlib_cli_output (vm, "Too many connections, use range <start> <end>");
@@ -966,7 +967,7 @@ show_tcp_half_open_fn (vlib_main_t * vm, unformat_input_t * input,
     {
       if (unformat (line_input, "range %u %u", &start, &end))
        ;
-      else if (unformat (line_input, "verbose %d"), &verbose)
+      else if (unformat (line_input, "verbose %d", &verbose))
        ;
       else if (unformat (line_input, "verbose"))
        verbose = 1;