From patchwork Wed Dec 13 22:40:26 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mahesh Bandewar X-Patchwork-Id: 848269 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=pass (2048-bit key; unprotected) header.d=bandewar-net.20150623.gappssmtp.com header.i=@bandewar-net.20150623.gappssmtp.com header.b="QadM8lYP"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3yxs901yv7z9s83 for ; Thu, 14 Dec 2017 09:40:36 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752718AbdLMWke (ORCPT ); Wed, 13 Dec 2017 17:40:34 -0500 Received: from mail-it0-f67.google.com ([209.85.214.67]:41186 "EHLO mail-it0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752530AbdLMWka (ORCPT ); Wed, 13 Dec 2017 17:40:30 -0500 Received: by mail-it0-f67.google.com with SMTP id x28so6897096ita.0 for ; Wed, 13 Dec 2017 14:40:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bandewar-net.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id; bh=A4vKCVvD8KUxLFB0EnPDFsqlTdvgTCI8R8E4A1EryJU=; b=QadM8lYPJfZmixHqBMYLVH+3Q10OHKOwzsindpRpKSK6JSETJWuV9RkchokuwkmaOQ Z1sczjoJlcjSrIDNLan1mAvSSq254KRQ5UGeWVUqQqROye4KA93eC8vnVWyImKjtvzd3 RTS8DKpW2UDG2XZyTBwOeWCccA6SuD+tTwEu/gqChLWRZu3KJhYoqAeuU1pIUG/Kdjhe GEQbQ4LJ13BKv/Jfe1d7bUWwFq8RvYe1xo9KX4TQsMoPyygG+qyRwuW7EoNDSlJVryrJ vYxWFb64Le27Bi58tXvEOjgQUucbDnCzjcG+PUtXqOpTZWfsGqh1ihJYSwC5MZ4qfzrl n2Zw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=A4vKCVvD8KUxLFB0EnPDFsqlTdvgTCI8R8E4A1EryJU=; b=JHH9h9ETpfRCw7iALBB8isArf7RyT2CWVTUneyrkY+qihKRk0dW6ja3BMnXc8mBpzy 1LehsInG1uFePYFbEqm7HDRJrJmIYRnV9sOS6lESgbYUrn3RkFhqrGART9UMP+jS7Xfb JLzIqlrPfPf/46ad5utdwQVd7m/iIMM+B8PDd7bJwlECfayePgIVB6YXeFRT+RfGgTqP k/mF7qz1mnWX3FmghcMrCVm1sh/3vLwZC4KN+gSYZVqPsc9AK70BQUaG1th5REDEEil+ 69PRM5ELii4O/4kjBgPtzPVKy6yMH4orhmcQrFjMOtog3Els18K94OsWha9tNhpghu/I Uy9g== X-Gm-Message-State: AKGB3mJxCG4bQ8c3dit3PJZZP6d2eF+7BMOEqcnjgCV8VgVJFDuDckMX kywbholgSeNEVa2SBiA/F1lrcw+Vonw= X-Google-Smtp-Source: ACJfBou8/2SJ/Tnck0+SxP5SdijnIdY5/WbqAX1zQ8zpeAP3CYX2vWBcKXYNFVBtmpGzQ3Vvs6VJbQ== X-Received: by 10.36.68.207 with SMTP id o198mr793787ita.14.1513204829458; Wed, 13 Dec 2017 14:40:29 -0800 (PST) Received: from localhost ([2620:15c:2c4:201:c094:33ff:f0a:1711]) by smtp.gmail.com with ESMTPSA id t23sm1487032ite.36.2017.12.13.14.40.28 (version=TLS1_2 cipher=AES128-SHA bits=128/128); Wed, 13 Dec 2017 14:40:28 -0800 (PST) From: Mahesh Bandewar To: David Miller , Netdev Cc: Eric Dumazet , Mahesh Bandewar , Mahesh Bandewar Subject: [PATCH next 2/2] ipvlan: remove excessive packet scrubbing Date: Wed, 13 Dec 2017 14:40:26 -0800 Message-Id: <20171213224026.202981-1-mahesh@bandewar.net> X-Mailer: git-send-email 2.15.1.504.g5279b80103-goog Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Mahesh Bandewar IPvlan currently scrubs packets at every location where packets may be crossing namespace boundary. Though this is desirable, currently IPvlan does it more than necessary. e.g. packets that are going to take dev_forward_skb() path will get scrubbed so no point in scrubbing them before forwarding. Another side-effect of scrubbing is that pkt-type gets set to PACKET_HOST which overrides what was already been set by the earlier path making erroneous delivery of the packets. Also scrubbing packets just before calling dev_queue_xmit() has detrimental effects since packets lose skb->sk and because of that miss prio updates, incorrect socket back-pressure and would even break TSQ. Fixes: b93dd49c1a35 ('ipvlan: Scrub skb before crossing the namespace boundary') Signed-off-by: Mahesh Bandewar --- drivers/net/ipvlan/ipvlan_core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/ipvlan/ipvlan_core.c b/drivers/net/ipvlan/ipvlan_core.c index 9774c96ac7bb..c1f008fe4e1d 100644 --- a/drivers/net/ipvlan/ipvlan_core.c +++ b/drivers/net/ipvlan/ipvlan_core.c @@ -315,13 +315,13 @@ static int ipvlan_rcv_frame(struct ipvl_addr *addr, struct sk_buff **pskb, *pskb = skb; } - ipvlan_skb_crossing_ns(skb, dev); if (local) { skb->pkt_type = PACKET_HOST; if (dev_forward_skb(ipvlan->dev, skb) == NET_RX_SUCCESS) success = true; } else { + skb->dev = dev; ret = RX_HANDLER_ANOTHER; success = true; } @@ -586,7 +586,7 @@ static int ipvlan_xmit_mode_l2(struct sk_buff *skb, struct net_device *dev) return NET_XMIT_SUCCESS; } - ipvlan_skb_crossing_ns(skb, ipvlan->phy_dev); + skb->dev = ipvlan->phy_dev; return dev_queue_xmit(skb); }