aboutsummaryrefslogtreecommitdiffstats
path: root/net/dccp/ccids
diff options
context:
space:
mode:
authorArnaldo Carvalho de Melo <acme@mandriva.com>2005-08-29 02:15:54 -0300
committerDavid S. Miller <davem@sunset.davemloft.net>2005-08-29 16:13:46 -0700
commitc530cfb1ce1e8f230744c3f3bd86771f50725053 (patch)
tree8309c7803ccb3cbbe07e610e6a0e5580a63d83e2 /net/dccp/ccids
parent[DCCP]: Introduce DCCP_SOCKOPT_PACKET_SIZE (diff)
downloadlinux-dev-c530cfb1ce1e8f230744c3f3bd86771f50725053.tar.xz
linux-dev-c530cfb1ce1e8f230744c3f3bd86771f50725053.zip
[CCID3]: Call sk->sk_write_space(sk) when receiving a feedback packet
This makes the send rate calculations behave way more closely to what is specified, with the jitter previously seen on x and x_recv disappearing completely on non lossy setups. This resembles the tcp_data_snd_check code, that possibly we'll end up using in DCCP as well, perhaps moving this code to inet_connection_sock. For now I'm doing the simplest implementation tho. Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/dccp/ccids')
-rw-r--r--net/dccp/ccids/ccid3.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/net/dccp/ccids/ccid3.c b/net/dccp/ccids/ccid3.c
index e22b0eefdbf9..7bf3b3a91e97 100644
--- a/net/dccp/ccids/ccid3.c
+++ b/net/dccp/ccids/ccid3.c
@@ -556,6 +556,11 @@ static void ccid3_hc_tx_packet_recv(struct sock *sk, struct sk_buff *skb)
/* remove all packets older than the one acked from history */
dccp_tx_hist_purge_older(ccid3_tx_hist,
&hctx->ccid3hctx_hist, packet);
+ /*
+ * As we have calculated new ipi, delta, t_nom it is possible that
+ * we now can send a packet, so wake up dccp_wait_for_ccids.
+ */
+ sk->sk_write_space(sk);
/*
* Schedule no feedback timer to expire in