diff options
Diffstat (limited to 'net/dccp/dccp.h')
-rw-r--r-- | net/dccp/dccp.h | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/net/dccp/dccp.h b/net/dccp/dccp.h index f44d492d3b74..32617e0576cb 100644 --- a/net/dccp/dccp.h +++ b/net/dccp/dccp.h | |||
@@ -153,6 +153,21 @@ static inline u64 max48(const u64 seq1, const u64 seq2) | |||
153 | return after48(seq1, seq2) ? seq1 : seq2; | 153 | return after48(seq1, seq2) ? seq1 : seq2; |
154 | } | 154 | } |
155 | 155 | ||
156 | /** | ||
157 | * dccp_loss_free - Evaluates condition for data loss from RFC 4340, 7.7.1 | ||
158 | * @s1: start sequence number | ||
159 | * @s2: end sequence number | ||
160 | * @ndp: NDP count on packet with sequence number @s2 | ||
161 | * Returns true if the sequence range s1...s2 has no data loss. | ||
162 | */ | ||
163 | static inline bool dccp_loss_free(const u64 s1, const u64 s2, const u64 ndp) | ||
164 | { | ||
165 | s64 delta = dccp_delta_seqno(s1, s2); | ||
166 | |||
167 | BUG_TRAP(delta >= 0); | ||
168 | return (u64)delta <= ndp + 1; | ||
169 | } | ||
170 | |||
156 | enum { | 171 | enum { |
157 | DCCP_MIB_NUM = 0, | 172 | DCCP_MIB_NUM = 0, |
158 | DCCP_MIB_ACTIVEOPENS, /* ActiveOpens */ | 173 | DCCP_MIB_ACTIVEOPENS, /* ActiveOpens */ |
@@ -262,7 +277,7 @@ extern int dccp_rcv_established(struct sock *sk, struct sk_buff *skb, | |||
262 | const struct dccp_hdr *dh, const unsigned len); | 277 | const struct dccp_hdr *dh, const unsigned len); |
263 | 278 | ||
264 | extern int dccp_init_sock(struct sock *sk, const __u8 ctl_sock_initialized); | 279 | extern int dccp_init_sock(struct sock *sk, const __u8 ctl_sock_initialized); |
265 | extern int dccp_destroy_sock(struct sock *sk); | 280 | extern void dccp_destroy_sock(struct sock *sk); |
266 | 281 | ||
267 | extern void dccp_close(struct sock *sk, long timeout); | 282 | extern void dccp_close(struct sock *sk, long timeout); |
268 | extern struct sk_buff *dccp_make_response(struct sock *sk, | 283 | extern struct sk_buff *dccp_make_response(struct sock *sk, |