16 #ifndef SRC_VNET_TCP_TCP_CC_H_ 17 #define SRC_VNET_TCP_TCP_CC_H_ 24 tc->cc_algo->rcv_ack (tc, rs);
25 tc->tsecr_last_ack = tc->rcv_opts.tsecr;
32 tc->cc_algo->rcv_cong_ack (tc, ack_type, rs);
38 tc->cc_algo->congestion (tc);
44 tc->cc_algo->loss (tc);
50 tc->cc_algo->recovered (tc);
56 if (tc->cc_algo->undo_recovery)
57 tc->cc_algo->undo_recovery (tc);
63 if (tc->cc_algo->event)
64 tc->cc_algo->event (tc, evt);
70 if (tc->cc_algo->get_pacing_rate)
71 return tc->cc_algo->get_pacing_rate (tc);
77 return ((
f64) tc->cwnd / srtt);
83 return (
void *) tc->cc_data;
void newreno_rcv_cong_ack(tcp_connection_t *tc, tcp_cc_ack_t ack_type, tcp_rate_sample_t *rs)
struct _tcp_connection tcp_connection_t
static void tcp_cc_congestion(tcp_connection_t *tc)
#define TCP_TICK
TCP tick period (s)
enum _tcp_cc_ack_t tcp_cc_ack_t
void tcp_cc_algo_register(tcp_cc_algorithm_type_e type, const tcp_cc_algorithm_t *vft)
Register exiting cc algo type.
struct _tcp_cc_algorithm tcp_cc_algorithm_t
static void tcp_cc_recovered(tcp_connection_t *tc)
vl_api_fib_path_type_t type
tcp_cc_algorithm_t * tcp_cc_algo_get(tcp_cc_algorithm_type_e type)
static void tcp_cc_loss(tcp_connection_t *tc)
static u64 tcp_cc_get_pacing_rate(tcp_connection_t *tc)
static void tcp_cc_rcv_ack(tcp_connection_t *tc, tcp_rate_sample_t *rs)
static void tcp_cc_event(tcp_connection_t *tc, tcp_cc_event_t evt)
tcp_cc_algorithm_type_e tcp_cc_algo_new_type(const tcp_cc_algorithm_t *vft)
Register new cc algo type.
static void tcp_cc_undo_recovery(tcp_connection_t *tc)
static void * tcp_cc_data(tcp_connection_t *tc)
enum _tcp_cc_algorithm_type tcp_cc_algorithm_type_e
enum tcp_cc_event_ tcp_cc_event_t
static void tcp_cc_rcv_cong_ack(tcp_connection_t *tc, tcp_cc_ack_t ack_type, tcp_rate_sample_t *rs)