On Fri, 2017-07-28 at 21:59 +0200, Natale Patriciello wrote: > Hi, > We are working on a new TCP congestion control algorithm, aiming at satisfying > new requirements coming from current networks. For instance, adaptation to > bandwidth/delay changes (due to mobility, dynamic switching, handover), and > optimal exploitation of very high link capacity and efficient transmission of > small objects, irrespective of the underlying link characteristics. > > TCP Wave (TCPW) replaces the window-based transmission paradigm of the > standard > TCP with a burst-based transmission, the ACK-clock scheduling with a > self-managed timer and the RTT-based congestion control loop with an Ack-based > Capacity and Congestion Estimation (ACCE) module. In non-technical 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. > > We tried to add this new sender paradigm without deeply touching existing > code. > In fact, we added four (optional) new congestion control functions: > > + /* get the expiration time for the send timer (optional) */ > + unsigned long (*get_send_timer_exp_time)(struct sock *sk); > + /* no data to transmit at the timer expiration (optional) */ > + void (*no_data_to_transmit)(struct sock *sk); > + /* the send timer is expired (optional) */ > + void (*send_timer_expired)(struct sock *sk); > + /* the TCP has sent some segments (optional) */ > + void (*segment_sent)(struct sock *sk, u32 sent); > > And a timer (tp->send_timer) which uses a send callback to push data down the > stack. If the first of these function, get_send_timer_exp_time, is not > implemented by the current congestion control, then the timer sending timer is > never set, therefore falling back to the old, ACK-clocked, behavior.
trimmed CC This patch series seems to have missed recent efforts in TCP stack, namely TCP pacing. commit 218af599fa635b107cfe10acf3249c4dfe5e4123 ("tcp: internal implementation for pacing") added a timer already to get fine grained packet xmits. I suggest you rebase your work and try to reuse existing mechanisms. Thanks.