@@ -48,9 +48,10 @@ extern "C" {
48
48
#define UDX_HEADER_MESSAGE 0b01000
49
49
#define UDX_HEADER_DESTROY 0b10000
50
50
51
- #define UDX_STREAM_WRITE_WANT_STATE 0b001
52
- #define UDX_STREAM_WRITE_WANT_TLP 0b010
53
- #define UDX_STREAM_WRITE_WANT_DESTROY 0b100
51
+ #define UDX_STREAM_WRITE_WANT_STATE 0b0001
52
+ #define UDX_STREAM_WRITE_WANT_TLP 0b0010
53
+ #define UDX_STREAM_WRITE_WANT_DESTROY 0b0100
54
+ #define UDX_STREAM_WRITE_WANT_ZWP 0b1000
54
55
55
56
typedef struct {
56
57
uint32_t seq ;
@@ -189,6 +190,7 @@ struct udx_stream_s {
189
190
uint32_t high_seq ; // seq at time of congestion, marks end of recovery
190
191
bool hit_high_watermark ;
191
192
uint16_t rto_count ;
193
+ uint16_t zwp_count ;
192
194
uint16_t fast_recovery_count ;
193
195
uint16_t retransmit_count ;
194
196
size_t writes_queued_bytes ;
@@ -226,9 +228,9 @@ struct udx_stream_s {
226
228
int mtu_max ; // min(UDX_MTU_MAX, get_link_mtu(remote_addr))
227
229
uint16_t mtu ;
228
230
229
- uint32_t seq ;
230
- uint32_t ack ;
231
- uint32_t remote_acked ;
231
+ uint32_t seq ; // tcp snd.nxt
232
+ uint32_t ack ; // tcp rcv.nxt
233
+ uint32_t remote_acked ; // tcp snd.una
232
234
uint32_t remote_ended ;
233
235
234
236
uint32_t srtt ;
@@ -255,14 +257,19 @@ struct udx_stream_s {
255
257
uv_timer_t rto_timer ;
256
258
uv_timer_t rack_reo_timer ;
257
259
uv_timer_t tlp_timer ;
260
+ uv_timer_t zwp_timer ;
258
261
259
262
size_t inflight ;
260
263
261
264
uint32_t sacks ;
262
265
uint32_t ssthresh ;
263
- uint32_t cwnd ;
266
+ uint32_t cwnd ; // packets
264
267
uint32_t cwnd_cnt ;
265
- uint32_t rwnd ;
268
+ uint32_t recv_rwnd ; // tcp: rcv.wnd. bytes
269
+ uint32_t send_rwnd ; // remote advertised rwnd
270
+
271
+ uint32_t send_wl1 ; // seq at last window update
272
+ uint32_t send_wl2 ; // ack at last window update
266
273
267
274
// congestion state
268
275
udx_cong_t cong ;
@@ -293,7 +300,6 @@ struct udx_packet_s {
293
300
294
301
bool lost ;
295
302
bool retransmitted ;
296
- bool is_tlp ;
297
303
uint8_t transmits ;
298
304
uint8_t rto_timeouts ;
299
305
bool is_mtu_probe ;
0 commit comments