aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGerrit Renker <gerrit@erg.abdn.ac.uk>2007-12-12 11:03:01 -0500
committerDavid S. Miller <davem@davemloft.net>2008-01-28 17:57:19 -0500
commitde0d411cb8ea51175f52d935faead5c542b6e007 (patch)
treed26398b1da10d52a4138728ff11e955d9d1fba04
parentdb64196038e79b0460245d558e54ff4a21a52d1f (diff)
[TFRC]: CCID3 (and CCID4) needs to access these inlines
This moves two inlines back to packet_history.h: these are not private to packet_history.c, but are needed by CCID3/4 to detect whether a new loss is indicated, or whether a loss is already pending. Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--net/dccp/ccids/lib/packet_history.c26
-rw-r--r--net/dccp/ccids/lib/packet_history.h35
2 files changed, 31 insertions, 30 deletions
diff --git a/net/dccp/ccids/lib/packet_history.c b/net/dccp/ccids/lib/packet_history.c
index 5b10a1ecf138..20af1a693427 100644
--- a/net/dccp/ccids/lib/packet_history.c
+++ b/net/dccp/ccids/lib/packet_history.c
@@ -191,32 +191,6 @@ int tfrc_rx_hist_duplicate(struct tfrc_rx_hist *h, struct sk_buff *skb)
191} 191}
192EXPORT_SYMBOL_GPL(tfrc_rx_hist_duplicate); 192EXPORT_SYMBOL_GPL(tfrc_rx_hist_duplicate);
193 193
194/* initialise loss detection and disable RTT sampling */
195static inline void tfrc_rx_hist_loss_indicated(struct tfrc_rx_hist *h)
196{
197 h->loss_count = 1;
198}
199
200/* indicate whether previously a packet was detected missing */
201static inline int tfrc_rx_hist_loss_pending(const struct tfrc_rx_hist *h)
202{
203 return h->loss_count;
204}
205
206/* any data packets missing between last reception and skb ? */
207int tfrc_rx_hist_new_loss_indicated(struct tfrc_rx_hist *h,
208 const struct sk_buff *skb, u32 ndp)
209{
210 int delta = dccp_delta_seqno(tfrc_rx_hist_last_rcv(h)->tfrchrx_seqno,
211 DCCP_SKB_CB(skb)->dccpd_seq);
212
213 if (delta > 1 && ndp < delta)
214 tfrc_rx_hist_loss_indicated(h);
215
216 return tfrc_rx_hist_loss_pending(h);
217}
218EXPORT_SYMBOL_GPL(tfrc_rx_hist_new_loss_indicated);
219
220static void tfrc_rx_hist_swap(struct tfrc_rx_hist *h, const u8 a, const u8 b) 194static void tfrc_rx_hist_swap(struct tfrc_rx_hist *h, const u8 a, const u8 b)
221{ 195{
222 const u8 idx_a = tfrc_rx_hist_index(h, a), 196 const u8 idx_a = tfrc_rx_hist_index(h, a),
diff --git a/net/dccp/ccids/lib/packet_history.h b/net/dccp/ccids/lib/packet_history.h
index 24edd8df54b9..c7eeda49cb20 100644
--- a/net/dccp/ccids/lib/packet_history.h
+++ b/net/dccp/ccids/lib/packet_history.h
@@ -118,16 +118,43 @@ static inline struct tfrc_rx_hist_entry *
118 return h->ring[h->loss_start]; 118 return h->ring[h->loss_start];
119} 119}
120 120
121/* initialise loss detection and disable RTT sampling */
122static inline void tfrc_rx_hist_loss_indicated(struct tfrc_rx_hist *h)
123{
124 h->loss_count = 1;
125}
126
127/* indicate whether previously a packet was detected missing */
128static inline int tfrc_rx_hist_loss_pending(const struct tfrc_rx_hist *h)
129{
130 return h->loss_count;
131}
132
133/* any data packets missing between last reception and skb ? */
134static inline int tfrc_rx_hist_new_loss_indicated(struct tfrc_rx_hist *h,
135 const struct sk_buff *skb,
136 u32 ndp)
137{
138 int delta = dccp_delta_seqno(tfrc_rx_hist_last_rcv(h)->tfrchrx_seqno,
139 DCCP_SKB_CB(skb)->dccpd_seq);
140
141 if (delta > 1 && ndp < delta)
142 tfrc_rx_hist_loss_indicated(h);
143
144 return tfrc_rx_hist_loss_pending(h);
145}
146
121extern void tfrc_rx_hist_add_packet(struct tfrc_rx_hist *h, 147extern void tfrc_rx_hist_add_packet(struct tfrc_rx_hist *h,
122 const struct sk_buff *skb, const u32 ndp); 148 const struct sk_buff *skb, const u32 ndp);
123 149
124extern int tfrc_rx_hist_duplicate(struct tfrc_rx_hist *h, struct sk_buff *skb); 150extern int tfrc_rx_hist_duplicate(struct tfrc_rx_hist *h, struct sk_buff *skb);
125extern int tfrc_rx_hist_new_loss_indicated(struct tfrc_rx_hist *h, 151
126 const struct sk_buff *skb, u32 ndp);
127struct tfrc_loss_hist; 152struct tfrc_loss_hist;
128extern int tfrc_rx_handle_loss(struct tfrc_rx_hist *, struct tfrc_loss_hist *, 153extern int tfrc_rx_handle_loss(struct tfrc_rx_hist *h,
154 struct tfrc_loss_hist *lh,
129 struct sk_buff *skb, u32 ndp, 155 struct sk_buff *skb, u32 ndp,
130 u32 (*first_li)(struct sock *), struct sock *); 156 u32 (*first_li)(struct sock *sk),
157 struct sock *sk);
131extern u32 tfrc_rx_hist_sample_rtt(struct tfrc_rx_hist *h, 158extern u32 tfrc_rx_hist_sample_rtt(struct tfrc_rx_hist *h,
132 const struct sk_buff *skb); 159 const struct sk_buff *skb);
133extern int tfrc_rx_hist_alloc(struct tfrc_rx_hist *h); 160extern int tfrc_rx_hist_alloc(struct tfrc_rx_hist *h);