diff options
| author | Trond Myklebust <Trond.Myklebust@netapp.com> | 2006-03-23 23:44:19 -0500 |
|---|---|---|
| committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2006-03-23 23:44:19 -0500 |
| commit | 1ebbe2b20091d306453a5cf480a87e6cd28ae76f (patch) | |
| tree | f5cd7a0fa69b8b1938cb5a0faed2e7b0628072a5 /net/dccp/ccids/ccid2.h | |
| parent | ac58c9059da8886b5e8cde012a80266b18ca146e (diff) | |
| parent | 674a396c6d2ba0341ebdd7c1c9950f32f018e2dd (diff) | |
Merge branch 'linus'
Diffstat (limited to 'net/dccp/ccids/ccid2.h')
| -rw-r--r-- | net/dccp/ccids/ccid2.h | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/net/dccp/ccids/ccid2.h b/net/dccp/ccids/ccid2.h new file mode 100644 index 000000000000..451a87464fa5 --- /dev/null +++ b/net/dccp/ccids/ccid2.h | |||
| @@ -0,0 +1,85 @@ | |||
| 1 | /* | ||
| 2 | * net/dccp/ccids/ccid2.h | ||
| 3 | * | ||
| 4 | * Copyright (c) 2005 Andrea Bittau <a.bittau@cs.ucl.ac.uk> | ||
| 5 | * | ||
| 6 | * This program is free software; you can redistribute it and/or modify | ||
| 7 | * it under the terms of the GNU General Public License as published by | ||
| 8 | * the Free Software Foundation; either version 2 of the License, or | ||
| 9 | * (at your option) any later version. | ||
| 10 | * | ||
| 11 | * This program is distributed in the hope that it will be useful, | ||
| 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 14 | * GNU General Public License for more details. | ||
| 15 | * | ||
| 16 | * You should have received a copy of the GNU General Public License | ||
| 17 | * along with this program; if not, write to the Free Software | ||
| 18 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
| 19 | */ | ||
| 20 | #ifndef _DCCP_CCID2_H_ | ||
| 21 | #define _DCCP_CCID2_H_ | ||
| 22 | |||
| 23 | #include <linux/dccp.h> | ||
| 24 | #include <linux/timer.h> | ||
| 25 | #include <linux/types.h> | ||
| 26 | #include "../ccid.h" | ||
| 27 | |||
| 28 | struct sock; | ||
| 29 | |||
| 30 | struct ccid2_seq { | ||
| 31 | u64 ccid2s_seq; | ||
| 32 | unsigned long ccid2s_sent; | ||
| 33 | int ccid2s_acked; | ||
| 34 | struct ccid2_seq *ccid2s_prev; | ||
| 35 | struct ccid2_seq *ccid2s_next; | ||
| 36 | }; | ||
| 37 | |||
| 38 | /** struct ccid2_hc_tx_sock - CCID2 TX half connection | ||
| 39 | * | ||
| 40 | * @ccid2hctx_ssacks - ACKs recv in slow start | ||
| 41 | * @ccid2hctx_acks - ACKS recv in AI phase | ||
| 42 | * @ccid2hctx_sent - packets sent in this window | ||
| 43 | * @ccid2hctx_lastrtt -time RTT was last measured | ||
| 44 | * @ccid2hctx_arsent - packets sent [ack ratio] | ||
| 45 | * @ccid2hctx_ackloss - ack was lost in this win | ||
| 46 | * @ccid2hctx_rpseq - last consecutive seqno | ||
| 47 | * @ccid2hctx_rpdupack - dupacks since rpseq | ||
| 48 | */ | ||
| 49 | struct ccid2_hc_tx_sock { | ||
| 50 | int ccid2hctx_cwnd; | ||
| 51 | int ccid2hctx_ssacks; | ||
| 52 | int ccid2hctx_acks; | ||
| 53 | int ccid2hctx_ssthresh; | ||
| 54 | int ccid2hctx_pipe; | ||
| 55 | int ccid2hctx_numdupack; | ||
| 56 | struct ccid2_seq *ccid2hctx_seqbuf; | ||
| 57 | struct ccid2_seq *ccid2hctx_seqh; | ||
| 58 | struct ccid2_seq *ccid2hctx_seqt; | ||
| 59 | long ccid2hctx_rto; | ||
| 60 | long ccid2hctx_srtt; | ||
| 61 | long ccid2hctx_rttvar; | ||
| 62 | int ccid2hctx_sent; | ||
| 63 | unsigned long ccid2hctx_lastrtt; | ||
| 64 | struct timer_list ccid2hctx_rtotimer; | ||
| 65 | unsigned long ccid2hctx_arsent; | ||
| 66 | int ccid2hctx_ackloss; | ||
| 67 | u64 ccid2hctx_rpseq; | ||
| 68 | int ccid2hctx_rpdupack; | ||
| 69 | int ccid2hctx_sendwait; | ||
| 70 | }; | ||
| 71 | |||
| 72 | struct ccid2_hc_rx_sock { | ||
| 73 | int ccid2hcrx_data; | ||
| 74 | }; | ||
| 75 | |||
| 76 | static inline struct ccid2_hc_tx_sock *ccid2_hc_tx_sk(const struct sock *sk) | ||
| 77 | { | ||
| 78 | return ccid_priv(dccp_sk(sk)->dccps_hc_tx_ccid); | ||
| 79 | } | ||
| 80 | |||
| 81 | static inline struct ccid2_hc_rx_sock *ccid2_hc_rx_sk(const struct sock *sk) | ||
| 82 | { | ||
| 83 | return ccid_priv(dccp_sk(sk)->dccps_hc_rx_ccid); | ||
| 84 | } | ||
| 85 | #endif /* _DCCP_CCID2_H_ */ | ||
