[TFRC]: New rx history code
Credit here goes to Gerrit Renker, that provided the initial implementation for this new codebase. I modified it just to try to make it closer to the existing API, renaming some functions, add namespacing and fix one bug where the tfrc_rx_hist_alloc was not freeing the allocated ring entries on the error path. Original changeset comment from Gerrit: ----------- This provides a new, self-contained and generic RX history service for TFRC based protocols. Details: * new data structure, initialisation and cleanup routines; * allocation of dccp_rx_hist entries local to packet_history.c, as a service exported by the dccp_tfrc_lib module. * interface to automatically track highest-received seqno; * receiver-based RTT estimation (needed for instance by RFC 3448, 6.3.1); * a generic function to test for `data packets' as per RFC 4340, sec. 7.7. Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
30a0eacd47
commit
b84a2189c4
@@ -129,6 +129,13 @@ static u32 dccp_li_calc_first_li(struct sock *sk,
|
||||
u16 s, u32 bytes_recv,
|
||||
u32 previous_x_recv)
|
||||
{
|
||||
/*
|
||||
* FIXME:
|
||||
* Will be rewritten in the upcoming new loss intervals code.
|
||||
* Has to be commented ou because it relies on the old rx history
|
||||
* data structures
|
||||
*/
|
||||
#if 0
|
||||
struct tfrc_rx_hist_entry *entry, *next, *tail = NULL;
|
||||
u32 x_recv, p;
|
||||
suseconds_t rtt, delta;
|
||||
@@ -216,10 +223,10 @@ found:
|
||||
dccp_pr_debug("%s(%p), receive rate=%u bytes/s, implied "
|
||||
"loss rate=%u\n", dccp_role(sk), sk, x_recv, p);
|
||||
|
||||
if (p == 0)
|
||||
return ~0;
|
||||
else
|
||||
if (p != 0)
|
||||
return 1000000 / p;
|
||||
#endif
|
||||
return ~0;
|
||||
}
|
||||
|
||||
void dccp_li_update_li(struct sock *sk,
|
||||
|
Reference in New Issue
Block a user