h*      0.1.3 Safe-Inferred%&'network-control)The representation of window size update.network-control HTTP/2 stylenetwork-control QUIC stylenetwork-controlFlow for receiving. The goal of  is to ensure that our network peer does not send us data faster than we can consume it. We therefore impose a maximum number of unconsumed bytes that we are willing to receive from the peer, which we refer to as the buffer size:  rxfBufSize |---------------------------| --------------------------------------------> ^ ^ rxfConsumed rxvReceived The peer does not know of course how many bytes we have consumed of the data that they sent us, so they keep track of their own limit of how much data they are allowed to send. We keep track of this limit also:  rxfBufSize |---------------------------| --------------------------------------------> ^ ^ ^ rxfConsumed rxvReceived | rxfLimit Each time we receive data from the peer, we check that they do not exceed the limit (). When we consume data, we periodically send the peer an update (known as a _window update_) of what their new limit is (). To decrease overhead, we only this if the window update is at least half the window size.network-control7Maxinum number of unconsumed bytes the peer can send us!See discussion above for details.network-controlHow much of the data that the peer has sent us have we consumed?This is an absolute number: the total about of bytes consumed over the lifetime of the connection or stream (i.e., not relative to the window).network-control-How much data have we received from the peer?Like , this is an absolute number.network-control?Current limit on how many bytes the peer is allowed to send us..Like 'rxfConsumed, this is an absolute number. network-controlFlow for sending --------------------------------------> ^ ^ txfSent txfLimit |-----------| The size which this node can send txWindowSize network-controlThe total size of sent data. network-control)The total size of data which can be sent. network-control Window size.network-controlDefault max streams. (64)network-control*Default max data of a stream. (256K bytes)network-control!Default max data of a connection.By default, this is set to (defaultMaxStreams * defaultMaxStreamData. This ensures that streams that are not currently handled cannot exhaust the connection window.1If you use a smaller connection window size, you must ensure that if you are handling fewer concurrent streams than allowed by , that the unhandled streams cannot exhaust the connection window, or risk the entire system deadlocking.network-control,Creating TX flow with a receive buffer size.network-control  -  .network-control-Creating RX flow with an initial window size.network-control - .This is the number of bytes the peer is still allowed to send before they must wait for a window update; see  for details.network-control/Record that we have consumed some received data May return a window update; see  for details.network-controlChecking if received data is acceptable against the current window.network-controlThe consumed size.network-control , if the size should be informed to the peer.network-controlThe size of received data.network-controlAcceptable if !.   Safe-Inferred%&Znetwork-control)Sized cache based on least recently used.network-controlEmpty .network-control Inserting.network-control Deleting.network-control Looking up.network-control The size of . Safe-Inferrednetwork-controlType for rating.network-controlCreating a new .network-controlGetting the current rate. If one or more seconds have passed since the previous call, the counter is re-initialized with 1 and it is returned. Otherwise, incremented counter number is returned.network-controlGetting the current rate. If one or more seconds have passed since the previous call, the counter is re-initialized with the second argument and it is returned. Otherwise, increased counter number is returned. Safe-Inferred    "       !"#$%&'()*,network-control-0.1.3-9inBqhqZcoe8nFL6heQM8jNetwork.Controlnetwork-controlNetwork.Control.FlowNetwork.Control.LRUCacheNetwork.Control.RateFlowControlTypeFCTWindowUpdate FCTMaxDataRxFlow rxfBufSize rxfConsumed rxfReceivedrxfLimitTxFlowtxfSenttxfLimit WindowSizedefaultMaxStreamsdefaultMaxStreamDatadefaultMaxData newTxFlow txWindowSize newRxFlow rxWindowSizemaybeOpenRxWindow checkRxLimitLRUCacheemptyinsertdeletelookupRatenewRategetRateaddRatebase GHC.MaybeJustghc-prim GHC.TypesTrue