diff options
Diffstat (limited to 'net/dccp/ccid.h')
-rw-r--r-- | net/dccp/ccid.h | 35 |
1 files changed, 28 insertions, 7 deletions
diff --git a/net/dccp/ccid.h b/net/dccp/ccid.h index c65cb2453e43..e3cdd8afc801 100644 --- a/net/dccp/ccid.h +++ b/net/dccp/ccid.h | |||
@@ -23,14 +23,35 @@ | |||
23 | 23 | ||
24 | struct tcp_info; | 24 | struct 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_name: alphabetical identifier string for @ccid_id | ||
31 | * @ccid_owner: module which implements/owns this CCID | ||
32 | * @ccid_hc_{r,t}x_slab: memory pool for the receiver/sender half-connection | ||
33 | * @ccid_hc_{r,t}x_obj_size: size of the receiver/sender half-connection socket | ||
34 | * | ||
35 | * @ccid_hc_{r,t}x_init: CCID-specific initialisation routine (before startup) | ||
36 | * @ccid_hc_{r,t}x_exit: CCID-specific cleanup routine (before destruction) | ||
37 | * @ccid_hc_rx_packet_recv: implements the HC-receiver side | ||
38 | * @ccid_hc_{r,t}x_parse_options: parsing routine for CCID/HC-specific options | ||
39 | * @ccid_hc_{r,t}x_insert_options: insert routine for CCID/HC-specific options | ||
40 | * @ccid_hc_tx_packet_recv: implements feedback processing for the HC-sender | ||
41 | * @ccid_hc_tx_send_packet: implements the sending part of the HC-sender | ||
42 | * @ccid_hc_tx_packet_sent: does accounting for packets in flight by HC-sender | ||
43 | * @ccid_hc_{r,t}x_get_info: INET_DIAG information for HC-receiver/sender | ||
44 | * @ccid_hc_{r,t}x_getsockopt: socket options specific to HC-receiver/sender | ||
45 | */ | ||
26 | struct ccid_operations { | 46 | struct ccid_operations { |
27 | unsigned char ccid_id; | 47 | unsigned char ccid_id; |
28 | const char *ccid_name; | 48 | const char *ccid_name; |
29 | struct module *ccid_owner; | 49 | struct module *ccid_owner; |
30 | struct kmem_cache *ccid_hc_rx_slab; | 50 | struct kmem_cache *ccid_hc_rx_slab, |
31 | __u32 ccid_hc_rx_obj_size; | 51 | *ccid_hc_tx_slab; |
32 | struct kmem_cache *ccid_hc_tx_slab; | 52 | __u32 ccid_hc_rx_obj_size, |
33 | __u32 ccid_hc_tx_obj_size; | 53 | ccid_hc_tx_obj_size; |
54 | /* Interface Routines */ | ||
34 | int (*ccid_hc_rx_init)(struct ccid *ccid, struct sock *sk); | 55 | int (*ccid_hc_rx_init)(struct ccid *ccid, struct sock *sk); |
35 | int (*ccid_hc_tx_init)(struct ccid *ccid, struct sock *sk); | 56 | int (*ccid_hc_tx_init)(struct ccid *ccid, struct sock *sk); |
36 | void (*ccid_hc_rx_exit)(struct sock *sk); | 57 | void (*ccid_hc_rx_exit)(struct sock *sk); |