aboutsummaryrefslogtreecommitdiffstats
path: root/net/dccp
diff options
context:
space:
mode:
authorGerrit Renker <gerrit@erg.abdn.ac.uk>2006-12-09 21:24:11 -0500
committerDavid S. Miller <davem@sunset.davemloft.net>2006-12-11 17:34:56 -0500
commit85dcb1f78039cc55ccddd9622657a338b718aafe (patch)
tree66cf39fbb6c147a013588142ba5488fcd8e666d9 /net/dccp
parenta967241129f6dc1db92fee2c808f73a90f5f47a3 (diff)
[DCCP] ccid3: Reorder packet history header file
No code change at all. To make the header file easier to read, the following ordering is established among the declarations: * hist_new * hist_delete * hist_entry_new * hist_head * hist_find_entry * hist_add_entry * hist_entry_delete * hist_purge Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk> Acked-by: Ian McDonald <ian.mcdonald@jandi.co.nz> Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>
Diffstat (limited to 'net/dccp')
-rw-r--r--net/dccp/ccids/lib/packet_history.h127
1 files changed, 67 insertions, 60 deletions
diff --git a/net/dccp/ccids/lib/packet_history.h b/net/dccp/ccids/lib/packet_history.h
index 4198185c6d40..1f960c19ea1b 100644
--- a/net/dccp/ccids/lib/packet_history.h
+++ b/net/dccp/ccids/lib/packet_history.h
@@ -49,6 +49,9 @@
49#define TFRC_WIN_COUNT_PER_RTT 4 49#define TFRC_WIN_COUNT_PER_RTT 4
50#define TFRC_WIN_COUNT_LIMIT 16 50#define TFRC_WIN_COUNT_LIMIT 16
51 51
52/*
53 * Transmitter History data structures and declarations
54 */
52struct dccp_tx_hist_entry { 55struct dccp_tx_hist_entry {
53 struct list_head dccphtx_node; 56 struct list_head dccphtx_node;
54 u64 dccphtx_seqno:48, 57 u64 dccphtx_seqno:48,
@@ -57,34 +60,16 @@ struct dccp_tx_hist_entry {
57 struct timeval dccphtx_tstamp; 60 struct timeval dccphtx_tstamp;
58}; 61};
59 62
60struct dccp_rx_hist_entry {
61 struct list_head dccphrx_node;
62 u64 dccphrx_seqno:48,
63 dccphrx_ccval:4,
64 dccphrx_type:4;
65 u32 dccphrx_ndp; /* In fact it is from 8 to 24 bits */
66 struct timeval dccphrx_tstamp;
67};
68
69struct dccp_tx_hist { 63struct dccp_tx_hist {
70 struct kmem_cache *dccptxh_slab; 64 struct kmem_cache *dccptxh_slab;
71}; 65};
72 66
73extern struct dccp_tx_hist *dccp_tx_hist_new(const char *name); 67extern struct dccp_tx_hist *dccp_tx_hist_new(const char *name);
74extern void dccp_tx_hist_delete(struct dccp_tx_hist *hist); 68extern void dccp_tx_hist_delete(struct dccp_tx_hist *hist);
75
76struct dccp_rx_hist {
77 struct kmem_cache *dccprxh_slab;
78};
79
80extern struct dccp_rx_hist *dccp_rx_hist_new(const char *name);
81extern void dccp_rx_hist_delete(struct dccp_rx_hist *hist);
82extern struct dccp_rx_hist_entry *
83 dccp_rx_hist_find_data_packet(const struct list_head *list);
84 69
85static inline struct dccp_tx_hist_entry * 70static inline struct dccp_tx_hist_entry *
86 dccp_tx_hist_entry_new(struct dccp_tx_hist *hist, 71 dccp_tx_hist_entry_new(struct dccp_tx_hist *hist,
87 const gfp_t prio) 72 const gfp_t prio)
88{ 73{
89 struct dccp_tx_hist_entry *entry = kmem_cache_alloc(hist->dccptxh_slab, 74 struct dccp_tx_hist_entry *entry = kmem_cache_alloc(hist->dccptxh_slab,
90 prio); 75 prio);
@@ -95,18 +80,20 @@ static inline struct dccp_tx_hist_entry *
95 return entry; 80 return entry;
96} 81}
97 82
98static inline void dccp_tx_hist_entry_delete(struct dccp_tx_hist *hist, 83static inline struct dccp_tx_hist_entry *
99 struct dccp_tx_hist_entry *entry) 84 dccp_tx_hist_head(struct list_head *list)
100{ 85{
101 if (entry != NULL) 86 struct dccp_tx_hist_entry *head = NULL;
102 kmem_cache_free(hist->dccptxh_slab, entry); 87
88 if (!list_empty(list))
89 head = list_entry(list->next, struct dccp_tx_hist_entry,
90 dccphtx_node);
91 return head;
103} 92}
104 93
105extern struct dccp_tx_hist_entry * 94extern struct dccp_tx_hist_entry *
106 dccp_tx_hist_find_entry(const struct list_head *list, 95 dccp_tx_hist_find_entry(const struct list_head *list,
107 const u64 seq); 96 const u64 seq);
108extern int dccp_rx_hist_find_entry(const struct list_head *list, const u64 seq,
109 u8 *ccval);
110 97
111static inline void dccp_tx_hist_add_entry(struct list_head *list, 98static inline void dccp_tx_hist_add_entry(struct list_head *list,
112 struct dccp_tx_hist_entry *entry) 99 struct dccp_tx_hist_entry *entry)
@@ -114,30 +101,45 @@ static inline void dccp_tx_hist_add_entry(struct list_head *list,
114 list_add(&entry->dccphtx_node, list); 101 list_add(&entry->dccphtx_node, list);
115} 102}
116 103
104static inline void dccp_tx_hist_entry_delete(struct dccp_tx_hist *hist,
105 struct dccp_tx_hist_entry *entry)
106{
107 if (entry != NULL)
108 kmem_cache_free(hist->dccptxh_slab, entry);
109}
110
111extern void dccp_tx_hist_purge(struct dccp_tx_hist *hist,
112 struct list_head *list);
113
117extern void dccp_tx_hist_purge_older(struct dccp_tx_hist *hist, 114extern void dccp_tx_hist_purge_older(struct dccp_tx_hist *hist,
118 struct list_head *list, 115 struct list_head *list,
119 struct dccp_tx_hist_entry *next); 116 struct dccp_tx_hist_entry *next);
120 117
121extern void dccp_tx_hist_purge(struct dccp_tx_hist *hist, 118/*
122 struct list_head *list); 119 * Receiver History data structures and declarations
120 */
121struct dccp_rx_hist_entry {
122 struct list_head dccphrx_node;
123 u64 dccphrx_seqno:48,
124 dccphrx_ccval:4,
125 dccphrx_type:4;
126 u32 dccphrx_ndp; /* In fact it is from 8 to 24 bits */
127 struct timeval dccphrx_tstamp;
128};
123 129
124static inline struct dccp_tx_hist_entry * 130struct dccp_rx_hist {
125 dccp_tx_hist_head(struct list_head *list) 131 struct kmem_cache *dccprxh_slab;
126{ 132};
127 struct dccp_tx_hist_entry *head = NULL;
128 133
129 if (!list_empty(list)) 134extern struct dccp_rx_hist *dccp_rx_hist_new(const char *name);
130 head = list_entry(list->next, struct dccp_tx_hist_entry, 135extern void dccp_rx_hist_delete(struct dccp_rx_hist *hist);
131 dccphtx_node);
132 return head;
133}
134 136
135static inline struct dccp_rx_hist_entry * 137static inline struct dccp_rx_hist_entry *
136 dccp_rx_hist_entry_new(struct dccp_rx_hist *hist, 138 dccp_rx_hist_entry_new(struct dccp_rx_hist *hist,
137 const struct sock *sk, 139 const struct sock *sk,
138 const u32 ndp, 140 const u32 ndp,
139 const struct sk_buff *skb, 141 const struct sk_buff *skb,
140 const gfp_t prio) 142 const gfp_t prio)
141{ 143{
142 struct dccp_rx_hist_entry *entry = kmem_cache_alloc(hist->dccprxh_slab, 144 struct dccp_rx_hist_entry *entry = kmem_cache_alloc(hist->dccprxh_slab,
143 prio); 145 prio);
@@ -155,18 +157,8 @@ static inline struct dccp_rx_hist_entry *
155 return entry; 157 return entry;
156} 158}
157 159
158static inline void dccp_rx_hist_entry_delete(struct dccp_rx_hist *hist,
159 struct dccp_rx_hist_entry *entry)
160{
161 if (entry != NULL)
162 kmem_cache_free(hist->dccprxh_slab, entry);
163}
164
165extern void dccp_rx_hist_purge(struct dccp_rx_hist *hist,
166 struct list_head *list);
167
168static inline struct dccp_rx_hist_entry * 160static inline struct dccp_rx_hist_entry *
169 dccp_rx_hist_head(struct list_head *list) 161 dccp_rx_hist_head(struct list_head *list)
170{ 162{
171 struct dccp_rx_hist_entry *head = NULL; 163 struct dccp_rx_hist_entry *head = NULL;
172 164
@@ -176,6 +168,27 @@ static inline struct dccp_rx_hist_entry *
176 return head; 168 return head;
177} 169}
178 170
171extern int dccp_rx_hist_find_entry(const struct list_head *list, const u64 seq,
172 u8 *ccval);
173extern struct dccp_rx_hist_entry *
174 dccp_rx_hist_find_data_packet(const struct list_head *list);
175
176extern void dccp_rx_hist_add_packet(struct dccp_rx_hist *hist,
177 struct list_head *rx_list,
178 struct list_head *li_list,
179 struct dccp_rx_hist_entry *packet,
180 u64 nonloss_seqno);
181
182static inline void dccp_rx_hist_entry_delete(struct dccp_rx_hist *hist,
183 struct dccp_rx_hist_entry *entry)
184{
185 if (entry != NULL)
186 kmem_cache_free(hist->dccprxh_slab, entry);
187}
188
189extern void dccp_rx_hist_purge(struct dccp_rx_hist *hist,
190 struct list_head *list);
191
179static inline int 192static inline int
180 dccp_rx_hist_entry_data_packet(const struct dccp_rx_hist_entry *entry) 193 dccp_rx_hist_entry_data_packet(const struct dccp_rx_hist_entry *entry)
181{ 194{
@@ -183,12 +196,6 @@ static inline int
183 entry->dccphrx_type == DCCP_PKT_DATAACK; 196 entry->dccphrx_type == DCCP_PKT_DATAACK;
184} 197}
185 198
186extern void dccp_rx_hist_add_packet(struct dccp_rx_hist *hist,
187 struct list_head *rx_list,
188 struct list_head *li_list,
189 struct dccp_rx_hist_entry *packet,
190 u64 nonloss_seqno);
191
192extern u64 dccp_rx_hist_detect_loss(struct list_head *rx_list, 199extern u64 dccp_rx_hist_detect_loss(struct list_head *rx_list,
193 struct list_head *li_list, u8 *win_loss); 200 struct list_head *li_list, u8 *win_loss);
194 201