{"id":813776,"url":"http://patchwork.ozlabs.org/api/patches/813776/?format=json","web_url":"http://patchwork.ozlabs.org/project/netdev/patch/1505385988-94522-3-git-send-email-ilyal@mellanox.com/","project":{"id":7,"url":"http://patchwork.ozlabs.org/api/projects/7/?format=json","name":"Linux network development","link_name":"netdev","list_id":"netdev.vger.kernel.org","list_email":"netdev@vger.kernel.org","web_url":null,"scm_url":null,"webscm_url":null,"list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<1505385988-94522-3-git-send-email-ilyal@mellanox.com>","list_archive_url":null,"date":"2017-09-14T10:46:25","name":"[net-next,2/5] tcp: Add clean acked data hook","commit_ref":null,"pull_url":null,"state":"deferred","archived":true,"hash":"39d2f6de2c354667fe1adcc9e1da1873edbe0349","submitter":{"id":67931,"url":"http://patchwork.ozlabs.org/api/people/67931/?format=json","name":"Ilya Lesokhin","email":"ilyal@mellanox.com"},"delegate":{"id":34,"url":"http://patchwork.ozlabs.org/api/users/34/?format=json","username":"davem","first_name":"David","last_name":"Miller","email":"davem@davemloft.net"},"mbox":"http://patchwork.ozlabs.org/project/netdev/patch/1505385988-94522-3-git-send-email-ilyal@mellanox.com/mbox/","series":[{"id":3066,"url":"http://patchwork.ozlabs.org/api/series/3066/?format=json","web_url":"http://patchwork.ozlabs.org/project/netdev/list/?series=3066","date":"2017-09-14T10:46:26","name":"tls: Add generic NIC offload infrastructure","version":1,"mbox":"http://patchwork.ozlabs.org/series/3066/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/813776/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/813776/checks/","tags":{},"related":[],"headers":{"Return-Path":"<netdev-owner@vger.kernel.org>","X-Original-To":"patchwork-incoming@ozlabs.org","Delivered-To":"patchwork-incoming@ozlabs.org","Authentication-Results":"ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=netdev-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3xtFZn23pqz9sRW\n\tfor <patchwork-incoming@ozlabs.org>;\n\tThu, 14 Sep 2017 20:46:41 +1000 (AEST)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1751924AbdINKqj (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tThu, 14 Sep 2017 06:46:39 -0400","from mail-il-dmz.mellanox.com ([193.47.165.129]:37184 \"EHLO\n\tmellanox.co.il\" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org\n\twith ESMTP id S1751845AbdINKqi (ORCPT\n\t<rfc822;netdev@vger.kernel.org>); Thu, 14 Sep 2017 06:46:38 -0400","from Internal Mail-Server by MTLPINE1 (envelope-from\n\tilyal@mellanox.com)\n\twith ESMTPS (AES256-SHA encrypted); 14 Sep 2017 13:46:30 +0300","from gen-l-vrt-094.mtl.labs.mlnx (gen-l-vrt-094.mtl.labs.mlnx\n\t[10.137.9.1])\n\tby labmailer.mlnx (8.13.8/8.13.8) with ESMTP id v8EAkUox020670;\n\tThu, 14 Sep 2017 13:46:30 +0300"],"From":"Ilya Lesokhin <ilyal@mellanox.com>","To":"netdev@vger.kernel.org, davem@davemloft.net","Cc":"davejwatson@fb.com, tom@herbertland.com,\n\thannes@stressinduktion.org, borisp@mellanox.com,\n\tilyal@mellanox.com, aviadye@mellanox.com, liranl@mellanox.com","Subject":"[PATCH net-next 2/5] tcp: Add clean acked data hook","Date":"Thu, 14 Sep 2017 13:46:25 +0300","Message-Id":"<1505385988-94522-3-git-send-email-ilyal@mellanox.com>","X-Mailer":"git-send-email 1.8.3.1","In-Reply-To":"<1505385988-94522-1-git-send-email-ilyal@mellanox.com>","References":"<1505385988-94522-1-git-send-email-ilyal@mellanox.com>","Sender":"netdev-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<netdev.vger.kernel.org>","X-Mailing-List":"netdev@vger.kernel.org"},"content":"Called when a TCP segment is acknowledged.\nCould be used by application protocols who hold additional\nmetadata associated with the stream data\nThis is required by TLS device offload to release\nmetadata associated with acknowledged TLS records.\n\nSigned-off-by: Boris Pismenny <borisp@mellanox.com>\nSigned-off-by: Ilya Lesokhin <ilyal@mellanox.com>\nSigned-off-by: Aviad Yehezkel <aviadye@mellanox.com>\n---\n include/net/inet_connection_sock.h | 2 ++\n net/ipv4/tcp_input.c               | 3 +++\n 2 files changed, 5 insertions(+)","diff":"diff --git a/include/net/inet_connection_sock.h b/include/net/inet_connection_sock.h\nindex 13e4c89..2ea1026 100644\n--- a/include/net/inet_connection_sock.h\n+++ b/include/net/inet_connection_sock.h\n@@ -77,6 +77,7 @@ struct inet_connection_sock_af_ops {\n  * @icsk_af_ops\t\t   Operations which are AF_INET{4,6} specific\n  * @icsk_ulp_ops\t   Pluggable ULP control hook\n  * @icsk_ulp_data\t   ULP private data\n+ * @icsk_clean_acked\t   Clean acked data hook\n  * @icsk_ca_state:\t   Congestion control state\n  * @icsk_retransmits:\t   Number of unrecovered [RTO] timeouts\n  * @icsk_pending:\t   Scheduled timer event\n@@ -101,6 +102,7 @@ struct inet_connection_sock {\n \tconst struct inet_connection_sock_af_ops *icsk_af_ops;\n \tconst struct tcp_ulp_ops  *icsk_ulp_ops;\n \tvoid\t\t\t  *icsk_ulp_data;\n+\tvoid\t\t\t  (*icsk_clean_acked)(struct sock *sk);\n \tunsigned int\t\t  (*icsk_sync_mss)(struct sock *sk, u32 pmtu);\n \t__u8\t\t\t  icsk_ca_state:6,\n \t\t\t\t  icsk_ca_setsockopt:1,\ndiff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c\nindex c5d7656..37ebdbb 100644\n--- a/net/ipv4/tcp_input.c\n+++ b/net/ipv4/tcp_input.c\n@@ -3645,6 +3645,9 @@ static int tcp_ack(struct sock *sk, const struct sk_buff *skb, int flag)\n \tif (!prior_packets)\n \t\tgoto no_queue;\n \n+\tif (icsk->icsk_clean_acked)\n+\t\ticsk->icsk_clean_acked(sk);\n+\n \t/* See if we can take anything off of the retransmit queue. */\n \tflag |= tcp_clean_rtx_queue(sk, prior_fackets, prior_snd_una, &acked,\n \t\t\t\t    &sack_state);\n","prefixes":["net-next","2/5"]}