session: allow pacer to send when bucket hits 0 65/34865/2
authorFlorin Coras <fcoras@cisco.com>
Mon, 10 Jan 2022 03:03:09 +0000 (19:03 -0800)
committerFlorin Coras <florin.coras@gmail.com>
Mon, 10 Jan 2022 03:13:17 +0000 (03:13 +0000)
So after bucket reset session can send max burst of bytes.
Also, reset pacer bucket to 0 not min burst

Type: improvement

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Iced8948c407e6647e6eb4caff5c62c06d45ce0bf

src/vnet/session/transport.c

index e4d84a3..5d03a4f 100644 (file)
@@ -668,7 +668,7 @@ spacer_max_burst (spacer_t * pacer, clib_us_time_t time_now)
       pacer->bucket = clib_min (pacer->bucket + inc, (i64) pacer->max_burst);
     }
 
-  return pacer->bucket > 0 ? pacer->max_burst : 0;
+  return pacer->bucket >= 0 ? pacer->max_burst : 0;
 }
 
 static inline void
@@ -790,7 +790,7 @@ void
 transport_connection_reschedule (transport_connection_t * tc)
 {
   tc->flags &= ~TRANSPORT_CONNECTION_F_DESCHED;
-  transport_connection_tx_pacer_reset_bucket (tc, TRANSPORT_PACER_MIN_BURST);
+  transport_connection_tx_pacer_reset_bucket (tc, 0 /* bucket */);
   if (transport_max_tx_dequeue (tc))
     sesssion_reschedule_tx (tc);
   else