diff options
Diffstat (limited to 'net/dccp/ccid.h')
-rw-r--r-- | net/dccp/ccid.h | 37 |
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 | ||
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_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 | */ | ||
26 | struct ccid_operations { | 47 | struct 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); |