aboutsummaryrefslogtreecommitdiffstats
path: root/net/dccp
diff options
context:
space:
mode:
Diffstat (limited to 'net/dccp')
-rw-r--r--net/dccp/ackvec.h21
-rw-r--r--net/dccp/ccid.h18
-rw-r--r--net/dccp/ccids/lib/loss_interval.h8
-rw-r--r--net/dccp/ccids/lib/packet_history.h25
-rw-r--r--net/dccp/ccids/lib/tfrc.h22
-rw-r--r--net/dccp/dccp.h186
-rw-r--r--net/dccp/feat.h26
7 files changed, 148 insertions, 158 deletions
diff --git a/net/dccp/ackvec.h b/net/dccp/ackvec.h
index a269aa7f7923..3284bfa988c0 100644
--- a/net/dccp/ackvec.h
+++ b/net/dccp/ackvec.h
@@ -101,16 +101,16 @@ struct dccp_ackvec_record {
101 u8 avr_ack_nonce:1; 101 u8 avr_ack_nonce:1;
102}; 102};
103 103
104extern int dccp_ackvec_init(void); 104int dccp_ackvec_init(void);
105extern void dccp_ackvec_exit(void); 105void dccp_ackvec_exit(void);
106 106
107extern struct dccp_ackvec *dccp_ackvec_alloc(const gfp_t priority); 107struct dccp_ackvec *dccp_ackvec_alloc(const gfp_t priority);
108extern void dccp_ackvec_free(struct dccp_ackvec *av); 108void dccp_ackvec_free(struct dccp_ackvec *av);
109 109
110extern void dccp_ackvec_input(struct dccp_ackvec *av, struct sk_buff *skb); 110void dccp_ackvec_input(struct dccp_ackvec *av, struct sk_buff *skb);
111extern int dccp_ackvec_update_records(struct dccp_ackvec *av, u64 seq, u8 sum); 111int dccp_ackvec_update_records(struct dccp_ackvec *av, u64 seq, u8 sum);
112extern void dccp_ackvec_clear_state(struct dccp_ackvec *av, const u64 ackno); 112void dccp_ackvec_clear_state(struct dccp_ackvec *av, const u64 ackno);
113extern u16 dccp_ackvec_buflen(const struct dccp_ackvec *av); 113u16 dccp_ackvec_buflen(const struct dccp_ackvec *av);
114 114
115static inline bool dccp_ackvec_is_empty(const struct dccp_ackvec *av) 115static inline bool dccp_ackvec_is_empty(const struct dccp_ackvec *av)
116{ 116{
@@ -133,7 +133,6 @@ struct dccp_ackvec_parsed {
133 struct list_head node; 133 struct list_head node;
134}; 134};
135 135
136extern int dccp_ackvec_parsed_add(struct list_head *head, 136int dccp_ackvec_parsed_add(struct list_head *head, u8 *vec, u8 len, u8 nonce);
137 u8 *vec, u8 len, u8 nonce); 137void dccp_ackvec_parsed_cleanup(struct list_head *parsed_chunks);
138extern void dccp_ackvec_parsed_cleanup(struct list_head *parsed_chunks);
139#endif /* _ACKVEC_H */ 138#endif /* _ACKVEC_H */
diff --git a/net/dccp/ccid.h b/net/dccp/ccid.h
index fb85d371a8de..6eb837a47b5c 100644
--- a/net/dccp/ccid.h
+++ b/net/dccp/ccid.h
@@ -93,8 +93,8 @@ extern struct ccid_operations ccid2_ops;
93extern struct ccid_operations ccid3_ops; 93extern struct ccid_operations ccid3_ops;
94#endif 94#endif
95 95
96extern int ccid_initialize_builtins(void); 96int ccid_initialize_builtins(void);
97extern void ccid_cleanup_builtins(void); 97void ccid_cleanup_builtins(void);
98 98
99struct ccid { 99struct ccid {
100 struct ccid_operations *ccid_ops; 100 struct ccid_operations *ccid_ops;
@@ -106,12 +106,12 @@ static inline void *ccid_priv(const struct ccid *ccid)
106 return (void *)ccid->ccid_priv; 106 return (void *)ccid->ccid_priv;
107} 107}
108 108
109extern bool ccid_support_check(u8 const *ccid_array, u8 array_len); 109bool ccid_support_check(u8 const *ccid_array, u8 array_len);
110extern int ccid_get_builtin_ccids(u8 **ccid_array, u8 *array_len); 110int ccid_get_builtin_ccids(u8 **ccid_array, u8 *array_len);
111extern int ccid_getsockopt_builtin_ccids(struct sock *sk, int len, 111int ccid_getsockopt_builtin_ccids(struct sock *sk, int len,
112 char __user *, int __user *); 112 char __user *, int __user *);
113 113
114extern struct ccid *ccid_new(const u8 id, struct sock *sk, bool rx); 114struct ccid *ccid_new(const u8 id, struct sock *sk, bool rx);
115 115
116static inline int ccid_get_current_rx_ccid(struct dccp_sock *dp) 116static inline int ccid_get_current_rx_ccid(struct dccp_sock *dp)
117{ 117{
@@ -131,8 +131,8 @@ static inline int ccid_get_current_tx_ccid(struct dccp_sock *dp)
131 return ccid->ccid_ops->ccid_id; 131 return ccid->ccid_ops->ccid_id;
132} 132}
133 133
134extern void ccid_hc_rx_delete(struct ccid *ccid, struct sock *sk); 134void ccid_hc_rx_delete(struct ccid *ccid, struct sock *sk);
135extern void ccid_hc_tx_delete(struct ccid *ccid, struct sock *sk); 135void ccid_hc_tx_delete(struct ccid *ccid, struct sock *sk);
136 136
137/* 137/*
138 * Congestion control of queued data packets via CCID decision. 138 * Congestion control of queued data packets via CCID decision.
diff --git a/net/dccp/ccids/lib/loss_interval.h b/net/dccp/ccids/lib/loss_interval.h
index d1d2f5383b7d..57f631a86ccd 100644
--- a/net/dccp/ccids/lib/loss_interval.h
+++ b/net/dccp/ccids/lib/loss_interval.h
@@ -65,9 +65,9 @@ static inline u8 tfrc_lh_length(struct tfrc_loss_hist *lh)
65 65
66struct tfrc_rx_hist; 66struct tfrc_rx_hist;
67 67
68extern int tfrc_lh_interval_add(struct tfrc_loss_hist *, struct tfrc_rx_hist *, 68int tfrc_lh_interval_add(struct tfrc_loss_hist *, struct tfrc_rx_hist *,
69 u32 (*first_li)(struct sock *), struct sock *); 69 u32 (*first_li)(struct sock *), struct sock *);
70extern u8 tfrc_lh_update_i_mean(struct tfrc_loss_hist *lh, struct sk_buff *); 70u8 tfrc_lh_update_i_mean(struct tfrc_loss_hist *lh, struct sk_buff *);
71extern void tfrc_lh_cleanup(struct tfrc_loss_hist *lh); 71void tfrc_lh_cleanup(struct tfrc_loss_hist *lh);
72 72
73#endif /* _DCCP_LI_HIST_ */ 73#endif /* _DCCP_LI_HIST_ */
diff --git a/net/dccp/ccids/lib/packet_history.h b/net/dccp/ccids/lib/packet_history.h
index 7ee4a9d9d335..ee362b0b630d 100644
--- a/net/dccp/ccids/lib/packet_history.h
+++ b/net/dccp/ccids/lib/packet_history.h
@@ -60,8 +60,8 @@ static inline struct tfrc_tx_hist_entry *
60 return head; 60 return head;
61} 61}
62 62
63extern int tfrc_tx_hist_add(struct tfrc_tx_hist_entry **headp, u64 seqno); 63int tfrc_tx_hist_add(struct tfrc_tx_hist_entry **headp, u64 seqno);
64extern void tfrc_tx_hist_purge(struct tfrc_tx_hist_entry **headp); 64void tfrc_tx_hist_purge(struct tfrc_tx_hist_entry **headp);
65 65
66/* Subtraction a-b modulo-16, respects circular wrap-around */ 66/* Subtraction a-b modulo-16, respects circular wrap-around */
67#define SUB16(a, b) (((a) + 16 - (b)) & 0xF) 67#define SUB16(a, b) (((a) + 16 - (b)) & 0xF)
@@ -139,20 +139,17 @@ static inline bool tfrc_rx_hist_loss_pending(const struct tfrc_rx_hist *h)
139 return h->loss_count > 0; 139 return h->loss_count > 0;
140} 140}
141 141
142extern void tfrc_rx_hist_add_packet(struct tfrc_rx_hist *h, 142void tfrc_rx_hist_add_packet(struct tfrc_rx_hist *h, const struct sk_buff *skb,
143 const struct sk_buff *skb, const u64 ndp); 143 const u64 ndp);
144 144
145extern int tfrc_rx_hist_duplicate(struct tfrc_rx_hist *h, struct sk_buff *skb); 145int tfrc_rx_hist_duplicate(struct tfrc_rx_hist *h, struct sk_buff *skb);
146 146
147struct tfrc_loss_hist; 147struct tfrc_loss_hist;
148extern int tfrc_rx_handle_loss(struct tfrc_rx_hist *h, 148int tfrc_rx_handle_loss(struct tfrc_rx_hist *h, struct tfrc_loss_hist *lh,
149 struct tfrc_loss_hist *lh, 149 struct sk_buff *skb, const u64 ndp,
150 struct sk_buff *skb, const u64 ndp, 150 u32 (*first_li)(struct sock *sk), struct sock *sk);
151 u32 (*first_li)(struct sock *sk), 151u32 tfrc_rx_hist_sample_rtt(struct tfrc_rx_hist *h, const struct sk_buff *skb);
152 struct sock *sk); 152int tfrc_rx_hist_alloc(struct tfrc_rx_hist *h);
153extern u32 tfrc_rx_hist_sample_rtt(struct tfrc_rx_hist *h, 153void tfrc_rx_hist_purge(struct tfrc_rx_hist *h);
154 const struct sk_buff *skb);
155extern int tfrc_rx_hist_alloc(struct tfrc_rx_hist *h);
156extern void tfrc_rx_hist_purge(struct tfrc_rx_hist *h);
157 154
158#endif /* _DCCP_PKT_HIST_ */ 155#endif /* _DCCP_PKT_HIST_ */
diff --git a/net/dccp/ccids/lib/tfrc.h b/net/dccp/ccids/lib/tfrc.h
index ed698c42a5fb..40ee7d62b652 100644
--- a/net/dccp/ccids/lib/tfrc.h
+++ b/net/dccp/ccids/lib/tfrc.h
@@ -55,21 +55,21 @@ static inline u32 tfrc_ewma(const u32 avg, const u32 newval, const u8 weight)
55 return avg ? (weight * avg + (10 - weight) * newval) / 10 : newval; 55 return avg ? (weight * avg + (10 - weight) * newval) / 10 : newval;
56} 56}
57 57
58extern u32 tfrc_calc_x(u16 s, u32 R, u32 p); 58u32 tfrc_calc_x(u16 s, u32 R, u32 p);
59extern u32 tfrc_calc_x_reverse_lookup(u32 fvalue); 59u32 tfrc_calc_x_reverse_lookup(u32 fvalue);
60extern u32 tfrc_invert_loss_event_rate(u32 loss_event_rate); 60u32 tfrc_invert_loss_event_rate(u32 loss_event_rate);
61 61
62extern int tfrc_tx_packet_history_init(void); 62int tfrc_tx_packet_history_init(void);
63extern void tfrc_tx_packet_history_exit(void); 63void tfrc_tx_packet_history_exit(void);
64extern int tfrc_rx_packet_history_init(void); 64int tfrc_rx_packet_history_init(void);
65extern void tfrc_rx_packet_history_exit(void); 65void tfrc_rx_packet_history_exit(void);
66 66
67extern int tfrc_li_init(void); 67int tfrc_li_init(void);
68extern void tfrc_li_exit(void); 68void tfrc_li_exit(void);
69 69
70#ifdef CONFIG_IP_DCCP_TFRC_LIB 70#ifdef CONFIG_IP_DCCP_TFRC_LIB
71extern int tfrc_lib_init(void); 71int tfrc_lib_init(void);
72extern void tfrc_lib_exit(void); 72void tfrc_lib_exit(void);
73#else 73#else
74#define tfrc_lib_init() (0) 74#define tfrc_lib_init() (0)
75#define tfrc_lib_exit() 75#define tfrc_lib_exit()
diff --git a/net/dccp/dccp.h b/net/dccp/dccp.h
index 708e75bf623d..30948784dd58 100644
--- a/net/dccp/dccp.h
+++ b/net/dccp/dccp.h
@@ -53,7 +53,7 @@ extern struct inet_hashinfo dccp_hashinfo;
53 53
54extern struct percpu_counter dccp_orphan_count; 54extern struct percpu_counter dccp_orphan_count;
55 55
56extern void dccp_time_wait(struct sock *sk, int state, int timeo); 56void dccp_time_wait(struct sock *sk, int state, int timeo);
57 57
58/* 58/*
59 * Set safe upper bounds for header and option length. Since Data Offset is 8 59 * Set safe upper bounds for header and option length. Since Data Offset is 8
@@ -224,114 +224,108 @@ static inline void dccp_csum_outgoing(struct sk_buff *skb)
224 skb->csum = skb_checksum(skb, 0, (cov > skb->len)? skb->len : cov, 0); 224 skb->csum = skb_checksum(skb, 0, (cov > skb->len)? skb->len : cov, 0);
225} 225}
226 226
227extern void dccp_v4_send_check(struct sock *sk, struct sk_buff *skb); 227void dccp_v4_send_check(struct sock *sk, struct sk_buff *skb);
228 228
229extern int dccp_retransmit_skb(struct sock *sk); 229int dccp_retransmit_skb(struct sock *sk);
230 230
231extern void dccp_send_ack(struct sock *sk); 231void dccp_send_ack(struct sock *sk);
232extern void dccp_reqsk_send_ack(struct sock *sk, struct sk_buff *skb, 232void dccp_reqsk_send_ack(struct sock *sk, struct sk_buff *skb,
233 struct request_sock *rsk); 233 struct request_sock *rsk);
234 234
235extern void dccp_send_sync(struct sock *sk, const u64 seq, 235void dccp_send_sync(struct sock *sk, const u64 seq,
236 const enum dccp_pkt_type pkt_type); 236 const enum dccp_pkt_type pkt_type);
237 237
238/* 238/*
239 * TX Packet Dequeueing Interface 239 * TX Packet Dequeueing Interface
240 */ 240 */
241extern void dccp_qpolicy_push(struct sock *sk, struct sk_buff *skb); 241void dccp_qpolicy_push(struct sock *sk, struct sk_buff *skb);
242extern bool dccp_qpolicy_full(struct sock *sk); 242bool dccp_qpolicy_full(struct sock *sk);
243extern void dccp_qpolicy_drop(struct sock *sk, struct sk_buff *skb); 243void dccp_qpolicy_drop(struct sock *sk, struct sk_buff *skb);
244extern struct sk_buff *dccp_qpolicy_top(struct sock *sk); 244struct sk_buff *dccp_qpolicy_top(struct sock *sk);
245extern struct sk_buff *dccp_qpolicy_pop(struct sock *sk); 245struct sk_buff *dccp_qpolicy_pop(struct sock *sk);
246extern bool dccp_qpolicy_param_ok(struct sock *sk, __be32 param); 246bool dccp_qpolicy_param_ok(struct sock *sk, __be32 param);
247 247
248/* 248/*
249 * TX Packet Output and TX Timers 249 * TX Packet Output and TX Timers
250 */ 250 */
251extern void dccp_write_xmit(struct sock *sk); 251void dccp_write_xmit(struct sock *sk);
252extern void dccp_write_space(struct sock *sk); 252void dccp_write_space(struct sock *sk);
253extern void dccp_flush_write_queue(struct sock *sk, long *time_budget); 253void dccp_flush_write_queue(struct sock *sk, long *time_budget);
254 254
255extern void dccp_init_xmit_timers(struct sock *sk); 255void dccp_init_xmit_timers(struct sock *sk);
256static inline void dccp_clear_xmit_timers(struct sock *sk) 256static inline void dccp_clear_xmit_timers(struct sock *sk)
257{ 257{
258 inet_csk_clear_xmit_timers(sk); 258 inet_csk_clear_xmit_timers(sk);
259} 259}
260 260
261extern unsigned int dccp_sync_mss(struct sock *sk, u32 pmtu); 261unsigned int dccp_sync_mss(struct sock *sk, u32 pmtu);
262 262
263extern const char *dccp_packet_name(const int type); 263const char *dccp_packet_name(const int type);
264 264
265extern void dccp_set_state(struct sock *sk, const int state); 265void dccp_set_state(struct sock *sk, const int state);
266extern void dccp_done(struct sock *sk); 266void dccp_done(struct sock *sk);
267 267
268extern int dccp_reqsk_init(struct request_sock *rq, struct dccp_sock const *dp, 268int dccp_reqsk_init(struct request_sock *rq, struct dccp_sock const *dp,
269 struct sk_buff const *skb); 269 struct sk_buff const *skb);
270 270
271extern int dccp_v4_conn_request(struct sock *sk, struct sk_buff *skb); 271int dccp_v4_conn_request(struct sock *sk, struct sk_buff *skb);
272 272
273extern struct sock *dccp_create_openreq_child(struct sock *sk, 273struct sock *dccp_create_openreq_child(struct sock *sk,
274 const struct request_sock *req, 274 const struct request_sock *req,
275 const struct sk_buff *skb); 275 const struct sk_buff *skb);
276 276
277extern int dccp_v4_do_rcv(struct sock *sk, struct sk_buff *skb); 277int dccp_v4_do_rcv(struct sock *sk, struct sk_buff *skb);
278 278
279extern struct sock *dccp_v4_request_recv_sock(struct sock *sk, 279struct sock *dccp_v4_request_recv_sock(struct sock *sk, struct sk_buff *skb,
280 struct sk_buff *skb, 280 struct request_sock *req,
281 struct request_sock *req, 281 struct dst_entry *dst);
282 struct dst_entry *dst); 282struct sock *dccp_check_req(struct sock *sk, struct sk_buff *skb,
283extern struct sock *dccp_check_req(struct sock *sk, struct sk_buff *skb, 283 struct request_sock *req,
284 struct request_sock *req, 284 struct request_sock **prev);
285 struct request_sock **prev);
286 285
287extern int dccp_child_process(struct sock *parent, struct sock *child, 286int dccp_child_process(struct sock *parent, struct sock *child,
288 struct sk_buff *skb); 287 struct sk_buff *skb);
289extern int dccp_rcv_state_process(struct sock *sk, struct sk_buff *skb, 288int dccp_rcv_state_process(struct sock *sk, struct sk_buff *skb,
290 struct dccp_hdr *dh, unsigned int len); 289 struct dccp_hdr *dh, unsigned int len);
291extern int dccp_rcv_established(struct sock *sk, struct sk_buff *skb, 290int dccp_rcv_established(struct sock *sk, struct sk_buff *skb,
292 const struct dccp_hdr *dh, const unsigned int len); 291 const struct dccp_hdr *dh, const unsigned int len);
293 292
294extern int dccp_init_sock(struct sock *sk, const __u8 ctl_sock_initialized); 293int dccp_init_sock(struct sock *sk, const __u8 ctl_sock_initialized);
295extern void dccp_destroy_sock(struct sock *sk); 294void dccp_destroy_sock(struct sock *sk);
296 295
297extern void dccp_close(struct sock *sk, long timeout); 296void dccp_close(struct sock *sk, long timeout);
298extern struct sk_buff *dccp_make_response(struct sock *sk, 297struct sk_buff *dccp_make_response(struct sock *sk, struct dst_entry *dst,
299 struct dst_entry *dst, 298 struct request_sock *req);
300 struct request_sock *req);
301 299
302extern int dccp_connect(struct sock *sk); 300int dccp_connect(struct sock *sk);
303extern int dccp_disconnect(struct sock *sk, int flags); 301int dccp_disconnect(struct sock *sk, int flags);
304extern int dccp_getsockopt(struct sock *sk, int level, int optname, 302int dccp_getsockopt(struct sock *sk, int level, int optname,
305 char __user *optval, int __user *optlen); 303 char __user *optval, int __user *optlen);
306extern int dccp_setsockopt(struct sock *sk, int level, int optname, 304int dccp_setsockopt(struct sock *sk, int level, int optname,
307 char __user *optval, unsigned int optlen); 305 char __user *optval, unsigned int optlen);
308#ifdef CONFIG_COMPAT 306#ifdef CONFIG_COMPAT
309extern int compat_dccp_getsockopt(struct sock *sk, 307int compat_dccp_getsockopt(struct sock *sk, int level, int optname,
310 int level, int optname, 308 char __user *optval, int __user *optlen);
311 char __user *optval, int __user *optlen); 309int compat_dccp_setsockopt(struct sock *sk, int level, int optname,
312extern int compat_dccp_setsockopt(struct sock *sk, 310 char __user *optval, unsigned int optlen);
313 int level, int optname,
314 char __user *optval, unsigned int optlen);
315#endif 311#endif
316extern int dccp_ioctl(struct sock *sk, int cmd, unsigned long arg); 312int dccp_ioctl(struct sock *sk, int cmd, unsigned long arg);
317extern int dccp_sendmsg(struct kiocb *iocb, struct sock *sk, 313int dccp_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
318 struct msghdr *msg, size_t size); 314 size_t size);
319extern int dccp_recvmsg(struct kiocb *iocb, struct sock *sk, 315int dccp_recvmsg(struct kiocb *iocb, struct sock *sk,
320 struct msghdr *msg, size_t len, int nonblock, 316 struct msghdr *msg, size_t len, int nonblock, int flags,
321 int flags, int *addr_len); 317 int *addr_len);
322extern void dccp_shutdown(struct sock *sk, int how); 318void dccp_shutdown(struct sock *sk, int how);
323extern int inet_dccp_listen(struct socket *sock, int backlog); 319int inet_dccp_listen(struct socket *sock, int backlog);
324extern unsigned int dccp_poll(struct file *file, struct socket *sock, 320unsigned int dccp_poll(struct file *file, struct socket *sock,
325 poll_table *wait); 321 poll_table *wait);
326extern int dccp_v4_connect(struct sock *sk, struct sockaddr *uaddr, 322int dccp_v4_connect(struct sock *sk, struct sockaddr *uaddr, int addr_len);
327 int addr_len); 323
328 324struct sk_buff *dccp_ctl_make_reset(struct sock *sk, struct sk_buff *skb);
329extern struct sk_buff *dccp_ctl_make_reset(struct sock *sk, 325int dccp_send_reset(struct sock *sk, enum dccp_reset_codes code);
330 struct sk_buff *skb); 326void dccp_send_close(struct sock *sk, const int active);
331extern int dccp_send_reset(struct sock *sk, enum dccp_reset_codes code); 327int dccp_invalid_packet(struct sk_buff *skb);
332extern void dccp_send_close(struct sock *sk, const int active); 328u32 dccp_sample_rtt(struct sock *sk, long delta);
333extern int dccp_invalid_packet(struct sk_buff *skb);
334extern u32 dccp_sample_rtt(struct sock *sk, long delta);
335 329
336static inline int dccp_bad_service_code(const struct sock *sk, 330static inline int dccp_bad_service_code(const struct sock *sk,
337 const __be32 service) 331 const __be32 service)
@@ -475,25 +469,25 @@ static inline int dccp_ack_pending(const struct sock *sk)
475 return dccp_ackvec_pending(sk) || inet_csk_ack_scheduled(sk); 469 return dccp_ackvec_pending(sk) || inet_csk_ack_scheduled(sk);
476} 470}
477 471
478extern int dccp_feat_signal_nn_change(struct sock *sk, u8 feat, u64 nn_val); 472int dccp_feat_signal_nn_change(struct sock *sk, u8 feat, u64 nn_val);
479extern int dccp_feat_finalise_settings(struct dccp_sock *dp); 473int dccp_feat_finalise_settings(struct dccp_sock *dp);
480extern int dccp_feat_server_ccid_dependencies(struct dccp_request_sock *dreq); 474int dccp_feat_server_ccid_dependencies(struct dccp_request_sock *dreq);
481extern int dccp_feat_insert_opts(struct dccp_sock*, struct dccp_request_sock*, 475int dccp_feat_insert_opts(struct dccp_sock*, struct dccp_request_sock*,
482 struct sk_buff *skb); 476 struct sk_buff *skb);
483extern int dccp_feat_activate_values(struct sock *sk, struct list_head *fn); 477int dccp_feat_activate_values(struct sock *sk, struct list_head *fn);
484extern void dccp_feat_list_purge(struct list_head *fn_list); 478void dccp_feat_list_purge(struct list_head *fn_list);
485 479
486extern int dccp_insert_options(struct sock *sk, struct sk_buff *skb); 480int dccp_insert_options(struct sock *sk, struct sk_buff *skb);
487extern int dccp_insert_options_rsk(struct dccp_request_sock*, struct sk_buff*); 481int dccp_insert_options_rsk(struct dccp_request_sock *, struct sk_buff *);
488extern int dccp_insert_option_elapsed_time(struct sk_buff *skb, u32 elapsed); 482int dccp_insert_option_elapsed_time(struct sk_buff *skb, u32 elapsed);
489extern u32 dccp_timestamp(void); 483u32 dccp_timestamp(void);
490extern void dccp_timestamping_init(void); 484void dccp_timestamping_init(void);
491extern int dccp_insert_option(struct sk_buff *skb, unsigned char option, 485int dccp_insert_option(struct sk_buff *skb, unsigned char option,
492 const void *value, unsigned char len); 486 const void *value, unsigned char len);
493 487
494#ifdef CONFIG_SYSCTL 488#ifdef CONFIG_SYSCTL
495extern int dccp_sysctl_init(void); 489int dccp_sysctl_init(void);
496extern void dccp_sysctl_exit(void); 490void dccp_sysctl_exit(void);
497#else 491#else
498static inline int dccp_sysctl_init(void) 492static inline int dccp_sysctl_init(void)
499{ 493{
diff --git a/net/dccp/feat.h b/net/dccp/feat.h
index 90b957d34d26..0e75cebb2187 100644
--- a/net/dccp/feat.h
+++ b/net/dccp/feat.h
@@ -107,13 +107,13 @@ extern unsigned long sysctl_dccp_sequence_window;
107extern int sysctl_dccp_rx_ccid; 107extern int sysctl_dccp_rx_ccid;
108extern int sysctl_dccp_tx_ccid; 108extern int sysctl_dccp_tx_ccid;
109 109
110extern int dccp_feat_init(struct sock *sk); 110int dccp_feat_init(struct sock *sk);
111extern void dccp_feat_initialise_sysctls(void); 111void dccp_feat_initialise_sysctls(void);
112extern int dccp_feat_register_sp(struct sock *sk, u8 feat, u8 is_local, 112int dccp_feat_register_sp(struct sock *sk, u8 feat, u8 is_local,
113 u8 const *list, u8 len); 113 u8 const *list, u8 len);
114extern int dccp_feat_parse_options(struct sock *, struct dccp_request_sock *, 114int dccp_feat_parse_options(struct sock *, struct dccp_request_sock *,
115 u8 mand, u8 opt, u8 feat, u8 *val, u8 len); 115 u8 mand, u8 opt, u8 feat, u8 *val, u8 len);
116extern int dccp_feat_clone_list(struct list_head const *, struct list_head *); 116int dccp_feat_clone_list(struct list_head const *, struct list_head *);
117 117
118/* 118/*
119 * Encoding variable-length options and their maximum length. 119 * Encoding variable-length options and their maximum length.
@@ -127,11 +127,11 @@ extern int dccp_feat_clone_list(struct list_head const *, struct list_head *);
127 */ 127 */
128#define DCCP_OPTVAL_MAXLEN 6 128#define DCCP_OPTVAL_MAXLEN 6
129 129
130extern void dccp_encode_value_var(const u64 value, u8 *to, const u8 len); 130void dccp_encode_value_var(const u64 value, u8 *to, const u8 len);
131extern u64 dccp_decode_value_var(const u8 *bf, const u8 len); 131u64 dccp_decode_value_var(const u8 *bf, const u8 len);
132extern u64 dccp_feat_nn_get(struct sock *sk, u8 feat); 132u64 dccp_feat_nn_get(struct sock *sk, u8 feat);
133 133
134extern int dccp_insert_option_mandatory(struct sk_buff *skb); 134int dccp_insert_option_mandatory(struct sk_buff *skb);
135extern int dccp_insert_fn_opt(struct sk_buff *skb, u8 type, u8 feat, 135int dccp_insert_fn_opt(struct sk_buff *skb, u8 type, u8 feat, u8 *val, u8 len,
136 u8 *val, u8 len, bool repeat_first); 136 bool repeat_first);
137#endif /* _DCCP_FEAT_H */ 137#endif /* _DCCP_FEAT_H */