FD.io VPP  v19.08-27-gf4dcae4
Vector Packet Processing
tcp_bt.c File Reference
+ Include dependency graph for tcp_bt.c:

Go to the source code of this file.

Functions

static tcp_bt_sample_tbt_get_sample (tcp_byte_tracker_t *bt, u32 bts_index)
 
static tcp_bt_sample_tbt_next_sample (tcp_byte_tracker_t *bt, tcp_bt_sample_t *bts)
 
static tcp_bt_sample_tbt_prev_sample (tcp_byte_tracker_t *bt, tcp_bt_sample_t *bts)
 
static u32 bt_sample_index (tcp_byte_tracker_t *bt, tcp_bt_sample_t *bts)
 
static int bt_seq_lt (u32 a, u32 b)
 
static tcp_bt_sample_tbt_alloc_sample (tcp_byte_tracker_t *bt, u32 min_seq)
 
static void bt_free_sample (tcp_byte_tracker_t *bt, tcp_bt_sample_t *bts)
 
static tcp_bt_sample_tbt_lookup_seq (tcp_byte_tracker_t *bt, u32 seq)
 
static void bt_update_sample (tcp_byte_tracker_t *bt, tcp_bt_sample_t *bts, u32 seq)
 
static tcp_bt_sample_tbt_fix_overlapped (tcp_byte_tracker_t *bt, tcp_bt_sample_t *start, u32 seq, u8 is_end)
 
int tcp_bt_is_sane (tcp_byte_tracker_t *bt)
 Check if the byte tracker is in sane state. More...
 
static tcp_bt_sample_ttcp_bt_alloc_tx_sample (tcp_connection_t *tc, u32 min_seq)
 
void tcp_bt_check_app_limited (tcp_connection_t *tc)
 Check if sample to be generated is app limited. More...
 
void tcp_bt_track_tx (tcp_connection_t *tc)
 Track a tcp tx burst. More...
 
void tcp_bt_track_rxt (tcp_connection_t *tc, u32 start, u32 end)
 Track a tcp retransmission. More...
 
static void tcp_bt_sample_to_rate_sample (tcp_connection_t *tc, tcp_bt_sample_t *bts, tcp_rate_sample_t *rs)
 
static void tcp_bt_walk_samples (tcp_connection_t *tc, tcp_rate_sample_t *rs)
 
static void tcp_bt_walk_samples_ooo (tcp_connection_t *tc, tcp_rate_sample_t *rs)
 
void tcp_bt_sample_delivery_rate (tcp_connection_t *tc, tcp_rate_sample_t *rs)
 Generate a delivery rate sample from recently acked bytes. More...
 
void tcp_bt_flush_samples (tcp_connection_t *tc)
 Flush byte tracker samples. More...
 
void tcp_bt_cleanup (tcp_connection_t *tc)
 Byte tracker cleanup. More...
 
void tcp_bt_init (tcp_connection_t *tc)
 Byte tracker initialize. More...
 

Function Documentation

static tcp_bt_sample_t* bt_alloc_sample ( tcp_byte_tracker_t bt,
u32  min_seq 
)
static

Definition at line 56 of file tcp_bt.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static tcp_bt_sample_t* bt_fix_overlapped ( tcp_byte_tracker_t bt,
tcp_bt_sample_t start,
u32  seq,
u8  is_end 
)
static

Definition at line 151 of file tcp_bt.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void bt_free_sample ( tcp_byte_tracker_t bt,
tcp_bt_sample_t bts 
)
static

Definition at line 69 of file tcp_bt.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static tcp_bt_sample_t* bt_get_sample ( tcp_byte_tracker_t bt,
u32  bts_index 
)
static

Definition at line 22 of file tcp_bt.c.

+ Here is the caller graph for this function:

static tcp_bt_sample_t* bt_lookup_seq ( tcp_byte_tracker_t bt,
u32  seq 
)
static

Definition at line 94 of file tcp_bt.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static tcp_bt_sample_t* bt_next_sample ( tcp_byte_tracker_t bt,
tcp_bt_sample_t bts 
)
static

Definition at line 30 of file tcp_bt.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static tcp_bt_sample_t* bt_prev_sample ( tcp_byte_tracker_t bt,
tcp_bt_sample_t bts 
)
static

Definition at line 36 of file tcp_bt.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static u32 bt_sample_index ( tcp_byte_tracker_t bt,
tcp_bt_sample_t bts 
)
static

Definition at line 42 of file tcp_bt.c.

+ Here is the caller graph for this function:

static int bt_seq_lt ( u32  a,
u32  b 
)
inlinestatic

Definition at line 50 of file tcp_bt.c.

+ Here is the caller graph for this function:

static void bt_update_sample ( tcp_byte_tracker_t bt,
tcp_bt_sample_t bts,
u32  seq 
)
static

Definition at line 142 of file tcp_bt.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static tcp_bt_sample_t* tcp_bt_alloc_tx_sample ( tcp_connection_t tc,
u32  min_seq 
)
static

Definition at line 238 of file tcp_bt.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void tcp_bt_check_app_limited ( tcp_connection_t tc)

Check if sample to be generated is app limited.

Parameters
tctcp connection

Definition at line 251 of file tcp_bt.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void tcp_bt_cleanup ( tcp_connection_t tc)

Byte tracker cleanup.

Parameters
tcconnection for which the byte tracker should be cleaned up

Definition at line 564 of file tcp_bt.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void tcp_bt_flush_samples ( tcp_connection_t tc)

Flush byte tracker samples.

Parameters
tctcp connection for which samples should be flushed

Definition at line 540 of file tcp_bt.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void tcp_bt_init ( tcp_connection_t tc)

Byte tracker initialize.

Parameters
tcconnection for which the byte tracker should be allocated and initialized

Definition at line 575 of file tcp_bt.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int tcp_bt_is_sane ( tcp_byte_tracker_t bt)

Check if the byte tracker is in sane state.

Should be used only for testing

Parameters
btbyte tracker

Definition at line 182 of file tcp_bt.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void tcp_bt_sample_delivery_rate ( tcp_connection_t tc,
tcp_rate_sample_t rs 
)

Generate a delivery rate sample from recently acked bytes.

Parameters
tctcp connection
rsresulting rate sample

Definition at line 508 of file tcp_bt.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void tcp_bt_sample_to_rate_sample ( tcp_connection_t tc,
tcp_bt_sample_t bts,
tcp_rate_sample_t rs 
)
static

Definition at line 416 of file tcp_bt.c.

+ Here is the caller graph for this function:

void tcp_bt_track_rxt ( tcp_connection_t tc,
u32  start,
u32  end 
)

Track a tcp retransmission.

Parameters
tctcp connection
startstart sequence number
endend sequence number

Definition at line 291 of file tcp_bt.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void tcp_bt_track_tx ( tcp_connection_t tc)

Track a tcp tx burst.

Parameters
tctcp connection

Definition at line 266 of file tcp_bt.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void tcp_bt_walk_samples ( tcp_connection_t tc,
tcp_rate_sample_t rs 
)
static

Definition at line 430 of file tcp_bt.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void tcp_bt_walk_samples_ooo ( tcp_connection_t tc,
tcp_rate_sample_t rs 
)
static

Definition at line 464 of file tcp_bt.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function: