From patchwork Sat Nov 7 00:06:06 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jarno Rajahalme X-Patchwork-Id: 541183 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from archives.nicira.com (li376-54.members.linode.com [96.126.127.54]) by ozlabs.org (Postfix) with ESMTP id 1E1641402BF for ; Sat, 7 Nov 2015 11:06:55 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=nicira_com.20150623.gappssmtp.com header.i=@nicira_com.20150623.gappssmtp.com header.b=neZEiKLA; dkim-atps=neutral Received: from archives.nicira.com (localhost [127.0.0.1]) by archives.nicira.com (Postfix) with ESMTP id A7DE5109BA; Fri, 6 Nov 2015 16:06:24 -0800 (PST) X-Original-To: dev@openvswitch.org Delivered-To: dev@openvswitch.org Received: from mx1e4.cudamail.com (mx1.cudamail.com [69.90.118.67]) by archives.nicira.com (Postfix) with ESMTPS id E3D87109A2 for ; Fri, 6 Nov 2015 16:06:22 -0800 (PST) Received: from bar2.cudamail.com (unknown [192.168.21.12]) by mx1e4.cudamail.com (Postfix) with ESMTPS id 6DFB71E0059 for ; Fri, 6 Nov 2015 17:06:22 -0700 (MST) X-ASG-Debug-ID: 1446854781-03dc53088338990001-byXFYA Received: from mx1-pf1.cudamail.com ([192.168.24.1]) by bar2.cudamail.com with ESMTP id GZp5InJJNryDcnj7 (version=TLSv1 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Fri, 06 Nov 2015 17:06:21 -0700 (MST) X-Barracuda-Envelope-From: jrajahalme@nicira.com X-Barracuda-RBL-Trusted-Forwarder: 192.168.24.1 Received: from unknown (HELO mail-pa0-f42.google.com) (209.85.220.42) by mx1-pf1.cudamail.com with ESMTPS (RC4-SHA encrypted); 7 Nov 2015 00:06:21 -0000 Received-SPF: unknown (mx1-pf1.cudamail.com: Multiple SPF records returned) X-Barracuda-RBL-Trusted-Forwarder: 209.85.220.42 Received: by pabfh17 with SMTP id fh17so137163156pab.0 for ; Fri, 06 Nov 2015 16:06:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nicira_com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=bpaRTjOhc5VBFg+Nohxa4SpSxYCfh5kFhPGpN5065Z0=; b=neZEiKLA+QsxJsT5vxspARu3By/kTGwi50I7ibuCUp2fdE/1qejf/QaXRus1P5La9R g9yVvuqUB/PrN4+cSodiAeq/m8CMXn+J3m/JT1FjxtfAL/hyns4slyrzRK2toNLRX8fu TiQ0Nss2VfNEf77rAN5wY5UiUazdaUM9iTIR4DDrSTAldyrX12Bb3WX5qCOm86Tdn3kA MVnhoVtghHl2rkw98txumSYEASaiKfbrTkswDXqFIxsDq5lUxJPOsh3QZRdK1PGlgDi5 JbxFZsNOGtwthMhhAPZbjFmTVZCEm5bh1tS00RBRyo1c/7kDgF1jNE/JNVtze3gvkwiq P/+g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=bpaRTjOhc5VBFg+Nohxa4SpSxYCfh5kFhPGpN5065Z0=; b=L+Q92UH/h/lM9ydYkPGqN2ofQzMptJp0Sh5pYhOaSWmcVR7smvJvYra99u7eidAWFv XHk69mszegW8aSjVVa5o2edpPNJ1GKQGj4plqPkDxJWbUwvrlWzjYqOrRe/PnA3cWbY2 pPQqppKCQp8QQ7SSoBqPcYa0ij6rmSzICLcRNmL+DIyrsiuADO6t9bdFQWxkqNbH0Hdg OTTBNylh9rQtVqCC9pe3sSBV0U6l+H1ohACVu1xTQ8UaYfmqOdifml10vfFiyICRLsY8 mzIPOCRVKBxsD2vjQXVu0lSrtVtYbVJMCo4OutaH6R4/ZjXTPRiPQhPG458qFNfF9Bif Qzlw== X-Gm-Message-State: ALoCoQksYEPX6FajS6E6QX4E+ahVXQ0fuvs7APQQQsUSu7vk/ZAw3aZtUwZD/QSaf/P7D79iRvZy X-Received: by 10.66.194.16 with SMTP id hs16mr21172705pac.93.1446854781113; Fri, 06 Nov 2015 16:06:21 -0800 (PST) Received: from sc9-mailhost3.vmware.com ([208.91.1.34]) by smtp.gmail.com with ESMTPSA id l16sm2160090pbq.22.2015.11.06.16.06.20 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 06 Nov 2015 16:06:20 -0800 (PST) X-CudaMail-Envelope-Sender: jrajahalme@nicira.com X-Barracuda-Apparent-Source-IP: 208.91.1.34 From: Jarno Rajahalme To: netdev@vger.kernel.org X-CudaMail-Whitelist-To: dev@openvswitch.org X-CudaMail-MID: CM-E1-1105094455 X-CudaMail-DTE: 110615 X-CudaMail-Originating-IP: 209.85.220.42 Date: Fri, 6 Nov 2015 16:06:06 -0800 X-ASG-Orig-Subj: [##CM-E1-1105094455##][RFC PATCH net-next v2 6/8] openvswitch: Handle NF_REPEAT in conntrack action. Message-Id: <1446854768-38299-7-git-send-email-jrajahalme@nicira.com> X-Mailer: git-send-email 2.1.4 In-Reply-To: <1446854768-38299-1-git-send-email-jrajahalme@nicira.com> References: <1446854768-38299-1-git-send-email-jrajahalme@nicira.com> X-Barracuda-Connect: UNKNOWN[192.168.24.1] X-Barracuda-Start-Time: 1446854781 X-Barracuda-Encrypted: DHE-RSA-AES256-SHA X-Barracuda-URL: https://web.cudamail.com:443/cgi-mod/mark.cgi X-ASG-Whitelist: Header =?UTF-8?B?eFwtY3VkYW1haWxcLXdoaXRlbGlzdFwtdG8=?= X-Virus-Scanned: by bsmtpd at cudamail.com X-Barracuda-BRTS-Status: 1 Cc: dev@openvswitch.org, netfilter-devel@vger.kernel.org Subject: [ovs-dev] [RFC PATCH net-next v2 6/8] openvswitch: Handle NF_REPEAT in conntrack action. X-BeenThere: dev@openvswitch.org X-Mailman-Version: 2.1.16 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: dev-bounces@openvswitch.org Sender: "dev" Repeat the nf_conntrack_in() call when it returns NF_REPEAT. This avoids dropping a SYN packet re-opening an existing TCP connection. Signed-off-by: Jarno Rajahalme --- net/openvswitch/conntrack.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/net/openvswitch/conntrack.c b/net/openvswitch/conntrack.c index 0c371d0..7aa38fa 100644 --- a/net/openvswitch/conntrack.c +++ b/net/openvswitch/conntrack.c @@ -470,6 +470,7 @@ static int __ovs_ct_lookup(struct net *net, struct sw_flow_key *key, */ if (!skb_nfct_cached(net, key, info, skb)) { struct nf_conn *tmpl = info->ct; + int err; /* Associate skb with specified zone. */ if (tmpl) { @@ -480,8 +481,13 @@ static int __ovs_ct_lookup(struct net *net, struct sw_flow_key *key, skb->nfctinfo = IP_CT_NEW; } - if (nf_conntrack_in(net, info->family, NF_INET_PRE_ROUTING, - skb) != NF_ACCEPT) + /* Repeat if requested, see nf_iterate(). */ + do { + err = nf_conntrack_in(net, info->family, + NF_INET_PRE_ROUTING, skb); + } while (err == NF_REPEAT); + + if (err != NF_ACCEPT) return -ENOENT; ovs_ct_update_key(skb, key, true);