xref: /linux/net/dccp/ccids/lib/tfrc.c (revision 93df8a1ed6231727c5db94a80b1a6bd5ee67cec3)
1 /*
2  * TFRC library initialisation
3  *
4  * Copyright (c) 2007 The University of Aberdeen, Scotland, UK
5  * Copyright (c) 2007 Arnaldo Carvalho de Melo <acme@redhat.com>
6  */
7 #include <linux/moduleparam.h>
8 #include "tfrc.h"
9 
10 #ifdef CONFIG_IP_DCCP_TFRC_DEBUG
11 bool tfrc_debug;
12 module_param(tfrc_debug, bool, 0644);
13 MODULE_PARM_DESC(tfrc_debug, "Enable TFRC debug messages");
14 #endif
15 
16 int __init tfrc_lib_init(void)
17 {
18 	int rc = tfrc_li_init();
19 
20 	if (rc)
21 		goto out;
22 
23 	rc = tfrc_tx_packet_history_init();
24 	if (rc)
25 		goto out_free_loss_intervals;
26 
27 	rc = tfrc_rx_packet_history_init();
28 	if (rc)
29 		goto out_free_tx_history;
30 	return 0;
31 
32 out_free_tx_history:
33 	tfrc_tx_packet_history_exit();
34 out_free_loss_intervals:
35 	tfrc_li_exit();
36 out:
37 	return rc;
38 }
39 
40 void tfrc_lib_exit(void)
41 {
42 	tfrc_rx_packet_history_exit();
43 	tfrc_tx_packet_history_exit();
44 	tfrc_li_exit();
45 }
46