Re: [RFC PATCH 3/3] tcp: Add tunable parameters for TSQ

2018-01-06 Thread Natale Patriciello
Thank you, Eric and David, for the time spent in reviewing our work. Some comments inline: On 05/01/18 at 03:53am, Eric Dumazet wrote: > I do not want to add yet another condition in fast path. > Just put an arbitrary large value in the existing sysctl, no need for > extra code. Due to the minim

[RFC PATCH 3/3] tcp: Add tunable parameters for TSQ

2018-01-05 Thread Natale Patriciello
The original TSQ algorithm limits the number of packets in qdisc/devices to two packets / or ~1 ms. With this commit, two sysctl knobs are added to allow tuning the number of packets or the ms value. Signed-off-by: Natale Patriciello Cc: Carlo Augusto Grazia Tested-by: Carlo Augusto Grazia

[RFC PATCH 2/3] tcp: Negative values of sysctl_tcp_limit_output_bytes disable TSQ

2018-01-05 Thread Natale Patriciello
This commit adds the possibility for a user to disable the TSQ by using an existing sysctl knob. This feature existed until it was removed by the commit c9eeec26e32e ("tcp: TSQ can use a dynamic limit"). Fixes: c9eeec26e32e ("tcp: TSQ can use a dynamic limit") Signed-off-by

[RFC PATCH 0/3] tcp: allow user and drivers to tweak TSQ logic through sysctl knobs

2018-01-05 Thread Natale Patriciello
the kernel) values from 9 to 15 ms, which with the current kernel approach cannot be tested. Ref: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1670041 Cc: Eric Dumazet Cc: Toke Høiland-Jørgensen Cc: Carlo Augusto Grazia Natale Patriciello (3): Revert "tcp: allow drivers to tweak T

[RFC PATCH 1/3] Revert "tcp: allow drivers to tweak TSQ logic"

2018-01-05 Thread Natale Patriciello
other values, they have to recompile the driver (or the kernel). This reverts commit 3a9b76fd0db9f0d426533f96a68a62a58753a51e, preparing the field for tunable sysctl knobs. Signed-off-by: Natale Patriciello Signed-off-by: Carlo Augusto Grazia Cc: Eric Dumazet --- include/net/sock.h| 2

[RFC PATCH v2 2/5] tcp: implemented pacing_expired

2017-10-14 Thread Natale Patriciello
Inform the congestion control that the pacing timer, previously set, has expired. The commit does not consider situations in which another kind of timer has expired (e.g., a tail loss probe, a retransmission timer...) Signed-off-by: Natale Patriciello --- include/net/tcp.h | 2 ++ net/ipv4

[RFC PATCH v2 4/5] tcp: added segment sent

2017-10-14 Thread Natale Patriciello
Inform the congestion control of the number of segment sent in normal conditions, it means segments that left the node without involving recovery or retransmission procedures. Signed-off-by: Natale Patriciello --- include/net/tcp.h | 2 ++ net/ipv4/tcp_output.c | 10 +- 2 files

[RFC PATCH v2 3/5] tcp: added get_segs_per_round

2017-10-14 Thread Natale Patriciello
. Signed-off-by: Natale Patriciello --- include/net/tcp.h | 2 ++ net/ipv4/tcp_output.c | 13 + 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/include/net/tcp.h b/include/net/tcp.h index e817f0669d0e..3561eca5a61f 100644 --- a/include/net/tcp.h +++ b/include/net

[RFC PATCH v2 0/5] TCP Wave

2017-10-14 Thread Natale Patriciello
es to measure the time - Avoided the use of custom debug facilities - Cleaned the variable declarations Natale Patriciello (5): tcp: Added a function to retrieve pacing timer tcp: implemented pacing_expired tcp: added get_segs_per_round tcp: added segment sent wave: Added TCP Wave MAINTA

[RFC PATCH v2 1/5] tcp: Added a function to retrieve pacing timer

2017-10-14 Thread Natale Patriciello
: Natale Patriciello --- include/net/tcp.h | 2 ++ net/ipv4/tcp_output.c | 36 +--- 2 files changed, 27 insertions(+), 11 deletions(-) diff --git a/include/net/tcp.h b/include/net/tcp.h index 89974c5286d8..42c7aa96c4cf 100644 --- a/include/net/tcp.h +++ b/include

[RFC PATCH v2 5/5] wave: Added TCP Wave

2017-10-14 Thread Natale Patriciello
words, it sends data down the stack when its internal timer expires, and the timing of the received ACKs contribute to updating this timer regularly. It is the first TCP congestion control that uses the timing constraint developed in the Linux kernel. Signed-off-by: Natale Patriciello Tested-by

Re: [RFC PATCH v1 0/5] TCP Wave

2017-09-02 Thread Natale Patriciello
ne is inline: On 28/07/17 at 10:33pm, Eric Dumazet wrote: > On Fri, 2017-07-28 at 21:59 +0200, Natale Patriciello wrote: > > Hi, [cut] > > TCP Wave (TCPW) replaces the window-based transmission paradigm of the > > standard > > TCP with a burst-based transmission, the ACK-

[RFC PATCH v1 0/5] TCP Wave

2017-07-28 Thread Natale Patriciello
the algorithm in detail and so on) at: [1] http://tlcsat.uniroma2.it/tcpwave4linux/ We would greatly appreciate any feedback from you, comments, suggestions, corrections and so on. Thank you for your attention. Cesare, Francesco, Ahmed, Natale Natale Patriciello (5): tcp: Added callback for ti

[RFC PATCH v1 1/5] tcp: Added callback for timed sender operations

2017-07-28 Thread Natale Patriciello
interface (completely optional) between a congestion control and the TCP implementation. Signed-off-by: Natale Patriciello Tested-by: Ahmed Said --- include/net/tcp.h | 8 1 file changed, 8 insertions(+) diff --git a/include/net/tcp.h b/include/net/tcp.h index be6223c586fa..bf661ccc53a2

[RFC PATCH v1 2/5] tcp: Implemented the timing-based operations

2017-07-28 Thread Natale Patriciello
timing constraint set by the congestion control). Signed-off-by: Natale Patriciello Tested-by: Ahmed Said --- include/linux/tcp.h | 3 +++ net/ipv4/tcp_ipv4.c | 2 ++ net/ipv4/tcp_output.c | 56 --- 3 files changed, 58 insertions(+), 3

[RFC PATCH v1 3/5] tcp: PSH frames sent without timer involved

2017-07-28 Thread Natale Patriciello
Segments flagged with 'PSH' should be sent as soon as possible, ignoring the timing set by the congestion control (if any). This patch avoids the waiting of 'PSH' segments in the TCP queue. Signed-off-by: Natale Patriciello Tested-by: Ahmed Said --- net/ipv4/tcp.c | 8

[RFC PATCH v1 4/5] tcp: Add initial delay to allow data queueing

2017-07-28 Thread Natale Patriciello
(especially at the beginning) that an application can not appropriately fill the TCP queue, therefore making the respect of the timing constraint set by the congestion control impossible. Signed-off-by: Natale Patriciello Tested-by: Ahmed Said --- net/ipv4/tcp_output.c | 13 + 1 file

[RFC PATCH v1 5/5] wave: Added basic version of TCP Wave

2017-07-28 Thread Natale Patriciello
words, it sends data down the stack when its internal timer expires, and the timing of the received ACKs contribute to updating this timer regularly. It is the first TCP congestion control that uses the timing constraint developed in the Linux kernel. Signed-off-by: Natale Patriciello Tested-by