From patchwork Mon Dec 18 21:50:59 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christoph Paasch X-Patchwork-Id: 850432 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="VZxg5lP6"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3z0vs84tMzz9s7v for ; Tue, 19 Dec 2017 08:52:28 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S965186AbdLRVw0 (ORCPT ); Mon, 18 Dec 2017 16:52:26 -0500 Received: from mail-out6.apple.com ([17.151.62.28]:65236 "EHLO mail-in6.apple.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S937505AbdLRVvh (ORCPT ); Mon, 18 Dec 2017 16:51:37 -0500 DKIM-Signature: v=1; a=rsa-sha256; d=apple.com; s=mailout2048s; c=relaxed/simple; q=dns/txt; i=@apple.com; t=1513633893; 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=OeG7825j1AEaGbZWiQG370RkPeHHwaf702PkTB4WLL8=; b=VZxg5lP6w28NPW8J4fLwTP41Lwa0FENYQTAVZTAQ+lrtCpkGDde0/dD+AQmeDcsS y1PnwQ6dI3yK4Y4680LSU4OtCPDb6E/J7IeSpWic1GXfu9MVTWyp4yU+fA+prJjy LlVDbaHbknZfUsxjrPoTkhKc/ILQMq7iNaesgAqnateYsz28W9t8f0lDprUm93sU kq+wJThGsRR+JBrJo3knXFQY4jXj3tN28RgLFhRkkIfMkOfPZUMWuIumAaVuc0fI 3hdOn0ETyaXV0+H6eBfVDrP2tcO8SPUfmbVpXYQdBpTLTTz1Ocom695q6CxyGLZU tjdGzufSzV+aZZLvnf0Akg==; Received: from relay5.apple.com (relay5.apple.com [17.128.113.88]) (using TLS with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mail-in6.apple.com (Apple Secure Mail Relay) with SMTP id C9.23.20985.468383A5; Mon, 18 Dec 2017 13:51:32 -0800 (PST) X-AuditID: 11973e15-7125b9c0000051f9-34-5a3838646a78 Received: from nwk-mmpp-sz13.apple.com (nwk-mmpp-sz13.apple.com [17.128.115.216]) by relay5.apple.com (Apple SCV relay) with SMTP id D6.D8.18983.468383A5; Mon, 18 Dec 2017 13:51:32 -0800 (PST) Content-transfer-encoding: 7BIT Received: from localhost ([17.226.23.135]) by nwk-mmpp-sz13.apple.com (Oracle Communications Messaging Server 8.0.2.1.20171204 64bit (built Dec 4 2017)) with ESMTPSA id <0P1600LC4FDWYT00@nwk-mmpp-sz13.apple.com>; Mon, 18 Dec 2017 13:51:32 -0800 (PST) From: Christoph Paasch To: netdev@vger.kernel.org Cc: Eric Dumazet , Mat Martineau , Alexei Starovoitov , Ursula Braun Subject: [RFC 04/14] tcp_smc: Make smc_parse_options return 1 on success Date: Mon, 18 Dec 2017 13:50:59 -0800 Message-id: <20171218215109.38700-5-cpaasch@apple.com> X-Mailer: git-send-email 2.15.0 In-reply-to: <20171218215109.38700-1-cpaasch@apple.com> References: <20171218215109.38700-1-cpaasch@apple.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrKLMWRmVeSWpSXmKPExsUi2FAYoZtiYRFlcOqPjcWXn7fZLZ4ee8Ru 8beln8Xi2AIxi6XTlRxYPRZsKvXYtKqTzWPeyUCPB4c2s3h83iQXwBrFZZOSmpNZllqkb5fA lbHw6gPmghfcFbcvr2NvYNzA2cXIySEhYCKxt2M/excjF4eQwGomif7P21lgEpOWb2WGSBxi lPh37wBjFyMHB7OAvMTB87IQ8UYmifd71jGCNAgLSEp037nDDGKzCWhJvL3dzgpiiwhISXzc sR1sA7PAWkaJu1MPskA0eEi83vkXrJlFQFXi+exHYHFeATOJ012r2CCukJdY/H0nmM0pYC7R 8/URO4gtBFRz/udLJpChEgLX2SS6Z6xnnsAoOAvhwAWMjKsYhXITM3N0M/PM9BILCnJS9ZLz czcxgsJ1up3oDsYzq6wOMQpwMCrx8M64ah4lxJpYVlyZe4hRmoNFSZz3YrVJlJBAemJJanZq akFqUXxRaU5q8SFGJg5OqQbGKIXzbwu/Gn9iKz3Wc/qBUc075+p/j+sNz7ScyvL8nhVdK+X5 ZmHr8gXl031dGb8Yzyq+ZaHuEq6rvvXZyddi5o1v3avnvxPIqdOL++2w5u0G26O++47tP5h1 6cGDDY2hMvF27+p5VrVe4HaqkDbgmmlfLielGFVbarTn5m/n/Jz5B15NCi9RYinOSDTUYi4q TgQAeK5g1zgCAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrALMWRmVeSWpSXmKPExsUi2FB8QzfFwiLK4PppK4svP2+zWzw99ojd 4m9LP4vFsQViFkunKzmweizYVOqxaVUnm8e8k4EeDw5tZvH4vEkugDXK0CYtv6g8sShFoSi5 oMRWqTgjMSW/PN7S2MjUIbGgICdVLzk/V0nfziYlNSezLLVI3y7BMGPh1QfMBS+4K25fXsfe wLiBs4uRk0NCwERi0vKtzF2MXBxCAocYJf7dO8DYxcjBwSwgL3HwvCxEvJFJ4v2edYwgDcIC khLdd+4wg9hsAloSb2+3s4LYIgJSEh93bGcHaWAWWMsocXfqQRaIBg+J1zv/gjWzCKhKPJ/9 CCzOK2AmcbprFRvEFfISi7/vBLM5Bcwler4+YgexhYBqzv98yTSBkW8Wwk0LGBlXMQoUpeYk VprqwX27iREcrIUROxj/L7M6xCjAwajEwzvjqnmUEGtiWXFlLtBzHMxKIrx+Z4FCvCmJlVWp RfnxRaU5qcWHGH2AbpvILCWanA+MpLySeENjC2NLEwsDAxNLMxMcwkrivO6rgGYJpCeWpGan phakFsGMY+LglGpgXNl9lMt97onYmx+Xubyo+SA0cxZDB0+G+pvFrKKzy6I5OIu45oV1fO8p YhFY2j5pu+VZ7rg1nyMrqoV5P8x45PPy7cbfllGKyWevSrAZHN7dUf+15KPpjQf6aRZfDnzJ iT64b26Jyj2DCgv+o9KPvzqI+7In6c3x1J7x89/c2M3lzNdn8My7oMQCTBeGWsxFxYkAKo6d LYMCAAA= 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 eb97ee24c601..5c35fd568b13 100644 --- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c @@ -3671,19 +3671,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.