Classes | Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
grpc_core::chttp2::TransportFlowControl Class Referencefinal

#include <flow_control.h>

Classes

class  IncomingUpdateContext
 
class  OutgoingUpdateContext
 

Public Member Functions

uint32_t acked_init_window () const
 
int64_t announced_stream_total_over_incoming_window () const
 
int64_t announced_window () const
 
BdpEstimatorbdp_estimator ()
 
bool bdp_probe () const
 
uint32_t MaybeSendUpdate (bool writing_anyway)
 
FlowControlAction PeriodicUpdate ()
 
int64_t remote_window () const
 
void RemoveAnnouncedWindowDelta (int64_t delta)
 
void SetAckedInitialWindow (uint32_t value)
 
int64_t target_frame_size () const
 
int64_t target_window () const
 
 TransportFlowControl (const char *name, bool enable_bdp_probe, MemoryOwner *memory_owner)
 
 ~TransportFlowControl ()
 

Private Member Functions

double SmoothLogBdp (double value)
 
double TargetLogBdp ()
 
FlowControlAction UpdateAction (FlowControlAction action)
 

Static Private Member Functions

static void UpdateSetting (int64_t *desired_value, int64_t new_desired_value, FlowControlAction *action, FlowControlAction &(FlowControlAction::*set)(FlowControlAction::Urgency, uint32_t))
 

Private Attributes

uint32_t acked_init_window_ = kDefaultWindow
 
int64_t announced_stream_total_over_incoming_window_ = 0
 
int64_t announced_window_ = kDefaultWindow
 
BdpEstimator bdp_estimator_
 
const bool enable_bdp_probe_
 
Timestamp last_pid_update_
 
MemoryOwner *const memory_owner_
 
PidController pid_controller_
 
int64_t remote_window_ = kDefaultWindow
 
int64_t target_frame_size_ = kDefaultFrameSize
 
int64_t target_initial_window_size_ = kDefaultWindow
 

Detailed Description

Definition at line 145 of file flow_control.h.

Constructor & Destructor Documentation

◆ TransportFlowControl()

grpc_core::chttp2::TransportFlowControl::TransportFlowControl ( const char *  name,
bool  enable_bdp_probe,
MemoryOwner memory_owner 
)
explicit

Definition at line 101 of file flow_control.cc.

◆ ~TransportFlowControl()

grpc_core::chttp2::TransportFlowControl::~TransportFlowControl ( )
inline

Definition at line 149 of file flow_control.h.

Member Function Documentation

◆ acked_init_window()

uint32_t grpc_core::chttp2::TransportFlowControl::acked_init_window ( ) const
inline

Definition at line 234 of file flow_control.h.

◆ announced_stream_total_over_incoming_window()

int64_t grpc_core::chttp2::TransportFlowControl::announced_stream_total_over_incoming_window ( ) const
inline

Definition at line 242 of file flow_control.h.

◆ announced_window()

int64_t grpc_core::chttp2::TransportFlowControl::announced_window ( ) const
inline

Definition at line 240 of file flow_control.h.

◆ bdp_estimator()

BdpEstimator* grpc_core::chttp2::TransportFlowControl::bdp_estimator ( )
inline

Definition at line 232 of file flow_control.h.

◆ bdp_probe()

bool grpc_core::chttp2::TransportFlowControl::bdp_probe ( ) const
inline

Definition at line 151 of file flow_control.h.

◆ MaybeSendUpdate()

uint32_t grpc_core::chttp2::TransportFlowControl::MaybeSendUpdate ( bool  writing_anyway)

Definition at line 117 of file flow_control.cc.

◆ PeriodicUpdate()

FlowControlAction grpc_core::chttp2::TransportFlowControl::PeriodicUpdate ( )

Definition at line 229 of file flow_control.cc.

◆ remote_window()

int64_t grpc_core::chttp2::TransportFlowControl::remote_window ( ) const
inline

Definition at line 239 of file flow_control.h.

◆ RemoveAnnouncedWindowDelta()

void grpc_core::chttp2::TransportFlowControl::RemoveAnnouncedWindowDelta ( int64_t  delta)
inline

Definition at line 246 of file flow_control.h.

◆ SetAckedInitialWindow()

void grpc_core::chttp2::TransportFlowControl::SetAckedInitialWindow ( uint32_t  value)
inline

Definition at line 236 of file flow_control.h.

◆ SmoothLogBdp()

double grpc_core::chttp2::TransportFlowControl::SmoothLogBdp ( double  value)
private

Definition at line 205 of file flow_control.cc.

◆ target_frame_size()

int64_t grpc_core::chttp2::TransportFlowControl::target_frame_size ( ) const
inline

Definition at line 230 of file flow_control.h.

◆ target_window()

int64_t grpc_core::chttp2::TransportFlowControl::target_window ( ) const

Definition at line 165 of file flow_control.cc.

◆ TargetLogBdp()

double grpc_core::chttp2::TransportFlowControl::TargetLogBdp ( )
private

Definition at line 199 of file flow_control.cc.

◆ UpdateAction()

FlowControlAction grpc_core::chttp2::TransportFlowControl::UpdateAction ( FlowControlAction  action)
private

Definition at line 174 of file flow_control.cc.

◆ UpdateSetting()

void grpc_core::chttp2::TransportFlowControl::UpdateSetting ( int64_t desired_value,
int64_t  new_desired_value,
FlowControlAction action,
FlowControlAction &(FlowControlAction::*)(FlowControlAction::Urgency, uint32_t set 
)
staticprivate

Definition at line 215 of file flow_control.cc.

Member Data Documentation

◆ acked_init_window_

uint32_t grpc_core::chttp2::TransportFlowControl::acked_init_window_ = kDefaultWindow
private

Definition at line 288 of file flow_control.h.

◆ announced_stream_total_over_incoming_window_

int64_t grpc_core::chttp2::TransportFlowControl::announced_stream_total_over_incoming_window_ = 0
private

calculating what we should give for local window: we track the total amount of flow control over initial window size across all streams: this is data that we want to receive right now (it has an outstanding read) and the total amount of flow control under initial window size across all streams: this is data we've read early we want to adjust incoming_window such that: incoming_window = total_over - max(bdp - total_under, 0)

Definition at line 272 of file flow_control.h.

◆ announced_window_

int64_t grpc_core::chttp2::TransportFlowControl::announced_window_ = kDefaultWindow
private

Definition at line 287 of file flow_control.h.

◆ bdp_estimator_

BdpEstimator grpc_core::chttp2::TransportFlowControl::bdp_estimator_
private

Definition at line 278 of file flow_control.h.

◆ enable_bdp_probe_

const bool grpc_core::chttp2::TransportFlowControl::enable_bdp_probe_
private

should we probe bdp?

Definition at line 275 of file flow_control.h.

◆ last_pid_update_

Timestamp grpc_core::chttp2::TransportFlowControl::last_pid_update_
private

Definition at line 282 of file flow_control.h.

◆ memory_owner_

MemoryOwner* const grpc_core::chttp2::TransportFlowControl::memory_owner_
private

Definition at line 262 of file flow_control.h.

◆ pid_controller_

PidController grpc_core::chttp2::TransportFlowControl::pid_controller_
private

Definition at line 281 of file flow_control.h.

◆ remote_window_

int64_t grpc_core::chttp2::TransportFlowControl::remote_window_ = kDefaultWindow
private

Definition at line 284 of file flow_control.h.

◆ target_frame_size_

int64_t grpc_core::chttp2::TransportFlowControl::target_frame_size_ = kDefaultFrameSize
private

Definition at line 286 of file flow_control.h.

◆ target_initial_window_size_

int64_t grpc_core::chttp2::TransportFlowControl::target_initial_window_size_ = kDefaultWindow
private

Definition at line 285 of file flow_control.h.


The documentation for this class was generated from the following files:


grpc
Author(s):
autogenerated on Fri May 16 2025 03:03:38