Lucas Clemente
d01f9880be
Use gomocked CPM in the flowcontrol tests
2017-06-09 12:20:36 +02:00
Quentin De Coninck
48ed55a01d
fix stalls when retransmitting connection-level Window Update Frames
...
When a Window Update Frame with streamID 0 is lost, we want to know
the receive window when retransmitting the frame. However, the connection
flow controller is not in streamFlowController, leading to map access errors
and then connections stalls since the sender is stuck by the not-updated
receive window it previously received.
2017-06-07 10:38:36 +02:00
Marten Seemann
09c6c4118b
fix flaky flowcontroller tests
2017-04-16 12:48:18 +07:00
Lucas Clemente
013d7fdb30
Simplify code in a few places
...
Found by running `gosimple ./...`
2017-04-13 16:43:58 +02:00
Marten Seemann
951b85d42a
enable flow control window auto-tuning for the first WindowUpdate
...
fixes #499
2017-03-30 12:45:19 +07:00
Marten Seemann
0d6647ed8c
fix auto-tuning of connection-level flow control window
...
fixes #424
2017-02-17 19:47:09 +07:00
Marten Seemann
f0975d4a7e
store connection flow controller separately in flow control manager
2017-02-08 14:28:45 +07:00
Marten Seemann
1ed5f30817
fix race condition in flow control manager
2017-02-08 14:23:04 +07:00
Marten Seemann
291e6c1344
store in flow controller if a stream contributes to connection flow control
2017-02-08 11:48:13 +07:00
Marten Seemann
db11b25790
ensure minimum size of connection-level flow control window
...
fixes #409
2017-02-08 11:39:33 +07:00
Marten Seemann
84bda1a9f4
improve tests and test coverage of flow control manager
2017-02-08 11:35:30 +07:00
Marten Seemann
1aaf049a11
remove unused GetBytesSent function from flow controller
2017-02-08 10:39:16 +07:00
Marten Seemann
7ce7203f16
simplify variable and function names in flow controller
2017-02-08 09:01:45 +07:00
Marten Seemann
a587af079d
improve the connection parameters manager for the client
2017-01-14 18:58:46 +07:00
Marten Seemann
f72fbc57a9
send connection parameters in CHLO
2017-01-14 18:52:24 +07:00
Marten Seemann
71227437ee
only retransmit WindowUpdates if no higher WindowUpdate has been sent
...
fixes #394
2017-01-14 15:16:12 +07:00
Marten Seemann
7a91794292
send RST_STREAM frames
...
ref #380
2017-01-09 09:49:44 +07:00
Marten Seemann
544a58a038
return total bytes sent when resetting a stream in the flow controller
2017-01-03 16:09:18 +07:00
Marten Seemann
74edf9caad
improve errors returned for flow control violations
2017-01-03 12:01:27 +07:00
Marten Seemann
fb3f753c94
add method to reset a stream at a byte offset to flow controller
...
ref #377
2017-01-03 11:32:42 +07:00
Marten Seemann
ba85908fd7
use a mock ConnectionParameterManager in flow controller tests
2016-12-08 18:52:46 +07:00
Marten Seemann
ebc053dbe0
create interface for the ConnectionParametersManager
2016-12-08 18:39:14 +07:00
Marten Seemann
b7a9fcf85f
implement auto-tuning of receive flow control windows
...
fixes #106
2016-10-31 12:51:26 +07:00
Marten Seemann
32d89eee02
pass RTTStats to the FlowControllers
...
ref #106
2016-10-30 17:36:36 +07:00
Lucas Clemente
751150fd53
optimize flow control manager mutexes
2016-09-17 13:40:51 +02:00
Lucas Clemente
2592b9a97c
optimize window update generation, reducing profiler footprint by 8%
2016-09-15 09:12:44 +02:00
Lucas Clemente
781fce5bd7
remove outdated comments
2016-08-18 10:31:41 +02:00
Lucas Clemente
8a9f5f9833
fix receive flow control windows diverging
2016-08-01 15:44:08 +02:00
Lucas Clemente
3a88a8cffa
delete flow controllers for closed streams
...
fixes #177
2016-07-28 16:45:55 +02:00
Lucas Clemente
3aa8b1bf37
remove fcm.StreamContributesToConnectionFlowControl
2016-07-26 17:09:24 +02:00
Lucas Clemente
5f774c8e03
change fcm.SendWindowSize to include conn window to simplify framer
2016-07-26 17:06:54 +02:00
Lucas Clemente
2d828fe6e2
use an RWMutex in flowControlManager
2016-07-09 18:11:41 +02:00
Lucas Clemente
80f4a68602
remove mutex from flowController; locking is ensured by the manager
2016-07-09 18:10:09 +02:00
Lucas Clemente
8dc330f818
remove MaybeTriggerBlocked from flowController
2016-07-09 18:09:37 +02:00
Lucas Clemente
5ada9108ae
remove FlowController interface
...
fixes #178 , ref #83
2016-07-08 18:21:44 +02:00
Marten Seemann
1b732a4afa
add method to FlowControlManager to tell if Stream contribues to connection-level flow control
2016-07-06 10:17:42 +02:00
Marten Seemann
ac54ac66c7
add methods for sending data to FlowControlManager
2016-07-06 10:14:17 +02:00
Marten Seemann
5d02033f0f
use FlowControlManager in Stream for Reading data
2016-06-15 19:39:50 +07:00
Marten Seemann
800320ec39
implement basic FlowControlManager
2016-06-15 18:53:54 +07:00
Lucas Clemente
ffacf2f328
fix a possible deadlock in flow controller
...
ref #164
2016-06-03 18:21:26 +02:00
Marten Seemann
c748a8dfc0
create FlowController interface
2016-05-19 19:49:33 +07:00