mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-25 12:04:46 +08:00
954c2db868
This hooks up the TFRC Loss Interval database with CCID 3 packet reception. In addition, it makes the CCID-specific computation of the first loss interval (which requires access to all the guts of CCID3) local to ccid3.c. The patch also fixes an omission in the DCCP code, that of a default / fallback RTT value (defined in section 3.4 of RFC 4340 as 0.2 sec); while at it, the upper bound of 4 seconds for an RTT sample has been reduced to match the initial TCP RTO value of 3 seconds from[RFC 1122, 4.2.3.1]. Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk> Signed-off-by: Ian McDonald <ian.mcdonald@jandi.co.nz> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
64 lines
1.4 KiB
C
64 lines
1.4 KiB
C
/*
|
|
* TFRC: main module holding the pieces of the TFRC library together
|
|
*
|
|
* Copyright (c) 2007 The University of Aberdeen, Scotland, UK
|
|
* Copyright (c) 2007 Arnaldo Carvalho de Melo <acme@redhat.com>
|
|
*/
|
|
#include <linux/module.h>
|
|
#include <linux/moduleparam.h>
|
|
#include "tfrc.h"
|
|
|
|
#ifdef CONFIG_IP_DCCP_TFRC_DEBUG
|
|
int tfrc_debug;
|
|
module_param(tfrc_debug, bool, 0444);
|
|
MODULE_PARM_DESC(tfrc_debug, "Enable debug messages");
|
|
#endif
|
|
|
|
extern int tfrc_tx_packet_history_init(void);
|
|
extern void tfrc_tx_packet_history_exit(void);
|
|
extern int tfrc_rx_packet_history_init(void);
|
|
extern void tfrc_rx_packet_history_exit(void);
|
|
|
|
extern int tfrc_li_init(void);
|
|
extern void tfrc_li_exit(void);
|
|
|
|
static int __init tfrc_module_init(void)
|
|
{
|
|
int rc = tfrc_li_init();
|
|
|
|
if (rc)
|
|
goto out;
|
|
|
|
rc = tfrc_tx_packet_history_init();
|
|
if (rc)
|
|
goto out_free_loss_intervals;
|
|
|
|
rc = tfrc_rx_packet_history_init();
|
|
if (rc)
|
|
goto out_free_tx_history;
|
|
return 0;
|
|
|
|
out_free_tx_history:
|
|
tfrc_tx_packet_history_exit();
|
|
out_free_loss_intervals:
|
|
tfrc_li_exit();
|
|
out:
|
|
return rc;
|
|
}
|
|
|
|
static void __exit tfrc_module_exit(void)
|
|
{
|
|
tfrc_rx_packet_history_exit();
|
|
tfrc_tx_packet_history_exit();
|
|
tfrc_li_exit();
|
|
}
|
|
|
|
module_init(tfrc_module_init);
|
|
module_exit(tfrc_module_exit);
|
|
|
|
MODULE_AUTHOR("Gerrit Renker <gerrit@erg.abdn.ac.uk>, "
|
|
"Ian McDonald <ian.mcdonald@jandi.co.nz>, "
|
|
"Arnaldo Carvalho de Melo <acme@redhat.com>");
|
|
MODULE_DESCRIPTION("DCCP TFRC library");
|
|
MODULE_LICENSE("GPL");
|