Release 1.18.0

- [API Change] Can specify clock granularity in engine settings.
- [BUGFIX] Pacer uses fixed clock granularity.  Since the change on
  2018-04-09, it is not necessary to try to approximate the next tick
  time in the pacer: it can use fix clock granularity specified by
  the user.
- [BUGFIX] Do not tick constantly before handshake is done.
- [BUGFIX] Do not exit tick prematurely: reuse packet with ACK.  Even
  if we cannot allocate *more* packets, we could still be able to write
  to one already allocated.
- [BUGFIX] Do not schedule pacer if there are no lost packets.
This commit is contained in:
Dmitri Tikhonov 2019-01-28 15:41:28 -05:00
parent 1b3a179789
commit 6aba801d42
18 changed files with 99 additions and 142 deletions

View file

@ -24,8 +24,8 @@ extern "C" {
#endif
#define LSQUIC_MAJOR_VERSION 1
#define LSQUIC_MINOR_VERSION 17
#define LSQUIC_PATCH_VERSION 15
#define LSQUIC_MINOR_VERSION 18
#define LSQUIC_PATCH_VERSION 0
/**
* Engine flags:
@ -245,6 +245,9 @@ struct lsquic_stream_if {
/** By default, packets are paced */
#define LSQUIC_DF_PACE_PACKETS 1
/** Default clock granularity is 1000 microseconds */
#define LSQUIC_DF_CLOCK_GRANULARITY 1000
struct lsquic_engine_settings {
/**
* This is a bit mask wherein each bit corresponds to a value in
@ -432,6 +435,11 @@ struct lsquic_engine_settings {
*/
int es_pace_packets;
/**
* Clock granularity information is used by the pacer. The value
* is in microseconds; default is @ref LSQUIC_DF_CLOCK_GRANULARITY.
*/
unsigned es_clock_granularity;
};
/* Initialize `settings' to default values */