tcp: fix byte tracker samples flush 91/21491/3
authorFlorin Coras <fcoras@cisco.com>
Fri, 23 Aug 2019 17:28:01 +0000 (10:28 -0700)
committerFlorin Coras <florin.coras@gmail.com>
Fri, 23 Aug 2019 17:33:09 +0000 (17:33 +0000)
Type: fix

Change-Id: I3b4cb8fc17387693d6ad6cdef004ca99cd56bc23
Signed-off-by: Florin Coras <fcoras@cisco.com>
src/plugins/unittest/tcp_test.c
src/vnet/tcp/tcp_bt.c

index 940ffcf..7aa2456 100644 (file)
@@ -1093,6 +1093,19 @@ tcp_test_delivery (vlib_main_t * vm, unformat_input_t * input)
   TCP_TEST (rs->flags & TCP_BTS_IS_APP_LIMITED, "is app limited");
   TCP_TEST (tc->app_limited == 0, "app limited should be cleared");
 
+  /*
+   * 9) test flush
+   */
+
+  tcp_bt_track_tx (tc);
+  tc->snd_nxt += burst;
+
+  session_main.wrk[thread_index].last_vlib_time = 12;
+  tcp_bt_track_tx (tc);
+  tc->snd_nxt += burst;
+
+  tcp_bt_flush_samples (tc);
+
   /*
    * Cleanup
    */
index dd3d953..fe00754 100644 (file)
@@ -544,6 +544,7 @@ tcp_bt_flush_samples (tcp_connection_t * tc)
   u32 *samples = 0, *si;
 
   vec_validate (samples, pool_elts (bt->samples) - 1);
+  vec_reset_length (samples);
 
   /* *INDENT-OFF* */
   pool_foreach (bts, bt->samples, ({