diff options
Diffstat (limited to 'include/linux/tcp.h')
| -rw-r--r-- | include/linux/tcp.h | 49 |
1 files changed, 10 insertions, 39 deletions
diff --git a/include/linux/tcp.h b/include/linux/tcp.h index 97a7c9e03df5..3ea75dd6640a 100644 --- a/include/linux/tcp.h +++ b/include/linux/tcp.h | |||
| @@ -203,13 +203,6 @@ struct tcp_sack_block { | |||
| 203 | __u32 end_seq; | 203 | __u32 end_seq; |
| 204 | }; | 204 | }; |
| 205 | 205 | ||
| 206 | enum tcp_congestion_algo { | ||
| 207 | TCP_RENO=0, | ||
| 208 | TCP_VEGAS, | ||
| 209 | TCP_WESTWOOD, | ||
| 210 | TCP_BIC, | ||
| 211 | }; | ||
| 212 | |||
| 213 | struct tcp_options_received { | 206 | struct tcp_options_received { |
| 214 | /* PAWS/RTTM data */ | 207 | /* PAWS/RTTM data */ |
| 215 | long ts_recent_stamp;/* Time we stored ts_recent (for aging) */ | 208 | long ts_recent_stamp;/* Time we stored ts_recent (for aging) */ |
| @@ -305,7 +298,7 @@ struct tcp_sock { | |||
| 305 | __u8 reordering; /* Packet reordering metric. */ | 298 | __u8 reordering; /* Packet reordering metric. */ |
| 306 | __u8 frto_counter; /* Number of new acks after RTO */ | 299 | __u8 frto_counter; /* Number of new acks after RTO */ |
| 307 | 300 | ||
| 308 | __u8 adv_cong; /* Using Vegas, Westwood, or BIC */ | 301 | __u8 unused; |
| 309 | __u8 defer_accept; /* User waits for some data after accept() */ | 302 | __u8 defer_accept; /* User waits for some data after accept() */ |
| 310 | 303 | ||
| 311 | /* RTT measurement */ | 304 | /* RTT measurement */ |
| @@ -401,37 +394,10 @@ struct tcp_sock { | |||
| 401 | __u32 time; | 394 | __u32 time; |
| 402 | } rcvq_space; | 395 | } rcvq_space; |
| 403 | 396 | ||
| 404 | /* TCP Westwood structure */ | 397 | /* Pluggable TCP congestion control hook */ |
| 405 | struct { | 398 | struct tcp_congestion_ops *ca_ops; |
| 406 | __u32 bw_ns_est; /* first bandwidth estimation..not too smoothed 8) */ | 399 | u32 ca_priv[16]; |
| 407 | __u32 bw_est; /* bandwidth estimate */ | 400 | #define TCP_CA_PRIV_SIZE (16*sizeof(u32)) |
| 408 | __u32 rtt_win_sx; /* here starts a new evaluation... */ | ||
| 409 | __u32 bk; | ||
| 410 | __u32 snd_una; /* used for evaluating the number of acked bytes */ | ||
| 411 | __u32 cumul_ack; | ||
| 412 | __u32 accounted; | ||
| 413 | __u32 rtt; | ||
| 414 | __u32 rtt_min; /* minimum observed RTT */ | ||
| 415 | } westwood; | ||
| 416 | |||
| 417 | /* Vegas variables */ | ||
| 418 | struct { | ||
| 419 | __u32 beg_snd_nxt; /* right edge during last RTT */ | ||
| 420 | __u32 beg_snd_una; /* left edge during last RTT */ | ||
| 421 | __u32 beg_snd_cwnd; /* saves the size of the cwnd */ | ||
| 422 | __u8 doing_vegas_now;/* if true, do vegas for this RTT */ | ||
| 423 | __u16 cntRTT; /* # of RTTs measured within last RTT */ | ||
| 424 | __u32 minRTT; /* min of RTTs measured within last RTT (in usec) */ | ||
| 425 | __u32 baseRTT; /* the min of all Vegas RTT measurements seen (in usec) */ | ||
| 426 | } vegas; | ||
| 427 | |||
| 428 | /* BI TCP Parameters */ | ||
| 429 | struct { | ||
| 430 | __u32 cnt; /* increase cwnd by 1 after this number of ACKs */ | ||
| 431 | __u32 last_max_cwnd; /* last maximium snd_cwnd */ | ||
| 432 | __u32 last_cwnd; /* the last snd_cwnd */ | ||
| 433 | __u32 last_stamp; /* time when updated last_cwnd */ | ||
| 434 | } bictcp; | ||
| 435 | }; | 401 | }; |
| 436 | 402 | ||
| 437 | static inline struct tcp_sock *tcp_sk(const struct sock *sk) | 403 | static inline struct tcp_sock *tcp_sk(const struct sock *sk) |
| @@ -439,6 +405,11 @@ static inline struct tcp_sock *tcp_sk(const struct sock *sk) | |||
| 439 | return (struct tcp_sock *)sk; | 405 | return (struct tcp_sock *)sk; |
| 440 | } | 406 | } |
| 441 | 407 | ||
| 408 | static inline void *tcp_ca(const struct tcp_sock *tp) | ||
| 409 | { | ||
| 410 | return (void *) tp->ca_priv; | ||
| 411 | } | ||
| 412 | |||
| 442 | #endif | 413 | #endif |
| 443 | 414 | ||
| 444 | #endif /* _LINUX_TCP_H */ | 415 | #endif /* _LINUX_TCP_H */ |
