]> git.karo-electronics.de Git - karo-tx-linux.git/blob - net/ipv4/tcp_vegas.h
Merge branch 'for-linus' of git://git.kernel.dk/linux-block
[karo-tx-linux.git] / net / ipv4 / tcp_vegas.h
1 /*
2  * TCP Vegas congestion control interface
3  */
4 #ifndef __TCP_VEGAS_H
5 #define __TCP_VEGAS_H 1
6
7 /* Vegas variables */
8 struct vegas {
9         u32     beg_snd_nxt;    /* right edge during last RTT */
10         u32     beg_snd_una;    /* left edge  during last RTT */
11         u32     beg_snd_cwnd;   /* saves the size of the cwnd */
12         u8      doing_vegas_now;/* if true, do vegas for this RTT */
13         u16     cntRTT;         /* # of RTTs measured within last RTT */
14         u32     minRTT;         /* min of RTTs measured within last RTT (in usec) */
15         u32     baseRTT;        /* the min of all Vegas RTT measurements seen (in usec) */
16 };
17
18 extern void tcp_vegas_init(struct sock *sk);
19 extern void tcp_vegas_state(struct sock *sk, u8 ca_state);
20 extern void tcp_vegas_pkts_acked(struct sock *sk, u32 cnt, s32 rtt_us);
21 extern void tcp_vegas_cwnd_event(struct sock *sk, enum tcp_ca_event event);
22 extern void tcp_vegas_get_info(struct sock *sk, u32 ext, struct sk_buff *skb);
23
24 #endif  /* __TCP_VEGAS_H */