FD.io VPP  v20.09-64-g4f7b92f0a
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, u32 max_seq)
 
static void bt_free_sample (tcp_byte_tracker_t *bt, tcp_bt_sample_t *bts)
 
static tcp_bt_sample_tbt_split_sample (tcp_byte_tracker_t *bt, tcp_bt_sample_t *bts, u32 seq)
 
static tcp_bt_sample_tbt_merge_sample (tcp_byte_tracker_t *bt, tcp_bt_sample_t *prev, tcp_bt_sample_t *cur)
 
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, u32 max_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, u32 len)
 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...
 
u8format_tcp_bt_sample (u8 *s, va_list *args)
 
u8format_tcp_bt (u8 *s, va_list *args)
 

Function Documentation

◆ bt_alloc_sample()

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

Definition at line 58 of file tcp_bt.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bt_fix_overlapped()

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 195 of file tcp_bt.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bt_free_sample()

static void bt_free_sample ( tcp_byte_tracker_t bt,
tcp_bt_sample_t bts 
)
static

Definition at line 72 of file tcp_bt.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bt_get_sample()

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

Definition at line 24 of file tcp_bt.c.

+ Here is the caller graph for this function:

◆ bt_lookup_seq()

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

Definition at line 138 of file tcp_bt.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bt_merge_sample()

static tcp_bt_sample_t* bt_merge_sample ( tcp_byte_tracker_t bt,
tcp_bt_sample_t prev,
tcp_bt_sample_t cur 
)
static

Definition at line 126 of file tcp_bt.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bt_next_sample()

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

Definition at line 32 of file tcp_bt.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bt_prev_sample()

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

Definition at line 38 of file tcp_bt.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bt_sample_index()

static u32 bt_sample_index ( tcp_byte_tracker_t bt,
tcp_bt_sample_t bts 
)
static

Definition at line 44 of file tcp_bt.c.

+ Here is the caller graph for this function:

◆ bt_seq_lt()

static int bt_seq_lt ( u32  a,
u32  b 
)
inlinestatic

Definition at line 52 of file tcp_bt.c.

+ Here is the caller graph for this function:

◆ bt_split_sample()

static tcp_bt_sample_t* bt_split_sample ( tcp_byte_tracker_t bt,
tcp_bt_sample_t bts,
u32  seq 
)
static

Definition at line 97 of file tcp_bt.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bt_update_sample()

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

Definition at line 186 of file tcp_bt.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ format_tcp_bt()

u8* format_tcp_bt ( u8 s,
va_list *  args 
)

Definition at line 689 of file tcp_bt.c.

+ Here is the call graph for this function:

◆ format_tcp_bt_sample()

u8* format_tcp_bt_sample ( u8 s,
va_list *  args 
)

Definition at line 676 of file tcp_bt.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ tcp_bt_alloc_tx_sample()

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

Definition at line 271 of file tcp_bt.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ tcp_bt_check_app_limited()

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 286 of file tcp_bt.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ tcp_bt_cleanup()

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 652 of file tcp_bt.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ tcp_bt_flush_samples()

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 627 of file tcp_bt.c.

+ Here is the call graph for this function:

◆ tcp_bt_init()

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 663 of file tcp_bt.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ tcp_bt_is_sane()

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 215 of file tcp_bt.c.

+ Here is the call graph for this function:

◆ tcp_bt_sample_delivery_rate()

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 592 of file tcp_bt.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ tcp_bt_sample_to_rate_sample()

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 472 of file tcp_bt.c.

+ Here is the caller graph for this function:

◆ tcp_bt_track_rxt()

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 337 of file tcp_bt.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ tcp_bt_track_tx()

void tcp_bt_track_tx ( tcp_connection_t tc,
u32  len 
)

Track a tcp tx burst.

Parameters
tctcp connection

Definition at line 301 of file tcp_bt.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ tcp_bt_walk_samples()

static void tcp_bt_walk_samples ( tcp_connection_t tc,
tcp_rate_sample_t rs 
)
static

Definition at line 492 of file tcp_bt.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ tcp_bt_walk_samples_ooo()

static void tcp_bt_walk_samples_ooo ( tcp_connection_t tc,
tcp_rate_sample_t rs 
)
static

Definition at line 511 of file tcp_bt.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function: