From patchwork Tue Oct 31 21:54:52 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christoph Paasch X-Patchwork-Id: 832732 X-Patchwork-Delegate: shemminger@vyatta.com Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=apple.com header.i=@apple.com header.b="ltJWeHjm"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3yRQBC0y8bz9t4X for ; Wed, 1 Nov 2017 08:54:59 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753829AbdJaVy4 (ORCPT ); Tue, 31 Oct 2017 17:54:56 -0400 Received: from mail-out24.apple.com ([17.171.2.34]:62627 "EHLO mail-in24.apple.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752473AbdJaVyz (ORCPT ); Tue, 31 Oct 2017 17:54:55 -0400 DKIM-Signature: v=1; a=rsa-sha256; d=apple.com; s=mailout2048s; c=relaxed/simple; q=dns/txt; i=@apple.com; t=1509486894; h=From:Sender:Reply-To:Subject:Date:Message-id:To:Cc:MIME-Version:Content-Type: Content-transfer-encoding:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=HP4md+z0KTA4JYWI61I+cLISsWA0i2b3bKwqYgogrgo=; b=ltJWeHjmVIF+KNlSeKKG3yyiUa7FhMSgltLBbQhwABgL5c0jJbUwKgLRY0uIGcje dW3pbcUXRmFWaGhq9uINY1hEyqtw8HU7GJzwFbtyovyfFi6xBG3i6Mv2TRALa8b/ dRpPknMLXebMoKa/plr10vVlH50Qw/Bajtd5Up44RzvMlM32UWdqWtY4oIkfAUrQ N6egzwBqPgewVb2ydN6QHGn7gvhdxsK1B8fT5cYVqtE4NroD348OT/oRL/MqJD9Y Dn7ZB86qcA3XquYTZ9Q1cEQvj+cmqg98pEG4Q5uOTa/2yHMm1KeDb0ioTkmWI6Pt I/IXTC/rR8DUN6oWhjdoyg==; Received: from relay3.apple.com (relay3.apple.com [17.128.113.83]) (using TLS with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mail-in24.apple.com (Apple Secure Mail Relay) with SMTP id 7A.C0.15427.E21F8F95; Tue, 31 Oct 2017 14:54:54 -0700 (PDT) X-AuditID: 11ab0218-7734a9c000003c43-3b-59f8f12e02f3 Received: from nwk-mmpp-sz10.apple.com (nwk-mmpp-sz10.apple.com [17.128.115.122]) by relay3.apple.com (Apple SCV relay) with SMTP id F2.C3.23978.D21F8F95; Tue, 31 Oct 2017 14:54:53 -0700 (PDT) Content-transfer-encoding: 7BIT Received: from localhost ([17.226.23.105]) by nwk-mmpp-sz10.apple.com (Oracle Communications Messaging Server 8.0.1.3.20170825 64bit (built Aug 25 2017)) with ESMTPSA id <0OYP00E7MJJHUGA0@nwk-mmpp-sz10.apple.com>; Tue, 31 Oct 2017 14:54:53 -0700 (PDT) From: Christoph Paasch To: Stephen Hemminger Cc: netdev@vger.kernel.org Subject: [PATCH v2 iproute2] ip: add fastopen_no_cookie option to ip route Date: Tue, 31 Oct 2017 14:54:52 -0700 Message-id: <20171031215452.7580-1-cpaasch@apple.com> X-Mailer: git-send-email 2.14.1 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrPJMWRmVeSWpSXmKPExsUi2FAYrKv38UekwaSPghbHFohZLL4j58Dk 0XNyHpPH501yAUxRXDYpqTmZZalF+nYJXBm7PsxjLnglW7Ftg3kD4zbxLkZODgkBE4nFn68y gthCAmuYJI4f8IWJv9+6jLWLkQsofohR4tydmWxdjBwczALyEgfPy0LEG5kkmhfcZQZpEBaQ lOi+cwfMZhPQknh7u50VxBYRMJJY9bwDbAGzgJTEy0szGCHqvSQm3P0FVs8ioCoxo3M/mM0r YCqxZedaVogj5CXOPbjNDLJMQmAvq8TdriOMExj5ZyHcsYCRcRWjcG5iZo5uZp6RiV5iQUFO ql5yfu4mRlAIrWaS2MH45bXhIUYBDkYlHl6Haz8ihVgTy4orcw8xSnOwKInzvngIFBJITyxJ zU5NLUgtii8qzUktPsTIxMEp1cDYMevNzrBvzx+kLt9Q+ECxe3aqmjnHdbU4UYOwmEc31z1n MNt5/fXJryG8/ft4qpbb2LiILJj/fs2F16EvbwYtrVobX5y+8Eja1PX3Db4tTdqlNHWz7Wb2 d//1PZX33hX/v+uvWFGMz8zk+1cjcp78LjdUWcpdsWXvRJeeN4eOnAzq+dx3LWp3qRJLcUai oRZzUXEiABZYUlQCAgAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrEJMWRmVeSWpSXmKPExsUi2FBcpav78UekwdtGc4tjC8QsFt+Rc2Dy 6Dk5j8nj8ya5AKYoLpuU1JzMstQifbsEroxdH+YxF7ySrdi2wbyBcZt4FyMnh4SAicT7rctY uxi5OIQEDjFKnLszk62LkYODWUBe4uB5WYh4I5NE84K7zCANwgKSEt137oDZbAJaEm9vt7OC 2CICRhKrnncwgtjMAlISLy/NYISo95KYcPcXWD2LgKrEjM79YDavgKnElp1rWSGOkJc49+A2 8wRGnlkIqxcwMq5iFChKzUmsNNZLLCjISdVLzs/dxAj2eWHwDsY/y6wOMQpwMCrx8Dpc+xEp xJpYVlyZC/QDB7OSCK/2I6AQb0piZVVqUX58UWlOavEhRmkOFiVx3oL5QCmB9MSS1OzU1ILU IpgsEwenVAMjU2kQ75llxyZ7GbBsmnuE506bS8CHtbW+Rw+vE57ldMn8ddq+e6FV8wvrnT6u OhmkXF5maCjx+NHc0oqvufe5YmTuvPfrK5/KuvjgvjL5xhxDvs/+Tzfene5xRX35qhmO8b1m F1afc+5/6CC4K82U8fex0Hn7XT5ECiY0fn7X8mPJaXelebmzlViKMxINtZiLihMBRp2u+fUB AAA= Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org This patch adds fastopen_no_cookie option to enable/disable TCP fastopen without a cookie on a per-route basis. Support in Linux was added with 71c02379c762 (tcp: Configure TFO without cookie per socket and/or per route). Cc: Stephen Hemminger Signed-off-by: Christoph Paasch --- Notes: resend: Rebase on top of origin/net-next ip/iproute.c | 42 ++++++++++++++++++++++++++---------------- man/man8/ip-route.8.in | 8 +++++++- 2 files changed, 33 insertions(+), 17 deletions(-) diff --git a/ip/iproute.c b/ip/iproute.c index 8b158e692f75..da017ef09926 100644 --- a/ip/iproute.c +++ b/ip/iproute.c @@ -41,21 +41,22 @@ enum list_action { IPROUTE_SAVE, }; static const char *mx_names[RTAX_MAX+1] = { - [RTAX_MTU] = "mtu", - [RTAX_WINDOW] = "window", - [RTAX_RTT] = "rtt", - [RTAX_RTTVAR] = "rttvar", - [RTAX_SSTHRESH] = "ssthresh", - [RTAX_CWND] = "cwnd", - [RTAX_ADVMSS] = "advmss", - [RTAX_REORDERING] = "reordering", - [RTAX_HOPLIMIT] = "hoplimit", - [RTAX_INITCWND] = "initcwnd", - [RTAX_FEATURES] = "features", - [RTAX_RTO_MIN] = "rto_min", - [RTAX_INITRWND] = "initrwnd", - [RTAX_QUICKACK] = "quickack", - [RTAX_CC_ALGO] = "congctl", + [RTAX_MTU] = "mtu", + [RTAX_WINDOW] = "window", + [RTAX_RTT] = "rtt", + [RTAX_RTTVAR] = "rttvar", + [RTAX_SSTHRESH] = "ssthresh", + [RTAX_CWND] = "cwnd", + [RTAX_ADVMSS] = "advmss", + [RTAX_REORDERING] = "reordering", + [RTAX_HOPLIMIT] = "hoplimit", + [RTAX_INITCWND] = "initcwnd", + [RTAX_FEATURES] = "features", + [RTAX_RTO_MIN] = "rto_min", + [RTAX_INITRWND] = "initrwnd", + [RTAX_QUICKACK] = "quickack", + [RTAX_CC_ALGO] = "congctl", + [RTAX_FASTOPEN_NO_COOKIE] = "fastopen_no_cookie" }; static void usage(void) __attribute__((noreturn)); @@ -90,7 +91,7 @@ static void usage(void) " [ ssthresh NUMBER ] [ realms REALM ] [ src ADDRESS ]\n" " [ rto_min TIME ] [ hoplimit NUMBER ] [ initrwnd NUMBER ]\n" " [ features FEATURES ] [ quickack BOOL ] [ congctl NAME ]\n" - " [ pref PREF ] [ expires TIME ]\n" + " [ pref PREF ] [ expires TIME ] [ fastopen_no_cookie BOOL ]\n" "TYPE := { unicast | local | broadcast | multicast | throw |\n" " unreachable | prohibit | blackhole | nat }\n" "TABLE_ID := [ local | main | default | all | NUMBER ]\n" @@ -1224,6 +1225,15 @@ static int iproute_modify(int cmd, unsigned int flags, int argc, char **argv) addattr8(&req.n, sizeof(req), RTA_TTL_PROPAGATE, ttl_prop); + } else if (matches(*argv, "fastopen_no_cookie") == 0) { + unsigned int fastopen_no_cookie; + + NEXT_ARG(); + if (get_unsigned(&fastopen_no_cookie, *argv, 0)) + invarg("\"fastopen_no_cookie\" value is invalid\n", *argv); + if (fastopen_no_cookie != 1 && fastopen_no_cookie != 0) + invarg("\"fastopen_no_cookie\" value should be 0 or 1\n", *argv); + rta_addattr32(mxrta, sizeof(mxbuf), RTAX_FASTOPEN_NO_COOKIE, fastopen_no_cookie); } else { int type; inet_prefix dst; diff --git a/man/man8/ip-route.8.in b/man/man8/ip-route.8.in index 705ceb2054dc..f9c92259f796 100644 --- a/man/man8/ip-route.8.in +++ b/man/man8/ip-route.8.in @@ -141,7 +141,9 @@ replace " } " .B pref .IR PREF " ] [ " .B expires -.IR TIME " ]" +.IR TIME " ] [" +.B fastopen_no_cookie +.IR BOOL " ]" .ti -8 .IR TYPE " := [ " @@ -524,6 +526,10 @@ sysctl is set to 0. .BI quickack " BOOL " "(3.11+ only)" Enable or disable quick ack for connections to this destination. +.TP +.BI fastopen_no_cookie " BOOL " "(4.15+ only)" +Enable TCP Fastopen without a cookie for connections to this destination. + .TP .BI congctl " NAME " "(3.20+ only)" .TP