lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20170728195919.10099-2-natale.patriciello@gmail.com>
Date:   Fri, 28 Jul 2017 21:59:15 +0200
From:   Natale Patriciello <natale.patriciello@...il.com>
To:     "David S . Miller" <davem@...emloft.net>,
        Alexey Kuznetsov <kuznet@....inr.ac.ru>,
        James Morris <jmorris@...ei.org>,
        Hideaki YOSHIFUJI <yoshfuji@...ux-ipv6.org>,
        Patrick McHardy <kaber@...sh.net>
Cc:     netdev <netdev@...r.kernel.org>,
        Ahmed Said <ahmed.said@...roma2.it>,
        Natale Patriciello <natale.patriciello@...il.com>,
        Francesco Zampognaro <zampognaro@....uniroma2.it>,
        Cesare Roseti <roseti@....uniroma2.it>
Subject: [RFC PATCH v1 1/5] tcp: Added callback for timed sender operations

Standard TCP is ACK-clocked, or in other words it must wait for ACKs after
sending a full window size bytes. However, in some particular cases, a
congestion control would like to be able to tell the TCP implementation when it
is possible to send segments through a timer. This patch adds the interface
(completely optional) between a congestion control and the TCP implementation.

Signed-off-by: Natale Patriciello <natale.patriciello@...il.com>
Tested-by: Ahmed Said <ahmed.said@...roma2.it>
---
 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 100644
--- a/include/net/tcp.h
+++ b/include/net/tcp.h
@@ -939,6 +939,14 @@ struct tcp_congestion_ops {
 	/* get info for inet_diag (optional) */
 	size_t (*get_info)(struct sock *sk, u32 ext, int *attr,
 			   union tcp_cc_info *info);
+	/* 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);
 
 	char 		name[TCP_CA_NAME_MAX];
 	struct module 	*owner;
-- 
2.13.2

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ