From patchwork Thu Feb 1 00:07:06 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christoph Paasch X-Patchwork-Id: 868112 X-Patchwork-Delegate: davem@davemloft.net 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="OXPqhEZI"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3zX16D3wt0z9ryk for ; Thu, 1 Feb 2018 11:22:44 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755905AbeBAAWk (ORCPT ); Wed, 31 Jan 2018 19:22:40 -0500 Received: from mail-out24.apple.com ([17.171.2.34]:44461 "EHLO mail-in24.apple.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1753461AbeBAAWj (ORCPT ); Wed, 31 Jan 2018 19:22:39 -0500 DKIM-Signature: v=1; a=rsa-sha256; d=apple.com; s=mailout2048s; c=relaxed/simple; q=dns/txt; i=@apple.com; t=1517443649; x=2381357249; 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=Uj7gI/6n8pQM4OHUaAU71IfMKdFGC6rGzMjPE5Pml+g=; b=OXPqhEZIZbTk6aB4lrgcJGXxxHWSY+llxlrgo0p94U6ZjsFR4Y3OhLTzDnjp/ESx U+Q2ny5AyNwQpyV3CTuyEEa3U9GSCICz/MW/Y43TgSGwAtGLorrkpwsOwSl6M2dd izoYCgyHLhg//clGGwblmVJOzPoWdLfqXWRTGqWDxJckq9JbSDf5Iva13pyrkGOD 2gzTziEsKNL8+87gaMRHkNfOL7JOT44ovOAIUy6YZYILXZ73SQoGrEoy1o3QYYqu c7mLk1BB9RJw52c91vKEe5NE/G0I7rlg/fXFCsL/HfVJsDNk+JxYqvwevSu97Qdo bPiY0asbuxrFN0L5mHJWdg==; Received: from relay6.apple.com (relay6.apple.com [17.128.113.90]) (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 78.38.10828.14A527A5; Wed, 31 Jan 2018 16:07:29 -0800 (PST) X-AuditID: 11ab0218-260a89e000002a4c-67-5a725a418287 Received: from nwk-mmpp-sz13.apple.com (nwk-mmpp-sz13.apple.com [17.128.115.216]) by relay6.apple.com (Apple SCV relay) with SMTP id BC.83.05652.14A527A5; Wed, 31 Jan 2018 16:07:29 -0800 (PST) Content-transfer-encoding: 7BIT Received: from localhost ([17.226.23.225]) by nwk-mmpp-sz13.apple.com (Oracle Communications Messaging Server 8.0.2.1.20180104 64bit (built Jan 4 2018)) with ESMTPSA id <0P3G001AN30HQ770@nwk-mmpp-sz13.apple.com>; Wed, 31 Jan 2018 16:07:29 -0800 (PST) From: Christoph Paasch To: netdev@vger.kernel.org Cc: Eric Dumazet , Mat Martineau , Ursula Braun Subject: [RFC v2 04/14] tcp_smc: Make smc_parse_options return 1 on success Date: Wed, 31 Jan 2018 16:07:06 -0800 Message-id: <20180201000716.69301-5-cpaasch@apple.com> X-Mailer: git-send-email 2.16.1 In-reply-to: <20180201000716.69301-1-cpaasch@apple.com> References: <20180201000716.69301-1-cpaasch@apple.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprNLMWRmVeSWpSXmKPExsUi2FAYpesYVRRlcHmfocXTY4/YLf629LNY HFsgZrF0upIDi8eCTaUe804Gejw4tJnF4/MmuQCWKC6blNSczLLUIn27BK6Ml+uOMhW84K7o 3zORpYFxA2cXIyeHhICJxI3WS0xdjFwcQgJrmCQa2+4CORxgiYdv3CDihxglJk1tZgOJMwvI Sxw8LwsRb2SSON77hRlkkLCApET3nTtgNpuAlsTb2+2sILaIgJTExx3b2UEamAU6GCUeN81m g2jwlji1dB87iM0ioCpxsauHCcTmFTCTuHLzGjvEdfISh980gQ3iFDCXaNg1BywuBFTz+fpi ZpChEgJH2CR+Tm5kmcAoOAvhwAWMjKsYhXMTM3N0M/OMTPQSCwpyUvWS83M3MYJCczWTxA7G L68NDzEKcDAq8fBOuFAYJcSaWFZcmXuIUZqDRUmcN1I5K0pIID2xJDU7NbUgtSi+qDQntfgQ IxMHp1QDI7v4dK6Sv/48okaSq1494Hru+2PLe8HU/mk9k0UOCleovdWSiml2WJ75PHn6XR9v idqDTztDxKfc43i9c6vnwS+yOyadtpqx5sChffdnHWWtPqXGmhJqfXveiSKNuI5bG2t+7M76 5nPGeMF9j/cmfsLRNruPvP0z87aFbuoTq2nNdk1pAsfa9yixFGckGmoxFxUnAgCvW9U1LgIA AA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrKLMWRmVeSWpSXmKPExsUi2FB8Q9cxqijKYMs/UYunxx6xW/xt6Wex OLZAzGLpdCUHFo8Fm0o95p0M9HhwaDOLx+dNcgEsUYY2aflF5YlFKQpFyQUltkrFGYkp+eXx lsZGpg6JBQU5qXrJ+blK+nY2Kak5mWWpRfp2CYYZL9cdZSp4wV3Rv2ciSwPjBs4uRg4OCQET iYdv3LoYuTiEBA4xSkya2swGEmcWkJc4eF4WIt7IJHG89wtzFyMnh7CApET3nTtgNpuAlsTb 2+2sILaIgJTExx3b2UEamAU6GCUeN81mg2jwlji1dB87iM0ioCpxsauHCcTmFTCTuHLzGlhc AmjZ4TdNYIM4BcwlGnbNAYsLAdV8vr6YeQIj3yyEmxYwMq5iFChKzUmsNNODe3YTIzgsC6N2 MDYstzrEKMDBqMTD++JSYZQQa2JZcWUu0HMczEoivBtFiqKEeFMSK6tSi/Lji0pzUosPMfoA 3TaRWUo0OR8YM3kl8YbGFsaWJhYGBiaWZiY4hJXEeQ8rAc0SSE8sSc1OTS1ILYIZx8TBKdXA mKf0+Go13+mN07OVdrwyUxf5/DTvt3WZWW3v8a+BH3feyPURXVXmw1KZ3rXxz8R7J0Unnpk9 rUA7aEWk1I9/dqIstdNsKxXj3P4tEGEK7Fnhs+Pd5Ukhsnujm8x6dRjzGL4Wdu3f8VirxV2S u+WwpYP9Ts25S8tL5A553rnBnfrfzWRH7dYTSizAZGGoxVxUnAgAfvwq73gCAAA= Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org As we allow a generic TCP-option parser that also parses experimental TCP options, we need to add a return-value to smc_parse_options() that indicates whether the option actually matched or not. Cc: Ursula Braun Signed-off-by: Christoph Paasch Reviewed-by: Mat Martineau --- net/ipv4/tcp_input.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c index 1fbabcc99b62..94ba88b2246b 100644 --- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c @@ -3691,19 +3691,22 @@ static void tcp_parse_fastopen_option(int len, const unsigned char *cookie, foc->exp = exp_opt; } -static void smc_parse_options(const struct tcphdr *th, - struct tcp_options_received *opt_rx, - const unsigned char *ptr, - int opsize) +static int smc_parse_options(const struct tcphdr *th, + struct tcp_options_received *opt_rx, + const unsigned char *ptr, + int opsize) { #if IS_ENABLED(CONFIG_SMC) if (static_branch_unlikely(&tcp_have_smc)) { if (th->syn && !(opsize & 1) && opsize >= TCPOLEN_EXP_SMC_BASE && - get_unaligned_be32(ptr) == TCPOPT_SMC_MAGIC) + get_unaligned_be32(ptr) == TCPOPT_SMC_MAGIC) { opt_rx->smc_ok = 1; + return 1; + } } #endif + return 0; } /* Look for tcp options. Normally only called on SYN and SYNACK packets.