6b13f685e
김민수
BSP 최초 추가
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
|
#ifndef _DCCP_CCID2_H_
#define _DCCP_CCID2_H_
#include <linux/timer.h>
#include <linux/types.h>
#include "../ccid.h"
#include "../dccp.h"
#define ccid2_time_stamp tcp_time_stamp
#define NUMDUPACK 3
struct ccid2_seq {
u64 ccid2s_seq;
u32 ccid2s_sent;
int ccid2s_acked;
struct ccid2_seq *ccid2s_prev;
struct ccid2_seq *ccid2s_next;
};
#define CCID2_SEQBUF_LEN 1024
#define CCID2_SEQBUF_MAX 128
#define CCID2_WIN_CHANGE_FACTOR 5
struct ccid2_hc_tx_sock {
u32 tx_cwnd;
u32 tx_ssthresh;
u32 tx_pipe;
u32 tx_packets_acked;
struct ccid2_seq *tx_seqbuf[CCID2_SEQBUF_MAX];
int tx_seqbufc;
struct ccid2_seq *tx_seqh;
struct ccid2_seq *tx_seqt;
u32 tx_srtt,
tx_mdev,
tx_mdev_max,
tx_rttvar,
tx_rto;
u64 tx_rtt_seq:48;
struct timer_list tx_rtotimer;
u32 tx_cwnd_used,
tx_expected_wnd,
tx_cwnd_stamp,
tx_lsndtime;
u64 tx_rpseq;
int tx_rpdupack;
u32 tx_last_cong;
u64 tx_high_ack;
struct list_head tx_av_chunks;
};
static inline bool ccid2_cwnd_network_limited(struct ccid2_hc_tx_sock *hc)
{
return hc->tx_pipe >= hc->tx_cwnd;
}
static inline u32 rfc3390_bytes_to_packets(const u32 smss)
{
return smss <= 1095 ? 4 : (smss > 2190 ? 2 : 3);
}
struct ccid2_hc_rx_sock {
u32 rx_num_data_pkts;
};
static inline struct ccid2_hc_tx_sock *ccid2_hc_tx_sk(const struct sock *sk)
{
return ccid_priv(dccp_sk(sk)->dccps_hc_tx_ccid);
}
static inline struct ccid2_hc_rx_sock *ccid2_hc_rx_sk(const struct sock *sk)
{
return ccid_priv(dccp_sk(sk)->dccps_hc_rx_ccid);
}
#endif /* _DCCP_CCID2_H_ */
|