Message ID | 20171231161513.25785-13-idosch@mellanox.com |
---|---|
State | RFC, archived |
Delegated to: | David Miller |
Headers | show
Return-Path: <netdev-owner@vger.kernel.org> 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=<UNKNOWN>) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=Mellanox.com header.i=@Mellanox.com header.b="bbc4YnXO"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3z8lqD08F3z9s84 for <patchwork-incoming@ozlabs.org>; Mon, 1 Jan 2018 03:18:00 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751111AbdLaQRw (ORCPT <rfc822;patchwork-incoming@ozlabs.org>); Sun, 31 Dec 2017 11:17:52 -0500 Received: from mail-he1eur01on0064.outbound.protection.outlook.com ([104.47.0.64]:7424 "EHLO EUR01-HE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750923AbdLaQQn (ORCPT <rfc822;netdev@vger.kernel.org>); Sun, 31 Dec 2017 11:16:43 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=YVYZdanXJxXlNcTNJSusJnTKg0j8Ylp3avAr5Dh/clw=; b=bbc4YnXOwCiBNI9Qbx15sXeHpwtZNHIeQ0i1y+YqpGfpNe+fvROUAUttdelzPyrCjKc6W3jgrMSy3FB+uOQHOdPDG++3raDuXFGnnI5J3jTEq4zSNUGG/n62c+bXkzAx2TJ2/NnmTVyfHLCnaFrEH+XbjIOT5o2WrHkI1gMLc8U= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=idosch@mellanox.com; Received: from splinter.mtl.com (193.47.165.251) by AM5PR0501MB2001.eurprd05.prod.outlook.com (2603:10a6:203:1a::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.366.8; Sun, 31 Dec 2017 16:16:34 +0000 From: Ido Schimmel <idosch@mellanox.com> To: netdev@vger.kernel.org Cc: davem@davemloft.net, dsahern@gmail.com, roopa@cumulusnetworks.com, nicolas.dichtel@6wind.com, mlxsw@mellanox.com, Ido Schimmel <idosch@mellanox.com> Subject: [RFC PATCH net-next 12/19] ipv6: Teach tree walker to skip multipath routes Date: Sun, 31 Dec 2017 18:15:06 +0200 Message-Id: <20171231161513.25785-13-idosch@mellanox.com> X-Mailer: git-send-email 2.14.3 In-Reply-To: <20171231161513.25785-1-idosch@mellanox.com> References: <20171231161513.25785-1-idosch@mellanox.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [193.47.165.251] X-ClientProxiedBy: AM5PR0502CA0020.eurprd05.prod.outlook.com (2603:10a6:203:91::30) To AM5PR0501MB2001.eurprd05.prod.outlook.com (2603:10a6:203:1a::11) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: af0ae760-1401-4870-ba44-08d55069dcbc X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(4534020)(4602075)(4627115)(201703031133081)(201702281549075)(5600026)(4604075)(48565401081)(2017052603307)(7153060); SRVR:AM5PR0501MB2001; X-Microsoft-Exchange-Diagnostics: 1; AM5PR0501MB2001; 3:pKjYE5z27tx0+7luD+DzYQPahykySNr0aJtfI6XZL/63cCaCUgqXHeC5MRS+OyrQhecmRYdzq5qs9Feypr0V1SQdOpSJycwDGoh2nDyys3h1ohap+CwrjmwOIW9aUGMY33hm6qjMRSXvMEYnQWE6sOvc1CiPeb3nmjcgpgbDl2sDhv4AogBelT4vXKAgGPyU2DYshb9oLecCzEMogrLCTgEjtG5QZklDjz686ofyb0oSLobHuu+zrbsaj5zNAoTv; 25:mzW0+Omw/RSv3wHN8TD5NzB66ALsh9gkagrirmDUxeo2tUpkDTLi5oy/NBNpix3Io72XSMINTC3CkV9sn9jGDjXywZdDz9PbdNGchgNtGxkQ35fHHXZLJScOrSqbMyiQMMpWyR8RZOpwBSnk1fPESNzqZ7UyWK20UzX2ify6Yug+4VL0WJrVlWT9GT7gcugSy2ef9bABNtJnG9CmKDrav7/xwwhR3lZw3az5DIMrRrXSHhujYlMGUHpbtrSYt/R6+49athu8Up/CI/0DKyqTxd+p3kFJUM++bluqXiKPkrSxMKHHiCyt3eramJp96Z6XmPdZW9fh+5BOYtFnCZMljg==; 31:cKEu61BImkiZSZsD0qnvOWaM3/mXiU8LtXwDiJF/9YK+t0zsaB/SgfWp0136YmPzhUub38cEKkGl6zjAB170qXSYrQUGFNrppBT14B4c448MPocEZYpDmbPBIrmuVSYNU7dBSvVcoSPbRYbmGRp93ZVeBWn7bpvdiA8Ty5fVoaQGQnk4JpGyy4BL4X91BYEhb1Wwzt5tdrFZOzeXVJ8Z8oKf6/e2mmSQBfPFyGeCwFQ= X-MS-TrafficTypeDiagnostic: AM5PR0501MB2001: X-Microsoft-Exchange-Diagnostics: 1; AM5PR0501MB2001; 20:qiD70sRsHnc4g4O3GGSVhfwxfPLUxeonsKIqEfuJqwlNaEDPTcLRFR22FMgamqjIIlixpc0ssC7asUHkSKA1SMOyoPqCYzyDv/iKeFjIrRFWxBSqVcNrhnY7LU8VIf1aa+t+OwzURs7EurzVeYV/yjLN4VwDZ7YZio37iXJ8qYttrMuxGi/3LdaDccJzNBNJf6qaeKKNe/aFbpNC/bSIO1gv7+RUqMWCsvdoZ912TVKaJTKIO/F/DD7yk/5r9vywBSQ6HE1IncHeqXWZBnZ0Z8kcUS+PPdsFS/8Fx/+a7w5HPOgwqjjYpuVqMzNUK7TYifjyMcGMPlC10qEZ2Loq3Paxsop1pXB2ygDu8mZu/sDQbveedvyqBc2VcFdD8BmUmTHlXdOpqcrrcLc9Hr6lFJouB41+6MF/OS+sTE4qPceg7KMN3JehkEbG0KNHJ7Quw6jsLllC+k07NAx/Vlm2fzNGECdGBA+JLhIzJZ9zXBQ1kNkSxNkfROqmz+3bkgmk; 4:VvaT37iIl/MPLvmzYcZOpcj/46RHldGEtCL0CnDU4TdaQ3v9V3Avz3ZdrP1jJIgXRG1YAWrOOM9EEC8sanAGBaK8UgV0emmxA2KdB6CekgVuO5Un4GSvaAAtpWe+12t+fooMmFLwZCYdmepKnZs0xuBLJeV7cCtS4ATROBsypNE/7mVBBmpRVEJegsOt7OKlMSN+bZyukdm8SE3aqh50DoQ9WlPDWE+LY/9ltKP5rUm8uY5XCpsxKdt30xt/sHHgPSNIteEwk0cMoRAAV6Ihcw== X-Microsoft-Antispam-PRVS: <AM5PR0501MB20012BCA4AAE5CDE1DBE0BF2BF1B0@AM5PR0501MB2001.eurprd05.prod.outlook.com> X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040470)(2401047)(5005006)(8121501046)(93006095)(93001095)(3002001)(10201501046)(3231023)(944501075)(6055026)(6041268)(20161123562045)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123564045)(6072148)(201708071742011); SRVR:AM5PR0501MB2001; BCL:0; PCL:0; RULEID:(100000803101)(100110400095); SRVR:AM5PR0501MB2001; X-Forefront-PRVS: 0538A71254 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(39380400002)(366004)(346002)(396003)(39860400002)(376002)(199004)(189003)(106356001)(86362001)(305945005)(6512007)(6486002)(1076002)(316002)(81156014)(2906002)(575784001)(6116002)(3846002)(16526018)(16586007)(8676002)(5660300001)(47776003)(66066001)(25786009)(6916009)(2361001)(39060400002)(68736007)(105586002)(6666003)(36756003)(51416003)(97736004)(48376002)(8936002)(4326008)(52116002)(2351001)(59450400001)(7736002)(53936002)(478600001)(386003)(107886003)(50226002)(50466002)(2950100002)(53416004)(81166006)(76176011)(6506007)(217873001); DIR:OUT; SFP:1101; SCL:1; SRVR:AM5PR0501MB2001; H:splinter.mtl.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: 1; AM5PR0501MB2001; 23:6eCleCERSn+HRAbCJfemKaQZd2oZ8rNre3bleF2Gd7n3A7UxJlOINDlDvz1O1azD548apPO35mf8+5oyc7m9Zq4TCY5/jmBuubdnrIFc3tKlNRDaajUkOxQlzpHwJuxwd8XRMCGcMoT/y8XC3AAgdltKZqCMQuu4eClwXQAOugzjOJQeYe5mXPYyAqb3pDeoeEVV/zotBAZ+nOMC7QGKnU+eDKe21Unm5izGguWM+DKWCaTI3X5XB9LzslkdOwa+ZDf1tORw+9QyNUWxmb1dNusF+d7BByiFp4mDqpXOhYRMQrVm0bbMFNQ7lutOHRRHmNl+29CahF2EPCcIA0wqYqlwl5Dfwx9lOC2aUlXV6XPVt5yIEpY9BEF+Qp+5nOD/VqSb1oGBtLC+oowW3eEQBfGkw5e9LPzjpMkmsk2TSKsqInKd1w/B7G/7mxyRMGQnniYt3vK8VObojiJfR1wjp2beWDaEoYwtEgtoQOIWz5ttTgzusOLMCiFfSBVxxHG+ScarU9wC0IMIsCtYO/UVCPm5gFDX3as/+cdjA2y0Ht497Q2g1+gNgpuB1Dm2kdFMsnavEe+r1xP3Pscdgui5f8YBcUz2RatrbNVJ+wF22CUYVg61FwmJs4Es/moQWjwbfBE87s0eMswvsCbInsTwaGKwWNZdPSQeO+MI8jZ89lC/iZ3EgcBZV5RfNATmPpaEtMHWN1KT57GCfafW157rs/FMMUTQCb4DL+jBKPtrHxPYT6IkgcOOiX6gHr15+mtwGGSi1WET84bPdixuDTTCw+Cofam0fBmdsfa+106kgWwUQS9JGt/gBNbuVSWAZpKhOnxwHHAsji4JaXMFcOY6+Shwrg4gQJ8g86nbHJb+2vAMWsGk9pNbRcXNm5g2mN4SmuS0Yed0LF1eMyTcU5zfuVTsh4gVwTgQsVhqDWTZORv395ttbIjoPCR/2TpwHrdiS6XbKn1cr1y1PAZdzp11edoWIju5jyG3wZp+OvfCdBIwfgjaP2vKovI9WLRTf8YPT9/HGAa1Kj8Bdmw1aGWN7Y5Fi9wAQHn2WflPILHDWJjRQuFbvW8kem69/BCUu5Klj9CN05WUW3Wy74V9viDEPEwL10ZWy8K76i14/8tDRXmonW5wFG+68nsIu5AzG7Sq5dw3lbmv3Wxg729iOlU5G6/n5AE5goWZqpuKEGWpzF/1gFfqcNIb1pJw34Wo7EUyfjIkVPRyGXWLQWbnmTYVIDUAOG6Wfe8XaxzmHqYykyBlkGLZPWk9KoRWxuczYXzu X-Microsoft-Exchange-Diagnostics: 1; AM5PR0501MB2001; 6:XlRZy0rD9l/QGWvaKOSRsuq61WXLoT7gVut8mKbWWFt4OgHQt9mZUNNLJJA98f26LbUAQ8u6VAKKTFYBCd7RWiiCxCJUmAosyYiL9JpaFe+v6SQZ4oFPE6/qr7mS32U36OXi2lkp6/bAwrhuIA2Q7QnWXuIDHuRLRnEnyqZr+hVBDoLl5wlB0OY7UdG7kLki96MVeaD/ePrdaIwL00L4eRgCoHxfHUKaUNIJWj5uSq5NLfsPtrLz4fCpH9WITIGB6/eQm7QFlTpT5O6QAwoTI9iNrF/fHgkJUoGFwEM7pu45vBqllW5aGZTsPpw5Xv6Wb18aQQDUPNQAYMXdSB63B+nOGywEQZtw+g3jk67pPRA=; 5:Ie9wfY4geScd3Mh0nsf0khLhnkTSpOESu4Sew01N7PZYj9oe7MzBUOmt9ths+8YGiHBKyYxwrer3ZWZuYiIl005/X1WuoTS+G1jOs21I3GKI/+I78i3K+YuozFgTr4/qNUnNGCtlHmUmhAjMFpHtNOi50FVwZHvOR9cP3bwUzvY=; 24:q/xhAGzdfZ2C7m+e6J9aLinVjGRwR/4UIAkJBachd5pdbmUi3jA6PLt6O50nWzQvsIbdbIC6xzH2gz6QAR2147ioiATKPvxkdgAZesfML2w=; 7:U8nG2+ePJsOwoTSJjwDXha7jlpl31jF0ndfnmXKE2nWeZpgoEXAsB5l4JLsBmGCy3OtHzPB6fSwtC152P2HCnCcxyzhFQKSJYW8OB3I662sHY1LHVHdrpqfawnwifg5YqjINVtU08w9OsLOwLC8LTXvqxUsDgLH7bMwwZYM2P6g5v1GwuzO9fhWiXTmNvFyMogxZEmp12gQwuUfELH84NQ5w1xLPiOdFpojKncDVQ9lTA5JRK1oTxr0/06gW1NkE SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Dec 2017 16:16:34.2155 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: af0ae760-1401-4870-ba44-08d55069dcbc X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0501MB2001 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: <netdev.vger.kernel.org> X-Mailing-List: netdev@vger.kernel.org |
Series |
[RFC,net-next,01/19] ipv6: Remove redundant route flushing during namespace dismantle
|
expand
|
diff --git a/net/ipv6/ip6_fib.c b/net/ipv6/ip6_fib.c index 3bbb89d8187d..5e4b5eef0ddd 100644 --- a/net/ipv6/ip6_fib.c +++ b/net/ipv6/ip6_fib.c @@ -1887,7 +1887,7 @@ static int fib6_clean_node(struct fib6_walker *w) for_each_fib6_walker_rt(w) { res = c->func(rt, c->arg); - if (res < 0) { + if (res == -1) { w->leaf = rt; res = fib6_del(rt, &info); if (res) { @@ -1900,6 +1900,12 @@ static int fib6_clean_node(struct fib6_walker *w) continue; } return 0; + } else if (res == -2) { + if (WARN_ON(!rt->rt6i_nsiblings)) + continue; + rt = list_last_entry(&rt->rt6i_siblings, + struct rt6_info, rt6i_siblings); + continue; } WARN_ON(res != 0); } @@ -1911,7 +1917,8 @@ static int fib6_clean_node(struct fib6_walker *w) * Convenient frontend to tree walker. * * func is called on each route. - * It may return -1 -> delete this route. + * It may return -2 -> skip multipath route. + * -1 -> delete this route. * 0 -> continue walking */
As explained in previous patch, fib6_ifdown() needs to consider the state of all the sibling routes when a multipath route is traversed. This is done by evaluating all the siblings when the first sibling in a multipath route is traversed. If the multipath route does not need to be flushed (e.g., not all siblings are dead), then we should just skip the multipath route as our work is done. Have the tree walker jump to the last sibling when it is determined that the multipath route needs to be skipped. Signed-off-by: Ido Schimmel <idosch@mellanox.com> --- net/ipv6/ip6_fib.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-)