17752237e9f07b316f81aebdc43f0d7c9a4ba0acfStephen Hemminger/* 27752237e9f07b316f81aebdc43f0d7c9a4ba0acfStephen Hemminger * TCP Vegas congestion control interface 37752237e9f07b316f81aebdc43f0d7c9a4ba0acfStephen Hemminger */ 47752237e9f07b316f81aebdc43f0d7c9a4ba0acfStephen Hemminger#ifndef __TCP_VEGAS_H 57752237e9f07b316f81aebdc43f0d7c9a4ba0acfStephen Hemminger#define __TCP_VEGAS_H 1 67752237e9f07b316f81aebdc43f0d7c9a4ba0acfStephen Hemminger 77752237e9f07b316f81aebdc43f0d7c9a4ba0acfStephen Hemminger/* Vegas variables */ 87752237e9f07b316f81aebdc43f0d7c9a4ba0acfStephen Hemmingerstruct vegas { 97752237e9f07b316f81aebdc43f0d7c9a4ba0acfStephen Hemminger u32 beg_snd_nxt; /* right edge during last RTT */ 107752237e9f07b316f81aebdc43f0d7c9a4ba0acfStephen Hemminger u32 beg_snd_una; /* left edge during last RTT */ 117752237e9f07b316f81aebdc43f0d7c9a4ba0acfStephen Hemminger u32 beg_snd_cwnd; /* saves the size of the cwnd */ 127752237e9f07b316f81aebdc43f0d7c9a4ba0acfStephen Hemminger u8 doing_vegas_now;/* if true, do vegas for this RTT */ 137752237e9f07b316f81aebdc43f0d7c9a4ba0acfStephen Hemminger u16 cntRTT; /* # of RTTs measured within last RTT */ 147752237e9f07b316f81aebdc43f0d7c9a4ba0acfStephen Hemminger u32 minRTT; /* min of RTTs measured within last RTT (in usec) */ 157752237e9f07b316f81aebdc43f0d7c9a4ba0acfStephen Hemminger u32 baseRTT; /* the min of all Vegas RTT measurements seen (in usec) */ 167752237e9f07b316f81aebdc43f0d7c9a4ba0acfStephen Hemminger}; 177752237e9f07b316f81aebdc43f0d7c9a4ba0acfStephen Hemminger 187e58487b8cf5871d2a0fa03892dbd4b3a620d07fJoe Perchesvoid tcp_vegas_init(struct sock *sk); 197e58487b8cf5871d2a0fa03892dbd4b3a620d07fJoe Perchesvoid tcp_vegas_state(struct sock *sk, u8 ca_state); 207e58487b8cf5871d2a0fa03892dbd4b3a620d07fJoe Perchesvoid tcp_vegas_pkts_acked(struct sock *sk, u32 cnt, s32 rtt_us); 217e58487b8cf5871d2a0fa03892dbd4b3a620d07fJoe Perchesvoid tcp_vegas_cwnd_event(struct sock *sk, enum tcp_ca_event event); 227e58487b8cf5871d2a0fa03892dbd4b3a620d07fJoe Perchesvoid tcp_vegas_get_info(struct sock *sk, u32 ext, struct sk_buff *skb); 237752237e9f07b316f81aebdc43f0d7c9a4ba0acfStephen Hemminger 247752237e9f07b316f81aebdc43f0d7c9a4ba0acfStephen Hemminger#endif /* __TCP_VEGAS_H */ 25