aboutsummaryrefslogtreecommitdiffstats
path: root/net/dccp/ccid.h
diff options
context:
space:
mode:
Diffstat (limited to 'net/dccp/ccid.h')
-rw-r--r--net/dccp/ccid.h37
1 files changed, 30 insertions, 7 deletions
diff --git a/net/dccp/ccid.h b/net/dccp/ccid.h
index c65cb2453e43..fdeae7b57319 100644
--- a/net/dccp/ccid.h
+++ b/net/dccp/ccid.h
@@ -23,14 +23,37 @@
23 23
24struct tcp_info; 24struct tcp_info;
25 25
26/**
27 * struct ccid_operations - Interface to Congestion-Control Infrastructure
28 *
29 * @ccid_id: numerical CCID ID (up to %CCID_MAX, cf. table 5 in RFC 4340, 10.)
30 * @ccid_ccmps: the CCMPS including network/transport headers (0 when disabled)
31 * @ccid_name: alphabetical identifier string for @ccid_id
32 * @ccid_owner: module which implements/owns this CCID
33 * @ccid_hc_{r,t}x_slab: memory pool for the receiver/sender half-connection
34 * @ccid_hc_{r,t}x_obj_size: size of the receiver/sender half-connection socket
35 *
36 * @ccid_hc_{r,t}x_init: CCID-specific initialisation routine (before startup)
37 * @ccid_hc_{r,t}x_exit: CCID-specific cleanup routine (before destruction)
38 * @ccid_hc_rx_packet_recv: implements the HC-receiver side
39 * @ccid_hc_{r,t}x_parse_options: parsing routine for CCID/HC-specific options
40 * @ccid_hc_{r,t}x_insert_options: insert routine for CCID/HC-specific options
41 * @ccid_hc_tx_packet_recv: implements feedback processing for the HC-sender
42 * @ccid_hc_tx_send_packet: implements the sending part of the HC-sender
43 * @ccid_hc_tx_packet_sent: does accounting for packets in flight by HC-sender
44 * @ccid_hc_{r,t}x_get_info: INET_DIAG information for HC-receiver/sender
45 * @ccid_hc_{r,t}x_getsockopt: socket options specific to HC-receiver/sender
46 */
26struct ccid_operations { 47struct ccid_operations {
27 unsigned char ccid_id; 48 unsigned char ccid_id;
28 const char *ccid_name; 49 __u32 ccid_ccmps;
29 struct module *ccid_owner; 50 const char *ccid_name;
30 struct kmem_cache *ccid_hc_rx_slab; 51 struct module *ccid_owner;
31 __u32 ccid_hc_rx_obj_size; 52 struct kmem_cache *ccid_hc_rx_slab,
32 struct kmem_cache *ccid_hc_tx_slab; 53 *ccid_hc_tx_slab;
33 __u32 ccid_hc_tx_obj_size; 54 __u32 ccid_hc_rx_obj_size,
55 ccid_hc_tx_obj_size;
56 /* Interface Routines */
34 int (*ccid_hc_rx_init)(struct ccid *ccid, struct sock *sk); 57 int (*ccid_hc_rx_init)(struct ccid *ccid, struct sock *sk);
35 int (*ccid_hc_tx_init)(struct ccid *ccid, struct sock *sk); 58 int (*ccid_hc_tx_init)(struct ccid *ccid, struct sock *sk);
36 void (*ccid_hc_rx_exit)(struct sock *sk); 59 void (*ccid_hc_rx_exit)(struct sock *sk);