From patchwork Sun Dec 31 16:14:55 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ido Schimmel X-Patchwork-Id: 854224 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 (1024-bit key; unprotected) header.d=Mellanox.com header.i=@Mellanox.com header.b="Hr+1y4u2"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3z8lnb3Qzsz9s84 for ; Mon, 1 Jan 2018 03:16:35 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1750986AbdLaQQ2 (ORCPT ); Sun, 31 Dec 2017 11:16:28 -0500 Received: from mail-eopbgr30047.outbound.protection.outlook.com ([40.107.3.47]:24032 "EHLO EUR03-AM5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750923AbdLaQQ0 (ORCPT ); Sun, 31 Dec 2017 11:16:26 -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=ggsOuXQfj8Is46+6aYhbrTqUJF9OTBDw8TzuQ45E3tw=; b=Hr+1y4u2Vp7UjjZUY3j/lRGsMI+vjYH7YWjUwpPrCRbJzgLWb+0JC8xI38X5lzIKWOsYfHAHrDwD47OvlPd5OWlbCRPIX0sQDkVaIF/UO9nmRhkRjEgbiP7U3RxUBatS7z35Z3naN79/3lWFJWTSSKzoMFQeHIUHUq5xjDHtAz8= 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:21 +0000 From: Ido Schimmel To: netdev@vger.kernel.org Cc: davem@davemloft.net, dsahern@gmail.com, roopa@cumulusnetworks.com, nicolas.dichtel@6wind.com, mlxsw@mellanox.com, Ido Schimmel Subject: [RFC PATCH net-next 01/19] ipv6: Remove redundant route flushing during namespace dismantle Date: Sun, 31 Dec 2017 18:14:55 +0200 Message-Id: <20171231161513.25785-2-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 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: c7dc99d5-2a10-481f-9ae1-08d55069d576 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:Z47S/349WhJp5DIMZbhKK3DiZLbqc+wdnt9FbxHHPaBrwdGBUdk75DzVuRDiLggj1J2JAOeTJdjulyDPQnZpM8p0aOu5uLvt5526Bil1jH5Qtr6jZ7xAkdrTViPeKdJAg/1GPrta/JEwAXScP10lRL04avTIHXT0Z9C2oqFcDLdT09alRXlujI4MKWuo1oLN35Sc2nQAqacexj34dhG7DD2iy1DnsdiH//v/ao6Jo8VRlwjT6E8zaKCrY82w4aBD; 25:xSmhdqnKxUwjilDDEqqMFlsq0u6CVFr2/o43RsfGyVdBEB/Nf2cmZRj6TPa62EJHpRMRpBVfqibcTM4x54tKo/M3VNThregDmFRveycnDUMT1ZmGP3Sk6MpBrdnMbx7YgTEFltPGttCBZGWPkwnNbHGGqrJBUgLX2jH6VJD64QuQMB+n0RobyMEuX14MFDd4lz75/xmWbulD7kX59utOUFazPu4z8F36VsFSYJH7Tdj6dhjN7K4zvSwf+mKFjKvJpfnz2nIT407p7+mz6YVeEu5BzF79/BJG6ZqOxL0K9k426kcSl1Ae7vtSC7llpzL0M8pZWbUPO0XuLbTxTZvRnA==; 31:FIzq5r+rRdyqGjY4oOGpWv2DqBrc5N3ivLk/uMHMI7q+XGazrqB8K4m0/JS/TdQ3z2/RbRJq+K094zYnCLwZGb6zI3CMcrAEnEvDq9S0Nfn1W3APOnF8uRInXb+Ly80W76VJfUASkP+ImUDNwPimeZ4yEpzyAEzXZeTSG83AlI+MQVq3nBVvvFopzRAT8CaB6oEO+KCa6B4sNn/RpI8QKy5i9T1Asi0gSDElYM9P51U= X-MS-TrafficTypeDiagnostic: AM5PR0501MB2001: X-Microsoft-Exchange-Diagnostics: 1; AM5PR0501MB2001; 20:BietgeUUM4dz1Gjo/4ENB+FVSlJnrqZtMuY0S0WaGW3dRFsArN8g2+C2Gj7V72lHuiwGD9Od5UOQUxtFwxpJrfZX5fCu3H91v6JAIhx8IllKVJccDefnTx8+eU4dotjPOeZRfKQQAc++WxLpchO6Lqwg26tbCffwhEFjTjMEklQw7xBH+k87SOaKHD5yzZ9CKQ2IsuousW+hBVZLgX9w0iaOFEgHrtG6CZbn6je0c6RIZPx5u0VsFzYzTUAjA0byN18U8KLiqrdjzI5bgXaJAd57zkBNMRxunblkC/QdQojgAKlL57rKwjzr19XIkZNej4wbDOjIDbgFzZPTt0Xj7N+4XZ5p1wE+ab6kjX85WmuXpeK2sWlD4BAPxChmKI4AG8FK0KyYubyqg+w8H5oJ15zlrK0At2N/L/UZiFZOLLu1DAz7+AQKpabRa+zECO8jXH/2TjrXubdgf0WU9qRtEctj+JYY/EAfUUFPY1LQxZ0i02jQ4zAv6G83NMVp5q/P; 4:fdKEFNR/QjgYx+OLkN+yoZkQav71opMPAXffvtirs1Tk5wWJvAwbkq2RASMmGouH7kUfc4pOgoZUB1ZhYO2hV48na8DDQAnpYzTNXX4PYa3/qJ66D7FqhKtdnokVZdPvQC0kQNcRsHwT1afEiTAELL9ChO0D88FjPmLR7UFnwCzWOWUIFcfna/xu7PNb/JIgDdFx8wyXAyx6oYJknzvF9rTmbvNXmr28iEAu5iJB/HpvRMv8tmJhbRTbHR5iEga23xmsSlR8qyR6AkNUGDw0hw== X-Microsoft-Antispam-PRVS: 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)(6116002)(3846002)(16526018)(16586007)(8676002)(5660300001)(47776003)(66066001)(25786009)(6916009)(2361001)(39060400002)(68736007)(105586002)(6666003)(36756003)(51416003)(97736004)(48376002)(8936002)(4326008)(52116002)(2351001)(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:Vo5W6qnKWhdXwCwy+2b0hIM6QknoEOvUcTkhe1NNNn6wPd3POK/z3+gXI8ThwjMtCy+YUpTnurCHoakyRP9IjBbDuH4+Kd7OUutS64i8b0Kuu/G9sMzbJKNsSa+BiEn7WMCMp4knR2ModLJYq7/tK49VGYk9kAlzlkaeyOgHRu3MQgk95iFd6pKVS4YKYEvECzDnDb3pPkpNnT3e0634GNqc7ThsAiZ9N4uletF9STlCAbcY3ZdotuQ1zXXYEEFMmWlJiaFjK5r+x/XJ5keyAIrCt6B0+w4smf7SNwx682edy9qATil47qh/88wueyn7LyxXKEAgcWEuIRA1Pcv9+ROd49+40pSuJf3Y26hg7dN8H5NztxDpFy4l6gpujGAlthXvtBc3g/wLyQxeg+zyRPLwvzI/MJUvmaBaljfiqgP5OHsgTt3TI/BHimLD+FB335b0vzrqrZe6jD0AZE9zmbK8tMCNHCGQoEaGRCRHzWlo0l+R2xrslSwzGTlwudAFxIv21kPSSvgWwHEtO9UVXSnX05TwzNbrHDMy67pWUehiwD8TK0c202fijoEEhM1iFPC9/8qBoaaDYHF36rTXemfiCnyXZEXSUkX405g1lTdV/OkatK2qwTZzV86BeTCewEzxdjyPlttZXlEelGJOzB5+OxHOSotJSmMmbWZqLkjmVCdiT/FjepuPmFVTv9SJ3QRsY8FO0hKSNbyQK0HcWkiNiIBXG+CnLuagXiweslndl3Y5nlwab163GsSSi8aXuPs830GBIjv2bKaAql9CTrQqGgY+meXIuJivieFNyGFqbylb/7JPSrBP5UWh+aYndEeRIN9WfEKv9fl7ogvSMe93ZEP2u2vRkOL8cG1PY4k6BdjjI0SyWlE5VN+96ThIIniBTxeyf4dsfrccsave+AwlbCizpGjSJLDYbg4d7EX705kx1xcqjkQ95ZjdSZri8wiTNcFDKYvfO5WZ1Tlmrup/w07T0R6XgFO+OObm5gu5Y66riV9wJg6MIfTmIdi4TcxMdcZ8epi69O7K7m9xNYEutUE+L2Wcg4txDlhvCtzMoTcQnXQj0/slqPCGpQ41MuDa+g7iqtQcGXK7iDZDuA9Qjd4v3QTi0gNZ400p1Et1koq2UYI2OP/qBp4zweAzt6kVrk2cnaco2HAZ8YStg+CV0jasGJfspQOpSWqRqRAy1fOZeFTyUQoLoKVj036oQXcVLxZaJUnr6QXkFOQinw== X-Microsoft-Exchange-Diagnostics: 1; AM5PR0501MB2001; 6:fuWV6yRE6lLwpRwKVqekg6yGQw3NMAxhPe+tLyAqEffF7+kxi9sZtrTNk3i44/0SdPa9kqipG3KWRJk3D4XpofsL2GZKOSLGXI4rK0j9m12hw23hi8hK7EPjRmJGGKLck/G6vW8hfRFffQoVWlxUmGfNWxAQ+pPCpI6RM9Fq/5GpcZ/RSWp0EjiZ3S6Rh8xGvZ7NLVnqPlJGR6+f9JUB1cxi3gJuQ4M6Si8lC9hcAtQcwoM3D1VGclthS2rl7WS9NuVDitKTLcksP5pkLkvVfa4ygwFydTFx0S31FOzcldz42C8+8BTAwBi3xLhYcmx4GWQcbJ118fs0NxrY5d2HJX9n9Ph6AalLcZ8EWo4hgs4=; 5:B0tsyYVlWhXTW0yLYprqSPiuZF4PxewEB789h+tVrEiHHMgyUxbrNjobuOkrtSRiwqZGS7MfY7fzys1rpUQ8/UBQaN8iWCMgeLLJGdfskhyOOSmdXk33ZnveTLdJKSkKvhWEOzN4cWYl9xDQCcK+To20JxGHSZ7I0s8uanO9gcA=; 24:BgOuTJOj5MoOwL27PllgYgbsYgJCukwbe/BNFihujaIahbIHIC7rQEjc62xFr2/FxeWOKaAf3OWUjEvR0oliVllr7B+0yFBMFBDeEO3s1x0=; 7:Kksy8KtP1IZmMFKfmjkmfdBM93uEH9PK2CoHO7KTM1QCPoQdxwZC6EHq0th/zD9JpP96Cjj00O6LHAJsjtVw5T5ICclANbbgoH6q1mDo5NTt0sgPYtErRc8MVhrpeK0V8iPOOoNxResVdBVURI0AVTk8dQ/6D3VpuLqGDEsF2b0ysygbjPL8Ywl2/tWqtnthwlsXuisHZK8kjaTpz6tosGYL7BiuqjY8OISj672PQ6A4+JhAVcN3prw9xI6Gvd0l SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Dec 2017 16:16:21.9963 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c7dc99d5-2a10-481f-9ae1-08d55069d576 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: X-Mailing-List: netdev@vger.kernel.org By the time fib6_net_exit() is executed all the netdevs in the namespace have been either unregistered or pushed back to the default namespace. That is because pernet subsys operations are always ordered before pernet device operations and therefore invoked after them during namespace dismantle. Thus, all the routing tables in the namespace are empty by the time fib6_net_exit() is invoked and the call to rt6_ifdown() can be removed. This allows us to simplify the condition in fib6_ifdown() as it's only ever called with an actual netdev. Signed-off-by: Ido Schimmel --- net/ipv6/ip6_fib.c | 1 - net/ipv6/route.c | 8 +++----- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/net/ipv6/ip6_fib.c b/net/ipv6/ip6_fib.c index a64d559fa513..3bbb89d8187d 100644 --- a/net/ipv6/ip6_fib.c +++ b/net/ipv6/ip6_fib.c @@ -2103,7 +2103,6 @@ static void fib6_net_exit(struct net *net) { unsigned int i; - rt6_ifdown(net, NULL); del_timer_sync(&net->ipv6.ip6_fib_timer); for (i = 0; i < FIB6_TABLE_HASHSZ; i++) { diff --git a/net/ipv6/route.c b/net/ipv6/route.c index 2490280b3394..c557362daa23 100644 --- a/net/ipv6/route.c +++ b/net/ipv6/route.c @@ -3470,10 +3470,9 @@ static int fib6_ifdown(struct rt6_info *rt, void *arg) const struct arg_dev_net *adn = arg; const struct net_device *dev = adn->dev; - if ((rt->dst.dev == dev || !dev) && + if (rt->dst.dev == dev && rt != adn->net->ipv6.ip6_null_entry && - (rt->rt6i_nsiblings == 0 || - (dev && netdev_unregistering(dev)) || + (rt->rt6i_nsiblings == 0 || netdev_unregistering(dev) || !rt->rt6i_idev->cnf.ignore_routes_with_linkdown)) return -1; @@ -3488,8 +3487,7 @@ void rt6_ifdown(struct net *net, struct net_device *dev) }; fib6_clean_all(net, fib6_ifdown, &adn); - if (dev) - rt6_uncached_list_flush_dev(net, dev); + rt6_uncached_list_flush_dev(net, dev); } struct rt6_mtu_change_arg { From patchwork Sun Dec 31 16:14:56 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ido Schimmel X-Patchwork-Id: 854241 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 (1024-bit key; unprotected) header.d=Mellanox.com header.i=@Mellanox.com header.b="C/CdHU2A"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3z8lqf4lZhz9s84 for ; Mon, 1 Jan 2018 03:18:22 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751098AbdLaQQe (ORCPT ); Sun, 31 Dec 2017 11:16:34 -0500 Received: from mail-eopbgr30047.outbound.protection.outlook.com ([40.107.3.47]:24032 "EHLO EUR03-AM5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751055AbdLaQQb (ORCPT ); Sun, 31 Dec 2017 11:16:31 -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=JdJ46YufvU5ah554moEFObJ07FOFPa1BA4KItWHpsr0=; b=C/CdHU2AlWs4wwMh+eGIuqsUi/BpRmVq1CJZslvOuAi4LxtA5vScCbjkz+KwDOw9uarunCdWw+pi+K/0QDvj/dC+BngS7lTH1IbTu7Vea5RFVl2cpoqmxfuAEe/h5g8LYzJefSBajaPu8CLpJeTSOAX8uluZBALCBrKoLJncxHU= 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:23 +0000 From: Ido Schimmel To: netdev@vger.kernel.org Cc: davem@davemloft.net, dsahern@gmail.com, roopa@cumulusnetworks.com, nicolas.dichtel@6wind.com, mlxsw@mellanox.com, Ido Schimmel Subject: [RFC PATCH net-next 02/19] ipv6: Mark dead nexthops with appropriate flags Date: Sun, 31 Dec 2017 18:14:56 +0200 Message-Id: <20171231161513.25785-3-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 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: c084d3ba-7313-4dfd-f7b2-08d55069d613 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:x6Cz1cYBWnkHBFCpa6SWnSY4I+wfbxCjh2kFXCuCLgYiUNHt/ISr9qJoZFlLBi37azNGi9qJysQ20zK8UUWRRmxrTp7Ke5omDPMYLFwo3kiIm4rCkto/VSSGg6rcCQLuJPbgpGcv8IOXLYhTaj77X7wNLRHey4r4WgsBgSoS8CBtgqh8RtFGCfX25kbHz0IegHc/rGOLlZqabNAC+lsmqEATX9bWEZXSKzlhlFhyH7K+1yfPaLrdTOI3wDMreu1S; 25:UjNziL1uRK8tTsLmLMdnL4np4PA6gi8zeunPmbAFkoxSEmIsrCVRhxD4ajy4nE1o0mmjEGnCXOC2DeA04U0wmhsh2NFBWt2FajFRNXYmHS352NNy1KYY+WZI+RTLhqPjyRKHH5X07c859K59ULlMiJzvTu7f5GSATSFa3qztraAo28XYYkQuM1M71127gi8jNGvUCY+zc9SEFpAIsaGFWsmFvocHpxbWvEPq4EFlqFCn45nuXRmsoYTEQ00qZaq+p2/RH4G9ZDoCUJ9BRBRiMZB2cMzjXvW2YoghPwdIwdeAD/OhguS4VtBGk1fDUGBYufG/Mtx3VWnR/Y9udJeXgA==; 31:TxqXeruHvDdb42PsHRTT4xmwKlI1sw3p9Us+cXvQxMWYMRODNIJeF0BMC/AHArGXau1GteA8TiHz+9JAMVjQGrgbCupxJLCK19FnOvUcBUaPC3LO+YlBtUfmJQrV/PeH8tFWQRPTkhLLMJP/T7IJLrI7iu3JOyWA9b3TG9meUDdmgCV/BcKYV9CM645oUqnZr1VUZEs6xd0iwxlf9z0arGy/tizB08r5fmcPN05iZXU= X-MS-TrafficTypeDiagnostic: AM5PR0501MB2001: X-Microsoft-Exchange-Diagnostics: 1; AM5PR0501MB2001; 20:MbZmPQ8xYt63zzk/acQ94cTjwIc2+eGQcsXG0Ls6ckG6gSpnixRPxyBCyCi8/poQG0RW1qtpoOZprcFVsbPPC/j4MmyUP+NLbSGk61n4JqBPUJivJz3UKjjjhEUbBkwoQUHrxWaEcXgD1Z4CVZJQwHYnic5RK+b654LFju2z+I/eaf+5Fs8X/B0jTY1os75crJvWq3g/Ak5PJBLIjhfctt2K15sHQPFsSecAHcchP732b62XwvVHBBJOEbnPHC2iBioU8BqKwC8xNunoZ3R8R7Fm8N1pFIF7ShLLpOSyq6/WswTggMAugC3usInvRbSISjEYNmf156y2lMZnNJ9EfQnBr8i83DMgE2FcpWGbQ7X0BDMRtg8ry4igJVvrb5JqA6+scPM2J40TP4pqIVZFaejyCmlcA9SwTyyIwbbxare0M4fBUct2CSp+X1b0QxCEYCrGnFPjXMl84FKqhPRl7O9PF1aD+UVkM2TwU/yvvVBnJJuto+IOpIx5tKOvRwKk; 4:RHskSec/KO7m4+gerAYGBS3QG0BcsUvO+/7lEdchF0Fp7LXls79Cgk1Aknp5p1fiAmvqsYret4XgSXQC9KpJixlL3MFgacmkXeAEvBTG1f6cvtT7NI7fL7brsQyUCzVYtWcfEDzUYvqrHl+rRW62DMiN8v0xqEhx8RxDj+KpPBw0w7CR6oDJLaABeABIU8j58gabSwL8xRpyJ2P5+DPuJ18d74aLUedoYu6XrxV7pNa+TW0wn1vustcYkLmHofiWIi47ucqp6NkZkhqIGmH/Wg== X-Microsoft-Antispam-PRVS: 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:O+gmdDepa3S30fHtASQ5Ge4KBn3Ir4L+1szmdl4PHUUSlqoN9YlCUKRmb5PzHUs5h/HhXnk9g9j47LrRWeSaIR417eyQdu4j40JPt9ZZdZbRoDwxJkP4z/1p1Ly9+TA87RerTezzFXsFIoss/sRAG8exHCaq/9evHfgv8HQmRHREzKQiAzq+ywKGH20oCQjnGY/y9HwYeqXste76KB5h3o+qDPJWDCT9TlwCEcyqbUygaA8k+6u8V5DmmvBz2xXYyBqtCuFBYekeHuA6SlO9Gfr82cI8QvooQ/ELBBdrCAZGAHCq6wRYirIXActdT7jl+VPTsyoa0QCA6J1fyj9iSX/k60wj05I0uQ+k8YPNvZxavnBh6vmwluv/dKu2QDD64yKTl00o4D6SPOJDDI+lFM7hvEqh4D6H7wbx+GYZRPfLj9Nd5pBb23f9KH1MX5ZZPq7Nr7TkJIJSurY8QqaE21DtJdGEYuGOfXo2YspIv6tIK7Dsrs6YZgaxrEy3C1fbq/eaUxlxAz3+5N9silFftTUsR5xVfgWOYjMvWQFPttqNe2racB1omLjySLtrDHPkeFWlOWSdyFzP3H9hJ5qq7hJjlBlyo0GJESrK8k6dUh5DLpeMAdcfp0MFJiVZ7EkbOflzpLNLJeyLLU5SGij1sHWRp0vp7OiwUKHjONt03abGaENY5aFBEDdnsVuwXVSbHezQk7Jsj9X4PmJO3JhmXjYkWEHuX82t5ReMRji0t9VT0pzGMrq+4GhyqeQzRIEc6JWiCTMAsknpPx85eFtd5S1qMbtI2NFNFdHepDA+L5SqJc1dMQ6pzzZu/EzpMw3vwPNF198q1dZ9ie0GaQrUgRFSuC/o727lrPpEb3Gdt/DPWIhrIz9vNeEEXldf2c7td/SpKDJ/wRxwlqOjo6qAYa4VG60KYjPdw+UQURleDiCVg7nNMsI8HBLqX1rr9x1GflFOS3YtjJbxjj2HiDwqT/OPXBLkkwX95uv0iJD1NrhXNUIc7kHMidhuYixMpmHIAURj7ne0b2sCZcSTiR7SJY+7RJntvbdk4cHOgywDfYN+E4hnS1p+F3ITuM0AFWGyJEQsmYXjWpEVFT9EihHWKeD7cgGbeLehNJS4NHr3RXORP6qNU6AqHUmiLc5VdlUc/gwibgxO1lnmAtPKHDPC542o50RKT2N8LncWlpnLuP9wPW8ADrZFEOP50+yIeHoL4sXQRglfBIZ+srOxqAjLale/N9yozWJiXUSOJV6mSGbY6REN14Pt2oZCKEapncrr X-Microsoft-Exchange-Diagnostics: 1; AM5PR0501MB2001; 6:R9Ut0FeThfRD6vOdcm6sYHktdh+E6/d1rmeFa8y9qPxdeavqDRAm68kWg7IQEK78QZ0LWf+DlcVh7O9wj6ZdcQXU/R9w3cpC4rwY+DSh9fVfsw6jk+kuknxMuE4musqTUqJ/pWUko0ORJziIBSMpl7tb7CVNrfOEv+DhQvpVcgOFeBG67nSbyVCOPvpHgylB3I4d0UNRIOyAJjTdQCk7YrLgkMsMnVkrXRiG+yGufzaOD3KZgtvNj47S0HVHihX0RiYiDmeMoQU+jCm/yilwxLD5E3mxZHkHFa2I5IQKJFWlVy1EbSNqMjorqL01xQBkGdPFTMO1UFnT2I2xKoi24rEeMJT1R/9R1VriblQ6Os4=; 5:JlW4jR3e42qp9uNeYpyy+Ls2H4l+zJqVztODLhu5M6WXhL51bi5Iqkq57rjUp3JeLNTjGsEa0bnieclLkjEVw4/I0C8v57c7XHyyXfLOuCFhZUVdO5+vG6QpfkKTIIQk58xBcHjqrzJuDeVPeZx3W/ScExL1xhnSH6eXpnnv8bo=; 24:LW5v+vKsUbL5qn7Bl/ClTPNSmkPSF9jZmtx/jZ9l7F8NsG9yX+TmZb6JPKpCn9G897q/JBjSqwoYVZhQGXIFEoSat1sB84dPTnZZXIcr8IY=; 7:/TbLLw7FjG2eQeSUaqCwxFleX8bR5RlCrlrzpP+Nv40qzUiSYIs10Wp61AkIY0QXPphqhXstqUPhl6VyjXlgbiFR8XEta4O7wwp/l5kjNRJYsRtxvuh2iTTNXcTapX6keeUmopeuNRp0hYdcMJQSlQM877B22cVZu+i3ch4U9ZZmTZ6P33NBDmHM8p8cJ8rPIbX1vyoZgZmnPFxMEQbfOmMzYknTBev9zAVO/E9qqVspPBPmXmNVKYPa3eSegJHP SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Dec 2017 16:16:23.0432 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c084d3ba-7313-4dfd-f7b2-08d55069d613 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: X-Mailing-List: netdev@vger.kernel.org When a netdev is put administratively down or unregistered all the nexthops using it as their nexthop device should be marked with the 'dead' and 'linkdown' flags. Currently, when a route is dumped its nexthop device is tested and the flags are set accordingly. A similar check is performed during route lookup. Instead, we can simply mark the nexthops based on netdev events and avoid checking the netdev's state during route dump and lookup. Signed-off-by: Ido Schimmel --- net/ipv6/route.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/net/ipv6/route.c b/net/ipv6/route.c index c557362daa23..f5eda0aeab55 100644 --- a/net/ipv6/route.c +++ b/net/ipv6/route.c @@ -3473,8 +3473,10 @@ static int fib6_ifdown(struct rt6_info *rt, void *arg) if (rt->dst.dev == dev && rt != adn->net->ipv6.ip6_null_entry && (rt->rt6i_nsiblings == 0 || netdev_unregistering(dev) || - !rt->rt6i_idev->cnf.ignore_routes_with_linkdown)) + !rt->rt6i_idev->cnf.ignore_routes_with_linkdown)) { + rt->rt6i_nh_flags |= (RTNH_F_DEAD | RTNH_F_LINKDOWN); return -1; + } return 0; } From patchwork Sun Dec 31 16:14:57 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ido Schimmel X-Patchwork-Id: 854225 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 (1024-bit key; unprotected) header.d=Mellanox.com header.i=@Mellanox.com header.b="emZu2g0N"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3z8lnj4zdQz9s84 for ; Mon, 1 Jan 2018 03:16:41 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751140AbdLaQQi (ORCPT ); Sun, 31 Dec 2017 11:16:38 -0500 Received: from mail-eopbgr30047.outbound.protection.outlook.com ([40.107.3.47]:24032 "EHLO EUR03-AM5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750923AbdLaQQa (ORCPT ); Sun, 31 Dec 2017 11:16:30 -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=iuefrvy6GQ3znp4Mwu0eSKVUCIMFhuV5KleT7iEM2qU=; b=emZu2g0NjozO6I2s6Rxmemc6c2LuhFm81kbxCkTEeWr7a6YJF+2i1IYNhcNvadwz6nRibvgGrtdDpd3zos0ezJTkM8QuTYmgAt+3hjq5t0oGlYv4gt7kfp6JYjDbeQy/ueYvHERHoDfCh0Zs8+bXauDZGdmIjJfQVh423jKU4FM= 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:24 +0000 From: Ido Schimmel To: netdev@vger.kernel.org Cc: davem@davemloft.net, dsahern@gmail.com, roopa@cumulusnetworks.com, nicolas.dichtel@6wind.com, mlxsw@mellanox.com, Ido Schimmel Subject: [RFC PATCH net-next 03/19] ipv6: Clear nexthop flags upon netdev up Date: Sun, 31 Dec 2017 18:14:57 +0200 Message-Id: <20171231161513.25785-4-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 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: e76c8186-2d8d-4307-181e-08d55069d6d5 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:GTIESXwH7o2MjyIpBfZuEOIq010+oMz7YIWigrpXGyL9iYFI4knYbQxv3ueU0LulY1+Gh2XG5ydmGFiGSPROBaFRYjOvFHMrxc4gJiOQZZ1sDilX/34+rpyqN6WY2gBa1UV9LHrllbucqWtkbsHtneAbYhJ4RqimWm/u7F20kU8BgQRKRicPIfEQS2XToMMDruC+S6V3JPn3DPkTTEavgUhCRl2+PKGnxIolcYJO7ULL4YjQNW4auLXhNCAVYsdp; 25:liEqa1r/ssijPqjo2OJY7DHbYJyGj8SZvt0am2DrBFV/d87zkfTYqc1bVo9liPPJUsNr6uMNsFiy7LPRz34/omyPjODNcTKxYl1/+8Q3YrpjZhk5mmywkIYqT7AmzV+GlyER+MJXCKsXgkMsnMhBacmjmYxSp/SIfVC5dpncJNqrXyqAe7iyAxFUf8okhAg7FStnCkLCaawPv7X0bOCSD0y8Ay2VvoDpAlg5kGQOErsmH0UIttSvZD1yCHZctNUyMqmqIfkk1MxCLb7bNO+2+fKWMxuKp6cN+urWi8QPkVkIZn5wa5H/zR5GsBpDotmiZSCyjTN98w3XXCVkfvw0tg==; 31:/WGGNYJFemOuskdwdHyg5bBEBD6qm/ZwawFp/TnGDlSWoYjRdmotprZe/k0Ryvrx9bj8tktYEWoHx7JAKdA0OfcUtTQfkZCVecKmwJqog1OMChEUU1qRtgPK4lk03fS4GaCMT7dFSvONkXPmDK1niOiV34Tdn0fdgAcD+UjKQzGOYU6Ydb9W1eW3Fu/aXCZRNMZiDl96oZo2fP143jrFWsiCJzuaiIk1AVU4B/dueEc= X-MS-TrafficTypeDiagnostic: AM5PR0501MB2001: X-Microsoft-Exchange-Diagnostics: 1; AM5PR0501MB2001; 20:z8itIot9MmXBE5hVFLxKnNn0xBt1LEjJaMMZEXvU4EX/dJ6XVocwjHS+5hKYmRu1NNAdczHPGeIoLIzHYSn8cVowPnyHKqjdCG30kO6/3QQFwRDnQuTJtENbjCTaGJlT7jTdozJlQj6u79f8QiSlHjTS30M3J50Xs39DjPC44M3uOWSzOMYLF4YK9R4OuInjeaUudbNIT2GeBG0v9WXwwl4DOCoCu9watfycW3GJkS4+byfrsdflfevLtDksXZtBWhxEb9eFusefdgiA0C5zzRHi5fxiGFQxOV8xTXH5hZIrJYMYABFua5pvC/8WGtDn+wAEJol8xj0Y5jH3oDbI8etbaBQT949cypTzyVLrSTbFyrQ90P30fWN4Lh/bl+pWKao71zCcRlXehY1wbd0a+iRIlNNWb3eD2v4k1u4LGu6UBJIH0S4FcesQUT+WiOMirzdAlwSuac9jBdlVmnLFtstIiN/4Jf/Ag5m16xauFNWMzPp85ZXhbQIey/r5G50h; 4:auDimzO4GVRYKicHMzHqU/dAcQsqq530MVibJU074Iouxcg/KJhl9C/Bni3iKbp1+XBuTeU3MAGhDr14NnFSnlFuvGF0+/RjAhKG9QXQAhGrIXOWhGV8r1oLSXTXy4wG4fd+QDF2CPVWoU3RWRUmrBHprPWm/M7dhAdy+zIyXP+CZya2QYf0iqZpPhs13F4MWc6jAWtvgYKBJGUlox5cAsuq5ePoi+rZSIwteZ+6uY02la0soXlEDhrvobL8FlyEsvuvi50MHakoOa94Op7KwQ== X-Microsoft-Antispam-PRVS: 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:vh8wEoZdNdaI7pCLnA4b5y3/fGinfNbBovTx/setzmDdlw3UXNEvUESoW01hhc7VygM0MdxWMGTgWqNHkpwF11e/LueHHr5/S+1D8VfJdEqrt1P5UbqTFy+ly5vKBY3p+puM28/S+tqP6GodLrJ9/8Val2aLFEUy/vXLGBDMsZz/3pHBJeuiCGRXpKhGosOHcZ37XRA1R8kMDkSbpKgikPo9Sgqh3eLgpCfKvAVEIb09W9BW4sl/iD7ebpX46UXtcnBLuvYV+eImrwtrqlBrKS6asn4xZNHtgE28yIdaGu4xZA2F0th4ooo+cV9onT46wWkZlLudap9qBCcjiRuuw3ODXDikyBlZIeGLNasiSd6nc4casf5Aq4rTjm8c/kW5RNPfvbYZjqpWNjX17rGjS/5ABqox8mWApDKenPjo6dbX71PxR48LzqsQmYycBWJHuKoWuwnu2gRYQdJYft/T6axihAyCKNG4B1W6N6hUfbE4obp5+o9RlESNNGGZjDyGRCHtbf5i59rdFda7f9XO7GINwTM6ub3iEejdj59NJ4bCSS4hp6FiYAr8hP4DmW/4yiixRlYxzJp6AiizkfyciXDuqxSbRsPWpTD/PP6eFhgLnX+W/geOt1lZNvFITBmHFRnMDGoQ7s7iTlb6P8Jh/fyBuHLPThneQZRVYaka/s70aelfyk0+BYkxg7SP8BrsMbUoIMo7BGYUJidIHH5Q66oXF/5IK/+omGnfdjiTQcu7kgPVIWD0TlV68xOIxRcAWD/rfLgO914yhgYJ+tOG7PR8LT6AZqvGvJj0cX8n1U5PZqMvy2btXHDy736XVj2mKg1DTf+S6Ty1ltn23a9rOleXsky6NSFF3fUlG2bqKNg42/JK0G/YyXio4ZON9qkvjRr+7ZM4uBVY/qzZfRRpnWmQl2ok9FuQwCkFYssMrlURtPhzsTu2WcWwRVJs2BXmFN5qN13k6BUgBd7ncBmCy8SmWhq56f9WX6NB59XWoZ3UTGa0TxyKmRWZ/oYT/e1tfyYishaeuDaZjPhSWuVBPEfSdEPnHo51lGydQw6aADdW/znDRDf++2PBMLiuODyd8gPCYq9CiYW+nSfvluggvWVhO9uJUr/Ov/rEHRTTifpXqCAyhMDkPjq54grX+jKiPIZLLBWGSBQOFSX99ZrZT9ZJxREFBah4AeevP5C5Gb4ca7dIYfVKAbNZEt+n3xbY0xm7k66smp54yV8f8H+2tSB3br6ScR6lttUoZIET7NW+ns8CtG3b+NQ5/P7Ei/Bg X-Microsoft-Exchange-Diagnostics: 1; AM5PR0501MB2001; 6:MBV/1E4N/zw/a7pFwA2cWBQ7BOIyJ8uWW3LUKWPSfINKyl7qi3urvJqo/TY0wzub5g0r7vcBI59fbb6k4j2J1Gpg7jkePtKk9M26xKMOyj2Sz2ZartWXRKfiW2boFpxdiFAjk9NHBrWg0gSQEh36XHfDb1fvrCtEx8u5x+c/1EAbxgs4ft9tOBVRuNqncND2tKtE1Sj30b+dH8MZ9hXJuWLLmQoafSaPOi0lg6gHC+bTFiFcfUie6srbwAq2arKWICUailVglAWW8H+G+oxy8Lby+RWkk1qZSBVO4aRoxtJv/enQeFpiD50SlOgKoumAwU0PXFsKNIDD75Z3wENT7Te1IjOYxB600cqAwefd1/o=; 5:ycuY8qYKGtpQNF1w2KIK3uzXMGcs58CSF9Qqsh+jhnu0DLWVFWeSGKWYv53jVJJnIclqdHx6ncN61uOYTVvLZ0YcUlhVtFBR+6j7rCdjER0C6ZdFV0kBQJiEoYT/tXsscll0NcH9S7CPfh/rutHLohwAdrthZ8vPRBwbwL4IcVo=; 24:jjJwuzJqKXhOfIbIy71D8Ztnf/EGSe9/eqMjKmYf29GNa6FobDcMIseh1ZdPrVLMe7Av9zoZHQMuMLwLOtvaTqarW1rzswnVdk8x24l4LxM=; 7:Q9silQOMBYjMtJbMrP0bgXHHh3a/kssRrT/miyqaHBrvz6Tp45F7uW4AIB7co15Bn4f3TfHFolcSr6Qjmbu1kKJHxIt65oPFJbuQeNaosRSgj3EYCdj+KBMkVmSaleAm38uH7cp2D1EQEHpHA+PLS5okZAl9+rfiozTHiKnfzPYepSfnwYIv//thJkhjibU5esl9hPtiMWx+Ii/P0t4SvehhXn9JWBXLFcx+ZOuObop8G7bnJrCjBUX4Nlj8/mLX SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Dec 2017 16:16:24.2151 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e76c8186-2d8d-4307-181e-08d55069d6d5 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: X-Mailing-List: netdev@vger.kernel.org Previous patch marked nexthops with the 'dead' and 'linkdown' flags. Clear these flags when the netdev comes back up. Signed-off-by: Ido Schimmel --- include/net/ip6_route.h | 1 + net/ipv6/addrconf.c | 3 +++ net/ipv6/route.c | 29 +++++++++++++++++++++++++++++ 3 files changed, 33 insertions(+) diff --git a/include/net/ip6_route.h b/include/net/ip6_route.h index 18e442ea93d8..caad39198c2a 100644 --- a/include/net/ip6_route.h +++ b/include/net/ip6_route.h @@ -169,6 +169,7 @@ void rt6_ifdown(struct net *net, struct net_device *dev); void rt6_mtu_change(struct net_device *dev, unsigned int mtu); void rt6_remove_prefsrc(struct inet6_ifaddr *ifp); void rt6_clean_tohost(struct net *net, struct in6_addr *gateway); +void rt6_sync_up(struct net_device *dev, unsigned int nh_flags); static inline const struct rt6_info *skb_rt6_info(const struct sk_buff *skb) { diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c index ed06b1190f05..b6405568ed7b 100644 --- a/net/ipv6/addrconf.c +++ b/net/ipv6/addrconf.c @@ -3484,6 +3484,9 @@ static int addrconf_notify(struct notifier_block *this, unsigned long event, if (run_pending) addrconf_dad_run(idev); + /* Device has an address by now */ + rt6_sync_up(dev, RTNH_F_DEAD); + /* * If the MTU changed during the interface down, * when the interface up, the changed MTU must be diff --git a/net/ipv6/route.c b/net/ipv6/route.c index f5eda0aeab55..4796d87e0b93 100644 --- a/net/ipv6/route.c +++ b/net/ipv6/route.c @@ -3459,6 +3459,35 @@ void rt6_clean_tohost(struct net *net, struct in6_addr *gateway) fib6_clean_all(net, fib6_clean_tohost, gateway); } +struct arg_netdev_event { + const struct net_device *dev; + unsigned int nh_flags; +}; + +static int fib6_ifup(struct rt6_info *rt, void *p_arg) +{ + const struct arg_netdev_event *arg = p_arg; + const struct net *net = dev_net(arg->dev); + + if (rt != net->ipv6.ip6_null_entry && rt->dst.dev == arg->dev) + rt->rt6i_nh_flags &= ~arg->nh_flags; + + return 0; +} + +void rt6_sync_up(struct net_device *dev, unsigned int nh_flags) +{ + struct arg_netdev_event arg = { + .dev = dev, + .nh_flags = nh_flags, + }; + + if (nh_flags & RTNH_F_DEAD && netif_carrier_ok(dev)) + arg.nh_flags |= RTNH_F_LINKDOWN; + + fib6_clean_all(dev_net(dev), fib6_ifup, &arg); +} + struct arg_dev_net { struct net_device *dev; struct net *net; From patchwork Sun Dec 31 16:14:58 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ido Schimmel X-Patchwork-Id: 854238 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 (1024-bit key; unprotected) header.d=Mellanox.com header.i=@Mellanox.com header.b="c+wJurE8"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3z8lqQ4Qyhz9s84 for ; Mon, 1 Jan 2018 03:18:10 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751123AbdLaQQg (ORCPT ); Sun, 31 Dec 2017 11:16:36 -0500 Received: from mail-eopbgr30047.outbound.protection.outlook.com ([40.107.3.47]:24032 "EHLO EUR03-AM5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750962AbdLaQQc (ORCPT ); Sun, 31 Dec 2017 11:16:32 -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=JMzVfUIJlV7EQdTxw3ESm+amZYPSFw6ekCba8WgrK20=; b=c+wJurE82voMiDWW5buKg10HuPmDaMnhw7cI/AGuWYr7cp7DATOtNQrROlfnbWcNVSijdCnlit3QbxjHrX84Z7OyFkTS5/uqg3k8dtwb+VNux3HuqOi0oaAwSwXlOc1KbJSH3a1R5UuLMmaBY2lZR9EVBsJyWVdr9czPSNMOMEE= 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:25 +0000 From: Ido Schimmel To: netdev@vger.kernel.org Cc: davem@davemloft.net, dsahern@gmail.com, roopa@cumulusnetworks.com, nicolas.dichtel@6wind.com, mlxsw@mellanox.com, Ido Schimmel Subject: [RFC PATCH net-next 04/19] ipv6: Prepare to handle multiple netdev events Date: Sun, 31 Dec 2017 18:14:58 +0200 Message-Id: <20171231161513.25785-5-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 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: 2cc8a5f6-fe70-470a-d74b-08d55069d774 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:8x/2LJsPsz6xWz0c4TLSucY0nzHE6M3Ska6luqYXOF+cn1DYLoM5nEbkxRRdwZ316X3VEg7Ghvyf+4vsiPnhBJwc1hb4PsAWOUENC3nVKMcId5aVkwlUImBKRTPJ3ey8Pcz1z7noqfjKXIFn+mi+7EZDY47SHewCQiKhTYMV9AESGTvbRDaBqu/qVBn+hoZJqp3RI8/7TK7T2EO/+9Q+xbbRozBL0FG7CmwTo26l+oBmJ3YHNvMA3Nb3aCcqnBoD; 25:ObRSaw8EIAxSfn7XGU4IYxdRTWeqVezDdgh6dZZfkiKt0REF+DgZOmp+0PolLFLLVV8u34YQdQ4M0laDc6PlRM7GQpG023kfhvEMuxXm1AAHcFibP6hMuf3t7bwPJXibQCwWHvytx2hfE6NFs0DAuyYhmeGuKkpk8I848QEv1FyD7U15P4zPbAtUUZTgR+UXcyJOdG1kyHyIbQpgJHzqgbqQooixIqpn0pkbDzNtALSEYwX28a4GEBx3ffbik/nJ4s9IMWhQzXLOFUEm09NoSw5UxlwkjsVnXCP9LR/Ad4s9JQWm9WSDPmmqIy5jIxIm61bjxZVwsP8Xrjuqf4We9A==; 31:8BwdbgucpjL2zNq9DnVHQWVVh3PgKUl5U+Xc8e4xvazJ4YYri8J1MfY41bkKo4t3M/HcEFkFoopbS5I2MJ+RSZVGT527geYZdDXvb2KZGQm4fcm22nXMuZOYO7xltcxHQjkmgzpzgbg9kxGqW/Wx5ol8GbU3tw1qfg8HrklAqNv2jtSicVF4p10TrjhAiTVzR242pQSeLKFFffFj2FhhqKJU3s8kd2yqWfxN1OBxzQE= X-MS-TrafficTypeDiagnostic: AM5PR0501MB2001: X-Microsoft-Exchange-Diagnostics: 1; AM5PR0501MB2001; 20:5TXOuyzgW2o0lKJYRk5cCq1R9xSnBBTdbcnkVLDyoPsVB2Kr1gCHtes8oYgvum2pdY2UbdwdjQaezCQevHPqbLDPyJZo/NLXVzg1g+hb6CjqL1ozTWMP14/SeHD+eIh9rcJeof/twdt72cRSVXt2u8Gf/BRAF1UCBlvzx0uqMe4W4ePbH5oal2f0uAEJQCtqxjlL7fLqEaYpqBWuHPYyWh9g31BOnoZcp3Biw88IB0hopRxKZ08st64YfkXKTT4hD1hLuNZJhuiEwt4Ro4Zu/Ngzx1W+FAtphwG18xah/G3hXOG0cgHu3qkNC5gM6BTVlEq4sim4rCaPqCvwfg0FaY5vj7TLzzTDtS92uD1s0HTCSjmCHd+lzt8biaNjMWhXVnttGOuMi+hdMRWMOhoqzu2rdliECdy7gXDtNtJ3s7iaZey6CPElx8Zl4Ma7dUcRp69rkhvlju0G87AAicb5PsGK8vG4uGPbUj/LFNG5XiIDrPptg9KhMO/WGWTXL+64; 4:51oTc7xeVKh/+kZ/HkgtyS6QR04CBYKJ2U9KTIe5a7zI/vuXgeBynouIfvOckk2Mt6ZzAicOa4Pr6tM51WrTuOqMghwmysnjGHwDHRSxA0p0oMChfa83AH9l1dLdh8GprW8vNWrnKPQcBGNxQkEIvNQ9Vi6nCSArejTdiCCNBCsX7Q86MHsmX0FRa0pjzdvrsePk+MnMjAnFM/1ad0u4EjkuHdYySdO5fAL0auTUEUwdE5Fi0g/nD20ODauoFtEpJYPNNFXdC5M/P4vC/swLcA== X-Microsoft-Antispam-PRVS: 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:puTVj/3BTjTYWHoXqxxva9LxZDQjPq5WG3vkn+66wAIgffKrLF4wlw7gHddYAa1OhPaVqlM+K3lL/5VKAJ5aPSa9Alynrk/4mFPkFKAZIjgCdRSzqY3aP5WVpLr5RjTUpJxN4Ckhnlra5fuV5R2DjHAKrq8v3SPKUrz39I8rYXlrNAfN784SEI0rjtk2VwPQ1jYp0CJBeEXjP+FOje97EA/Hcj6be+F/8r+WLbztwqtlH7Mzf1NKN470zhhcTynmedWFmr7+Rjnk2QASs2HMnmI/EOmQ8EyzfUvbbPBQAlTb2t8fJcHH65V3boDxXLN0mtGB1kzSJZqGlQNOW+30J1doordGf2Q8qBUMalLQkiYea2XAnRSg91zpX1SldTnZbgIUPvITGUDGZNNQum30hbHt0HgljkMJ0vfTE9zodCFt0URCXlO15WUHI9KY43B1vEnIWlBWdopfI9qZhSE1BIjGvFbybfhsu5P73lcIV1hSBii04Pae6W0SfSsM9pqQNr2dfjiO1MGcvNv0WN0PQ0qt17ZXi80jgVqLOyJRPwKLEbVZXljcJO9y4wRZj6Al39Q9Ocl2wSfYc6QYHzfpD3WrTy1FT7/o+7R90r2LLaoGPoEVqsD/jBP9cH2Udd0/YbZxKB2kACt6rK7RKF36paFLz0n0QUdcgZYmY3RcITvr//RaBzaAdWNtsFJK9BW3XR+w/vW9zxiW6GNlIk8dKhDFQWg2N/T0u3OpzmxJ1+u27AhA+qeC+9EWCiUyTNOItlHKgZ/nXUYP2p9qM+4mxL36iT6KqvNJrZSjguKI0pLHIcmLly6ZMmpHaHqqjvQiiQbCFI6eQkn20fbDzm4RfErOXqeRolQ6Eph7Tp6tLgh1/c97Y4RT3V9HCONwEzk/ppORRqNpilHUd+abO/dnDwrNigaDV/DxkLjeFTSWqiPlEmuaU3djvdvyW3u6LrTmcPYD1XgC9q6ILDkWbAHbijTFEOqe91MpwUCgSLwTi9CHbQ2AANNEHDvFb+KXK7X3IAWMgJSiIIIa8jzYwcu4rFNyUEvUK9m6aMvk8I9AmeUv3bPMpRYfyogB2iqcFhNntMzddPy/WcFL0FlL04Sa89acvFlrC5e/VMZEAvOX+TrcUY0cmJpYBsDsHgYgyuFXzUpfVPHN9ntXTGp40u7H6l9tYZujWFwQlVqM88MWHzPWuLe4+0CnzVW2PZl+v9JVEQ50qcGWrDqTXX2bfE2EdK/M1ipHRJgZZpGUqubvibu2soDI+vtzG2KlLnw3xypz X-Microsoft-Exchange-Diagnostics: 1; AM5PR0501MB2001; 6:1OK6LXfBShGqtpMmKfQouM8wSq30n4doCE9QuNtI10cJxTfGThVgFD5JZGwYhNKJRioaRJtPUburRuHt+bfa/+KEjkcbesuPw4sr/4r9WEQsC9X7bpvjMlvhbCgzlpiLBUi43onBqI9AKB/vEUh7UkXmivU+SsERgeGhZpGZ6FNJL7hY7jV+2bOQmgqSxqB9g2mpmOOmTaqqn2wL499cbawcpQIx/89nfCG7pnC5JSTd6iCcmtnTyCvago8asiqMKfn2pT6fagbEYN0grCeSnP+/QzMRkBw4otSKQ9qH3Xh/xOqB3m58SoMkPj7KDRISFjGaTgjCCyjVyJzXQFTQYXx3Ya0BtE9aHitg9eHAPok=; 5:8sIqIott6mHYf06Mpz+q9DCYJmYSl6lc8Y5yGzZLhS52DYD3L6phsWi0n/YaP1dWblxzbIyPekRZxj+S6LlT2o3w0anfiZypGzkwS+XZ/wlwIUwd4Sz+ywaEYtZSIkpoo18iuCb64p+wVppKRc+80YuCjJ7evVudAewzx1nA+sE=; 24:suJ134u0nGB8LidCyKC8Ell6jXZQrrLvAbvvCgVI0X2bWbHfu5+r0G1k7WFpVZo9XkhbPPU4gX08RH3OlHD5pMN9/7S2U4pQQQdCaIkB4bo=; 7:gbJVTldLHhuBCNEZyqP0qTQE0OMDQYbBboj25RCXu0kYxEkQADlsefT/VzNog+l2q04l94SAaTS+fEwVptWZK+/EsdJbcjMmlcGm38Z/yxt7ztGV4ZICu+IJEYJ/AXuiU6tcHHMdaqMuV05AHmCHA9+69naW1ICR0X/T+m28AzGKWW4/az/zITovA+tidbAyUOv8HzHJsOXVAeFE+6bt2o1GOGK2TByMzf6Wrh8tQh4b9Ine+54BaZUZeWhLggKh SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Dec 2017 16:16:25.3402 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 2cc8a5f6-fe70-470a-d74b-08d55069d774 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: X-Mailing-List: netdev@vger.kernel.org To make IPv6 more in line with IPv4 we need to be able to respond differently to different netdev events. For example, when a netdev is unregistered all the routes using it as their nexthop device should be flushed, whereas when the netdev's carrier changes only the 'linkdown' flag should be toggled. Currently, this is not possible, as the function that traverses the routing tables is not aware of the triggering event. Propagate the triggering event down, so that it could be used in later patches. Signed-off-by: Ido Schimmel --- include/net/ip6_route.h | 1 + net/ipv6/addrconf.c | 4 ++-- net/ipv6/route.c | 35 ++++++++++++++++++++--------------- 3 files changed, 23 insertions(+), 17 deletions(-) diff --git a/include/net/ip6_route.h b/include/net/ip6_route.h index caad39198c2a..8205402ff3dc 100644 --- a/include/net/ip6_route.h +++ b/include/net/ip6_route.h @@ -170,6 +170,7 @@ void rt6_mtu_change(struct net_device *dev, unsigned int mtu); void rt6_remove_prefsrc(struct inet6_ifaddr *ifp); void rt6_clean_tohost(struct net *net, struct in6_addr *gateway); void rt6_sync_up(struct net_device *dev, unsigned int nh_flags); +void rt6_disable_ip(struct net_device *dev, unsigned long event); static inline const struct rt6_info *skb_rt6_info(const struct sk_buff *skb) { diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c index b6405568ed7b..a13e1ffe87ec 100644 --- a/net/ipv6/addrconf.c +++ b/net/ipv6/addrconf.c @@ -3580,6 +3580,7 @@ static bool addr_is_local(const struct in6_addr *addr) static int addrconf_ifdown(struct net_device *dev, int how) { + unsigned long event = how ? NETDEV_UNREGISTER : NETDEV_DOWN; struct net *net = dev_net(dev); struct inet6_dev *idev; struct inet6_ifaddr *ifa, *tmp; @@ -3589,8 +3590,7 @@ static int addrconf_ifdown(struct net_device *dev, int how) ASSERT_RTNL(); - rt6_ifdown(net, dev); - neigh_ifdown(&nd_tbl, dev); + rt6_disable_ip(dev, event); idev = __in6_dev_get(dev); if (!idev) diff --git a/net/ipv6/route.c b/net/ipv6/route.c index 4796d87e0b93..9d1c34f2c7ed 100644 --- a/net/ipv6/route.c +++ b/net/ipv6/route.c @@ -3461,7 +3461,10 @@ void rt6_clean_tohost(struct net *net, struct in6_addr *gateway) struct arg_netdev_event { const struct net_device *dev; - unsigned int nh_flags; + union { + unsigned int nh_flags; + unsigned long event; + }; }; static int fib6_ifup(struct rt6_info *rt, void *p_arg) @@ -3488,19 +3491,15 @@ void rt6_sync_up(struct net_device *dev, unsigned int nh_flags) fib6_clean_all(dev_net(dev), fib6_ifup, &arg); } -struct arg_dev_net { - struct net_device *dev; - struct net *net; -}; - /* called with write lock held for table with rt */ -static int fib6_ifdown(struct rt6_info *rt, void *arg) +static int fib6_ifdown(struct rt6_info *rt, void *p_arg) { - const struct arg_dev_net *adn = arg; - const struct net_device *dev = adn->dev; + const struct arg_netdev_event *arg = p_arg; + const struct net_device *dev = arg->dev; + const struct net *net = dev_net(dev); if (rt->dst.dev == dev && - rt != adn->net->ipv6.ip6_null_entry && + rt != net->ipv6.ip6_null_entry && (rt->rt6i_nsiblings == 0 || netdev_unregistering(dev) || !rt->rt6i_idev->cnf.ignore_routes_with_linkdown)) { rt->rt6i_nh_flags |= (RTNH_F_DEAD | RTNH_F_LINKDOWN); @@ -3510,15 +3509,21 @@ static int fib6_ifdown(struct rt6_info *rt, void *arg) return 0; } -void rt6_ifdown(struct net *net, struct net_device *dev) +static void rt6_sync_down_dev(struct net_device *dev, unsigned long event) { - struct arg_dev_net adn = { + struct arg_netdev_event arg = { .dev = dev, - .net = net, + .event = event, }; - fib6_clean_all(net, fib6_ifdown, &adn); - rt6_uncached_list_flush_dev(net, dev); + fib6_clean_all(dev_net(dev), fib6_ifdown, &arg); +} + +void rt6_disable_ip(struct net_device *dev, unsigned long event) +{ + rt6_sync_down_dev(dev, event); + rt6_uncached_list_flush_dev(dev_net(dev), dev); + neigh_ifdown(&nd_tbl, dev); } struct rt6_mtu_change_arg { From patchwork Sun Dec 31 16:14:59 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ido Schimmel X-Patchwork-Id: 854242 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 (1024-bit key; unprotected) header.d=Mellanox.com header.i=@Mellanox.com header.b="l6GDLVCO"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3z8lqh321qz9s84 for ; Mon, 1 Jan 2018 03:18:24 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751219AbdLaQSW (ORCPT ); Sun, 31 Dec 2017 11:18:22 -0500 Received: from mail-eopbgr30047.outbound.protection.outlook.com ([40.107.3.47]:24032 "EHLO EUR03-AM5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751083AbdLaQQe (ORCPT ); Sun, 31 Dec 2017 11:16:34 -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=hiSJkcoV6nGYXPKK5pdXBDOFRo9J7FhPjDT3IrCDmuE=; b=l6GDLVCOwJkEbbr8xkqZLnWGOty44lTVnQynJsCGNi7W4f+ynmC/bzvyvIM0pn/7Pmph1lufaxLBgfnJO8H5o27/BBL2DhWArZ6ZsgvWK2qiXJncd0QIXqnckyJBKxMqc8Y/ytNFE/xQKnynfrZWuwAKOF8JbL0nsNAxibbs6Dk= 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:26 +0000 From: Ido Schimmel To: netdev@vger.kernel.org Cc: davem@davemloft.net, dsahern@gmail.com, roopa@cumulusnetworks.com, nicolas.dichtel@6wind.com, mlxsw@mellanox.com, Ido Schimmel Subject: [RFC PATCH net-next 05/19] ipv6: Set nexthop flags upon carrier change Date: Sun, 31 Dec 2017 18:14:59 +0200 Message-Id: <20171231161513.25785-6-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 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: b9d102e4-d881-475d-9673-08d55069d814 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:H5WywFyktJFwKyv2f19zVIVYMCR5hbf5eu4R1W84qj60NbrwoZFQpMpgUlVptcSJ39DzTTfz8ejiEyHTvZBwKzVi6DxskfHYvoTY0EcVIInUPC7WWHbRq+Q9zrTvcazTBB/hHziFW1Jj3DDrKzMb+bpCpytp2E3I7raHHg/LifAOM3v7pheETn+8VJFOCieG7cY2Dgo6ubhM4cJZRPTiF0RgJnzKneTRvlBS+PntHRcDYKLZ8fezVGNxpFVXVM+e; 25:U+UNM3QUlnHJMAD7rOIjG0mel/8T+JathYvv613zuimPhajcRdfXAeRY1PaLfPqe71x50QvbQdbWgrVH78SL+CIiOQvCxnSQslNXvG8OPAKypw9kVazpe4Zw3PWk1q7k4u5qU1LP4XnzraqksAn2nuMFVAVMSdrpeqVdJge74wUiYV8GOQrDwoa8OSnZ9FY1NKFuAce+0zsBBFJcK0P2zFhthKbBkmctE7gkCyAM3Tn/WRkqSLOsceXmlx6C8MFsNWoJpZXf75nGpUVfB7iiTaZ6YP0bakYl6QwkeR6JSitDPFY4uTOpNJcuJyoMcIa3Bdw2l4eeajliFRVwCC5yHw==; 31:VwilFiCPPEQHFQ/mujfk8rYC+v29iHVw46xXM/O6rLlnHbFyhGnlGIimdB6ikwR35Q5iPf1U4l9nfyraATW9HKVs2Xj658CbycTF4IY3MOoA04pk4GQRJ8p7tnd/bF+jhOEaJ3sJZs+WymiZWUd0PDzha6kTz7ptn0RCmR1IkCwqftZUdlTWPCKLxWuZr1qIRsvLrWGrdHRZb05QLA4G+6nixlRY5ihNU5vPqzUZuXo= X-MS-TrafficTypeDiagnostic: AM5PR0501MB2001: X-Microsoft-Exchange-Diagnostics: 1; AM5PR0501MB2001; 20:pDBpmUFKrwmbZDYPYCCjouNBfeOB2pVUWpwIh+IgXvrMIIsjXBFQXtkvoR+7LJGw8MwKMwi4y8LMjeFKjYGqrbARITFgpt8fAhKGLyGx76mS90VKZX8geezmg8kUmjfBunAINxSOHNtGd5XQIwGWpnzPO7afgqMyO911kXWmeg4zyTkH2DKBulSBOw7P3ZPRoBCQrzWrJnSKpXyhs0shkNJmVhHhX9MUeDB2YmC9mS7sZmtdM49dYVS+VC5oUPGxwK67YDvFTyMZQO+ATNkZShaCO3gmgYDqDka73ZcZ7RbPslhC+w2+kEvtzv0bzg1RKNHeSZ4LzJv03u11IzMVZqWUw7EPKKqd9wvww0MoEka2hb+YKYd6ZcCHmtjgZs1DI/YuoFa+x4dXB47UwvzAJdYNhMpFrtc8akZbvsGAZpQMjleD7lVC+QWlTvs91pwBsACS0llBDmyAZoBGcZ5wRYkgLwhiMyKsupSBW4zorxpVrMwL8dhzeyX1nEDyM5zW; 4:aWEwgraEGbHBwmrRXKp7mUWQ7IbnHQUgGz5MogUtjsUTyFJgkMSap+vrnywhQXlhj9DPbLJ8++4MrZiT7qv5bOOF8GAKLtgIKNQEZC/6UJ7Poc4UNlrGOJ7duEUORxPEfkZixxpVlfPLDBoRChE3dJOlmcp/z40UVJuqh7/SKsLdAZOWBVW58ycUWO8heQucHJQggZhwH2bTBSLlbSNkLLg005dYxim5V9eG2IXf5M/k62qsqOF969mzvZ3Qz4geZxX5ujFLy6JrrA2K54m3tw== X-Microsoft-Antispam-PRVS: 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)(6116002)(3846002)(16526018)(16586007)(8676002)(5660300001)(47776003)(66066001)(25786009)(6916009)(2361001)(39060400002)(68736007)(105586002)(6666003)(36756003)(51416003)(97736004)(48376002)(8936002)(4326008)(52116002)(2351001)(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:glx1rWfQ2k1xV03u4A/u1rAtxu7F15SjAbwac96pSBexTcK91oizYIaSWiOeu+kFQq6M0GW+ffd/5i8i0vUGYkMbLztNnpSEwra7a/vlRJmIzxhY7ue9/T/zUi972FEIl4yFrjKE1J5ASvFjgdefLMb5fdCL4Crxk9MXW8kYlotr9cZcb8I5wNJ93zdNvBGFJpEQEbz81JD039H9aQa8MhZ0Cuhq7zHN/PgEJsA6ejZOPbxq942GXYT5HhCtuyXyT5NvRxyI5d0wtjKxiM0v3tg0KdvjWeZU+lAqiudi63mIPDF8uyb5/xx4/hdub9WtanHpXs2nRFY6GstQGw++Fzn/N4uKH8E6QSVb66pEP4yG9jBwlb7ua6YKQJKKIztUbzW0d5czEo30hD39R6FRqX9EnV4MtxRQG19u4E9jxYL1qQBUj3xWHWxWhOoA0uS6OCIhb7QCJ9PsX4uQeeiFmTfZe0zcaMijUfEl/c2pIZyLLqINLU8TXNSFctTU/0Rv5/JkikafKQtf7xZHFjqYoq6mzzO5xQv+qnFAIrVGwIDzht0rv7n4XOlVt0AcvRCmQHUVjJH0qfkgtI/PbQxWDseJ8fB9fW6PmbUhFOwsR/UAOPn2vIU+WscohxrorlfKhrdWNRQGiH2cScItcMEACGIxyNgp6WPkxKciMALgNPgoIYD5uL1D0TrSz2i4SxOjgQDyo5GfUxnSED0kn2F4J/miD5JfyIeUpLi0fCfx9OZRIIPo03Xwnyet78HCGjC+F2VZwgWWkWFQnuBotTut9E7bsAacY2PLtZDHoHigsHtrprRfnlEWl4cIXumocTM5T8JO5Ide9uBAKMKBCV73fVMkLNhM9ILgfHJ3IS9q5wxjBp9eAIAyvi/lVcuQaD2g20ul/2+hiEjrxSgnb4v618NSDHrjPaahRYWFdZwNLXMyKdzUjLiB/ifGhcwxqdku/+I50XMPyvDtF/zbz+kHqIv34SihheQG3gis5KAyacYEl5W5LflW7k8TpxoxBUZ2xXO61PUxO8nSP1cOYUKARsxAItYv75FXWhatchdSbaUbIKvkkTDO794gyNLb7ykD1YGHzi+JaEwXVOMy+Jm3IbHMQGMrTUbUNYK5pHK3blHirhZvD+vmqPtRXqX64rMSCTZRMw1UjaGTxGjTsU/0uJG1amALFMzIEm8AwsnzoAbDf/jjEYaYGavjELiG0APP/XfwrJ6Iwx+cyQ4gJma7zA== X-Microsoft-Exchange-Diagnostics: 1; AM5PR0501MB2001; 6:GwhNFINJDUHSw1yOpmP48QgTcmwwo5Z/xhJGpk6gaGAuDTENLtE53mnnLTGQ3A2Hs+G2dCj9lYFxBvZzy1SCm3qNoRsEHxLHILfQfV7e7rayoG1wMMwtVz45jtfvgs7ZP5hTP4iuEfeDhDJZPdHel/Iq+yVRXvTYNpYWFda95S1D+lUBL+pcsh5EmOpwmEjqB7884FA6mWt0Ob6wK8MOOw1/tAQNkQeN5CIv+S5xOgZfF7duYz8xDRNOp83GlFZE+gOb9VDelDwrALIaG7ijY+q059x6btyrXTwSQ0SxNJXNE3p6nkwoPTd2nNRMntRBgVt/A62IxDQQDAhwC8Tm5LApxmeNuibQi5BOr4nG/rc=; 5:/DyjWQ0PqbiUNiK89XHiq6jt+sVRG3ZEgXLknUCpNfDELy4FAE68kx+NTwRgPSoQyYMxBeEw3gKgCaPn/Vz03npuMaEgpNTtMHSz2ge5+6oXbYU4jbyxrvJBa5NGaOMn1l3O2ovLbvRpSB3huUBszHJ9HkNkdL+jAJQ1LPfwzCg=; 24:RIkO7hm5Rdb0NaaLF5Fq3yh04X1HHgNRBXaDw3jLCklsutWuTSzkg9dSMcGL06IkWPlrNCKU1oPPH5mNrySWDDsUJYprD+u9DRQ/BTNqIWI=; 7:c10wvYuWIkImHr2L8TKP4HfoRM95BwjjhQQeRhmRp2X+sTcuXIQPcMKD126LFMGKcWtnXrD+gjq1N9chSc5BbnpF7sXwmtxrm9/Yn73b1bOyYpSH18B+Z5WYlzjV76l8DwMes0M5bTCE9FtIOYiwMt3zti1+3dfeqe5xBEgLwQDa2urLHVTu9xGdf5eHoZHb0ayPDqGPB8VftZ/Y5za3HODkER1+pwqZY9Aby/KM+i+AzHAhHRlpA0aJaff71/3X SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Dec 2017 16:16:26.4027 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b9d102e4-d881-475d-9673-08d55069d814 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: X-Mailing-List: netdev@vger.kernel.org Similar to IPv4, when the carrier of a netdev changes we should toggle the 'linkdown' flag on all the nexthops using it as their nexthop device. This will later allow us to test for the presence of this flag during route lookup and dump. Up until commit 4832c30d5458 ("net: ipv6: put host and anycast routes on device with address") host and anycast routes used the loopback netdev as their nexthop device and thus were not marked with the 'linkdown' flag. The patch preserves this behavior and allows one to ping the local address even when the nexthop device does not have a carrier and the 'ignore_routes_with_linkdown' sysctl is set. Signed-off-by: Ido Schimmel --- include/net/ip6_route.h | 1 + net/ipv6/addrconf.c | 2 ++ net/ipv6/route.c | 23 +++++++++++++++++------ 3 files changed, 20 insertions(+), 6 deletions(-) diff --git a/include/net/ip6_route.h b/include/net/ip6_route.h index 8205402ff3dc..60902dde5ff2 100644 --- a/include/net/ip6_route.h +++ b/include/net/ip6_route.h @@ -171,6 +171,7 @@ void rt6_remove_prefsrc(struct inet6_ifaddr *ifp); void rt6_clean_tohost(struct net *net, struct in6_addr *gateway); void rt6_sync_up(struct net_device *dev, unsigned int nh_flags); void rt6_disable_ip(struct net_device *dev, unsigned long event); +void rt6_sync_down_dev(struct net_device *dev, unsigned long event); static inline const struct rt6_info *skb_rt6_info(const struct sk_buff *skb) { diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c index a13e1ffe87ec..2435f7ab070b 100644 --- a/net/ipv6/addrconf.c +++ b/net/ipv6/addrconf.c @@ -3438,6 +3438,7 @@ static int addrconf_notify(struct notifier_block *this, unsigned long event, } else if (event == NETDEV_CHANGE) { if (!addrconf_link_ready(dev)) { /* device is still not ready. */ + rt6_sync_down_dev(dev, event); break; } @@ -3449,6 +3450,7 @@ static int addrconf_notify(struct notifier_block *this, unsigned long event, * multicast snooping switches */ ipv6_mc_up(idev); + rt6_sync_up(dev, RTNH_F_LINKDOWN); break; } idev->if_flags |= IF_READY; diff --git a/net/ipv6/route.c b/net/ipv6/route.c index 9d1c34f2c7ed..1f331f332491 100644 --- a/net/ipv6/route.c +++ b/net/ipv6/route.c @@ -3498,18 +3498,29 @@ static int fib6_ifdown(struct rt6_info *rt, void *p_arg) const struct net_device *dev = arg->dev; const struct net *net = dev_net(dev); - if (rt->dst.dev == dev && - rt != net->ipv6.ip6_null_entry && - (rt->rt6i_nsiblings == 0 || netdev_unregistering(dev) || - !rt->rt6i_idev->cnf.ignore_routes_with_linkdown)) { - rt->rt6i_nh_flags |= (RTNH_F_DEAD | RTNH_F_LINKDOWN); + if (rt->dst.dev != dev || rt == net->ipv6.ip6_null_entry) + return 0; + + switch (arg->event) { + case NETDEV_UNREGISTER: return -1; + case NETDEV_DOWN: + if (rt->rt6i_nsiblings == 0 || + !rt->rt6i_idev->cnf.ignore_routes_with_linkdown) + return -1; + rt->rt6i_nh_flags |= RTNH_F_DEAD; + /* fall through */ + case NETDEV_CHANGE: + if (rt->rt6i_flags & (RTF_LOCAL | RTF_ANYCAST)) + break; + rt->rt6i_nh_flags |= RTNH_F_LINKDOWN; + break; } return 0; } -static void rt6_sync_down_dev(struct net_device *dev, unsigned long event) +void rt6_sync_down_dev(struct net_device *dev, unsigned long event) { struct arg_netdev_event arg = { .dev = dev, From patchwork Sun Dec 31 16:15:00 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ido Schimmel X-Patchwork-Id: 854240 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 (1024-bit key; unprotected) header.d=Mellanox.com header.i=@Mellanox.com header.b="PIZyjUN8"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3z8lqZ6v6Wz9s84 for ; Mon, 1 Jan 2018 03:18:18 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751298AbdLaQSR (ORCPT ); Sun, 31 Dec 2017 11:18:17 -0500 Received: from mail-eopbgr30047.outbound.protection.outlook.com ([40.107.3.47]:24032 "EHLO EUR03-AM5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750989AbdLaQQf (ORCPT ); Sun, 31 Dec 2017 11:16:35 -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=vx8ORDzOVa1Q2yBT0MEneD0pzi6IH1dSG2Piny+Vwok=; b=PIZyjUN8N937YT3C6tTR0Pb6HhpSR2H6o6WM7zhWZztDN7fKloEOVsR4ZrHIT6nQRErKrkwXUuaGm5W9bKDXs3+sS/ud4iEXz6aWUY1+Vv6vGmLwAoEBZ0GGgUoHNyIJVcTXFRIYIkk/L2DRguOyiK6Z7sgHSCPg4N4q6tIYTE0= 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:27 +0000 From: Ido Schimmel To: netdev@vger.kernel.org Cc: davem@davemloft.net, dsahern@gmail.com, roopa@cumulusnetworks.com, nicolas.dichtel@6wind.com, mlxsw@mellanox.com, Ido Schimmel Subject: [RFC PATCH net-next 06/19] ipv6: Set nexthop flags during route creation Date: Sun, 31 Dec 2017 18:15:00 +0200 Message-Id: <20171231161513.25785-7-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 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: 31244325-0002-44bf-f33c-08d55069d8b1 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:bCl9tClTwqJSnqZ7K7X+5506lEkYXmRtHiaU2DAe6UDkwgyTil+AQ6yXPoYKb05JA9kqQXXXZiXkeIdK2ejHNKREBNK9aoBEbmf2oFv9Q1Lst/2SHe9aCKFPzr9mc/fBa5BFgm5bscCqMv+FBGRyTV176VI8quXH+R7pWrHiEYK9YAygt8oui5uMOHH9BsAD1fpVqFW6rsJRNqziMHmXFjTzJyF+1aPm+fggm93u+60mzlg4uTVY7w5Ku+/MDDYP; 25:FIDCJs5oKzcqZ9Z7UwsBzSf1hRxWhRQR3m6FebjoTjjx1AmuufVZF2pT71pSANdDvUtJ4xoccO6tNjzlHnw9WJfJqoGPuDTX+9RLOevwhQIwCIIJ4iMShn2qs/2XjyBg1WbaZCv+7r21LbLM2XkstDdEHteTNKphGiku9lWw0pBkf0rBJ5krqB7iOOjcGExvcNKtJ2z1TCYCYQzV2PNsnEljxHe+MOiidSIIWjrNKmaJGQYP2D+rN1kjxCAzDroZyXSDnIRgomVgvf8V/x3h+oOqqKakhPYo0wtsrBgZwYndGVMik5QSSSq95M4XyNYKk6T7BNA35BmhcOit+rnLNQ==; 31:x7QcbSTY6dNE37oWkCt9j3JsnuVDRIalJSiHUU7+EitXqKyB8s92EYJqJBlYVidkv7sKGowjbVMvw8SfFBOfFCXhtJSM41K78YC/aUi4F5zJa+oXhIHYlKNi/DYujg1IEPbSW3DA+BZ2WeGKWfbR6zK18NCIpoiGlKgrM3RIOcI3C0c0ZPifXAB46dhEELdiU67pTUbPN9XyWCLkgXU46+HW96N9D+fHIg+nOCYQqrw= X-MS-TrafficTypeDiagnostic: AM5PR0501MB2001: X-Microsoft-Exchange-Diagnostics: 1; AM5PR0501MB2001; 20:Txevm5LRJ0LOVcI3Rw53n+CtFgSvs6wRbDo3MjMvvVv+D/iH/TlZLJeSKN1QxPZt6zg4EHA0bmaJ7jU08wV4aODEW2Al+En9NACXWr/Pt8/Di4Za0DAof/68he2jzyKUuNrUVVmLBq0NFJSqqRnq+sQnT5PrHk2Pt2Q3wuCxhUeUwm8OCqDjrOgN3CsxTly3UnwdMxzDo5Pv3bF9Zj9yXkVG+tprajHCuBvx7XYxFTnQ2GaSHtD/Gl069NZ2ZSU26vobXuGFWSuNdXc94ESVPLiSTm5philfqcLU5viLg05fNHHNf6HT7NWOH1I5Wy2omJVRH3IUnvLNFYwB0C77b6ugN6MZbgkt4KsX8T85B6sKjyKrgyEqt3/ssqmCOB5PPBidDiIe5AcVy6lSpEbmlCmS4pIc/E6iykZ0VddxrywtSjtAmnAXu5qv/6/qKwZ2rBX52tjBQGl/8Aq16nIEVMp/OTCdQxkcyz7sCDXGAtCZvOecUS9IxkYlKVKydI80; 4:2/y3O3GJyVsp7LXheLfqalNTyDi8f5/1Mikf4G2fEc/sCfjVM2CUTczL8TnurEHFZFqUdgW9BRMIiahWGbkISgTwXTi5JK+AY7CspJ8QtTcZ6c5xDh3MC3K/wvOckQEXE3Hpugrg51dBy5pC7T9cNKP3n2v/pAor64jH90ArEorr1/9u0zoc8R0iZxVfylD8hh561SMqh9fB7NS5qtbVrP446TlgVlCetCbxsxhXYNCJhTiYegmbMKouHRd3qcEeOKiYDVLcrLNmJYeI/h1+9w== X-Microsoft-Antispam-PRVS: 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)(6116002)(3846002)(16526018)(16586007)(8676002)(5660300001)(47776003)(66066001)(25786009)(6916009)(2361001)(39060400002)(68736007)(105586002)(6666003)(36756003)(51416003)(97736004)(48376002)(8936002)(4326008)(52116002)(2351001)(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:HsmaeKABTt7qEn/D1t58W1NG9Q1iXBlCDfuhtk1Op4IuM4b5YY8t1XRkoR8Yan8lq6dBF4aWHbQTpTRcmAthbf3O4jkCn0Km97uX7k6KSA9D3ZG7qRJ/J7RavsVtlpU+QqKnV+HE7Xd2tnBMEJ2jZGtFd9MDv3S/3Fh3SDmDLVDsw4ZXb0b6dufrsH7f1P51uGYe/N7Wj/Qz+p8ei7jgf0Cj2SivDaAsFoQ2sGHLTTCB7U8t+ofWacir/YWZtIC+0Tbv9WG0TGjR8xEGM3RwRIutPLVgvw29hiYu2jBqK0omWaQ8cWLNE9ILYEx02KlkphzX1AO4Snz8XdkmypnblWZBrpSQdlgOA5RozDNoonmmwVQOvCfhLhElN1L+JvE14WuAwVKtRPc+S9umR0KGgEZgtLDEpcjuCtXC64W7aivXxnWXYVV6J7A5rZHklbgAC05ORDC3vlL6WJPe3zV7HyB8xi0zu0h60cif8wzsCj4s221z9zqU/FajTTFgJfGldTD2REQ3NeOf3XSTUmDF6qFsRbNpq3UHfi94sn3Hdv1NpbIYLfyEvI/DCD6CLj2LLFOGf+mpZfG4sCW3v94jV4/gJT48pgZH2/BIgd/n6V9+qhIO4f2MsHVNWZyu1WBby5zPnt6JvVYlqcgEmmyL5Q+cezx6QdT4Y7to3T8Gq3AyUlSlzJeBiS1sIFuxpihE62oF4ifoswgG0g7GWwGZNW5+3U5A/oOMB+aJcuIpobwUeIAG1urlQWLktJsgxcnGs/rVVfrciemge2Ywyx5ZrPoh0QiCeqDXznT5mGmSrMSj2Gma9xDazkFDb40dH6YXL+W3sdgT2tZPx6y+KF3ngBJNlk+1BUg6oh46IjmxyWxU5mtKsuHoNbuBQmdINmjVbTLTUhDBCx/17a4FE20tZMpBeqDzOEW7n2X9sjVewlBC2uTFEGRrG2+vh8vDPdxQc6F69cn4ZlItYfiEyX1rAMuIwtjTg9ry2QYsaKSINWjjXsmAijRwI/P8X/Ukf2dmKp7sCAfbaVXxxxCGDLvFHJRaHI7K922x3A/QeNHHAKRnaIhNPOKwYdYtSHKYKEF5iluLrAGD6+G0Ahr8OEN56PShS2RvhrH3REdlL7toAoHWftN838fpEES0oVHpG3TNW9n4C/O8+KNEVI96+gdYXznZYYc4NUahj5nnojbaRFOu9tkXgkF/ST1cgjU5OH+RZK8M1UoHANFQxaMJ1I7vEg== X-Microsoft-Exchange-Diagnostics: 1; AM5PR0501MB2001; 6:Gk4/zns+HMti7AOe96M/b4XJK3ou/UY/60ToxC9OXRRNclLSfUw5kQq5SAkjQTAVFixZlLKASZRcpLqbugdxI6oIao9oG/OmspHozflw62AbrAy7TqahNOu9AyiDPs5aRT3uaz62bRxVEPzrTgNLRkJcM32aCwrYpUNz/NZelh3+gbaX9jt3ixWlynYwghogx8imqAOps4gzOYiRCVcmI8XY9kZAtYsCelxMGqywxlld3zcpUO0DjyuLMK4+7LQpWdf5X1qtsWCWtQkxk/uh5TsHq0zoNjOjcAL5apxAYFCo+J3Xm0CCnfYIfiNvfNyx9cmHS13v9L+MH4ilSaJjlyCdHL4yWz0lqGtgWwVxDk8=; 5:LHTvmEjZz8agOPLPK0Z7AUMUhx2xXt/kx3olh9tbgwSY/iN5gDL/l4JbPxFa2bZsFZbXbXO7bIALPHP79VpAcf4HlWVt/OP5H0Vx3mDtEUbsbtw497bBpRUUs53lsv9X6L8PyCq/yrvxE2WlaeVDAvuKACoIkmwRnnMXO6Y93aI=; 24:2grQ/8BOGlhCKntSXLptLZBacZGbvGm/aeRVCuBXfzNBsarQzBahhVDre03y8+0q9P1bAAYJi8l6cTA7HYxwcYjWcR5G6vNK6wb4mgM5HYc=; 7:16IQdD4tJ2bwKkk36M4GtOnWa8Pj0r9sgM2y5y93DXJzTWc6do6pJ6lalXRZvRl+//0JBe4Eq+9gD2hhTnOy8MfqhMOdm8ThZ5k5uL2az/FDpcngdyIS8yHKJ/3gdYU2HoVz0GMOvN5nSncPF8jG05k/5u3neg2I9ibFZop/b16nVtv8AgCLT886SJn17cTcdTEgFamys8Vlbi8rd1gahps9D0RN/Q9MirLPvguekdG6UI73LfAY0Ml9msyQzCCA SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Dec 2017 16:16:27.4340 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 31244325-0002-44bf-f33c-08d55069d8b1 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: X-Mailing-List: netdev@vger.kernel.org It is valid to install routes with a nexthop device that does not have a carrier, so we need to make sure they're marked accordingly. As explained in the previous patch, host and anycast routes are never marked with the 'linkdown' flag. Note that reject routes are unaffected, as these use the loopback device which always has a carrier. Signed-off-by: Ido Schimmel --- net/ipv6/route.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/net/ipv6/route.c b/net/ipv6/route.c index 1f331f332491..13238c4e76cc 100644 --- a/net/ipv6/route.c +++ b/net/ipv6/route.c @@ -2746,6 +2746,9 @@ static struct rt6_info *ip6_route_info_create(struct fib6_config *cfg, rt->rt6i_flags = cfg->fc_flags; install_route: + if (!(rt->rt6i_flags & (RTF_LOCAL | RTF_ANYCAST)) && + !netif_carrier_ok(dev)) + rt->rt6i_nh_flags |= RTNH_F_LINKDOWN; rt->dst.dev = dev; rt->rt6i_idev = idev; rt->rt6i_table = table; From patchwork Sun Dec 31 16:15:01 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ido Schimmel X-Patchwork-Id: 854239 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 (1024-bit key; unprotected) header.d=Mellanox.com header.i=@Mellanox.com header.b="ZMiX8fWc"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3z8lqS6XTMz9s84 for ; Mon, 1 Jan 2018 03:18:12 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751194AbdLaQSK (ORCPT ); Sun, 31 Dec 2017 11:18:10 -0500 Received: from mail-eopbgr30047.outbound.protection.outlook.com ([40.107.3.47]:24032 "EHLO EUR03-AM5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751128AbdLaQQh (ORCPT ); Sun, 31 Dec 2017 11:16:37 -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=ujiGtoAm4JFqvPxuubl4nFUxTQRWj5PGNvf1S2ODsPQ=; b=ZMiX8fWc6NCVBJeRM5SMgyVGwrz2jU3pVtbNEBUhFkDvMYG5gVCHYP/hM4FGhQDgXaKsE8W6FIbQS41cg6WaF3ZmDVCEfYk6Nd85hxVKXO7nu6w1Y2lvI8McQhrXnYCkwazzXw1rxfJa23y80C+KSnUuWbT7sYFDXgmzAsEMsZ4= 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:28 +0000 From: Ido Schimmel To: netdev@vger.kernel.org Cc: davem@davemloft.net, dsahern@gmail.com, roopa@cumulusnetworks.com, nicolas.dichtel@6wind.com, mlxsw@mellanox.com, Ido Schimmel Subject: [RFC PATCH net-next 07/19] ipv6: Check nexthop flags during route lookup instead of carrier Date: Sun, 31 Dec 2017 18:15:01 +0200 Message-Id: <20171231161513.25785-8-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 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: 8ece2c41-676b-4207-d632-08d55069d9b5 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:PNcnFLQYWnNqm+rms/rvBphxkYG+HlGVpt0730hT8Ur9786Tw1gHmyfrQ0yuBaeOZxSp8dG/+A6pwgCrbCl1JT7m1lNtbAqVXCPUqYa/35sux2SP1vIdAr+W6q0b+dYNNLb4J+P0eEqODPmq0ricAo+jYGVArFkQetPsW4FMlhH22BgA0mtMh5pe+4SCTee38Okuls9hdlue0ucPl78nzxGu3k6tWhyiHp2BwsHcGMrrt7Q60k0fVKtS9YyLMa7w; 25:kf/Uz5r9P0ztWGJd0EdSb8UXI4jqXmaLCSvwfJAszZYj/XTEYogYDDfQshdXCn+5GMfpHcQ1FLZ82l9/BllBGjkHYvdanh9HF2CEiP4L4nVSgck6nkO8f+FPoqa3MfAkLk2vNEI3f0LZEMn5mWA/20PEfABN3+mSTLNcvfYo88HaXkf1hnj8X8k6K9iV5d4k5oBJERqpmzrd+UKjFDPTmGMK1QaOQATxeR60Nv1M9c4kP5XXeJuaMX9MqMML3RbM29hyL6h0DwZ8wDow/RxYFVM5Nl7kE25DJXxagJr/1IVRLWgnLiIaWzALRJKNOZWzX3cSjlzBETFkLJL2OXwGKw==; 31:0sOvIgUWe9Ef6hhpamG+4/v717zVqmjX+tXsxLl1Mmg7WZNrwm9jhoc2ru8/Jqs4UZnSSfwO55Zsm+Kd6D2KAFh4h0p0TJVUNVf97d6aPmm2FrztlFGf8HnSbmyefx0kniHnamlzQeavpylFXHK89G8GQGQdruhCBbrYcdI90op/CXRLyM2ydNR+YPDx8N6GKang+JPylDFyNV+pp8zbYaQ47RU6hY5qwrSeBqFE+hk= X-MS-TrafficTypeDiagnostic: AM5PR0501MB2001: X-Microsoft-Exchange-Diagnostics: 1; AM5PR0501MB2001; 20:K7it9tmWGLe6D3i/mNTYHoFeXEPGi3In9kJMbOeUQsobUj87RChXkTahFNJGKMqCqLk8xKtjhN6NSIgBbaOjSThO1Rk723S2paRwxZFZ/g5IFcI+M4Qxu2o3DwK8mryxOe1fRPmsROik2vH+NUCGB8znkbHtcfXlc6t4T/BM45q/2HAKmQc9UyDkKZlYhYFOt03SqO5+aFrPtD68VWHV4uMD1dd3beCECjPLQKiTjEqJ29cx2JTvHffTgm9/qJddGVLDwOE5qnZsBmT4r1mm+wYcnZIg6YRt77tJ+6BNBvmkmfAPkwzD5EXWhKEOxwZwvLaoWgt/NgMad23a95YSR5VwazlEeTgsiHkMb0jeb74fx6WLeudHfySbVsOZ+BMHzkCfBlXMNNdancTKxF0SOf+MNHHkMjl0NZnlV+ENW3BDAZxENlyhV74RFuInbyfCJAdsKGpifZCvtOiy+J98YnHK8S9xUxMMZaQ1twDHo55IMPscTZVx+xgf0z35hZl9; 4:N0gbtwSy2wnqTvBDB1WUaVk6c1GxH2JhR0MRp4BrPkL8Vb/nH2Fz1shw8imkkQ44lWPQLDhydJbsJyhPdK3DVyeEmomo/ohACwcP9v6PLFXf6TzCP7jGop66MGTXsFYts0dMrF6fURJeondrCLb/szQo8g8gaujyOpyj+ZOvC034sXH2fb6EgoiC90pbZvFCB0cfglevW22wYp4SbGRpJJ3iWk1KH8iQMzosUWqaHQUzDmbWASinKlH9y0FNUO0Mkcs/5JVuA/HtyGxuNu/7JQ== X-Microsoft-Antispam-PRVS: 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)(979002)(39380400002)(366004)(346002)(396003)(39860400002)(376002)(199004)(189003)(106356001)(86362001)(305945005)(6512007)(6486002)(1076002)(316002)(81156014)(2906002)(6116002)(3846002)(16526018)(16586007)(8676002)(5660300001)(47776003)(66066001)(25786009)(6916009)(2361001)(39060400002)(68736007)(105586002)(6666003)(36756003)(51416003)(97736004)(48376002)(8936002)(4326008)(52116002)(2351001)(7736002)(53936002)(478600001)(386003)(107886003)(50226002)(50466002)(2950100002)(53416004)(81166006)(76176011)(6506007)(217873001)(969003)(989001)(999001)(1009001)(1019001); 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:eGRLDvARyCYGuBmpSLKBnPMeVymtv0J/qkbuiK0aIHRda15rsDEyBAn8RuCBH4nQZb/5fEnYQ5e4qNoQul/bUk3WODvd1akmiAuvXuepYpB33kcb+RtPrH6Jzo/eoNV7suNC3lCAPp8l1JougF1D0eQ1/6UowSIWCaXJRb2C5Yo0eRiznrz1K6e6s5ccPeDYJaA3CiYCdTtsHSqkEY7X2jxaGytX03it9cFlF1QJStCJpJMP1jjKo6/RJvO7NICv+SXWGEvRpSX1eSxLyKszbIWwKInQVabTEXKIDw/wGSQk/G7hF10egxQf5wujrbAYl12at/IMJnlBJIrS6N086oV78pbXXbGarJZorB4PvKOmAiXOxPU28UWLvIWWYTW9jziobIGRQ4PbevuRrud8xw3EVadIQl1Zxfc8bIf//IL/mmpXwF7NIUeGWTKALN5BzBPCybOVYHnwDFLRPCbrRhEkHqhCa77Naujf2eujM6nWvHvT77qwpKi92qckgqQgE5DXGNRROLWDZpQDntOEWNLokKWYv8LUi2tWsNSumEONTCWAQgG1PmPcPsHNm9I7Zj6e2eqyYgES0qi3ou8HrdteYCOuhID9pk8cL/RXRI2EqA+qgw5QVDJIXQPGcNIU+6u3q6wNo2fTkexE4Xiet5nYxtdbv50MXSv15w4nLfeQTCr8Nc2brDCPgJ9QvMjFFM+NJZE8PshLeHYcb00afBqCDtbc4/3mFSVaYS9KwQPx2eMHmZJNcQLEPyK4v4Fr62QD22+BEVkyEojFcdlpClFfH+pmeVxIQ2Lvc5tAAwjX0+JvXk6mRKQIU0/cYso4pOGgHmE8g1YmfBp9Jagmtiwq3tWsoNdGG3ujwLwe9vGGSEINI1V4kNxQ8R+PxaVqEK55WfJFk9O15IOFh0hkc1hZrghRy3pLoLufBiBnIRgplHJr+J4E8N5kxGw7s7VxKAgOgTBfrpttNBzelHPY6csh4x/dEQ/iB1KILEs7m4BVuJiLRjIkEHM1YFteiSJCPFshbcgm742I8eJjix9tBoTOwG4pcnmHVMDPMLh6t1xKi69yXgWGM8YRQ4mV14jVQVrPinm/1Ini+ZhBuhakP3p7P+wo7vfKT1+tCNVOekFc3NxA/8EuEn9LkCYaLwRYrIkBr53MHDo3cJRE5BOreiapUoCjkj9dF8/ojdCoYrSGQ5pd4ouGF4gq8RIhiYNP2XIUyVnDE30w49VUzakDl0DgJU2K7olPjdW8Riun743JhUea4YlWEgKym2gNSzjx6YKvRlLHXJLG7v7Dt2qEvX9IAQyWOp63+RmPpmd/2IM= X-Microsoft-Exchange-Diagnostics: 1; AM5PR0501MB2001; 6:Ds/wiJEoRNEhs12tQwllNWuy5WdiSZ4U1Sg/f943d54c4V06uTzqmM/RV5PX5bfHr24hm5TUSpjRRb++Z5/bxeIT0cNKo9sj02T5rGQXV274MEjfjrMTHFaTwF6h75R2JzLdeQSv/Rn9tVvBZtf1bLUphwtbcZe5iJuk43xyFQCuxPRVml5y2hnZL4FimeuNEFzzAYY437wlRcT0OjTrJSjzmPZ1E6qLLlQnxzaJwQPLAZn2Q9co4bukoJMmr3PmR/DZmdJ9scLxYWh/ZBUK5gcMLekk800RZa2sZHuIj+AxzjEWPowLST05ObQKR5spsPEtFbrLwdJStqcR/cH+p9ahwJQq1e63eju1nPeIfSs=; 5:HJohXiLaHymMqz8MrsS+sIiR5YbgN/0z0ii10soNhezWjoRiki9IjPDcgBJFLxyhvrG1w9dhERV1j88nRPK7oh1oey33nXqOlBcFeZ+tozb9OzLa3G/omwX512nsdLH69YA6A3luyqQ7jDLT+mcsX31OuPdrMyKZU7YmRrHc4sM=; 24:/le3fPIrmZWV0dQzUaJGhmF+Lbpjwi/OW4oFaseAOmLKDhKnGpArCA2/Z/RWEoOmwOG0twNhW0YhJy/2Q/4/I9K//w1mwcoRJs38/8AWUw8=; 7:BeC9IKmhjfn9kXSpTiZmKTzeBS0ld8rL1mudDUKoC1xCAztfequEGiBYCttX9K51JmBzTAKhmTR2BGJfCqn4G3DfS7ZgiujOA+tlBA2qv2W3zhCi/JY7jezdljkIvqe1Jm7ZZhM1WDaLXJeBivtSov/3eolbVtmSJFqD6B5M6d3KOXUHZoVOp52Xl9okpQiMFLD4nDPhPyxmBp3fqQyVI3svTSDJrX5ya8zDF7uNQtXj1WR1A6EUFhJEcRcbqSBn SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Dec 2017 16:16:28.3403 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 8ece2c41-676b-4207-d632-08d55069d9b5 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: X-Mailing-List: netdev@vger.kernel.org Now that the RTNH_F_LINKDOWN flag is set in nexthops, we can avoid the need to dereference the nexthop device and check its carrier and instead check for the presence of the flag. Signed-off-by: Ido Schimmel --- net/ipv6/route.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/net/ipv6/route.c b/net/ipv6/route.c index 13238c4e76cc..3c4e679614fd 100644 --- a/net/ipv6/route.c +++ b/net/ipv6/route.c @@ -474,7 +474,7 @@ static struct rt6_info *rt6_multipath_select(struct rt6_info *match, if (route_choosen == 0) { struct inet6_dev *idev = sibling->rt6i_idev; - if (!netif_carrier_ok(sibling->dst.dev) && + if (sibling->rt6i_nh_flags & RTNH_F_LINKDOWN && idev->cnf.ignore_routes_with_linkdown) break; if (rt6_score_route(sibling, oif, strict) < 0) @@ -679,10 +679,9 @@ static struct rt6_info *find_match(struct rt6_info *rt, int oif, int strict, int m; bool match_do_rr = false; struct inet6_dev *idev = rt->rt6i_idev; - struct net_device *dev = rt->dst.dev; - if (dev && !netif_carrier_ok(dev) && - idev->cnf.ignore_routes_with_linkdown && + if (idev->cnf.ignore_routes_with_linkdown && + rt->rt6i_nh_flags & RTNH_F_LINKDOWN && !(strict & RT6_LOOKUP_F_IGNORE_LINKSTATE)) goto out; From patchwork Sun Dec 31 16:15:02 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ido Schimmel X-Patchwork-Id: 854226 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 (1024-bit key; unprotected) header.d=Mellanox.com header.i=@Mellanox.com header.b="u+q2O4lK"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3z8lnm4WQWz9s84 for ; Mon, 1 Jan 2018 03:16:44 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751156AbdLaQQl (ORCPT ); Sun, 31 Dec 2017 11:16:41 -0500 Received: from mail-eopbgr30047.outbound.protection.outlook.com ([40.107.3.47]:24032 "EHLO EUR03-AM5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750923AbdLaQQj (ORCPT ); Sun, 31 Dec 2017 11:16:39 -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=OyJPAgdWZEqpoTEDCcUmvXalZ7UR/pBqgyKZoAYmgDk=; b=u+q2O4lK0nW+D25cSS/wOPnbwQ5Qi3ezVO9ERxU8F6Z3jbzSsDtqrsMp7EYEY7IbYRoMr/AM20rLHpnG6P433wRtt93s8OVh5EZXy999iRIdI9ikFAl1/UFR7wDvd63egm0WugsYE7Jtfg649ZX7mewp07E2w3Y1I1Jt39PzeZM= 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:30 +0000 From: Ido Schimmel To: netdev@vger.kernel.org Cc: davem@davemloft.net, dsahern@gmail.com, roopa@cumulusnetworks.com, nicolas.dichtel@6wind.com, mlxsw@mellanox.com, Ido Schimmel Subject: [RFC PATCH net-next 08/19] ipv6: Check nexthop flags in route dump instead of carrier Date: Sun, 31 Dec 2017 18:15:02 +0200 Message-Id: <20171231161513.25785-9-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 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: 68120529-b67b-4c4b-cf7d-08d55069da6f 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:phTUspH5P3kOPLbmiEBeSE0GUuFsqOJZn1RRpMWJVEtubHDDDYpPqzWlUq/Ox96iW5zkmk5H11Bhsm7PRElRiV++Oe5OIV0TKOAAyl+xAeQct3+9KFwtAVVxJZv6KfMrZBSKhdGIFs2cvtUynmMQYIiJEGc9BVWkO1l2aPnwAy5unddH6fKgtE2/cNqJocjTIIugqVyhGAzCS4VmzqmOHmcbFKHUUuyA0eq6oL3vwZwqkeb2uBQKJd6mPXaf7m4b; 25:auX1uOcUxAr0icd/mzeSMqxKAqT98rmKbTo+JineWDiD2QB2gSF9gcxxTAU7YBgTmrKF3EBNz+HWOmcbILhk1Cw4McKO0ziauTdmJl+JbCn+rNIGzXCs7xU/LKFDBgGnBLRdWGFNTMARRpbjVuKiykcrIlxEOHO+1BtKdbqB7MrvOXRbZY0h/Qcrg6JevzJdK4AUFxcrEQIJSTuBt4rsc+dlB+whMW5mS8GcowFNk/7nxHN/Yye8jwVjwrpbfJqdoi15XoNE81nfLdtj7YpZOLowjsCxzGYCsa55fxL6U515xxMW4mbN/QyDBKfpXusejZPQeDIPryrq/gcxyOKMaw==; 31:mvDUc+VXBvfSyR4XR7dtoxh42zyqKDTrxnsO6nnMmmyRBhvV8jMdD5d7tf5A1xTp7utdc5C144e3ZcNBrThxVGJzsDTI6QRNpmZLCIrVmDllttni06yOL8pbWc1LZeXPGwGqq+9M+/6//Gn1iaIl0S4+fumGa3HMc2dwwAEVyqkUYuhOyN9EBg1JhaxwGjY+qaxDIcIWXiHzuYc3Tw5cdTcFa5h/pLfYiywPrGnX/Xs= X-MS-TrafficTypeDiagnostic: AM5PR0501MB2001: X-Microsoft-Exchange-Diagnostics: 1; AM5PR0501MB2001; 20:XCS1VapVXCN3s58Uv/fy+M9bK/6yfhL6QagG5WWa5m5dDaToITr9uR39T8S5Qe6HH7YmbMEObOtwSW71yoIQoO4XpXDpM9pNuzdJ/DLkzAMf0WfU3qJQoBNyEA0bxREzvrp3f8780yxq9C189h2K5oO77hzvb0ZPhjTsF8ruijHO5Ks/dpqG4IJgAvUtHrNXjTZlfQ+i+e3hzJlzS4hcbBV2HVqONB90pyfT+vMRPFAyLDR28ZQJ87Ue7tAXbZUWdcJhpb86huFagBu1nVw42RjOi2QoiRs2DU5c3rUmBp+x6w79vfBHTjjBuA+UAb8QDV/NLIJgXtYPLrbisV/GNVUBrcIE6gYwC+6DrGp3JpiyQRMzW3JDZpROqZOI9IvWJ0C/xWTFIoc9BuyT0BET1dFUr8BeXkp+tw9pk5kJ9G5jZ228CngblXM2YS80tehNdDXdDP23jKwt58eMEnARKehaJeQQX/uv0rCpi71Jsl3hDps6wKmrIOAQLrFiqsoS; 4:5odWYAMr998snG0aYiHBBIeKK4Qln1jJ/N6sjZ1f2+L2VGYytYgc4T/dhh6sYQj/wmFYlVX8x7E/k27vfyrHIhK2/9zpSQM9M1L4SPDSmQa24W+jLyBEUJZ29073mTs9ezH1xdIi3xILYy5DH281YdtV0J4iG7p8CQAWHO1DNBhA5PWgRWNXmbk60tmqx6kwkDxJYhSlAnIGBx08xeM6avbwOSFJWEmaDsHPiqCABAWGHp5lqHbme50krpJ7k9r0MvJz+hpERtqsPeMkSC0PyQ== X-Microsoft-Antispam-PRVS: 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)(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:mNniqyaVppm0ORusgesdKkkBguHvtU0o+75GoanUhtEFxKqgAm6rNL9AIbzz2ehlQcjgKFMp1G4fpO7oFFa5dc+uSvqAfvR9mU37dyJn36ADLdlmW42Q1c0DvZpxinY5pnYCJxg/QXM57WE6dlrkpROmcQHf871aCsIrAOncoF4Z2xYcqi7ZdwMmoZZ2p+iftBK2x0RNXRbU/vI+QrI9Cf6EF3VMAw9g0dZCRGDqmkJ9q3DzODss8vO5E6iBscPHLuE1/XmvQcQ1G1zSySvoSb7CtiQVPNpg6hdkBiA8xhDNV6g7B/b36trJNAqVUU7CXPaBDoz29ogPmCRHvRLFWIMrqkR9q0JZ6/neSR9HiaJDX9Qm+zvYIref4t5ohY11Yj6xkeHuogR9yN4ZTQ0qsdFaiU5u3FwA5lYjtJYHmjW8idmT1QUGYj/AjDlgj4tkonhEu0TLhln21MFWIR2w7fVBta6X9M63ECfdybFjMItG+zydTUwD110D1us4yLyj9zxnBo+TjA6OyYIEIysX+Yq+muoZ0/AwZ0DOme7Z1WMLqs4MuPRacVFJY1Yl5IIfVGl+upTPoHgQXpDs0+fNs+dJ9hLsMr+keJ5qNNDKGNsJxoNTOdX5G028LPy4Fwi+DhF3e5jFYCOkQK3PCApmFRFajvtYFINkuTEivYp6dxTuJSt5FyUYDimPtzWxeJ5sbIuJKVoXqnxTiOe+rUv56Cw+hcdv18zrZ20Lh7/y+eX6FpElmUsWK4Z9sNFpbngem/CqiZ66mFHJgW1ETWK5r3aTnU5YZtXMSlqP3gxVmQnuPHVgRBeycLsNgfeF0rOMLN83DiANZMKcTnFg7GzG4JOxOwL0B5nH4KBs9BlumDZDjoWZuOmUuuiF1s3cFkRWw69pmeXWZHwAC4IlAuk3Mee7rTiwVYIn4YOvfdS3HldXo5fvQC6GaehyC4BxAt5frALvo249891j15Cu7cmwnm0FU1gLBzZvZcdgz9O3JcE1uKK7kwmsNxUyrSEGZ5x/Un0upUNrA46htZS7UGaN9u3BaF5D3rX+QQe8LMUKo86R4YIN//yx0g7rxwQnDCZDtH0AqmxpmISeE8lT4Z8OCr3hAm8piQZJEKrrxw1lNz2qnQEsFr/p0rdIciBWC5MkFHP6bRnZyFeluUg5zGJ+XsCSZkQH5WE+ZwxcjBQjZ+0NWc4mVqnKS5c8d/BFSy4UT7/TjqOgquYLGkQ7z3IBrqO5/BNn9fPkn/4nnjx6dxI= X-Microsoft-Exchange-Diagnostics: 1; AM5PR0501MB2001; 6:Bj8V7X+fRmD9EMOTgSH1zH21PiU4kIevB30gRv34wx3lh7tWZ6fB9l2S2Sv4E2hY/ujCEZ+pEw8rMdpjGFN8q+BVe//mupsq5PxGIflsKjA80BuQNiLC6LCPaGGVELwkEjfuhyM2JqhOAO0gziHxfeCj7ld3dVzhjDLTckobcNxkB3ZcFkpRxoYuC5Y1/Uf50OLOTkQ6b+5/NqU1BeN4gl4J8dRdowIz0Im+ShdUR5mCi/Ket7ukiTlgrZUH11NS1Zt/8ea5Fvn9gMHPekUyRHER83E+TmjbwnU6T9eeffUkGS3Q4WX6GdM+r1JvzNKlr2zZgqAekzlcyiwWh1F3CPJOlIVjr/6NKlofObOqR0A=; 5:f2ICl1OIPTUgylPCwJGs56iLT3fHxe1KD4iydF/E1RoQJBYOqk57cN58nwxmBtzrjsX86lesmSbibKfE3bkE+KDtl4oSQRsjx6msui15XUvNDL37ZBY+4ibVkrE6aNE4RGI6d9M19TXjeqOTpJyM+MECUYQVCk7isOeNwJkzNYg=; 24:0+ppGq2Q9E2ef8csirs4Lz5i8HPOR1QaWy5MP39z2qsF+gDba2BybDaCXeCU3hieMtiQe7EcAgsezzngl3SZdoFr3M/CgTv9B4jPLdJmyhc=; 7:I/7VQgFSdRPGLwSINhDkyau5kW22vIZ8xzL5CiO3GBzBBMCIFYgu7RmhoETZSMANm31CWTtJFTZ41W6RONY8a3M7TD7VqDmftkzZYkNHy6enXREg2DIHcwUmnwYfte/LF65GhPlDmsaELdD6z8RnjFFIfyIh1aYGafQoE/kU5UJZ+KDzrDoJNEaVZyA7fPbwqS7vfQFxc7bFWkRkF9byCXncrINAvgGjsFAJSGobcdxq0bCnrhd4CB6kWHrJ45Kj SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Dec 2017 16:16:30.3560 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 68120529-b67b-4c4b-cf7d-08d55069da6f 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: X-Mailing-List: netdev@vger.kernel.org Similar to previous patch, there is no need to check for the carrier of the nexthop device when dumping the route and we can instead check for the presence of the RTNH_F_LINKDOWN flag. Signed-off-by: Ido Schimmel --- net/ipv6/route.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/ipv6/route.c b/net/ipv6/route.c index 3c4e679614fd..2bef8d1f279d 100644 --- a/net/ipv6/route.c +++ b/net/ipv6/route.c @@ -4039,7 +4039,7 @@ static size_t rt6_nlmsg_size(struct rt6_info *rt) static int rt6_nexthop_info(struct sk_buff *skb, struct rt6_info *rt, unsigned int *flags, bool skip_oif) { - if (!netif_running(rt->dst.dev) || !netif_carrier_ok(rt->dst.dev)) { + if (rt->rt6i_nh_flags & RTNH_F_LINKDOWN) { *flags |= RTNH_F_LINKDOWN; if (rt->rt6i_idev->cnf.ignore_routes_with_linkdown) *flags |= RTNH_F_DEAD; From patchwork Sun Dec 31 16:15:03 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ido Schimmel X-Patchwork-Id: 854235 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 (1024-bit key; unprotected) header.d=Mellanox.com header.i=@Mellanox.com header.b="LJMOxi6J"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3z8lq9197Kz9s84 for ; Mon, 1 Jan 2018 03:17:57 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751157AbdLaQRy (ORCPT ); Sun, 31 Dec 2017 11:17:54 -0500 Received: from mail-eopbgr30047.outbound.protection.outlook.com ([40.107.3.47]:24032 "EHLO EUR03-AM5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751150AbdLaQQm (ORCPT ); Sun, 31 Dec 2017 11:16:42 -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=9pKlV/oY44eiuLup1DGio2gZPureROBafOEipGzKD58=; b=LJMOxi6JRKOhon/Gk/yiGfSkcc3oJ7CNa0ccQYtwqYbI8oC/J4ULS0Ir6IA0iLeyVMMBIl3Q5DfbxEVTeNGTm3x8uKdf3/I1LWH/amg83lbxw2O3gq806sLa/KhqiaiAr6eWykQaJUSjIQBPvbx1j6UcLSecWbLVuuoOX0T9WNQ= 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:31 +0000 From: Ido Schimmel To: netdev@vger.kernel.org Cc: davem@davemloft.net, dsahern@gmail.com, roopa@cumulusnetworks.com, nicolas.dichtel@6wind.com, mlxsw@mellanox.com, Ido Schimmel Subject: [RFC PATCH net-next 09/19] ipv6: Ignore dead routes during lookup Date: Sun, 31 Dec 2017 18:15:03 +0200 Message-Id: <20171231161513.25785-10-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 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: 9538d2e4-55f9-4e07-1951-08d55069dafa 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:DwGt62iGfeCMpryPG9+SE3zo7sIk0kjo91c7SDbBHmyS8Rw/HNNdfdGpNQZoEN5ca4dlKp7aXuMc6H2rlfd0nJFbmWwjvwSehhAnn5B9tU0zuf725nAh1Jg8hKFWympXgqZHHUZbL9XTvw1IeA2GlSW4i+pl1LZ1ILOPNPnLRZJfOd3E2eO2dE+dMpiMnTP4yvApoREN88lQuqi4kqeOebJxAgOTp0lHts61v+BM6Sk43tVay7FRnV5t21jnPeTM; 25:ph0mPLFqp45WOj7xOJZoN6nr1qEfzu4MShLWq0fiGH+z5FnuDeaJE11lTW8xmyl6eOM8XP7taPrKeeAbIty70LM+3eilWHY/BSQNpNqeTllFVw29Jc61D5PbC/fHUtblJy/l2Ngmq76vexP+dV9fCbqQjjZ6uPlpp2DWNGoLmEHsJC21oOewqrssg1jXiH/epJTUGUI7S1VWweH64gMGeJkI1/jDmPWmFuqcgn8cv3C3EwK3ga5B0UjYk23AArc4pjQI4tcVKHByM1sOY7S0a9hqYkqu3aTCrAIVCIezPANaMIyBqrNB01rks+naJbR40+VRMJNXxd7ZmHbmUNyKgQ==; 31:lBUF/5MMLT3JzPnz9Wak3bR9hWCuwMR63yk8lzGLESoTZZVnwmzhn7r1aPDIeRB1majvyK3eO3FqT60Tz+VomusjWrvm6384ZoNA+qTqI4xej/r1wdCs3/OQaddN3Cs9VLAW+eVZPofoNtGH87UFk9r6Mj2cRaiu/+MaILiNI0CUbwFGZ+P64azoFA3eaQb4zGXyDC5MtJiz9fecMfyyuiLFr/WqFBUpHoX+28A27x8= X-MS-TrafficTypeDiagnostic: AM5PR0501MB2001: X-Microsoft-Exchange-Diagnostics: 1; AM5PR0501MB2001; 20:id/fc+VkEGwz1AEBDRbDVjNiNsGQDTZXOu/WCuR2uHt48QucQ4Ivl05bsszANloMDSFGZ5NsHAtGQuDc8hFPSSuly3CIux271JU1zBDsYWs7kQE/yHiAgMFQvEiIVfYTh9Mfgdnk6C8+gOIJH8NgN/bhZnFyGwovbaiEkBqLwin3SDXYeiHFT2Sd9QiV8Dern9xLCv4HpaEiD7ccx0PP8sWaz43nUmDas78SSD2s7hLroO0ZhHESTRZk4gMbzJv4QZdDlGedTOF8CebVRTB8bCD1GkP1gj8ShJaUAjvR3H8hJsZvo1AChy3oevjMeNpYr0CnUw+3pj0ez3BP1EhIY4IPNY2joQqJs+upDdQwYtYTIJanSehtsPFGyQj3ZszQLTRyBKxuc/kxygf/JByaYh+p27KiNQuBLIM8Sjz1D5jJ27FYpgHGqwZnIy17Gh0O7j9HR69Uu/gCUIsSJgz5tFE7zA0UW8ro9Uvp02Mhsq/mljQBp7h5A5EYUeYZiL5x; 4:+LsVC4I7xwfK56LFjGz15GC50Yw7Z5ilUxOnEfMmo3zTlpRQUxp0esDXg8Dyc/75Oh3bRcrfh6NLmpZwJDahY93tIMm0nlBKwj8jvUozC06LoKvNVcrv2VgVlCQTeKl1ZZhol5hTJIUy/jh+0R1vF4p6DIcQiZi4n2qpBwkEhM2mDQZZxDSKpdykxl/iQAFP83FtCpfdYzwtyeUOy5Sq1UwdupSUHmr3pzt5alhYEeLWoEf44ArC9e/01dhpu0/jg/92waHZRLNYaXPtWfM14w== X-Microsoft-Antispam-PRVS: 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)(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:oKjVd0s+6mfL33j5heXGWCzu7MRTBaqi0XQaddB+0IQcdxdK4qncxzeLaRg7q/cisElFjPvX0gjLfOKFYK6lyPQ/XMM+iKVf+r44xrhmElnpz+e948ouPpIgd+pMCd0oqSG+hXV7d1l5jNFY79Iu7j7sOG7Sm9uU9LIQwqxy7wig7R16XLR/YFzPe6enb9hsNLQ9HiMBbDNzXGVlG+6ilpW7DIaQLzaYdNNRDSGk3mcMuYVp2CoS7+cepsPq3FxXpMfEmfZfrIQbXRhZ/tXVORzWwNap83p+EyaNTuo0UrIdcXrwmSKoBqsoZB2Nc5dLjDdxH61w7an8OaNfh2l5LuPiMkm6VyEeZckWPXO2zPJfcXAKBEQm7B1DWaBlXeGeNLNK+2B33zHXOwBlDHcsAv/SeViTUxbgX6bWqnkWsK4gL1QRTo+N6yJoEzjxDqkXt9Xj32AygZC+aYHpZx4qBmCXdTSLinkeYfZdl0Z2qcpF0gNDf+x7Ly5XoBNTVvavL88MMJ8ZAgLUwlU7/yzXybeeXINpwBSORTMyTM8TKz6gtPAbXj5SPrN6yaYgDGkcEfhTH83YgEl2UaXrioh8hg2W247a48sc3HUa9DoOyXaylQ9uozMhWaL+Yp8QgKMptvsPk71Y18sZC2GYPv329yy8lCPTs3oHIN36o1DzPTgZEbuc791UcwGw5gNzivqfP1ow9sOCfP6l0LPM8CSj7jTw8NGFdtp6r6gyTWeWuwxXEfYIkXESiUfq000YHXq1iX0UAotU+Y9mX/plD08z3A3BaDRCkBubqBWeAwntKzLV/FMykECVvS13tecvhhk9BAx3zNlqPR8AHqpISSA7BGAOJIUTC99aC7ECEAvcu0monzIC7L+9HN5Y2Afm3l9I5NnmHqqJet4tKiNc41+2uwgrVyzWw/0Lw7Qxlt0UfO7aJGrHR7w3ewa8nGdM8I08gAA+p04aVQ+SfgABT2ZNB+bSTPhsfWG+r4o2fsJrR9KygR/Bel202u8kotrvtlUjnkagrVRXJ0/sEAKVXQavUB5FEfxPfSCru34n660fCOSRUD0qnfpBHq7dZOyRHqPXCo5hwrexWdu6N1YUPFv8gCwb06xVfvh53wq3ZqlqLdDdAAREkf+Xh6guv3CadoLCsCO0d1IvjS26yDXjej0PHDEj5RYRas4wfNsZBgbVNEYenmd5Ws5wUgDsQW//EdxMwFs0GiB+lWUGDTmhEnAjb16CzaL8N5uQDjQEKDe6HI0= X-Microsoft-Exchange-Diagnostics: 1; AM5PR0501MB2001; 6:4kmh++FN1Mwt2tNcZRTFBN0RpWim/l6licN0NHOp5yp2rjsXEOzHIwJGfeFsyTML6hjBhTXk2E7NjSZsN6zGivroaOk3PKzRCJ58AQ2quwAb9xf2swd5v1kVqLzkQYXdWJITQUVCLxsnhjWLJWr3XE2jEU/LGjoBAiDn17lbQUb+FwntAeKxlm3Fn245Ruy6WtH29fLukTDplwchuuJD9kaVmzW7UjCNnoM/qunWTmZH+34nZaiewxMl/fVRc24Iuv4hPzFDJ6MImhCgigDbwrTDTjkworLBihoXJSi2LPqbjQ8pvwdsLZ8Y8Nx7S4k9f15eEWctzUc91qamers8uRrJ0zrx8HaGbKtLLT1KwBo=; 5:AmzhO2QO1kE0RCH9T/pb8ePpHo4DAwGy0S0q4wQgZ6hRkERqDhtqWgTu8r4zR8PyqD4ofFcCHwfjvOCFl74Fg/6hFWuKmzj7GzHudJgPHWTH/+tuW//aqbX7TA0VxV1RmHbZsyHOlj3c+aOB3Fqa9PlxW///Jhk0YnBnMKIHo4s=; 24:x1qDEHiFEVn7K3BUc3N0W6CjGkr93FRgULAGIRq2msMAO75OWRAwN/leHFmmIYyBQZwkSZ23Uf5PmLc5ZoB7JFKzh097PEMgDRziThPyPVY=; 7:STUocCP/zGP9P7XSgpKlwIZ/c6YX8J8JNizilHNFPjL44pUe4+vBJcdeSVM7mZKZFQJ6AlIRvYjRnjG4rOHCmg50qgWJ+lv6VPIvcKqCOmgOmTdW3/1MQLocYg0jBY+7umBUBET5HjY53IUZteGpFKJl7qo5ZXxgy57a1FnL6Pqmw2XFrQW462770g0QvALE7erBUxY329zPPA/T/M8s26KgIr6eeldmW+1VwHtKNo2X9aaq02psf+ytQoROq0m1 SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Dec 2017 16:16:31.2623 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 9538d2e4-55f9-4e07-1951-08d55069dafa 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: X-Mailing-List: netdev@vger.kernel.org Currently, dead routes are only present in the routing tables in case the 'ignore_routes_with_linkdown' sysctl is set. Otherwise, they are flushed. Subsequent patches are going to remove the reliance on this sysctl and make IPv6 more consistent with IPv4. Before this is done, we need to make sure dead routes are skipped during route lookup, so as to not cause packet loss. Signed-off-by: Ido Schimmel --- net/ipv6/route.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/net/ipv6/route.c b/net/ipv6/route.c index 2bef8d1f279d..0927b02b2819 100644 --- a/net/ipv6/route.c +++ b/net/ipv6/route.c @@ -474,6 +474,8 @@ static struct rt6_info *rt6_multipath_select(struct rt6_info *match, if (route_choosen == 0) { struct inet6_dev *idev = sibling->rt6i_idev; + if (sibling->rt6i_nh_flags & RTNH_F_DEAD) + break; if (sibling->rt6i_nh_flags & RTNH_F_LINKDOWN && idev->cnf.ignore_routes_with_linkdown) break; @@ -499,12 +501,15 @@ static inline struct rt6_info *rt6_device_match(struct net *net, struct rt6_info *local = NULL; struct rt6_info *sprt; - if (!oif && ipv6_addr_any(saddr)) - goto out; + if (!oif && ipv6_addr_any(saddr) && !(rt->rt6i_nh_flags & RTNH_F_DEAD)) + return rt; for (sprt = rt; sprt; sprt = rcu_dereference(sprt->rt6_next)) { struct net_device *dev = sprt->dst.dev; + if (sprt->rt6i_nh_flags & RTNH_F_DEAD) + continue; + if (oif) { if (dev->ifindex == oif) return sprt; @@ -533,8 +538,8 @@ static inline struct rt6_info *rt6_device_match(struct net *net, if (flags & RT6_LOOKUP_F_IFACE) return net->ipv6.ip6_null_entry; } -out: - return rt; + + return rt->rt6i_nh_flags & RTNH_F_DEAD ? net->ipv6.ip6_null_entry : rt; } #ifdef CONFIG_IPV6_ROUTER_PREF @@ -680,6 +685,9 @@ static struct rt6_info *find_match(struct rt6_info *rt, int oif, int strict, bool match_do_rr = false; struct inet6_dev *idev = rt->rt6i_idev; + if (rt->rt6i_nh_flags & RTNH_F_DEAD) + goto out; + if (idev->cnf.ignore_routes_with_linkdown && rt->rt6i_nh_flags & RTNH_F_LINKDOWN && !(strict & RT6_LOOKUP_F_IGNORE_LINKSTATE)) @@ -2153,6 +2161,8 @@ static struct rt6_info *__ip6_route_redirect(struct net *net, fn = fib6_lookup(&table->tb6_root, &fl6->daddr, &fl6->saddr); restart: for_each_fib6_node_rt_rcu(fn) { + if (rt->rt6i_nh_flags & RTNH_F_DEAD) + continue; if (rt6_check_expired(rt)) continue; if (rt->dst.error) From patchwork Sun Dec 31 16:15:04 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ido Schimmel X-Patchwork-Id: 854227 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 (1024-bit key; unprotected) header.d=Mellanox.com header.i=@Mellanox.com header.b="Nxzqv5Li"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3z8lnr6dgBz9s84 for ; Mon, 1 Jan 2018 03:16:48 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751177AbdLaQQo (ORCPT ); Sun, 31 Dec 2017 11:16:44 -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 S1751145AbdLaQQl (ORCPT ); Sun, 31 Dec 2017 11:16:41 -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=bz4c2XjIzQrTxuUVRwViI7EW9ATXQGeJOuAzRD+1woM=; b=Nxzqv5Lixoj7XD8j0H9ma3uGLsbNCi1J+MV86ihj3OUtllJ4puOoGq0XP7htdwdicS9MlGyD/VVNHu+Ux25avCbwReuh+59KSgxsyA/s52bhuGD5Bo2Ujv6e8TAyum8kdXEZOKjJQBvL4cIgMe7Ccn+JW6EJf2pIji1YbYBjTdU= 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:32 +0000 From: Ido Schimmel To: netdev@vger.kernel.org Cc: davem@davemloft.net, dsahern@gmail.com, roopa@cumulusnetworks.com, nicolas.dichtel@6wind.com, mlxsw@mellanox.com, Ido Schimmel Subject: [RFC PATCH net-next 10/19] ipv6: Report dead flag during route dump Date: Sun, 31 Dec 2017 18:15:04 +0200 Message-Id: <20171231161513.25785-11-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 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: 322c9e04-9da1-43e0-4ddd-08d55069dbaf 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:wmawTHXb6Gwi6Lb5PYgfOE6A5B0V01Iv2gNYI8Rt8PDBALeC107FxP1bw3WeGcfG6ECTcay1w9OD2qvwmnVaSqJBBcPigulX8kWrbvaiEai2GgWo5OGCQzSqoE1337c/EpDveWptNP2q/1q1TZqOFD5R0QtAHpokFy62rBnrlFUtxsAaKtytXnBvZmZiMMQyG/L/SOsFexnuCYn141u+9mvhE7tWN5uNaOTgfljjmwWxf856zAuxpH4h7U2eh7k+; 25:Zre3vKq9S/UEQfNa7X0Gzv5mGTyaLWJgBNgRM1dqRSVT4/maotALri2p/R1P1T6r3W9aMgEAfvk1Em3XNHFRlKx1fkd2qEsHdanxbosDV3/IQyy9cVOaqVGNMAIdXpXSVeA3fq57kn8Mo1stC6x3qw129xIsiSOD2Cl0yReEqIxKcvAwxzpkdp5AWmAkHcNnTsdIvkc1O6MCf/MJ0hIKwq3D2nfb6bWgPtNYHQqhs2+GZczGONsnphFnaRwMWkzFjMwcmBBslMUQvW7DT6Y6ln/dUIBFqQIUkPkFLHdClyQcIs53NEJKkvtHu1V/Yo1h0xNFcP5aklAbB9KVg1aK2Q==; 31:8b0LOSC1lW5cdyaa2TtQ6+fwx4LH9CbMFUF3ZHSTIEAMPlNzPWqo2+s8v805BgrUKE5TBsQx+NG6CxHwfX6vbKwPtMAbiaGS2/BcMI/iRPLoudkwQeVsaTPqvjbJ+TzaELsep5QB3m9TpqFPrBFrJFOc43A6Ki121ekwMixezkVRGQsnh3MkYo2mhSNgW4ku3ok0HX01+IWh5zjOFTXdoVZSjzP6nMUbLtYQhfxMWUo= X-MS-TrafficTypeDiagnostic: AM5PR0501MB2001: X-Microsoft-Exchange-Diagnostics: 1; AM5PR0501MB2001; 20:rXxvy8ppETF5V1rnLboHvr557KPkBItOEzth57xPSzNpX0IAcdQvVgkBDzDYipvDaA9kHoNe4pnzRur4GI+sDfOkBKiHHFUsUWgbSBBeCPLVQGDIQM7lc988yUkrjnpVilMw2KcG2CYg8e8/xM+5kjTdrvUU1XwBKCruALHvi8Rkk33hL7bmUK48iyZChJlqabAo5HSBQFX8sAlDjUSwQ9U2tc7B0BWjVRGoY/0nGyfmpbuOBr7LPAPCDYmLbPIc260GyzoyOoz/4O9NyhrxQWyhvq6tTwoXjMzU3kHDpXMZiECyeO9/w/Ntzn22mFm7MqMQEG+laPaujXMFWsmku+jIAsmfXlw7jlWuQ6YceBBzbvrQbfgrwYCqCvJRnEPy9GYKDsFT1nOZgx/QJoMP1VhOakHEruQ8eD/TZFYOMa3gfjnwoov4SNHp1bBdd7EmtLcTBQxOiu5xVkqDIzjFoh2czoux1+NiE7t1ncUfTffypJoPiLGOsbnRibZHlDjy; 4:62BeU4fprpum8TA/urz76SAug8mLZJMXV6Cfas9ayOR0vSRH0wIM7NU88eexVFLzadNfmtXcaklFdBv3ZD5CW8czQrUSeixhb2TgY7k4rPf3sLyedF18D7VpBNJ0GDGStbbDqtN1zXFJnqKqEsQ8211CQLV8hFGHpBOW3pMoyXtvgMX8BMx6uW/SKfVsdpYXuiauL3WVSWORdHidAUiqEZfjIANP6fwUWZcfPo9HGGuYtMeZdENrg0io1StmWWxNcJ2YWLY6DJlk0MfMZXI2/w== X-Microsoft-Antispam-PRVS: 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)(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:RUjpsP6Tvn8nl8CHxdrJwqPLYngmAcZA3p8Fw3d/U2rKSLTY2i+599PCQ8VX625Hj81avKAy8GBOZJqv+9X2HyXfEQDHg88N5GkJRrXPh+m04HZvhN0jsT+qb14xzdloiQPshoVY7yUw6sbIOvquOXVdE1FblIJMYGBPKqnA/V4Rq/3k3Un/AZQDKKWSNHuiSBomMptx+MUF+AlVIvIusZSHcWirtTgc2WcP41N2Bwcxu9UJ3cEeV9SAl10UEEF5Pzyc5gONfDiYvchxg2saG4yTShLNCJdfW22Qw9wcmuXL6oYvrubG9pxC/JCNhtCtjXGuN+MK0O9aVJSeqUMegMaMxpcZfMHDNeEqlsLjWSnp6Bso49XdaFZxDzX0EtnbU3LcyOpoJeYq/0KYLjmkpPEJ7ioukWMZmMf1DlvE0Q8oAGr0D6+Ju6XAkNrr63Sg1g9EPeCO0CCffpovXfQdhu68vK13j4pjUOYIfesTGjaX7Hri+3gG0Mix7zlAoovK+r6rD4lLdNDIPOTMb+MsugPxhJN/YqTkWdC9JLP+GIBHBOzEsu5SKOsfl8FTiRF09zhOpdhIJnG+OMPTUNiZJSkLsFC9/XScDT9E4kG3g2kbvGd5m+0+MrDtppfdRCKEfBsMEH1xh29+iqD/nTxczUuhDzHinkbM1Ywv3Ew2DlzZ6AKDb1fqhoawohVLoMXPEA5k8zUYY9DY2h6GJG9bTUDmUyqjiiUm0t0PHQRff4evESeZNugK9ktXxk6nQREgBG0unTg+W2yzOuPeQFgx/PiSamzfw0tm9Fa6rbjzDl0R+2gx8DCijLOFHurDS6EYm+7p7KAsJ3VFOhFIgpXSKg39tDZu/NbIMn3G1XQHjwHXN0p4o/ufOrKbkEy900LYT4xO/za2OffmLrBp6JHuw10ccmCkXlrgZpm5orizflaoV36QEAPEhqmzkpaxbaCy4d3gxIxZOf8Q7ftq17olhluyggBdHdc5lrFD99C/RpULnVgwJgGS290dQtiyd1pOcC8fFSZDMHuKaChqEtZ0xlDU0BPv0aORTHD1hJRz9JdFxiRob5jqnuNSdaSKNhwnrUtTZYP60fgJruU/HnDugCIvo9otHszwEAQp9fwhh9ZzmAE5FbcXlaY4ZnyGyPrA2cKpGKEcV1SWDWdB8z3rzriIdjT2CRQO2HIN6wVSWskBVziPpqI3RIiJGlORmIJKPBxRE+TvKeytrJ3uwh6RIypAASU/lIzVq/CDohiG0eo= X-Microsoft-Exchange-Diagnostics: 1; AM5PR0501MB2001; 6:12nwRK2385NRWCaFU+tE4FxhhvihpaDJ4oBX48qwdewHJ0u9dM+NUv0m7Mu38x4ZuQG/4E7/u3s8IhZ5Vpmgw8Eu0B279D3kTuuiQDZpD88DqxzwdPgFqoomwo0+AgCjJHgoxDn6HuOm4nujjSdxI/PeRbL9h8Ni/N3nfRMOlHzuemQ+VOh1oHJARKGAyhiMo2tYFYMoh4sbkwdbPW/T8hB2h5PQniMxBtbp3JWCHme2hwaFh7r4L09Hko3KxzrFQL0jV4FtO4bd/r9ncRdhvE7qSYwHxL9umTx2osQ7OF1foVcDVShScBWD57QkfxsASpaPnQZgW55EqwJsQie8BAuYJJQuIJr7vRL8fzQ8UKA=; 5:duIhBTGCDylI3RiQZq2b/5++gtL3NKf03kuq4DFH6VNgDHQ/EXPUExwZmxTMoJBytwU9B6zKT1vOhaPv4Zx4sOED1I+2/837W9TvM0LhMoSvVOr8HIzc0YTQqrllGfz1Ceo95V/vsAYR5wc6DwyzNDdGTdYO1FlurSw5EXX40lw=; 24:kQ197mGDN+esx8PfD4c3F+1xmExVWLhzSxM3MfOn7L01JjU034JZlzZWl5eamvp+HnXVWeQApE63Ix5zI63EFN/WoPSxjd6G/0ikPKTCioU=; 7:qS++srM0J+gCKAo5ag0NzakqgwhXJnmzmWqrv0FepUt3d10xYb/xym2uInyT3ytvq1+AYY0I7sw0+UPzKrTeL8+0uq/B79tXtD+BPVWb47bUtB6MJWRdbdmZYWPMMI2xCYyb0g4R2wjrUBMnkj2RzaHgr/KiUGgX6xelJXG6xebsybMqXWWj5M4/GqPVFu+khiU7qfJ4QdWeIKQ4Bp/JahXz25UjJnPWyikSgBACkOVwfisthv6Ud+HZHl4jD+Yr SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Dec 2017 16:16:32.4498 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 322c9e04-9da1-43e0-4ddd-08d55069dbaf 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: X-Mailing-List: netdev@vger.kernel.org Up until now the RTNH_F_DEAD flag was only reported in route dump when the 'ignore_routes_with_linkdown' sysctl was set. This is expected as dead routes were flushed otherwise. The reliance on this sysctl is going to be removed, so we need to report the flag regardless of the sysctl's value. Signed-off-by: Ido Schimmel --- net/ipv6/route.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/net/ipv6/route.c b/net/ipv6/route.c index 0927b02b2819..4d0d32309bcc 100644 --- a/net/ipv6/route.c +++ b/net/ipv6/route.c @@ -4049,6 +4049,9 @@ static size_t rt6_nlmsg_size(struct rt6_info *rt) static int rt6_nexthop_info(struct sk_buff *skb, struct rt6_info *rt, unsigned int *flags, bool skip_oif) { + if (rt->rt6i_nh_flags & RTNH_F_DEAD) + *flags |= RTNH_F_DEAD; + if (rt->rt6i_nh_flags & RTNH_F_LINKDOWN) { *flags |= RTNH_F_LINKDOWN; if (rt->rt6i_idev->cnf.ignore_routes_with_linkdown) From patchwork Sun Dec 31 16:15:05 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ido Schimmel X-Patchwork-Id: 854237 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 (1024-bit key; unprotected) header.d=Mellanox.com header.i=@Mellanox.com header.b="UM3fxR6P"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3z8lqM03rxz9s84 for ; Mon, 1 Jan 2018 03:18:07 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751206AbdLaQSE (ORCPT ); Sun, 31 Dec 2017 11:18:04 -0500 Received: from mail-eopbgr30047.outbound.protection.outlook.com ([40.107.3.47]:24032 "EHLO EUR03-AM5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751143AbdLaQQk (ORCPT ); Sun, 31 Dec 2017 11:16:40 -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=XgoYO3Re+9M+r7lINd6RPzDSP7CT8Ca8+JA/wXN2MrY=; b=UM3fxR6Pe+VSHz8Oh0zhMfW8zpv3qOsNFE1zalP01cChJK9GumfvyXjYR04xjtJ+g9WqqrOc5pZakpjDl+QkrVWoS8FiPgu0rHZexy/kOR0+N81jVpOY2Uodocz7sjJ3Vp0SuBELtAiRbZQof1QgLVaajokMtERjd5+0ooI2LXI= 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:33 +0000 From: Ido Schimmel To: netdev@vger.kernel.org Cc: davem@davemloft.net, dsahern@gmail.com, roopa@cumulusnetworks.com, nicolas.dichtel@6wind.com, mlxsw@mellanox.com, Ido Schimmel Subject: [RFC PATCH net-next 11/19] ipv6: Add explicit flush indication to routes Date: Sun, 31 Dec 2017 18:15:05 +0200 Message-Id: <20171231161513.25785-12-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 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: a5633194-1aaa-460a-3542-08d55069dc37 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:bkpUDDZo/yBPkNpdSSIdqaUFKnUqvSWtrLyZzVZ2FmuPeRHcZTICcHViGL2Je7whM8TfuCwDxUpiLl1RCPs8/DrmkYDFEstuSa3AIWQwkG2IJyd1qulxNDu2keH4RFi6ysqeHDT4XXudqXYhLg8Pdcx6UkPfAWCguzbqmFkIn6Rjteoew8Ldn/htvuuXi5YjmaF30AbjyBSWiCCnCkf9LIfee96Gb4voJaBh2qqYAVgUdAm0SOxuBp+QsPNOg420; 25:yXVgTGPvl/7JIdBzAk3QUjCV+QYo3+cCH/wf2GqXr8Wd59nIstIyK4DXD7EnXGrw7i6TuH5ZIyii8ZBWjh43/DBc2CwCNmtcQM9HQWD1xTOmYQKLTIt9zNJ/mfGzr8Kzl5xVscQDMK6BqvnfhSoZUukWzCqznb5RCT//gn2LaGXGSGKPvCUZqS85LVAcIJBKpGnb4XrSwOzBISSI6EyzsZgjdtuQAre5YBFr3L3mFAYtN6MFiEPTghLYxhJhzsIK3PLT1iWH346s9Q4hP+PWNlEH87Adc1QOFOLrWUWC2o+LnxeoLXrVW2cW2nF2XCvLTG+9SqrpII5D/6O4+29sGg==; 31:DjlfhjcE2+h2ge6wZtxRTNYDhAeRCDPUn87XHaZ6cAu06n5hMbgpL2M9q+C+htXd7FoqedgXaQozkzFKcSRq/nIpfg/uK6lmlNlOPDClHTTA+tLvdt93MDJ/RZJMLVY0r5uYmpMo6FNJ0Cs2db0qJTwHaYzp5S0pZk13fhBKv1yO07qebW1Wkyv2x/sijRhjVenX0gFCwgIujaSzSObMfECUPeTdglxcSP9LhQqT7ek= X-MS-TrafficTypeDiagnostic: AM5PR0501MB2001: X-Microsoft-Exchange-Diagnostics: 1; AM5PR0501MB2001; 20:yFM+OYVrH7ua9EQpjuLoS1m5XFUZ//7SUtBXd2OWVrhfuiXVOTs5RDN8rpk79VUOmJh8iqc3cVMXpW9UXLa9OdNof6+IcYPbgdCPBOng/Og05UmqL9TtOmod+su4VR/AscyjnQJN47LCCpfNlQ9Fe89gSxpWZRoE5yEcKBOC4zHKJ9vRBmxnCrBNcjvLr8SsoWBY7mwKkKNXVdsFR2E0jcSPlm0Asp7KNC1u8Nx3b6RMXLtOixFPZII/DWruWt2ZcoSyHXD5lD9JppLhllFKwgM45wjTR0s6ym3QizcztESVbAf0Mk/wGOS/fAF+TIsv+QmowNsGlOZH9GZSXPW60HmX1276meKuzOVtpreb7K6JccGG41Ed5O/ekghsxUsuXzkOIqpxRdWOHOtxKjwukqSh345uGerD3vsvYVVNEZI0dzI0JWpRUikJOCOR44hRRy+NN/ko5JWKsTzXc3B0/n72JXH+SREJgR1LNpIgR5TLE6ZIoqXsDKyWTKUEIQfN; 4:rmGlNDd0XNyl/sP0HLXSwWLtgFmdKSyFpWTFpmED12IunEV+KMnEwoeiDss/sfb64+cAQCgCm8470Ftsnp65Hr7m3uFZXceLDqUtP0ZM4qfKtpYnHbMHb77sIjeBaO2GddNhTfnSnHz/5GCGhnS4ov1QI5a7qa/1th03fH632pBtP9CiEycK1qpa/W7ljsnWgCBMMjf3QUk1WDQTkFzD5RGXzDMdtha8CMytrM2vI0PDZBZSHbbHrfBEjoHXeWVD85yJvSeIzEQHdp+O4/1aAA== X-Microsoft-Antispam-PRVS: 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)(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:EWcsmY/52JEAy8lmU5uPh9M/vaSPw2xfFvXl1tkFg47r/K3IVbfcJH/5DVmyplF8pKbUuFJ7uiThlwKl4Lpf59rLz5ne7vYhgu5ONBB8pOgKUp7Jt49dmvDtPNGnlCmy5z9UiMQxXHTRlchSsfOV9AaP9y7DwDGUxsJa40+Em7ud7gXUMq/X2pAG4oCOQGz19DLs2/nO79AjHk64AW2nZxL3k7RVq/g0OMSZ2D1PB3lhojtnYh9ZkNI2/qPPFRtM7KAGrXMPrgCZS9IUsWtWfFb5Dga5k8kHq6GAoxvtAPgjCr6CLIhPUqRDXLTuAybVkc31h0pOCaw0wbxHVs9e1M0QEzPTV/geSSCirGs7+OWzFnzJjkjHN9NZ5E+VrANxexp9FRiNYtHic7B85hVfuTu7cnh8hn3C4jyvwVwVKsb2UPh4fOlO/zb/yLAIJ1sY2RA59XCMqQI/AqT1V6QxadM5pIiC1fXuNHrjZkXIiyaP0+FGgcpo760Qsl0lxcqzYQ1M/kBDMHi6ZLOi4p4eU4IR/3PSQwNSLIbLjs/FJZIccUuzS5JkJG48vK1l1M7F7+l99mlmSwBVvcK900UpD12tPWLHT3hSBD9fsiMnY73VGcPb0XkEA/Ek17KTDHKhDU+8CPEYIu2FPz0j/nZqtysgbU1Dbkr5jShrzxCSmnrj6IgFfXQxI/2YR/0WbGPhhDLC0RK86piqYXhvNkJjg0X49a08g0xCAC4ciPu7disE5v9MtGbbenPd3Ec4zfQMfp7yjJAR/1O8FsL/hmOoXxOIpFmCy3bP6buiVOxn+uwxumZvKrDkmFKJY9bukOshzIOJqzJRIvW2yf1OcO2v5uhs7s9wHN8tUn04ZY1NdSBn+7+B6Cdgw9BWePDs1hkikreZc/iy7PVdFmHIpk/ln5ZW6qFaeRVolJ/zCE2x/V+Wb6Sgha+0FcX+PdoaJM6mneRI0duL4+P+YY62bXjCuZyQAhPiJHatOh+u+boR81h6vM4mANHHBrlPcEVYpnzExE8v1AfI+KGE0LkuuuoPcmKZ/7cWZm1sl4yfD9Si+xsZ/CEef6pLpPtkkKSRmv27F0pmngshKDRbOGPJ8YJEIO/X9M2TVzpH4b+OVtURPSD1v87nXMcbFymff9ukVrYcE391nq9PYL445Gpu1r1SXvcIdCZ/KkB6DJ8J0r17yA3F5YOrrLIrhyOrMhO88VYhMvhyZzw7vM/tSsb5U8x223u3FivF3paDnO2g3p9phcY= X-Microsoft-Exchange-Diagnostics: 1; AM5PR0501MB2001; 6:BXyw7K3CeW8eUA6pAy6hwk3kb5jmtgZw8qA8jcRw557jnSlYwgdlWW80Afnu9n/Py8rKtiNZRhsG3RjzKXrnIxhLrhVNo8ACMcjIBDVasg8Z5usznt/WdaaXWalc3phRGUyb3Ht4lwBhGJG/PfUORYW0fBiUHW1UQMPIgCQGp6X8Hpn3Aa2G7CMsOJne9tYfO74Svrz9IGc0txjd9N0py/96ZBaXOgH8nB8HxxqlX5GN4x6SFGO3eqEc2/I/r2nnybqiMmrRZED8VNF1HGREaFUM1qszpsBVRNPoGAZLKytkwQfyQHn4xO8ZB45We2w1PthIwKEEU35Ekk8ywhhdMA0aTbL9kmeABVK0KZVXx8Q=; 5:C84HVX6j2CmiLaPVqzksRVaq5f8yPhQgTpYvDfvK8vvnKzZnFwbgzXgJ8zpaKvNXvm7lZ2UqRAlOjieVroZPXK2JmM8DQfHb/KwGaNA9PuVkxXsjhaW6yGTPM3rIHBXsObNzyEif93WHcrZ0qEjCjEnKFBcwHtpREZ2FloSyqNE=; 24:WZgd4ML/vNGj4mC7y80j4bhXVN1A0fvQn7FsgwMg2BNMhrdzEWUSSvhF7XdmGlagB/NEYDKO0S6meuiO9IZli+wmsdT0oW1WllkaYOjJbH4=; 7:mpnz75KkEB+YuRSV46L3iDeLBdQ5cjT+8itGzICIsCRQF0ab6Xr3L8ZVkiFu21QLJvml4JbzQWTQmbzPs+FraD9ZM8XjWCAzlMEBg6+KLpabr34bW/CQ5mEAUNBtKbzy43Xox2+WFkPd181Memy+ZQ2j62idbiKM2rlU5zONDamqfPHVAqRxtkcPfxaIH/TpQEVyUtmKWHgTBh5tGjMT8CqHUaQuLjT0oVVChSYxEX9rPuAqRW7dwn4tzu1NhZ2o SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Dec 2017 16:16:33.3405 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a5633194-1aaa-460a-3542-08d55069dc37 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: X-Mailing-List: netdev@vger.kernel.org When routes that are a part of a multipath route are evaluated by fib6_ifdown() in response to NETDEV_DOWN and NETDEV_UNREGISTER events the state of their sibling routes is not considered. This will change in subsequent patches in order to align IPv6 with IPv4's behavior. For example, when the last sibling in a multipath route becomes dead, the entire multipath route needs to be removed. To prevent the tree walker from re-evaluating all the sibling routes each time, we can simply evaluate them once - when the first sibling is traversed. If we determine the entire multipath route needs to be removed, then the 'should_flush' bit is set in all the siblings, which will cause the walker to flush them when it traverses them. Signed-off-by: Ido Schimmel --- include/net/ip6_fib.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/net/ip6_fib.h b/include/net/ip6_fib.h index 44d96a91e745..affea1aa6ae4 100644 --- a/include/net/ip6_fib.h +++ b/include/net/ip6_fib.h @@ -173,7 +173,8 @@ struct rt6_info { unsigned short rt6i_nfheader_len; u8 rt6i_protocol; u8 exception_bucket_flushed:1, - unused:7; + should_flush:1, + unused:6; }; #define for_each_fib6_node_rt_rcu(fn) \ From patchwork Sun Dec 31 16:15:06 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ido Schimmel X-Patchwork-Id: 854236 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 (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 ; Mon, 1 Jan 2018 03:18:00 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751111AbdLaQRw (ORCPT ); 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 ); 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 To: netdev@vger.kernel.org Cc: davem@davemloft.net, dsahern@gmail.com, roopa@cumulusnetworks.com, nicolas.dichtel@6wind.com, mlxsw@mellanox.com, Ido Schimmel 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 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: 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: X-Mailing-List: netdev@vger.kernel.org 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 --- net/ipv6/ip6_fib.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) 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 */ From patchwork Sun Dec 31 16:15:07 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ido Schimmel X-Patchwork-Id: 854229 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 (1024-bit key; unprotected) header.d=Mellanox.com header.i=@Mellanox.com header.b="n0lYvJ12"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3z8lnv4Cj8z9s84 for ; Mon, 1 Jan 2018 03:16:51 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751200AbdLaQQt (ORCPT ); Sun, 31 Dec 2017 11:16:49 -0500 Received: from mail-eopbgr30047.outbound.protection.outlook.com ([40.107.3.47]:24032 "EHLO EUR03-AM5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751087AbdLaQQo (ORCPT ); Sun, 31 Dec 2017 11:16:44 -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=I0fHL1boq+SyQfXUIfS7xxcb4daUA/vGVKf0SdyMzcc=; b=n0lYvJ12z3PjC+OJSEQRWNn8VGzXEjCRe/oqrwf6depgC3EDKsw1W41XBquMzV45NmnADfYMQytFtYU3eR0InXI8CJPZIdC8Ngfgkz/37GLJq2WAjoZduoFJzV7ljfqAaaMSxBqoLlCHxQWU3NRotvzYDeEVCmmTNqPqBOnOx6g= 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:35 +0000 From: Ido Schimmel To: netdev@vger.kernel.org Cc: davem@davemloft.net, dsahern@gmail.com, roopa@cumulusnetworks.com, nicolas.dichtel@6wind.com, mlxsw@mellanox.com, Ido Schimmel Subject: [RFC PATCH net-next 13/19] ipv6: Flush all sibling routes upon NETDEV_UNREGISTER Date: Sun, 31 Dec 2017 18:15:07 +0200 Message-Id: <20171231161513.25785-14-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 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: edcc5718-ac6a-4107-0414-08d55069dd47 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:ZB3pRq5wLK6XyvU2hEp6XqQhl6KNX8OOwjeC4mQyEjgCr5mgMcFQVai/jZZXs1D1XB7TLtq4jrxHAsJdi9J0rmgbs3jOUaEn+Knu7LxJ+B+0OkhVA3MLX2HDO964pRKeZFevWEJepVhFroXwglICqguLZ2BauGG7U1AFJLv92kou/ZD+zdzcO+aFdQ06aPGzfyIKSXjo5w4x9WlQiZ9pUyuIssZturWfdK6f1W2FGNB3jNQW6CsJdZpbgqX/oJvd; 25:dyV0YZ9YdvwuUznmwJuUDoMG/lx6UBINk1pX+fTHO0Sxld3BIKoZBXEAd61xb+QNev5YYIZKxMd68QRD80h4UdCWaHFVajiwKPTXQ9yCtZNJqqy0ScElnmhX72k/Q874zEQBWUzwYDRQayBnHAI/GjE0Iawpn61i7HRlVkFEPu2kqcX2uvJqjxRVZVx4HBYEnbpIcYy/CDmNL/EJnME7T0MAHs8y2kVwP2QAMJkLY1D5R6ndwqlGQIz7wnWG5CA4WnCx2NKaMCbKcd9yUlHn66ikDizozHxG4rFDdTF83cSVLiIHhAajz+nwkajIrtjYOvDyegP6Zxy9HcTrPKR6nw==; 31:JwEZ+aEq3DF4PxYV2b6f6qhoVfh5/W5YUrda1Hfuxt+bMVQhJolO0UgqCHry1NUeEA6iDaXyYO86NIzrrqHSDM8Up14QRq2gYiixrjuCZ2lHj5toH/q2OgrrsVgSlh36zM619gOhHmRdmBxQCiNZmZvLtfGEoumcL3N5TgY3OAAAwrSrKu4w8tJz85cdFwR0KmGOs6jOc0Ijd8jQNhVx19EYX/4J/smqggkJlxOmfPg= X-MS-TrafficTypeDiagnostic: AM5PR0501MB2001: X-Microsoft-Exchange-Diagnostics: 1; AM5PR0501MB2001; 20:HZzTU+o+tkYk963cULi7vvJ98YPh7bhumh0yaEcAkwOYfKPYNMfcQe9J7HVOs47kRA6ElnNW7O5pHOg+3X/R87osw2YRRedkGC3G6qq1cLhtgyWzdvkXggEUhv2XUdDPrOSu8W9WrV0VVCd6ihAQMi646q1fiB6TV9t2+gNIS10NLuyxFsuXUd32TnCpGedoAWABOSSSS8rIdvU6ymryWBdeCQ7QG5/DoOsNuLi6sW49G7FNDb6qgQYhciYY98fxmjx1bcg4iyozDVe7j9NExid8lzjjfz12npNwGd0szITIsrA/ODKrVWHsAn3ysiMA2GdQPoUCL7ldBhTSmptaIq4XEvhtA8s1hnZ+K5NPJv3f2uzG3GztNq5Ci/hO2ewqhW54BvmclYGoRt496fkynj1wfmoubE5nk0oLkimLqNGP+OMjfwnYHyS6UPX3SaQtL539VSgi05aXIlt3saCmLKlsJ9Pfnht13ynMb36XH+OkMe185mlO04r2hOUHcNZ8; 4:KZmuCtLnX9clIVdMK56yLlROn7fTWVFAVki75YkYF0LgN4z/gsjTX5Y4q6MESPIDWEQNUyhG6Bn+fP9/83Gu4e1Hco5BRLzNQBhqboBiJ+xNhmiwQ5Qpt4QLMoFv/P5t4Io5U2xM3TVI15F/IsCjLVlIM1HBMwJg028h6xnBAhZQtdzWmYxPmQD2aUO0GQYfcLFTz78OUpUcxNLYPvez35/GB+4cs/wd+p5QCHZdtOf92ySSdqyIQORLFTId8VgnC9xure5SuJ6H0AIXo6EtXA== X-Microsoft-Antispam-PRVS: 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:o472hnlHOuCOSRHQKcFcTZRq/ZSlZTROZjHlFlWOaVwG7Rc8Ow0a1Zrj97GcrLq37e0mgYvTnPxMsJ5pYHleKNb9OngDz4txPwgmnbWxQvs2DE0UISnmjb8QCrdPdjy5uNMCKKHj9468orR+xn20GpDpv7G9z9aqJMwq3KwDMLpar/7yLcLlNbm1M8zfH/6/7O3t5nQ2LQhQ2/m+VDfv7YULr9FVHwH706KJDlqtkUUwNmixXOcK2IcR+oRFHpR74TFeRRiqBgeQ5wpdI9ixAyh4P+5zHO/YNW6BaX0NF0CBA9vchzWQQzXaUfVx3q4esZ27C6FR1xyBL/jIFJgS1Tkro/GqvcWkb13tZ+lKi/Y4ocb71aCLdFbls1sXJFb50ejyjMXXaO3TuRxoUaxbdvquSq2S+zt0kjC2qGKgxPoEHHwifuEcXfrOJ5xREK5usy60dbMmYKviovyH+mDVdOLpAeXGnTRXfGcNwdyMq7ma4q67zB17x3wZt31Yh8J1XzZfW9utfARr5xaZPlCnt+OvFYVlZaT60a5cYCkfy05Wj+f77quIiDPq05yog2GITV6TUV+e8rWjw43ks5ycdbnJ90Mg6tOAExwJHDapYqW876N9HxPrGBYvr0puhsplYPyUwfid8f6y2qU1i7WSd6NdFlCrFRyQoFzXoI0SEKBaT9pHKMJM/1m3P5fiv0pHdgPfePy7HJjGeNk4U0cecE6AgMBt+u4fvfmV0r8/uJo5rv+kaM0duu31OwKeADIr0uxdSJgqL0iFXDrvsLtIj9rYC68jIizvmHtfWQOhRc8TcEK2UIs5H309s1I8N7IglnDHh/tUwS/3gSo4gY67PX4rK1dIyvEe3eRM5TMJZzpg7uQ/qqDwk2YAXm/FoE5bmJ0BoSDa54SDSKPR6IZroalkZTQykRFqtR1H0r2seQGLOBdYXenxTVEX3qTIzfUszQ7q4bX2/mliFj5K9BkPqApYDXajJy8oUdeiI58wl50N0Mh9tIVa9xi44J2/TlXqsNYjpVp5z6lXda1C1WRO2SjBeKTE2fX43rcBWZXdziVIq4kabhe4EKBhinJijYX5eHhN1zmWu/J3mRrjl5klnvW1gWUUDD5MzOOgc/YDQ+7vQyLjOmBM0WeoEBwti3e8BVpC8Eb8YEKxhA5RW5a4BTIhJGo/6AXIjXevmts83jpdMs1GAbvUtf3+qnkAOnRLREE0XcPQW6lcbiYcHEUild68p8ginrh11BtIuBEf/JXUSugFysJFW+hyuxpnRmBH X-Microsoft-Exchange-Diagnostics: 1; AM5PR0501MB2001; 6:IUKZ82Hd4K3nJ1UCNn52UNth/viRbPzIMs2F2n+8sX4pi7DGAZDSswrOjhKLkJ3dVBK3WubwEObp/NZL5lJR4nudupNptkjHw6KAAtI1btgfv/ErWT0S2YTgIbOO4kGVdgS56IlWbVTrR6OSO/PjixNa7a2Kp5SA+2MqJGpspLgr5bWV4k44hopI4hvSHYGanHukJq+W5NnCo7VxnRhY5CRx9+192t97pV6+Tktfen07vU6MERO38wzQxV0u4g9ChOL8k/CUzqTorAlrPCFfllEejiN2NFcOph/E9z428487PkrcJlrXDgmNhqFgppSEgogd3L05lEyFR5f+km1Srkf4xJ7L3WLJV2OBlhp9LO4=; 5:0QL3UmWxoT9fZSACWswKIXRuZiAgo6f+gQj4xfpDu5wZSGkXFyshj3xW1Otql8ILAmaaO8eh5SCqi/s7BfOQRtmZf7MESsUXLZQc9ZMoRck5zTCakOG5ZlTQk5j8uvcWaJeYVMgT6C/48Crf133tMKeoqSxkOvRphCgNOQNAzWo=; 24:Lc76Z0Ha+Zj8vNPCz3Z5DyERXNG+bSkL/txESE0GvHwpZehJtm37IjMEqK3nSwtLRADziuSRAiGcJVj+r4oZtNXgGTQCOOFKvWWaU2m08AM=; 7:HIV/XsZbKDI2jzrTZ5qFV/tA611nub17/jkHtZZ4ulRsYDP5kkz3g006+mbOJC4ew8NBXzdmBAnAYkzKqpJIPKto3LQjuwa7rFowyOgLGjHWnuMakgQHvGudL63pSQ/tPqxJscFglADhqF6k7M7HwWaCm5BBa6oSIBUsfGUDOk+P73DudwIyJNN4wFPdAoF1CphWDXkzcejv3lkcMbBufjnFvhh6KeUhFi3SxPt5suPz6cLMl0KIzXTL+Mrqwi0O SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Dec 2017 16:16:35.0749 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: edcc5718-ac6a-4107-0414-08d55069dd47 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: X-Mailing-List: netdev@vger.kernel.org IPv4 and IPv6 react differently to a netdev being unregistered. In IPv4, in case the netdev is used as a nexthop device in a multipath route, the entire route is flushed. However, IPv6 only removes the nexthops associated with the unregistered netdev. Align IPv4 and IPv6 and flush all the sibling routes when a nexthop device is unregistered. Signed-off-by: Ido Schimmel --- net/ipv6/route.c | 44 +++++++++++++++++++++++++++++++++++++++----- 1 file changed, 39 insertions(+), 5 deletions(-) diff --git a/net/ipv6/route.c b/net/ipv6/route.c index 4d0d32309bcc..cf895989f2bb 100644 --- a/net/ipv6/route.c +++ b/net/ipv6/route.c @@ -3503,6 +3503,29 @@ void rt6_sync_up(struct net_device *dev, unsigned int nh_flags) fib6_clean_all(dev_net(dev), fib6_ifup, &arg); } +static bool rt6_multipath_uses_dev(const struct rt6_info *rt, + const struct net_device *dev) +{ + struct rt6_info *iter; + + if (rt->dst.dev == dev) + return true; + list_for_each_entry(iter, &rt->rt6i_siblings, rt6i_siblings) + if (iter->dst.dev == dev) + return true; + + return false; +} + +static void rt6_multipath_flush(struct rt6_info *rt) +{ + struct rt6_info *iter; + + rt->should_flush = 1; + list_for_each_entry(iter, &rt->rt6i_siblings, rt6i_siblings) + iter->should_flush = 1; +} + /* called with write lock held for table with rt */ static int fib6_ifdown(struct rt6_info *rt, void *p_arg) { @@ -3510,20 +3533,31 @@ static int fib6_ifdown(struct rt6_info *rt, void *p_arg) const struct net_device *dev = arg->dev; const struct net *net = dev_net(dev); - if (rt->dst.dev != dev || rt == net->ipv6.ip6_null_entry) + if (rt == net->ipv6.ip6_null_entry) return 0; switch (arg->event) { case NETDEV_UNREGISTER: - return -1; + if (rt->should_flush) + return -1; + if (!rt->rt6i_nsiblings) + return rt->dst.dev == dev ? -1 : 0; + if (rt6_multipath_uses_dev(rt, dev)) { + rt6_multipath_flush(rt); + return -1; + } + return -2; case NETDEV_DOWN: + if (rt->dst.dev != dev) + break; if (rt->rt6i_nsiblings == 0 || !rt->rt6i_idev->cnf.ignore_routes_with_linkdown) return -1; - rt->rt6i_nh_flags |= RTNH_F_DEAD; - /* fall through */ + rt->rt6i_nh_flags |= (RTNH_F_DEAD | RTNH_F_LINKDOWN); + break; case NETDEV_CHANGE: - if (rt->rt6i_flags & (RTF_LOCAL | RTF_ANYCAST)) + if (rt->dst.dev != dev || + rt->rt6i_flags & (RTF_LOCAL | RTF_ANYCAST)) break; rt->rt6i_nh_flags |= RTNH_F_LINKDOWN; break; From patchwork Sun Dec 31 16:15:08 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ido Schimmel X-Patchwork-Id: 854228 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 (1024-bit key; unprotected) header.d=Mellanox.com header.i=@Mellanox.com header.b="wpaUyd4e"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3z8lnt17jwz9s84 for ; Mon, 1 Jan 2018 03:16:50 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751190AbdLaQQr (ORCPT ); Sun, 31 Dec 2017 11:16:47 -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 S1751175AbdLaQQp (ORCPT ); Sun, 31 Dec 2017 11:16:45 -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=YHW4fy26mQKaSuYCY0w35kVNaaE/9SHFH9rdL5PJT5s=; b=wpaUyd4eSrs4cOlK5PAGnwgqksNUUzmXCNp92rNcwpUTjjvD/ib9oYiu3O/JIQ7N35ughWbdN+469YmRtymjqL6J9RPD21mU1Mc4ea9p0s+eO3ys/mp3M/VKk7xMiEsgqGnXIxfgpaWn3DIhQHjXY1slFEGkaGg82W/JQqAETBA= 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:36 +0000 From: Ido Schimmel To: netdev@vger.kernel.org Cc: davem@davemloft.net, dsahern@gmail.com, roopa@cumulusnetworks.com, nicolas.dichtel@6wind.com, mlxsw@mellanox.com, Ido Schimmel Subject: [RFC PATCH net-next 14/19] ipv6: Export sernum update function Date: Sun, 31 Dec 2017 18:15:08 +0200 Message-Id: <20171231161513.25785-15-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 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: b8d91d22-e482-4b86-39bb-08d55069dddd 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:GjIkgKi8uMa9NFBRTutmNNbMOfpIaVgKLlKnPgd9QZaWgMyKX5xc05HnHGIg2RpZutEw5ml4SydE6zwB/F2O799GaoKFYG+IKeOG8fov/dQuOC96t7ESWe//mtPL2KVn46vxkYz8dvjAnucDvUU1P+f9q9RvqyIXY6rRUaJxDmC+p8qPr6KqH1vfEXD8VkUCQ8XZB2ASjo0jw9Y9oH7MJ+p3wwjJHLEddVCK469SLaoXFb/VvPqKuxqLnl6UdJt2; 25:MIIGpJOFHQ8cFwl0WpNuhW13Y7m8LVpF7eW0GQZc5hwUhAKPbWQlnO74QJJom7+uVhWw77vsje4C4l6eIndSEdITuhHf5q6t0W8s0n1IVkmAy5Aq68jVaXEu/+PTDrdu4ZLvP4nFVGPA4c3intQnvllzd+oN5vtbSeXVjtATp3dtNaDI0H8O8HRM/F+KA8hkN7Nhedctczf/GNHWhil4MmPd2QSd3aFw+bp363K64giHOpbEuWIeLljDn9x2vODgeGKFnaku7lm9lfN79Jv4qB1htlGHfwPIKhhIn1LAKX4397ByRoGvQPLHsJZXnqxwPwge0j6L0PffxEex1pW04Q==; 31:xcbqDa6fha249AsC+xMOlriIovFv9YgA6NtvIYHtzLNIrzZba6X3NPr9oiBZ7kw3mCWJH7UmNxm1TfJZkP2n2D9NTSNBwwjng/KC3/cSShnf4k9N/aiyK0rQP0yDAJ1e1RleeobtgZupMUYefVbKL830NuaJUA6kxeedcZruPDMGlcyMdlhFYjgZyROHdTFJqBpK1SkIm8lqpcsEXtPRFvQOzxqCQmsB0/aOzSFnUAg= X-MS-TrafficTypeDiagnostic: AM5PR0501MB2001: X-Microsoft-Exchange-Diagnostics: 1; AM5PR0501MB2001; 20:oqY5tVm5WyGUmbZn5Sr5y+hW1fGFfouqk+bn9hf7QwxMJdxs1x1BVZRve1ChkdAG1Z33RolRmF+hJwKnnF/zyUQ4DMzKFf4GQsRwvKqP3tr7MxiCBDY3oFr6GVExTroB4wK+06j/ifO9ABYocUdqRWzws9xUzjYemtdZlOFYu5xlJwBDpUL0Xr5K72QasSt9EM+eN0/gcSDY2suCS8wj4qBFsTdmIKilpTJ1bgVSaUJrbPuwNLcqtw7KhaMPl/QSHq2mP5WHtUfGmqVrynzt/vCGA6C77yR/PBXAuY3UPa2Bh6dMXucxXUUBAmE0vPLUw+nqvZc1SYVDT8nuVMMCrjwb5TxBkIpGZoF89w8C8OwHc3DbnA9P1gq3r3vFVy3yC9//I1w5EvNj31MjtYVu6BQi/OchXNU1rz9Hgch96QDZYq00hy1Hkg5ZWjFmkEC8rvpxk3PECW+kfclK45xdK15MOjOYaE9qZxTdK1IhuIzclYqgUZN/JudaBTbB/fQ7; 4:s+vQE6kHsUNR0x6CTTVm7iRbe2CRhRO+KmxzGFBqOoImXKCdPv0w1fGPCN4BIqq/okAQ0nQ2XmZhhKQHf5TuS+fX711PW9xOrAlWlaCrIElDLqQ1va9ttyaESgUVuHW3Cvo1Z6g5kLwPFLqSKpawd3ff1c6VhzD/QiZHp8VbN/J8spDUoOmW7oeWEjhM7TTgZ/by9ij4ovvxZnerzSdK41eYRxNKZZszAV6Dtb0lsfp+clFGX5HR6bepAcsrA9ExMrTcDSrIGaMhe1ny4l6xpQ== X-Microsoft-Antispam-PRVS: 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)(43544003)(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:8sZXgpnXpAfesSJpDtz7Zu/N3rqVa7C01jwhUCVAjFH0CLX59TOry7RSe7PpjLsVI0jkJ/zKS0dgotuMl4HOXtlsSOZ1toAM6a7gKTjPHy96y4NjLPDcSWVkfQOrKARj8HlAV0Rga7oLLVIQCwn6roki711Gz+k/vjFlYtrfevfyppYFltAr1QyrX8dDxMYYEChVJxzUD0Jn9OGGvwjqesuAg/b43WcgCaykGblXr1hQ1b4adbWIowz6fEi/LYk7EIoeXWTU+NtSjNbccDZ2PdOMpL4vPpp7LcX8fPXyxgNi76T4XpV1V0wKaIQarmLzJSL/xzYnQQ/zPB+3Fk6mynlS1FHC64U1BevYiorOztg1q3xwjTQTRNxuzKGTEJZCh7mFvDjlDclmNJfNfsFiUZogiJQNeDXXOZZRueeoIAUyhnPk0JqZc1mWzDLKGcsJn3H8H4AaQdIBBhSJYNd/kw+74cuFviHNSIMBr5rHhnmUXEnf7PD3Q3a8Lm/EZrETPC2MmXsmGrOslW6ZHnXozOdleFqtH3hiAGSvBWCy1mQK46xzQtfo8pQQoAd42mcrMsbzh9O8aYvUeDvQuDF5SMdv5c1QBQBh4ntLOVrobeqDvXEMrhAsJxXU7RVG1vvwmYz5pBiNQzvWeRyRkN8i3pfDnWTKeOh9SP9OsvQmo9BNUEb3AIGohdSHDtSwkVDZJPluQ+lNLsXzruAX4Cj/JYlZEFTY6BIFe0/qfP5wkqWhnO37wynhUTKLiOBV/aOBZTpfYXK2lKLeWlol+wqSdua7TpKWGLpEW5pR5bkhbHSe0hL0WrvjrpvUDqE4gU6xNBf1pCKUJnGCbSpYmy6TgEd10b7Te089EdJKr2dkcyTFnwrBQDE4xR5D8FcDF+0xEUPvn7rjAF3sNmDulsBQKZAzyogZpf8bmptODxy1UTjsjFEFz1t7okbh3iQLhiQX03b5qyMM2YXBJC8R9rWvbyingjjqhOV+5lOb94Ml6G+wI+Epr2EWif0j/94LDVDqoERROcJaxyx3Q2cAdXOq4zAZGBE8Rim/4ISIa+lAkXD0if/wlqNIS3ey1Q4AcnNrWxhK2NJNQi0s6v6behyZfVQ4NYWHBf5pF6Jt+r/C6suX573bZH3nHgh+JUdRCPL4I0+Gqk/FQ2xIdDe9vV3GMX+3vg/RuZzCDSZCQ2/UOggDDIgRYLHYPATnWtAhbdHq4nioYFH6yAEXsGABxKFZz1VcKgS8nfjv2m6fKESEwHfvxtJMY66EeyUd0Z5VQFSse7Iras1iHpoLQhwfVpAojw== X-Microsoft-Exchange-Diagnostics: 1; AM5PR0501MB2001; 6:xF1vzR5bNMdH2/DMX8+bValv7T+FP7vO7EEHW2oeVMgEaC3Rce6YkfbFGLjCZK/CKsd3izXYpdygoA/nQccR6VZcXdoSlFUySDfaNqWlAfFx7CRtkj0yaJJ1EU1Ct1jv0Yu1v+H8VeWpB3tXeIxrkb65SSfcPxSKXkh7VzFYTrMKtCvOGeYYRghM9Ie+4v6yVSjtl0zKkLlcgh6pfcEbdkHpocj1DCdfuoNKMbVY+rTsi02cBZBogXmWu4o7EniEA36zLsrDUxnFbhYlbsIg/qDgDw2zOIFfe1zz1yItUsdnoPRCoVKzpPxiDWdslQi4U3+87kQfJbftfwcy9SHbauAbwi5OK84ncaWRhbKdL1o=; 5:Cr4xKCcsraqyE5/bb9BYnDyouHuNIace2I6SeU+KzFPCkQ7UzwwGOIRKdNwDHdl+Futq0aOgNIms/pWu4B7kE9tZbVcCc46wXej+P6l1XhBa+mYsIx/QUn2XpcFhYF0Wo32wNayz+Hrm1UoFV6S1w0V3HhTmMky1yjb8kL8ABug=; 24:IGwoL5Z33izLgpExKp2FHCD3YwVR3QHupwLj1/XBk1VPCDYbo9AONNaoB6vCuWXFJsFrOEsXVaR/mIwm2HQyVsKAQDCu8lyxRerM7b3p+2c=; 7:ToNOW8SYuZDW15IBHbAOdpLKFzSVUTE3oqeIB3e3ssx+Kl74z3zvRCmNPWSWW3nQQ5B+nVLIWn9L6cMR4HrxyfjhkNrjPQWf1X4Kp+VE2D54tURXKRQzEZgpnlSEICwCxrnm79muRDYnchJtEmBnqdjHMc/NyKMMznw6ij9IBv2UKktDP744SWf07yAn7RIrPSvN3e7qXPqpTwVrS0SuAx1YFSv0eqtOjlxc8Lp24LD4zCdRQq2/MQ3LtrKQNBqx SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Dec 2017 16:16:36.1062 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b8d91d22-e482-4b86-39bb-08d55069dddd 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: X-Mailing-List: netdev@vger.kernel.org We are going to allow dead routes to stay in the FIB tree (e.g., when they are part of a multipath route, directly connected route with no carrier) and revive them when their nexthop device gains carrier or when it is put administratively up. This is equivalent to the addition of the route to the FIB tree and we should therefore take care of updating the sernum of all the parent nodes of the node where the route is stored. Otherwise, we risk sockets caching and using sub-optimal dst entries. Export the function that performs the above, so that it could be invoked from fib6_ifup() later on. Signed-off-by: Ido Schimmel --- include/net/ip6_fib.h | 1 + net/ipv6/ip6_fib.c | 11 ++++++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/include/net/ip6_fib.h b/include/net/ip6_fib.h index affea1aa6ae4..ddf53dd1e948 100644 --- a/include/net/ip6_fib.h +++ b/include/net/ip6_fib.h @@ -405,6 +405,7 @@ unsigned int fib6_tables_seq_read(struct net *net); int fib6_tables_dump(struct net *net, struct notifier_block *nb); void fib6_update_sernum(struct rt6_info *rt); +void fib6_update_sernum_upto_root(struct net *net, struct rt6_info *rt); #ifdef CONFIG_IPV6_MULTIPLE_TABLES int fib6_rules_init(void); diff --git a/net/ipv6/ip6_fib.c b/net/ipv6/ip6_fib.c index 5e4b5eef0ddd..c1bbe7bf9fdd 100644 --- a/net/ipv6/ip6_fib.c +++ b/net/ipv6/ip6_fib.c @@ -1102,8 +1102,8 @@ void fib6_force_start_gc(struct net *net) jiffies + net->ipv6.sysctl.ip6_rt_gc_interval); } -static void fib6_update_sernum_upto_root(struct rt6_info *rt, - int sernum) +static void __fib6_update_sernum_upto_root(struct rt6_info *rt, + int sernum) { struct fib6_node *fn = rcu_dereference_protected(rt->rt6i_node, lockdep_is_held(&rt->rt6i_table->tb6_lock)); @@ -1117,6 +1117,11 @@ static void fib6_update_sernum_upto_root(struct rt6_info *rt, } } +void fib6_update_sernum_upto_root(struct net *net, struct rt6_info *rt) +{ + __fib6_update_sernum_upto_root(rt, fib6_new_sernum(net)); +} + /* * Add routing information to the routing tree. * / @@ -1230,7 +1235,7 @@ int fib6_add(struct fib6_node *root, struct rt6_info *rt, err = fib6_add_rt2node(fn, rt, info, mxc, extack); if (!err) { - fib6_update_sernum_upto_root(rt, sernum); + __fib6_update_sernum_upto_root(rt, sernum); fib6_start_gc(info->nl_net, rt); } From patchwork Sun Dec 31 16:15:09 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ido Schimmel X-Patchwork-Id: 854233 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 (1024-bit key; unprotected) header.d=Mellanox.com header.i=@Mellanox.com header.b="QkppU97B"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3z8lpN3TClz9s84 for ; Mon, 1 Jan 2018 03:17:16 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751260AbdLaQRP (ORCPT ); Sun, 31 Dec 2017 11:17:15 -0500 Received: from mail-eopbgr30047.outbound.protection.outlook.com ([40.107.3.47]:24032 "EHLO EUR03-AM5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751145AbdLaQQp (ORCPT ); Sun, 31 Dec 2017 11:16:45 -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=oiSRAXuSqixgE4JigreCoW5GU7l3xmqVu4IuPUnFcVk=; b=QkppU97Bf37z6ksI8PZdjkZe5Enh+K5ZfR/K9jPPlzWy7Xu6e2Sk6smqzKEktDLMIpoZzwahbCL8+pDWoSMeB71OUQjaJ8v7VMpZxz2fHSPjvcNcrQg48G/1RhTxcnodhPIxcgGbpcok1WDztzb7eOE+1bQUOx0AuM5wXfonlhA= 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:36 +0000 From: Ido Schimmel To: netdev@vger.kernel.org Cc: davem@davemloft.net, dsahern@gmail.com, roopa@cumulusnetworks.com, nicolas.dichtel@6wind.com, mlxsw@mellanox.com, Ido Schimmel Subject: [RFC PATCH net-next 15/19] ipv6: Take table lock outside of sernum update function Date: Sun, 31 Dec 2017 18:15:09 +0200 Message-Id: <20171231161513.25785-16-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 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: 91087f58-aa69-4809-2128-08d55069de65 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:DvIZ5LJArl7r23Qqx3YuxlKVCUUoeAD0kzt1tRvhamDV63qgViaiz4K/klmQtVuK4C/FBJStmVE0RNfHTivSxfRT4r9kBIHGgJvq+Y8K3Mv2MqDTWbvNDC0zPJflOqp78yS8AeqsONUTh2sx2XCpkh5L1JAaDJcCmJ4zGKaoDiJJlwZbhjgLW9V6waRQtBD/22+qOboncReHCu5TVy9XXat+zJpMRpgelHHF3SFmZ7ZPJ9uHRuDpgQJYhsvu2GUL; 25:dO718r28/5ctQsLl5xKpVmtdlm99VK5tmP6dDDFCFJ6TqyvF2rK0tXaIH9LG7kXvNyWhJTTTtL68jzh3n0T1LlnFSVludgiDBPFb99QZsUfE1VL3hW+17FTBwy70zoCAz6A2yYekDvF3dkYxFyPT4hS2aE8lXZxBkhAcid/+DI2luUJO0atMPGnM3TniOTgNHkSY4jcy5yAArTPwI6RSuxrE3LG1vUzT1p619nYDYd2M/XCgi1sArvpVPQ6NyxNoqTkOpuX6b0rSZFNandYi2498U2L/y9/LRCTzMc5/HC6yMTFsW6+8ETyFFvVc5nR8OojTYBr4zamMtoHhRNbf/Q==; 31:xaF5mH+DfQ5+FZ+kOH7ReK0eISeDXNjd1D0DjFH8TQ6FmpaQF3jgcgAXFFb25/Yzx48tV1KyuV1P7JxS3JjiUvH20u0MlFQt1wDmP1HOuQGIUgO90vUdR9uxROxxc4d50LR62UWD5ds/efL51Hz3iRrEUn13Hxe4xZ+Eq3MitHzAiJncaBWMzQImpo7PjWfPWM602F94sPgn0q9YGuGwtCNR9f9PaDH5ULBK3domq4E= X-MS-TrafficTypeDiagnostic: AM5PR0501MB2001: X-Microsoft-Exchange-Diagnostics: 1; AM5PR0501MB2001; 20:6hOJRGXZbx2Vgwa4Q+KoQxASkXaJhVFiaF8EG8uQ1LaDPXhkN9vut6HTaYnlbN2aR7lbNV22RBSJk5yBp74MhKvLpWJY1bpDF/pgshaweL4oKJP8hTquIbOFUiBrJOSyedX8Cd2+h7q2rG2br2l6WGQiaB2gCIQG3VuS3q/yuTQs7KDaZ0O6CtuAbnFJgXDk7tuJ1kbWGVysmCrAr2NiAWzjWWX21IeGnrJm7XcAJHDp+qeriFADYUdzXlaK0qaR6P3YuURCNY2jcAzbFzeI+esYsREvnc7PoPNRp/MiuDYMUBkEA6y/vvvsPXTCnsKrMdPY645Qgd+Rl3Q0DZ9syDBexrPqAYnza8407iVLA+HWRM2cW2LKPAaEnjpqw8TVmSbxk64Y3UIuVU89lBnaqK/IWuNrpTrai4/DsKxH3dnVtg0JnHo4kdgauqmnc9zqtbaRZ23Zb4+eVTCbjGuvBUo1qSBUUCLt0a9Hm1Kz+y4nMrBrlZlBLwL6Mvj5nyNc; 4:iXjnc/78ZDEDmdEkVtDnKBuh93jfDlN88r0sst/e6tf/Zsdtgdxf5ANYFUgdCSUGqcjty4f0lnkhmr22qsTjfVPfWNb2y+uy02AMZjVaDeAvFX4XlTjRAf+Emq4bPDhZngcbVMtoqEDkZKTjKdI0qN+87e3KMeywvI7zQQQysdBQYpJjycbXapMMrqfw0HPoYhJJHbZ2LM49pvd704CWXEarVv8fkBtNCGHHo9Kwr3+y4qbtS7QJjWyozEPH0wgGbWzEOwgFGa9n8czkk3E+QA== X-Microsoft-Antispam-PRVS: 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)(6116002)(3846002)(16526018)(16586007)(8676002)(5660300001)(47776003)(15650500001)(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:66+kdkeUAhXJ3ZEpltWICVq2Rytf6uTHC/hNBGQrYSxVSxjipIa3fIdqzQ1CKB2ew0/zgS7F87z9/wSE3TyHRRU2NMCyClGyMFCVO0TE0PfL0VTjP8ITukcrc3t/O3zNccYynJXhUZ8wi23EOaIyMzOADhpW8lDBapVVMCPbl/OzAq/25XpNbUz10eYEiA+I1z63WhuFjTtw114uMU+kIKfxRtkj1iC0L3NbVnvw3oFdOoAs2Wgokw7RvYfpk6K2yMrMLpxTsaf5grjTNNIlXZJFf+3H0fH4VlwY33yD/c1uFdq2iIKQqtTbdjfWN7znkl3Tob5L6fMLur+xGxa2qiEGNUOFdRKGX870O/GB5CtrmyUODX9990KFA3qd1RRbhG/RfbkM4/dgal3dgmAqRuI6qeGJOTWRDixi4NcqApy1pFhJW/rSUcCCA2ZTAE9y04sS3mDz4GvVzcHNVHyBUu2HXbGMW2WQ0Z7ygc2PG/pmtwAwstfpFW8FYkN1mPLDhoS1PKB9PhNTL3TtgNT24AowL/QC/jAUNUFqQvoh7l5UPCyfO0iOb+WBRm52xobZksrcGAIgGW/1ZpuxP0r+7qG+F79iFDVNOckGyXrPxx7SOKaGecfsftjVuvaV1NyFOfxzBD3xDsmOQRsYgt2nKkLaPBAHNwJKDlorB3gI2ZiVOwfcttH4jPv/rIac0JcCirQpxvlWezfo+oKlRiQ1CLKJKAc77eH28BbbkZS9fYYBVboKESnVCTg8a0DpjlwKelMYMrKYMTCcRuOE5/OGj2kLkiogK/YILimX1srlF9ZmZWpyYczCEEE8stH4XXObLyNJWFTeYn9d5M4BMUoPUpfR6ffnil97zm8V3GGRfM69EvdmfAfMNqrbr8QldLV4G+OXTO59X4tf4SGqvVZw1Psc70vPTrosL5gszbh4ARjlL/P6hnMXI5LmgA/3yr7QjC5YVyRUfiZFOCmMCPnh4SnyJhO2fZyluJgifQFD1/ItkFzs5PBWVjzZ0eCFeft6VgMM0t1N3fg0SQQnl7sVpSCR4OCvZMzeCjEn86sR5im4G1+4L7Rov6RGM/3cbL14m12kjbYuac6agKQ8C4ZvqdMjQ1kCtNAraLQb5TeIAWRZzO+vickON2sDOwua0cPB86FcoIm2mMv1EHS/YnFOBf4iKd2X+FTTW1Cf4YIOtvPx5rEW/cc7Mh5yegRHiLSFpSgSsDNHz0vula9f72ndCfafFD3IO7HY315LgbqF6hBKknusXQou4G3CgodUqY3k X-Microsoft-Exchange-Diagnostics: 1; AM5PR0501MB2001; 6:abDEECjdZadstIRNAgmESeqzhoAtdkDYi6wP5PV7evjCULOblSwG4w0ve2CnWK5Ub3VlnnKVJPLOACVaUPmgmlRqyCH1Cb7PO/PfvXkeFgduYZKHXmzAC+FXWCO6fiGHND6ssF/YFSrtQdR85v7hU06ovK3TL+/g1bu3VO/xQecneF8JwU1P6tGIWWLkQHyUWDLPKRcoKjcj9vTzHLIY8W5yPIkFsAIZ4hIhXlzGrjAXZJ9qEW5V+rX0kO+ADnjNlI/8PQGQGMosdXDiqjLpQTNPZTgEauqCyzKlS5nCgUjSVi6i5nMdfTPglRN3/dP4UbY0+wniNbwHUhrd/+5StjF6bAFM7jAYeMblIMh7tYY=; 5:jukx8wEhnZbkDMgqrKly5jIfHqirHpSPmwPpkeY/IpO6AnAhprF4dtWGySG8orUIuDZVmaNcVZZ9cfT6tYzGZS5KYLaMMUZ0A9fVgK1/LchCuB+HAoR/TEb90FGw/u5CrFddJ6+4w9fCya3QDTHx5Esi/6q+dy+hdcdP65gk9fg=; 24:BpQ3pO+rmDQipdV4Ymd6GocKIJ/11JtRp9kua31vjOBe/JR+EDwGG0w1/3SEBMTyG8ebn5nqq6Mo8RBARy24ifIjmRAT8Tk24q9bWExscuE=; 7:9foGNU5p3ISi31g0DSNcjr/1dFqlG7ivlGlPw5fytjMavS8FWTnv4B14vUpdzZSPMzlrAiUAtas0ipnhCSUMfgZasdsWYGGkvC+2svzAgaD+OLaGysMKiZzOeLfDj9ToKrUjy5XxdiFc8eDyDoBWQdQTbv8dEafOmt2bu1elWfPVj5oF+AYLLOlrAW2TTlJ0RJsxzrvgYJXHujStVCkQDwIAd/3fAu/6Wd1P9bOuUJs08/ZCP6YEZuJrs2bUELXL SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Dec 2017 16:16:36.9813 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 91087f58-aa69-4809-2128-08d55069de65 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: X-Mailing-List: netdev@vger.kernel.org The next patch is going to allow dead routes to remain in the FIB tree in certain situations. When this happens we need to be sure to bump the sernum of the nodes where these are stored so that potential copies cached in sockets are invalidated. The function that performs this update assumes the table lock is not taken when it is invoked, but that will not be the case when it is invoked by the tree walker. Have the function assume the lock is taken and make the single caller take the lock itself. Signed-off-by: Ido Schimmel --- net/ipv6/ip6_fib.c | 5 +---- net/ipv6/route.c | 2 ++ 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/net/ipv6/ip6_fib.c b/net/ipv6/ip6_fib.c index c1bbe7bf9fdd..edda5ad3b405 100644 --- a/net/ipv6/ip6_fib.c +++ b/net/ipv6/ip6_fib.c @@ -107,16 +107,13 @@ enum { void fib6_update_sernum(struct rt6_info *rt) { - struct fib6_table *table = rt->rt6i_table; struct net *net = dev_net(rt->dst.dev); struct fib6_node *fn; - spin_lock_bh(&table->tb6_lock); fn = rcu_dereference_protected(rt->rt6i_node, - lockdep_is_held(&table->tb6_lock)); + lockdep_is_held(&rt->rt6i_table->tb6_lock)); if (fn) fn->fn_sernum = fib6_new_sernum(net); - spin_unlock_bh(&table->tb6_lock); } /* diff --git a/net/ipv6/route.c b/net/ipv6/route.c index cf895989f2bb..ab95e07b5e74 100644 --- a/net/ipv6/route.c +++ b/net/ipv6/route.c @@ -1353,7 +1353,9 @@ static int rt6_insert_exception(struct rt6_info *nrt, /* Update fn->fn_sernum to invalidate all cached dst */ if (!err) { + spin_lock_bh(&ort->rt6i_table->tb6_lock); fib6_update_sernum(ort); + spin_unlock_bh(&ort->rt6i_table->tb6_lock); fib6_force_start_gc(net); } From patchwork Sun Dec 31 16:15:10 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ido Schimmel X-Patchwork-Id: 854234 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 (1024-bit key; unprotected) header.d=Mellanox.com header.i=@Mellanox.com header.b="aEyNmJiL"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3z8lpW06gZz9s8J for ; Mon, 1 Jan 2018 03:17:23 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751258AbdLaQRN (ORCPT ); Sun, 31 Dec 2017 11:17:13 -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 S1751183AbdLaQQq (ORCPT ); Sun, 31 Dec 2017 11:16:46 -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=om8jvLtWgiEL5qWAcmKiFQ853KSXkAiY6tWz72V9AXg=; b=aEyNmJiLMC2i+/OQfbhbQDLluInnDCwEzan6TgK9RPTDyQ8o12VrEPJGQK+JZHA2ypLE/eJgOdVAqBa0twxE3YuEVKfQX6xg7GPPGiMnM0YF/WUgOT8Izr+gTScGp5cZXuvDNOLH+VZD0xihL+HkmPBht1AzTen1wBjU9azbl0I= 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:37 +0000 From: Ido Schimmel To: netdev@vger.kernel.org Cc: davem@davemloft.net, dsahern@gmail.com, roopa@cumulusnetworks.com, nicolas.dichtel@6wind.com, mlxsw@mellanox.com, Ido Schimmel Subject: [RFC PATCH net-next 16/19] ipv6: Flush multipath routes when all siblings are dead Date: Sun, 31 Dec 2017 18:15:10 +0200 Message-Id: <20171231161513.25785-17-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 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: 3170877f-693e-4697-f23b-08d55069df36 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:a1H52+kp9zZhD1MyZdqihM4MKha06evjZK0eq+540vpppVJDaqd9QzxPTiEKGSdJ6yVZj4ks3CamHactR1MgB+sUcLNROQW59FpWOhHKQqi48/GWB4LFAhh6wsTbZV2ouvmybvDmY9ruxX66FWX9S8pl4HVf7Igr1GkRSYbljs3JjmWNUpeZt8b5UdFFqxMg572rG9H4pSPwf2qP1wNxdi6ub5AkpYCRgjuQ+qebYNskyfi5tnDkeuwrMxMjYl4z; 25:o64AYBTRJ+6aL2ciURf/NQakdc452kX6FHIhaa68ikGARU7w6SaK7jn2uTkelkJ6D3n9lp4eoX/aCYc8TJ1DC+iGr/+NbJQvXcfZii0kNwB9bNtDWYvszjpsX1oYNIVuaxmHNgT6zvQVy0+HjOO3p05740R1/7tgoKKvdVVri5yqS1DU+QOmvN6y36FAG8mW2/1p+Ibfct+X81hw1zrILXYsgcnvebC87n78cAeX6mCmHem/wBE0hpI0SaJyUD3O0AXCItZrBfOlDLg8AekAqasE5IJnLtwxX/nvZRDa+njwM6miCjmp/XHX4puoSgCy6AIRPTEtekTwi1jy5GLoYA==; 31:WyuVx7cJLEHfaON3ILgjSNQj4ptHcaiaf71HyReCBhxeVZBOIro9FQSkk6PSkOgwj7kIBxa39W7+bQTxaYZGR1Ny/W7swHmWyKg3FWcKisXk3WflTqt9VA9iciZgY+WFn4DHZNBudQjS7fsh/tGGXEXG7uPh1SBaLcwfNQybBmvMigx9O4G/V/v6vj7OwWojWZ6ezCmpG7C1qFOrd6v8+r/w3SaV9d09oQQ9ettQ24s= X-MS-TrafficTypeDiagnostic: AM5PR0501MB2001: X-Microsoft-Exchange-Diagnostics: 1; AM5PR0501MB2001; 20:StC3VLY4c0jn6qk+DBy0mcpAjKRHuIkU7a7IXLC0O3zfacah2moDGxugntSassD4w/rYJ/M7rfK9fR3xHYrm7f2ry0H6YHypkD8/X/+1X/4A2g6pLLNHFaH2wnQgMNFcHlPz8Qnqm/10WyRbp6CLRYMgDDFHfrWw0852+CAyCGkB43z5mQcDKbJlp1DrXZiz3k7zd22XaPb2tOPOOPy6jyQ2TH0++X2toMad6WM0j376L/HTBbStUU98qHCatfdSZ/FSZVI1x1BWXJOWVTyDoemyZYmGO9A7hXm+zESZHj/SEWwv9QtbJSrII2gihvPY7DDjFyYKwkgtByAz4xzN87iqC2YUqfjIhAClX2sQaNc4J4DiyP+cdixCSwhCxY4y6o2TcMmrmSG8uSxbITLVupmsc2i02ARDZqalnXJ2GatSwiUPR3ippKe84JjC/HE2lD+ww4BBnN3Ur5Vu7lJ3LIbFvhlGdS+Seoe7vuT6FsYwlt0jKH2RO19BWECzJL9s; 4:mXBk04YJFnomGaC/MkMN57jyaZ8xJoEIrz1kM20tI/62Y4ZuJXF1RAjJJAhHiPrXggPtrn+87Dov6ViyVj7pYo88yUjFzDVDRf81szVBaxkvzJVwPbPLeWoQ1pLyWBJ9Ef9CkIzVJYpOS2V9YKOFG8qBFJLRnrcfCUnqOeouzVGkrtdM/P7qkj2k8IhfxtydqXTZzuUqaPrACXl/2qAHkS4s5RbknngHCSGU98LQz9Bwx/qwUELo5xQ8IKky/neWife31V3GsAKA6XZVCSJkbQ== X-Microsoft-Antispam-PRVS: 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)(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:rvYD6wDLrMKoYOmK+OdXx1MqVwHolk8t7j2pX2eoviAenV3D0dLxa3KOz/drLQsrelNwluOe+lSKvusvkRJFvkxW0mttUnGCPO2ThJP5PjA5hD2SHr7reDGCHVB0az4AN0MPVFEWXsE3jZv0/w+IV6VFeiMrUSOfICFyf16gtkOkHPQ0tTQrQnnZ8kduRFe3vjiUyGMq+f7jd3CkVItLL9dw4CvOda/gNgqul0QRC3joTHqNTP4JJdAq0xHc78DWhAmcz3oYJyxy3efkge3YjJYaHvtUP2ff20NOuFTzfguVZGNlb9k/0ZhhFqmycQIKfEjNzXNI4ROvmOmq++GRQGPkPnErjeb4VnbYrZw/NvKEklW9i29l0zKLZS8G25zf45ieZTlCBFLv4mbCIkoY67Qy0LSPGVEDUk7ckc6lRIdun2AyFBB9Hb9NdJ0I9y/gIww/LRgSbiTOduWPtgrTnQnDQmsvuaQBPAAnMRKXREmyHO3Y0XDgmrMsDRNB1TTNyhBGW33qMZyYqWhy6xJijb+mYHG4bwZKyDvF9+1y4v2WaUgM0vEe2p23xOpzC57NgHM3X1qwDBJHMcM6eQh04Ebbh09vWLf3kExd0cxp0vT0L34zHwlaCm7bsPKXQ75Pk2kHEJp7VKn92iW6skb8QNpCsx6VzOyE1wSduEwjaZHUXl84WLF7rNbbURxEmS3s3pbGRsVDMX1LCQKxGtQ7v8eLCNvF32eZno3/xKGDKW9s6Ik6AoFsyDM8NbtF8vdF0sdmj2D74xxfrt/gHyuKJIZqowVqm77m8vvm/CpwYF/TaM6BJha92BipSWc2ff0t8O3q7XwkFyps2E/31zXf79l30LELjxfOkeontwFXOOwsBkBDY3HKM2NsfUGfv3zfmVLXXNOvA1G17E32705EMoU7PVK0gpCqNTmoEVX1CDlJ8phEn0dzsJdKU8LFmIvAQPjROHcasGo4wsBGHkN4f+qzJsGyqc0JfzU3auXurDrfk+Wr62GiB3zDlZSsIY2cWqvzyerW+FKuAHGXNQkw643RZiEsTaaNdT7wwfofJIoeLDJhAk5NM9DN1g3S4QeTmnVcQ7mwQA/nYWeJlNHcNNg3HnXg0vE3+hry7prX2nLcvy07SgHFJ/KNKigZNxy7/NeziecRkIYgw1f2/0mNXIVDSFUKhAN4daDaBtDo7hHNftLZym5V6yQQ45tE7ABp9QnKlkOHJdYadeOMzAbZNAQPNdk4UkvRhrGyOjAY1p8= X-Microsoft-Exchange-Diagnostics: 1; AM5PR0501MB2001; 6:pjcv4p0zP5if2k3ttT0lXzaK0hCucbfBM9YpWhuIEvc+Bq7lf5N7h0N0to27zO2mwACdOcsj7IcOr7JZRK3v/suKl5uV6qxni/Yd4YNyagNS72t7isZ8apuZJsRd39nBRX28p8ptvrXwu4Uu1K4GsRuiJarkb0Nutr0XOCjkehfx2G48JZUAqwZOfKyE2AXqYMEt7kAExGDR50fupeFVyj5I8NcMf88Fy0GUR77q2E8UQrEZor6gH79dpoKkq5yuCI4sSRkIfwjPCT/R7HkTaLjSTxYIJpGhVo6RhsPu0acyCOGmc751XMAYS6/M7Q8+8U5JjVy/CMVpg8+9N/PdBaTHqTrBbXZU5SvXWYYlW3Q=; 5:P2DjYlaF/75YH1WPsBnfkNMQI2Zpk0Gh/9jsPwZ9u4BDHxum5H0rw2X8hK65fkAV0ctVParqe7cABMIJccSKMbvs5d0Z3UnFL1aXBCIpavZrMn9CSVANUxTAsvLat3He0ZQwfBH9NE78Q+qxnWw8nDEocJkO7DtgvimY2HK/PE0=; 24:rCF6NY63O94g+1Wt7oDd798vmuAwobev2DtAk7S3UCOW/vvnk4LCGgV4G21asFuyfVLTFI3TKVXynS1fDP2r+/S5M8IH55YMI7LSbaHAhS0=; 7:xoFbsWG5eqhwm3PBE+Oke6yukVkLfQDYxDU8vvwM7xHv2TBIEO41dbsMf/qIV5Hz31ujMZ6HoM9eQWgYcd6JIdk/GGWlyKWlNrGgECdJBeSGTmpeu/nxdTpRJ4LKkDlGzUYrbu05banFl20qJRu2ZZOtP9TJBCjSzfpxz29gBpO4zVtopK9kDpTbo6cO50b4oqfqRWFJQ1qMQEMTbi6Q3vomMJwbNzukqEvw4A5ntVkHAyrOjozjg74P6ecFyqt5 SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Dec 2017 16:16:37.9813 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 3170877f-693e-4697-f23b-08d55069df36 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: X-Mailing-List: netdev@vger.kernel.org By default, IPv6 deletes nexthops from a multipath route when the nexthop device is put administratively down. This differs from IPv4 where the nexthops are kept, but marked with the RTNH_F_DEAD flag. A multipath route is flushed when all of its nexthops become dead. Align IPv6 with IPv4 and have it conform to the same guidelines. In case the multipath route needs to be flushed, its siblings are flushed one by one. Otherwise, the nexthops are marked with the appropriate flags and the tree walker is instructed to skip all the siblings. As explained in previous patches, care is taken to update the sernum of the affected tree nodes, so as to prevent the use of wrong dst entries. Signed-off-by: Ido Schimmel --- net/ipv6/route.c | 53 ++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 46 insertions(+), 7 deletions(-) diff --git a/net/ipv6/route.c b/net/ipv6/route.c index ab95e07b5e74..9b142eb83f3c 100644 --- a/net/ipv6/route.c +++ b/net/ipv6/route.c @@ -3486,8 +3486,10 @@ static int fib6_ifup(struct rt6_info *rt, void *p_arg) const struct arg_netdev_event *arg = p_arg; const struct net *net = dev_net(arg->dev); - if (rt != net->ipv6.ip6_null_entry && rt->dst.dev == arg->dev) + if (rt != net->ipv6.ip6_null_entry && rt->dst.dev == arg->dev) { rt->rt6i_nh_flags &= ~arg->nh_flags; + fib6_update_sernum_upto_root(dev_net(rt->dst.dev), rt); + } return 0; } @@ -3528,6 +3530,35 @@ static void rt6_multipath_flush(struct rt6_info *rt) iter->should_flush = 1; } +static unsigned int rt6_multipath_dead_count(const struct rt6_info *rt, + const struct net_device *down_dev) +{ + struct rt6_info *iter; + unsigned int dead = 0; + + if (rt->dst.dev == down_dev || rt->rt6i_nh_flags & RTNH_F_DEAD) + dead++; + list_for_each_entry(iter, &rt->rt6i_siblings, rt6i_siblings) + if (iter->dst.dev == down_dev || + iter->rt6i_nh_flags & RTNH_F_DEAD) + dead++; + + return dead; +} + +static void rt6_multipath_nh_flags_set(struct rt6_info *rt, + const struct net_device *dev, + unsigned int nh_flags) +{ + struct rt6_info *iter; + + if (rt->dst.dev == dev) + rt->rt6i_nh_flags |= nh_flags; + list_for_each_entry(iter, &rt->rt6i_siblings, rt6i_siblings) + if (iter->dst.dev == dev) + iter->rt6i_nh_flags |= nh_flags; +} + /* called with write lock held for table with rt */ static int fib6_ifdown(struct rt6_info *rt, void *p_arg) { @@ -3550,13 +3581,21 @@ static int fib6_ifdown(struct rt6_info *rt, void *p_arg) } return -2; case NETDEV_DOWN: - if (rt->dst.dev != dev) - break; - if (rt->rt6i_nsiblings == 0 || - !rt->rt6i_idev->cnf.ignore_routes_with_linkdown) + if (rt->should_flush) return -1; - rt->rt6i_nh_flags |= (RTNH_F_DEAD | RTNH_F_LINKDOWN); - break; + if (!rt->rt6i_nsiblings) + return rt->dst.dev == dev ? -1 : 0; + if (rt6_multipath_uses_dev(rt, dev)) { + if (rt->rt6i_nsiblings + 1 == + rt6_multipath_dead_count(rt, dev)) { + rt6_multipath_flush(rt); + return -1; + } + rt6_multipath_nh_flags_set(rt, dev, RTNH_F_DEAD | + RTNH_F_LINKDOWN); + fib6_update_sernum(rt); + } + return -2; case NETDEV_CHANGE: if (rt->dst.dev != dev || rt->rt6i_flags & (RTF_LOCAL | RTF_ANYCAST)) From patchwork Sun Dec 31 16:15:11 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ido Schimmel X-Patchwork-Id: 854231 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 (1024-bit key; unprotected) header.d=Mellanox.com header.i=@Mellanox.com header.b="Y0YtFdfO"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3z8lp61rJMz9s84 for ; Mon, 1 Jan 2018 03:17:02 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751221AbdLaQQ6 (ORCPT ); Sun, 31 Dec 2017 11:16:58 -0500 Received: from mail-eopbgr30047.outbound.protection.outlook.com ([40.107.3.47]:24032 "EHLO EUR03-AM5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751087AbdLaQQx (ORCPT ); Sun, 31 Dec 2017 11:16:53 -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=n0iSCbPRxWDh5QUrwirkHg7xDZ14hH6pGdTvvIPUxWo=; b=Y0YtFdfOKsYHkqewOPKbJGy0PG4IfAQstJ7pPMgiUOp99rB5lchxIkoI7Vy2VlWZak2MQsopZHTUEsw8DqMSFRBPp6Y/bXPeMYIL5vDIzwOX+8u485jTn8LOfdNrjQgqHTF9zcTwajI8QzE1+fiMyu37HLBXQOwe0vJLAg4E9lA= 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:39 +0000 From: Ido Schimmel To: netdev@vger.kernel.org Cc: davem@davemloft.net, dsahern@gmail.com, roopa@cumulusnetworks.com, nicolas.dichtel@6wind.com, mlxsw@mellanox.com, Ido Schimmel Subject: [RFC PATCH net-next 17/19] selftests: fib_tests: Add test cases for IPv4/IPv6 FIB Date: Sun, 31 Dec 2017 18:15:11 +0200 Message-Id: <20171231161513.25785-18-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 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: 386e7ff9-2c12-4bbe-fb27-08d55069e060 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:5OyfNeFbv0cJpl9oZ7MGnMdLDXhvAqI8nhGtJI+E9xgtJoK7C+Vro3Txe85B02O3hx0AdwBgViCPlHwFygESlhd1gP57cznUCkhl89QVKK53teLXUYFBk+nCY3GmAJbtSLj8CTJ4LVqEU9xssTLv3Vjf1HmD2Xqi/lU6wi7IfgLCL/LzMs/4sevAoTLx2ZxRLqwioUFSwB3wa5wvMvuCSVpQPVjqtSjg3lNhMILrrIHZADsJbXhy9dcWVKCm92ta; 25:Y/nNkiTE1ovksDjGd2bnNDaQfSEgIePb0mWL2l8oOVLDeWXUWxWZLx9EL/YTMGJLu27EiXMemwH1DSyZPpf4OoJq5H4muhovVzKfG+RnsIP6bgyIANYKi06uRhNzAEjjeP7LOVBSxFoDvR0XGONUsxzezABwKw4zgdRLolYZKXRSXoL31GPnIXPj0phZLGzwOjjDaPO5TfjTB1CaSMFUPGHJQM8ovkWRP7jH1l9vFI2SHeiif5nDEl23QQsayoQvji9pg4RgyYovbNvnC3H7KY8vEL/k5I5rEFdlK17YlTZKmm+6QTOzLzB3IS4wxAWM7FaarbsUdlBCzx+bVMJTFg==; 31:bBcNY8QdehjM9ibx/1NkplqYjV5MN8UTodHgnaz8zfP9WjLAFBAJozY0jWqDSwNeZyJzNem/a9UGqZEwK8HzpEesiC2Z+3XyQEbVZUID2WpLKCH7hp2l1MHd4aYBIlkf1ZbuP/4isIHn6tsOt9taOXHtqM3R2TveafAUZMQuDYsAQLrvLdsjAZSFuZobovGWfBMwiAhg1f/bJfU0DiWTmkDEScu0l5HSok+7DKJM7Qo= X-MS-TrafficTypeDiagnostic: AM5PR0501MB2001: X-Microsoft-Exchange-Diagnostics: 1; AM5PR0501MB2001; 20:dnnXwdlZmR5eMS4K3lg0fPSt8sbCbDaIRNGatdqdO0cNmhtnQne9Q2gOSxLYVguECJVztrza9nh3YagkYGUrt1Fi9ZjZC567BdYD3x4XusXaVBtjVCuDWNdKdFayLPsDiwKvOgR0v2uGzB0UuuPGGuamhtdcaxFIsy1nc7yrzUPXxV+8oKakqeTWERgRcfI6n7BkgRhV0MQIFU+AkENnrCZ76tJ90if9Tm+qkWjgWaPxMVW/20edBCFQbctj9DM/olIXwnZz2RmtXuK2pNZbDhKYidwaYF2y/w806s2IcU2CGHlhGaxCTHSkngK87E6d+yzNaaqjS9+FGE/dDMvrKI7Xagruna9lxOB24QG6ekAG7j5I3NvlOwqDLPHP5cLLb2ljOUvxpWYid6tGFDwwVCBGLrpF6ZHxOelwCa4mJEtBW1VC6BweYWaZnmhvM5CuXhlkqaTemiAANi8hApGvGZdeNAXS9kJONtmofxO2bLQYnyZy3ZfFjnT/2Hjdlz4j; 4:0V1XUPJCcfZm2GiRnx47K4s4y1i8vU5ukeOlFCGfxDkYbPj0vCN2/pnmPG+UIw3l9pmvTppfk0rQkaiQ0jenjfO8ZacwBV3Bj/FVvg9bIqeBrJKhFfUvy9utjmT8fT2M7CpSOjRHixEevtBNwz3o1CskajDmHNNTbCvK3cu5yZFIHzyXokPIEKRXVb6HXaY5NT3dj+lvAmvlZ0u51ggoqfdCZpHsltEhU7fWSQbvHOiS88TTD7PgDFnfbHUs31IGRygGSPE8t1gRWDf5NXtudw== X-Microsoft-Antispam-PRVS: 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)(6116002)(3846002)(16526018)(16586007)(8676002)(5660300001)(47776003)(66066001)(25786009)(6916009)(2361001)(39060400002)(68736007)(105586002)(6666003)(36756003)(51416003)(97736004)(48376002)(8936002)(4326008)(52116002)(2351001)(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:UpIYxR54D+g4TFZ4NpiERP5r7XS9/qg1DzxEAmvhwvb1binC821KDkCkveuCDvQKLVylue7QOliUDLbfvoSFBOWVohf5LDXa+PoGwrQ+3XsTCrYwZVYD4/Sls+Xa0+5RBxMJOHhkfqctOyEs+cMn1ueNPb7JFWsu9U02ESC3wWcPrWQrrEIJAxtKJ9czV/1qA8Q75YX64UkWmrcpmiznuvmk0NRzCxnbwUWY87WFC8yYBjfxSdrvbVRc8rNQpzPuYGD3Iz3F7f2OUqv/f7bW1U6pxOEg/vbvIKRGq/elvcAfkboMYfEGqvCjVAL2VO7ugvpMYzL2HYpovAy68dg+vHx/4K5iCd+yZS2FSTUkS4J5e/ur9AVi3XqinLokV12UIgozTWqjCJvqHEph4XPrMgN9x3VkV3TQGhLj2F0AeqjTgrUNa9MzMfv2YdEG/UP2MsZYgkFfWBVkjIhHDPzHj7xNB0E9lnvxYEjbLypLNCZLr0F0sbOfdLHFsqKC4kST+x6rVLcFJ6+kAllQmEV585y5a3l6GWF7B5H1ZpOZp9CsEgLdjBWnX5SXXrvRtHyNFUirl3OKWWmQ5dR+hVILfGRyzXVmZiHsQoRB7B3MiBjlVzn6zDxaywM2l9OCEo4OGIoDP6V5GkbDXWUHERsOpujuu9N0MgmMBm4rGKE0TxcI5cH9CHvFwe8kQCW5QPpe+dR5vw5GO1NY8jZaNi4DxqK9Nut1Ui8r7NGY39lkYbgYS1ej8rc60UZLFu6zYdT0Pvkq0fsyzhDp8CdYWN7skyF3CxAxgBT2eFn7EqxOUyd57cQTWS0UvWKckeLXTY9XldRH3e5Mi156nXamolby6RojHA7GkLVsrSKYI/5oqssrjH5qHeJ/LxPpaKS+xb2rCexVKQZcvRGdJSmTci4EZya5Rk8ZWWj+LEPVqx8jRPuFcRoY85lCqizoKrXQ86ng5Ua0m27r0VYtNtchlSrUXAFzzwvOJzYUsluz4ggWcjMVt9g5suFb+4OOPeDuy9l5bR0t3RQGnl5KnArjv9tcOP1C8Y4WFIdlc8PQp4zMFBVpD3FIiJYrCsIWUJU5uXS/Gliv8HkjGubfweR4tWtktgoxP7EP+alsS7C7sA+nzkiTiK6LcoabLyUrbHV81BMjj6ZDig6ZDv/qrN1zWmc43+xopcRgeqrnM+CO/2aRmGRZ/4Qpdyw2tnKUeYBEkEn4xUbnpiCmwJeLckiQNQRwXw== X-Microsoft-Exchange-Diagnostics: 1; AM5PR0501MB2001; 6:GHhXTeR0vRQtoCLqzCJssOl0p9VkkK8AJzHBPiq54imKC9ErjAPfHQ/4vzqFT4WTsTTGqI9zx6sdHBL7pSYmec/SYRDxHyQtHulhhRSpIf1Yngd8eaz7tFGY1YTFQNR0ofgWFZ0mFelZckIhxnLeVo2yGa28oeOEo6xPxEEMDAeD/bx+EAIRvs0ojVZXHM/6gB+pCcaEQbUbQ3NYfMj1pbYcygjzpjPBFa9D65giwpJ5W11gW4IC2snqcbn7UXhFrvR38lK87nym9z6JA9ErL0uUJCH1mu5nDno9lbc2P8MROvknOWc4j8luIJhGAcAvU4qWjIkU5nV6oynjicGy+LD7QTV2oh5U1Z9ADtILSH0=; 5:bsYq52EQBciMtrJO7I0dcHtHmWp5IVon24m68l56GmXkuLYXMbHXwxYv9n+wza5yLlSnfJdNRBPr4dtu8oItS4U1wZNq1FEF2Rien8HEs20dXT0xPsHVlWT7ZVcgFYy470+/w+rNGWg3cVPCwXgDfx46zO1iVm0cftD3eFZDo8w=; 24:9Xy7IXRcm+u6LAndJVW3FCp1e8eKpo95Ebj9cj9YzRU0vjnVoTVc7lKwLlz5rRa6olqPn/PWxoIMWzSNPkc5apmHP/k8hmL5XJsY+8Dz+QI=; 7:sxbPuPcnUzJkDcVsXzfuo6B6RtFMoHlVS4W9hBNN2SkLpaoXoDfpTu9JVGxQJnXp/q+nkpKwulUCexMjJYoh7Gwrzgo89HsukrFaoXlUuE/bY+G3O0B2d58fDmQs0h+OE+G1qgaX/deqb/SmQxgrKdwz1xcYcmpCecUjmjkTHKYuidUH/6E580WIgelkLtcDKwGjqU7D6Y00kLh98lmW71oZ1MYJthoVSI86guSQcuZJH2BS01M8ulOGfMVWXDGq SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Dec 2017 16:16:39.4970 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 386e7ff9-2c12-4bbe-fb27-08d55069e060 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: X-Mailing-List: netdev@vger.kernel.org Add test cases to check that IPv4 and IPv6 react the same when a netdev is being unregistered. Signed-off-by: Ido Schimmel --- tools/testing/selftests/net/Makefile | 1 + tools/testing/selftests/net/fib_tests.sh | 145 +++++++++++++++++++++++++++++++ 2 files changed, 146 insertions(+) create mode 100755 tools/testing/selftests/net/fib_tests.sh diff --git a/tools/testing/selftests/net/Makefile b/tools/testing/selftests/net/Makefile index 500c74db746c..d7c30d366935 100644 --- a/tools/testing/selftests/net/Makefile +++ b/tools/testing/selftests/net/Makefile @@ -5,6 +5,7 @@ CFLAGS = -Wall -Wl,--no-as-needed -O2 -g CFLAGS += -I../../../../usr/include/ TEST_PROGS := run_netsocktests run_afpackettests test_bpf.sh netdevice.sh rtnetlink.sh +TEST_PROGS += fib_tests.sh TEST_GEN_FILES = socket TEST_GEN_FILES += psock_fanout psock_tpacket msg_zerocopy TEST_GEN_PROGS = reuseport_bpf reuseport_bpf_cpu reuseport_bpf_numa diff --git a/tools/testing/selftests/net/fib_tests.sh b/tools/testing/selftests/net/fib_tests.sh new file mode 100755 index 000000000000..c517a599047b --- /dev/null +++ b/tools/testing/selftests/net/fib_tests.sh @@ -0,0 +1,145 @@ +#!/bin/bash +# SPDX-License-Identifier: GPL-2.0 + +# This test is for checking IPv4 and IPv6 FIB behavior in response to +# different events. + +ret=0 + +check_err() +{ + if [ $ret -eq 0 ]; then + ret=$1 + fi +} + +check_fail() +{ + if [ $1 -eq 0 ]; then + ret=1 + fi +} + +netns_create() +{ + local testns=$1 + + ip netns add $testns + ip netns exec $testns ip link set dev lo up +} + +fib_unreg_unicast_test() +{ + ret=0 + + netns_create "testns" + + ip netns exec testns ip link add dummy0 type dummy + ip netns exec testns ip link set dev dummy0 up + + ip netns exec testns ip address add 198.51.100.1/24 dev dummy0 + ip netns exec testns ip -6 address add 2001:db8:1::1/64 dev dummy0 + + ip netns exec testns ip route get fibmatch 198.51.100.2 &> /dev/null + check_err $? + ip netns exec testns ip -6 route get fibmatch 2001:db8:1::2 &> /dev/null + check_err $? + + ip netns exec testns ip link del dev dummy0 + check_err $? + + ip netns exec testns ip route get fibmatch 198.51.100.2 &> /dev/null + check_fail $? + ip netns exec testns ip -6 route get fibmatch 2001:db8:1::2 &> /dev/null + check_fail $? + + ip netns del testns + + if [ $ret -ne 0 ]; then + echo "FAIL: unicast route test" + return 1 + fi + echo "PASS: unicast route test" +} + +fib_unreg_multipath_test() +{ + ret=0 + + netns_create "testns" + + ip netns exec testns ip link add dummy0 type dummy + ip netns exec testns ip link set dev dummy0 up + + ip netns exec testns ip link add dummy1 type dummy + ip netns exec testns ip link set dev dummy1 up + + ip netns exec testns ip address add 198.51.100.1/24 dev dummy0 + ip netns exec testns ip -6 address add 2001:db8:1::1/64 dev dummy0 + + ip netns exec testns ip address add 192.0.2.1/24 dev dummy1 + ip netns exec testns ip -6 address add 2001:db8:2::1/64 dev dummy1 + + ip netns exec testns ip route add 203.0.113.0/24 \ + nexthop via 198.51.100.2 dev dummy0 \ + nexthop via 192.0.2.2 dev dummy1 + ip netns exec testns ip -6 route add 2001:db8:3::/64 \ + nexthop via 2001:db8:1::2 dev dummy0 \ + nexthop via 2001:db8:2::2 dev dummy1 + + ip netns exec testns ip route get fibmatch 203.0.113.1 &> /dev/null + check_err $? + ip netns exec testns ip -6 route get fibmatch 2001:db8:3::1 &> /dev/null + check_err $? + + ip netns exec testns ip link del dev dummy0 + check_err $? + + ip netns exec testns ip route get fibmatch 203.0.113.1 &> /dev/null + check_fail $? + ip netns exec testns ip -6 route get fibmatch 2001:db8:3::1 &> /dev/null + check_fail $? + + ip netns exec testns ip link del dev dummy1 + + ip netns del testns + + if [ $ret -ne 0 ]; then + echo "FAIL: multipath route test" + return 1 + fi + echo "PASS: multipath route test" +} + +fib_unreg_test() +{ + echo "Running netdev unregister tests" + + fib_unreg_unicast_test + fib_unreg_multipath_test +} + +fib_test() +{ + fib_unreg_test +} + +if [ "$(id -u)" -ne 0 ];then + echo "SKIP: Need root privileges" + exit 0 +fi + +if [ ! -x "$(command -v ip)" ]; then + echo "SKIP: Could not run test without ip tool" + exit 0 +fi + +ip route help 2>&1 | grep -q fibmatch +if [ $? -ne 0 ]; then + echo "SKIP: iproute2 too old, missing fibmatch" + exit 0 +fi + +fib_test + +exit $ret From patchwork Sun Dec 31 16:15:12 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ido Schimmel X-Patchwork-Id: 854230 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 (1024-bit key; unprotected) header.d=Mellanox.com header.i=@Mellanox.com header.b="sLC1QKB+"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3z8lp369mbz9s84 for ; Mon, 1 Jan 2018 03:16:59 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751213AbdLaQQ5 (ORCPT ); Sun, 31 Dec 2017 11:16:57 -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 S1751204AbdLaQQy (ORCPT ); Sun, 31 Dec 2017 11:16:54 -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=fNcJYAA0kAdXUMcL5/FE/UFwk3ZLBs48GFwTwa9kP/s=; b=sLC1QKB+QD3+fuossu3lI0rJ19emPfRWgs+kXh+ZdAj8SBzQVA/7Boz2Fx7MgI5Xdr18Dlw2s5Fn6oOw1kEI5LbsH5e59MPYOHakFxGtNvhwY5vckE5jkR8R7IPWjgRoB/zo8U6q25MBj4FEUqLHtQZ9dQkHr5v/pJbgjYV+Ufo= 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:41 +0000 From: Ido Schimmel To: netdev@vger.kernel.org Cc: davem@davemloft.net, dsahern@gmail.com, roopa@cumulusnetworks.com, nicolas.dichtel@6wind.com, mlxsw@mellanox.com, Ido Schimmel Subject: [RFC PATCH net-next 18/19] selftests: fib_tests: Add test cases for netdev down Date: Sun, 31 Dec 2017 18:15:12 +0200 Message-Id: <20171231161513.25785-19-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 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: ffdb0aa9-77fc-46f2-90f0-08d55069e137 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:ozDJJgErHK21lRnd2LfUDab9sPfRyqJor3Pq8GiOAP55kbYSenJnmhbaIgoHXu/FEYWZnzdx3kOG0UffkZbYnEqYLuC9rVcysmVFbi3mSFMYDlpFjpe4OJ5EhUwd4Mga49g4EeIJukIDIDFeHpiURr8ODYUfFKphtDGp7afuf0Cg7nYLuhS+JKRK+uq8qWwN7OnsuK6ab7kKFFqwe0+rt9srk3wNeSxqV5LkFULkLmaqMRHN+SJxJwvbx/TIs8+l; 25:5woukVivCnYJU/Tvr7FlPIOCASCfW+jRnGATHtnELOtBqXUC5rSp0aB6Jb/VNQbAGHmntt6c9IC9OyU/LFupWmMxfRxhX7/0mPAhZ1ueJS+SxQG+P0ab3IOCDFcIPGOIAhPoqRLGrIKUdr2OmrnJZzRHN8fsgVjhJzce9/ivelMX9sSctO15eQUE8cx38EohUmz/03GOPPO8VPjiTMUq18eFU0XGmZy69Y0whvTmw/UV1b5sXFGpnwG7XXrOjYPrNmNIKbBKk6JtFwUUsbZRHp0mENyvMK9TtMVW4srQfVZk4YPIqxgwCSH+geS9yTo4smEloN2ieg1i1XR0Ewiz0g==; 31:VdyjJQ6zfOaoNqFUWu2tPZ+/LN6AmWe7/jJV4xaPXslkBWg+uKdJlFwq5ei34K76DNXw3795sejfflM5aSBN9hkIXkOpbAMo6H45TBznUIZoX62sPSc5OmZHCNkM9gbz9aEq8p/XzF0t/Ke41M+/TaU996//Dqo1fs1tlhE8McqrLtr0t10cu3aHkPPFNXLfraLXebQ/5T374gj72HAQnYBUpTetNjkuWg1Wi1xTlME= X-MS-TrafficTypeDiagnostic: AM5PR0501MB2001: X-Microsoft-Exchange-Diagnostics: 1; AM5PR0501MB2001; 20:0/fuqJeJLZf4+Ac+mGI3DLIB/UL10TQkVcNesVr4gbam4UVBMdxSXRrLBPvze7X/lpURkahOKmzOGKMhfmsG7+KT+KEWmc/8ioUUZ1PisrJwB+0kJRhy5YgwZnI9MIhtCjyao8M6iiPRqrb/PDQBgH55httlOQ8QPJkuOjBMJvIlxgO2DeUyaur7XW1h4nPqw8XbeAXOQ4l2+Jk7iNikiCYTszP6lrhMJ8dzaunJlEFbC380MWzvfwh3EULPPLna3YPZ5mebKkK0vhnF46QWcDYwWpLgtML37WgMU7hB/MKt0jKaTZJtah6Kr71hCvLGiGVMnlav5gE/OKBF7BoTn4Xqb8IA+wwzOd5zEEF7bG4tq54LV81UOwFjxu/qehojxoqegcFm0nNky2m8e8m3RZsH+064lEDlFQqWXEL/fCqRNqZjrNfol5Vv/CLlTDYUzsn+Y+Z4LUcp8lVMxjIvRkae0X87/S55KApVNExhXlzyTlkhKY9wZcIA9tA2rM+w; 4:mRPqr6vj10RVKFMdrkhnp8n9UGO2fqbYRIG0d9wgaLipsRkcfZETmw4HKAXMeDupHiwyH0Yfnde7OVcSHE7TfMkXGCqA4mgNReoBejm+Otq47rwJ98yf3uaGAVhTzPpaM67IL9snTJ4Q0evmQhUH3M4U1nnWmuM6l5uUjo7dfrnm77kiiMdt+6wnoZKicLhZEfyrQJtP0rvmw2bBdgG0Hgb4nnoyoDQaGl3d4TWKnueTaLNFD0Fg/XVw5EqDOv5MxEeFowannPnjz+D+w4LZXQ== X-Microsoft-Antispam-PRVS: 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)(6116002)(3846002)(16526018)(16586007)(8676002)(5660300001)(47776003)(66066001)(25786009)(6916009)(2361001)(39060400002)(68736007)(105586002)(6666003)(36756003)(51416003)(97736004)(48376002)(8936002)(4326008)(52116002)(2351001)(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:xNAGC2mCgsvxeZwmNV1vAcPWnC1r7poXavXKfO9P0U8LRr7uC0dOenCTs5hU7CwaagffvjS7+DAd5VhxbGBoMrY1QUMZIkaOijDk4bG9iQeR+4LB6Ayy4EXjMtKXeF9Ht2YRiTYXp7tMT9B2PlS1PIO+FH46gGwJC7fFiCQBNxNe2PxxEuDDiw5Kyk3M80HgJnzcafh+uJra8/Sw/9iTOHwDbbzBKT+ZlfqiVG2G5q7GRZTSr0bJNosbxZ3TjMByLGGhvZXyNcgXKmg3fX8emGKePMg8QSzauBCULQ/g42lfo8Jil+P4H280JpNUV752JvbtRacJBZuT8mEKyH+HZvyhfSzTV02u1e8lcxRRzvs1MleL0reTegDKqKClYp6C0GrktihwHQVkPCjj0ouoRvglZWGHGKH5/MX7ezR0Qcw3OJUDeS0BueAY1qTOCuYX0W5Gl0wFZh4U1+QDYtlwC2MrPZjXFME319x0G+wDlV0sE6vFYGB2UP57FQrCErSxlH0v8PxKdor82u2K0dTEtV5EuzD9CKOzbk0XevUyJIU2BJ9Iw064mLTgbI4gcInElVD8CZb2zH4SKbEmd7I7JTzd29kTIobT/SSF2uTnQqnLcgl5ucwGMGKevOYwPPRCtz2tL49yZ4reTj1pvLNw/Mea14LSZQdCmHWGausXSERGB9v5dITocje2svl8QnBbiF0n6z/eGyeYPLhs0/EZc2Scgk617dzpDSsliZFYR1wD82wG9QhRLnxml1RUyWGAqu5AYPaVG8MenC0TscT+zf1FIwRbd0SHTHQ059KHSeHmKytErVowTTvDyIB0pM02zX1r4gdZoVA3VcABHj9frdUr83THP7F7NZ+hQn6WhgaoZs0bu8+K1rllw2l/wzWRzPk2ggxDGmFCv1tI9FgdtofjjGLGGh20aLyDT3Q05Uc2OXa32ABPNoOcHC/+SZ+0ypMqkMUsUp6ny4TTXk6FyREGHdV1I7BwaHydLdnid7FgfzS2rWEk8X/FOAfb4zA4bL4rjXL8mJ8Xa9pIK1EDEQC9Y6NfxfA2r2JyojEGeVxpn+E7Fv8HDxsKAcj+mDnvGQ8D/YZcgPCFUE+UHpWTOJKQmmS0OpxqXNC4oG7rMJuowssdemmCtuGxWfGKC4moDoz2saxu3NstH5ysezttiNM6SMZS3G4EqNwvA4adA2DQZHQt0L6YDrFxRkjhwXH6nUFCa9TnMCGuoa6QIAPQDw== X-Microsoft-Exchange-Diagnostics: 1; AM5PR0501MB2001; 6:ACdBI4IOkY+oK+4xszXsNyEsAp8h6g3DjyP6B3Eb1cI8sGovjU5UWeepoorMNw9JQr8C0T9GpT3/eTwzd03JHOBh5Xf7wJEp1Xv3i48GGbtTNWfdcafvzYDMj7rXfBvXWMhck3GU5c7rgYOqstKVeyOD5v+soCQx2xHDSOgqUe6ejO87hz4PdxM0O0tS9FmILMguqTrDne1cLRoHLhwiDf8pCvFht5GVimJIEZQwLacc+wBV9Qy9c+cyUoOQeMVKC1BC6mYr7n7LgC8IKIdIMfmkBysLu08TxnUR2zLswuTwv/bvdMAuDwuvA7+7SeYO2qgMjzqagl0NG+u0bAnlvrPBWCyvgeL/V4PLD5BPmlI=; 5:vTqKpNY2EkohG2H1Z/Xk4x1g292jHCAMRnVe83+C+397TQbS2zQ3QmnXvBnsMfXCIfpEexS85ShCOveQYGXvqOe4/ygeZusVLsM4QxUqzsNAE3uN3AOMGljB+KeUfAlq29A06I5UysV2YteF5/yfhI/amwY9odDEaUXZoSfR3JI=; 24:DMtrS6vt/tMKy2SfpgBT/C1oCHVXpsZcxVRrJyBdYWjyea4SGqzTKqPr8jjINW3ngT43EmSDhnezRvR+NR4xnCvSBdMr6o5Pze6F553jaU0=; 7:dwuXYRV/PPZVGc0BMFrqoyVNQS+2ql8vBfu+VUusS6LMWVSxfHPLujUSVCHb5QysJ+riVVhF88iNkDnyOl+vG8J0EA7KESlSh6Yc45bWiDo6NZ2tmSKo1VxkHCKw4kBVJm1JZH9IwSIXk2OghagbiMA1bDaxaqyjkbClAKsSlgoKbgNQKvkFi1PvrM5V175nlk5HUq4O5WvNje2/+uZm2svlwYY6x1aF7sOqtViutW0YYSx5Q8szxeYjRINhHtrB SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Dec 2017 16:16:41.3877 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ffdb0aa9-77fc-46f2-90f0-08d55069e137 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: X-Mailing-List: netdev@vger.kernel.org Check that IPv4 and IPv6 react the same when a netdev is being put administratively down. Signed-off-by: Ido Schimmel --- tools/testing/selftests/net/fib_tests.sh | 141 +++++++++++++++++++++++++++++++ 1 file changed, 141 insertions(+) diff --git a/tools/testing/selftests/net/fib_tests.sh b/tools/testing/selftests/net/fib_tests.sh index c517a599047b..b245bac956d1 100755 --- a/tools/testing/selftests/net/fib_tests.sh +++ b/tools/testing/selftests/net/fib_tests.sh @@ -119,9 +119,150 @@ fib_unreg_test() fib_unreg_multipath_test } +fib_down_unicast_test() +{ + ret=0 + + netns_create "testns" + + ip netns exec testns ip link add dummy0 type dummy + ip netns exec testns ip link set dev dummy0 up + + ip netns exec testns ip address add 198.51.100.1/24 dev dummy0 + ip netns exec testns ip -6 address add 2001:db8:1::1/64 dev dummy0 + + ip netns exec testns ip route get fibmatch 198.51.100.2 &> /dev/null + check_err $? + ip netns exec testns ip -6 route get fibmatch 2001:db8:1::2 &> /dev/null + check_err $? + + ip netns exec testns ip link set dev dummy0 down + check_err $? + + ip netns exec testns ip route get fibmatch 198.51.100.2 &> /dev/null + check_fail $? + ip netns exec testns ip -6 route get fibmatch 2001:db8:1::2 &> /dev/null + check_fail $? + + ip netns exec testns ip link del dev dummy0 + + ip netns del testns + + if [ $ret -ne 0 ]; then + echo "FAIL: unicast route test" + return 1 + fi + echo "PASS: unicast route test" +} + +fib_down_multipath_test_do() +{ + local down_dev=$1 + local up_dev=$2 + + ip netns exec testns ip route get fibmatch 203.0.113.1 \ + oif $down_dev &> /dev/null + check_fail $? + ip netns exec testns ip -6 route get fibmatch 2001:db8:3::1 \ + oif $down_dev &> /dev/null + check_fail $? + + ip netns exec testns ip route get fibmatch 203.0.113.1 \ + oif $up_dev &> /dev/null + check_err $? + ip netns exec testns ip -6 route get fibmatch 2001:db8:3::1 \ + oif $up_dev &> /dev/null + check_err $? + + ip netns exec testns ip route get fibmatch 203.0.113.1 | \ + grep $down_dev | grep -q "dead linkdown" + check_err $? + ip netns exec testns ip -6 route get fibmatch 2001:db8:3::1 | \ + grep $down_dev | grep -q "dead linkdown" + check_err $? + + ip netns exec testns ip route get fibmatch 203.0.113.1 | \ + grep $up_dev | grep -q "dead linkdown" + check_fail $? + ip netns exec testns ip -6 route get fibmatch 2001:db8:3::1 | \ + grep $up_dev | grep -q "dead linkdown" + check_fail $? +} + +fib_down_multipath_test() +{ + ret=0 + + netns_create "testns" + + ip netns exec testns ip link add dummy0 type dummy + ip netns exec testns ip link set dev dummy0 up + + ip netns exec testns ip link add dummy1 type dummy + ip netns exec testns ip link set dev dummy1 up + + ip netns exec testns ip address add 198.51.100.1/24 dev dummy0 + ip netns exec testns ip -6 address add 2001:db8:1::1/64 dev dummy0 + + ip netns exec testns ip address add 192.0.2.1/24 dev dummy1 + ip netns exec testns ip -6 address add 2001:db8:2::1/64 dev dummy1 + + ip netns exec testns ip route add 203.0.113.0/24 \ + nexthop via 198.51.100.2 dev dummy0 \ + nexthop via 192.0.2.2 dev dummy1 + ip netns exec testns ip -6 route add 2001:db8:3::/64 \ + nexthop via 2001:db8:1::2 dev dummy0 \ + nexthop via 2001:db8:2::2 dev dummy1 + + ip netns exec testns ip route get fibmatch 203.0.113.1 &> /dev/null + check_err $? + ip netns exec testns ip -6 route get fibmatch 2001:db8:3::1 &> /dev/null + check_err $? + + ip netns exec testns ip link set dev dummy0 down + check_err $? + + fib_down_multipath_test_do "dummy0" "dummy1" + + ip netns exec testns ip link set dev dummy0 up + check_err $? + ip netns exec testns ip link set dev dummy1 down + check_err $? + + fib_down_multipath_test_do "dummy1" "dummy0" + + ip netns exec testns ip link set dev dummy0 down + check_err $? + + ip netns exec testns ip route get fibmatch 203.0.113.1 &> /dev/null + check_fail $? + ip netns exec testns ip -6 route get fibmatch 2001:db8:3::1 &> /dev/null + check_fail $? + + ip netns exec testns ip link del dev dummy1 + ip netns exec testns ip link del dev dummy0 + + ip netns del testns + + if [ $ret -ne 0 ]; then + echo "FAIL: multipath route test" + return 1 + fi + echo "PASS: multipath route test" +} + +fib_down_test() +{ + echo "Running netdev down tests" + + fib_down_unicast_test + fib_down_multipath_test +} + fib_test() { fib_unreg_test + fib_down_test } if [ "$(id -u)" -ne 0 ];then From patchwork Sun Dec 31 16:15:13 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ido Schimmel X-Patchwork-Id: 854232 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 (1024-bit key; unprotected) header.d=Mellanox.com header.i=@Mellanox.com header.b="tTbg9SZ+"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3z8lp752Y3z9s84 for ; Mon, 1 Jan 2018 03:17:03 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751228AbdLaQRA (ORCPT ); Sun, 31 Dec 2017 11:17:00 -0500 Received: from mail-eopbgr30047.outbound.protection.outlook.com ([40.107.3.47]:24032 "EHLO EUR03-AM5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751205AbdLaQQ4 (ORCPT ); Sun, 31 Dec 2017 11:16:56 -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=nu9armOTd3uJWJl3gwh+36bUueT+GIsjeou37OwVNgo=; b=tTbg9SZ+XjKrvXssougW/TiBUci0DdIdg1SISltICuSlxbUy6s+HLPY0pBIi3aQGFYfFnbrQ6K3/Vc8qggUoXTir3VrEvX1iQLxHvcGtqnkUuYLe8ggjUKGLFCezHoZwTngkYf2bsUJ3XNOBOGPimOjcqTV0rQaRu7qTx/+CiFw= 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:42 +0000 From: Ido Schimmel To: netdev@vger.kernel.org Cc: davem@davemloft.net, dsahern@gmail.com, roopa@cumulusnetworks.com, nicolas.dichtel@6wind.com, mlxsw@mellanox.com, Ido Schimmel Subject: [RFC PATCH net-next 19/19] selftests: fib_tests: Add test cases for netdev carrier change Date: Sun, 31 Dec 2017 18:15:13 +0200 Message-Id: <20171231161513.25785-20-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 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: 935d9002-0e42-44cd-b3a6-08d55069e1ba 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:HpZAmOMrqDG8buvsJ4sEan1pYzODn/6xMn7TFNEZop9jC9QAwkTf0oXdMdTB8mFUHcRwpoiN+hioOqLPHt+dpzGHiGbQQMYiTZOLpWEoUcyTF7s9xzgDrz3pRMmhPybCnPuM8DeNyVeKbCyTbhZvGqbK3aC/olB2c6ZqffDFddIGxnbPrCz57QlmNxpUMsuQMGV26WKtBuP0tmpZ8AqUg7SrZGrRkTprOL5rjQHyaw8yVczzFZqEe4W41FDgGyE8; 25:7+Og02FNRMKRLMMVoHJr4DHLbzrOq//aI5ZyVzst6FgQV45A59KQ3rItBYgmBpoQHv2VCaw0jjEyD7HKPQZnMCrUlOhk5UbkFH98LDY4XuvG8pZ77ur62t3Fnpp8btso7qkF8JTU1yH/JLF6z3YTHZ1/h4IgzyYbtomka74ebX6cIdHBlsWZezdyIHRuvBP+oCS6bb2DmyI/1c7ahNUpiCsP0CoTz7lZ73P19I4DiwxksyYJAuGqm1V5P/bD5rh87Fi0alocDze9atCUpM1/rm4Q90gNKBZ99FkF2rjKGyfuZmpFIzwPJSPZ5Exh2MlcaIV9givT+WGef9Jc3SgflA==; 31:acJp+laiuniZrrHV1tDt1ZSzNuT9ZYJkF2CX8l/wWqkrIBWSeX/ogSVCY3ORINIA6aE0hV5Cq6Fxo8TGYf84iRS7ihMB0TjhJmKx7LD8Fe63llJIHAzxg8nbaJDgLS9v+vUxlh3hOAQ4Zkmoi1OCtVopbPzLxa+ox7k6JC/4SzwM4mMzCuf9NDOevXwTyFX4CkPS3Rj3jYe/olyDe6GZ60who4RdltKAA7ulFK4La3I= X-MS-TrafficTypeDiagnostic: AM5PR0501MB2001: X-Microsoft-Exchange-Diagnostics: 1; AM5PR0501MB2001; 20:58ka4/MKbJGLKbfqu5a1lQlzH62vdYM0m0yxqp7gVdaGeDUFe0+KOqth0rCw+4jJLZ3IJ3xcdSyEX4HCavt8+nOetwv/MIRUbgRQwECCXYv/ynb8p4w8uchRcdCnCPZb5A98HatiTUyvZaY+TiC6mSXwmf9NwW/D9stW36oM2tAuULj542WpSbf/P1SSaqN57JNGd8LuVa/orxnAgz4tebUJS4WSKxuVM0F2Tanop5SwdIVbSoPpoac4bpZm5zFBiagJsYJ8MZx5DE8TZFeK0uX31RCqnJeXtriE7pJnabzwHVS0xrFmZNn4Y8eStd+NxfqxEHBetfUP9/+bvU8/VnNz5g1xK9bWsd8/GWZxi8kahsbvN8U8M0J3N4DEaTg1JlZAhIw5VTQSezbBXjmaZ/jpRDkEi0s+EnyuhzNgjRyNeczfP+A72p6llmauTDS0d0W/xv0bL/CYn3IUSaa3rhQNZVvmZbpzK5Z8PUGYbTSjHHkdrthVj8hA1f2Tj7mC; 4:H0vFLAgqAfLMucWPUhGa0vde6V8VylJ4ijzJzjoT1BEgNxTzJmysVoGhNg46tuJ0J/97QQQAlXbbetV56ZmCG7maMjm13YLdKHHDSSU3khbcPeHhSnhc/AsH0jBerJtZz8wAo+3kBG75Rjzu+2mEKQAiZSXqHUEXlvbRSlUv2aQltU5Olxyc2sjfdXKpU6O4OPqiyr4qSfa1lCIsklOVwJyU63/z28chjQdqCMZd3HaToWlUC6bXzQ9K7MsAL86fmQ5TQSqdO7c3y2SmFovU+Q== X-Microsoft-Antispam-PRVS: 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)(6116002)(3846002)(16526018)(16586007)(8676002)(5660300001)(47776003)(66066001)(25786009)(6916009)(2361001)(39060400002)(68736007)(105586002)(6666003)(36756003)(51416003)(97736004)(48376002)(8936002)(4326008)(52116002)(2351001)(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:KYt1w1UagflYT+9T5ex501pCDWsGHUcf58c4RfBcPsOABMyr/1Rid8OmuQFVxdGgMhexdlvPGfZFoPwAgc0Whnd+hAULyL96yxVhKvpeX77XHBH95CRdBuLr5Ijv45/fsK/m9TkGhNtf3395tBvWJ/X3/LPxKk+mtgOqURu8RWma0zZLkiuy8BHhJ7OHo6kxDJ4n2Ng5jxOuReo9pHwvyW59UId1hX/2jZ6KODTsVUzHyrySFDc79KCIvC8VxFy0PQYuW8l3m68oU2hbwFrO/0k3AHYfwaaW1AeBhhOYeb/S3S6dx9oMk2awymVLVWIgsMADfE3bW/b5H/pPuyftzb4M6Y2bdDvQSCE5+QKEJULBWnY1v/M5VL8ISe1iAn32opQGY+EY9XyI3xpCIQZ1ysdxKxMyBZNydY+60dY4fhSvQ7hAobfBvq2Xqhwj5v5PS5/xj+hwiLvQZ1TMZQB2VdaKhY5AxYzFkJmv8egq/MtttbD/0xXObwTDa1DOrypokEswKD3BGKgsZ8ymgKHOnuE+3n25VWoveOF7ObaO1WIFsDuIrjX2IFbh1Em5+FX3IR5TZ4vraAeM6xpU1FIG7ExegnvjLW4bYwkvyaPiiO2x6UlJ2JxISgq80WEWLUDGjp1PVToHRnlA8o20Gs9sXHDdNv8QR/MNZ0zkrIPQy6asBPPdy/QqGKeGwpUVNnq3gJHW3IoTg6FPjxfCA7M7Ncn4BnYIVYKtvaPFsDjZ7yvyi5tcbOq7Jg00qnDDDpDOhKPCvyxnoe8nBQigerKofsHUbsoy7S/zb3v4DZODIeczeJ5vlaUK8109l4IHrB8uUgOQSm+JbusCB6J3cGOevID8zTOu9/h1LcwjJ/iPIcC8fUZNRB/5ivKGaOKtpPpMuYmzrYDkPhXCSfiIfCER6Mt/ysw9QvdGzIpaDu6neUZPAEDYOsapQz6i0RqgWld3YS/xHBrlzAhftwAlbFnbXWVxQ6DelNLChNrCpUpI6hOGsZxUw/dbBLUBD/qtZmUcGQy0hWAy6LbX3sWc70OTy7rGyEnUsBjCwcv5LbiKCw4qTJrdtXkHc0eNTVvKGtiVKrK2m531fo6nvghBhIVz8cH976RME5TGyXm74eU9WLWYy4Y7t15hzw6oi/OmTh9UX/izn9wcCGJDvhBegaGpfF0BsPY5N79UM9a09IVwajwNKMNz7Xl6Nz5Gvs/ljBLtvS/wl2YHEOGIXT8AkbKwuQ== X-Microsoft-Exchange-Diagnostics: 1; AM5PR0501MB2001; 6:xIH0kKGTcakrmyctjMYyywFc6FYxL7+NCjafbn6SbuC1hvs55f1xLRzVaCgpt9Ay3sSiGaCvKJreOXOG6OJO0ehhgGsvQ1rbAnkqRwhjRpQug1lLKL3OpQ9Z4qR+V89idClIXYvfq6lA7KGR0V4Qh2+wN56IU7TCddMQn6xZsQAjN5fM9uD67HWrN3v/15IhAc8tHJ/PYjKiptQAUdGnZ35UE2CmW3gwqyUpaVcGnkBTDxSdEvaWxdElcZOr/FpzaZnKBl+b3Ozb+S0WFTUR7jdetFMuZUE4D6//RPbs8t980lFjq8vcpGDTUhnAJUL/I3aCU5clueWOrEIK4TVqUZEjWL7ynxeZGxGHVfVmHZ0=; 5:DSNmQOaUyWBX1LgniZ1ALw4OO+7PEYkHAZLsG0wystvuaWefOHGgvuERLAguYo0QcG0EfVgdCG5Js+vTxR6tj6FcWS/kJ0FJmtZFNrGt1GsOvDePSQlNt1HerTpfCs62QQUJSjzgqmJ4vHvnVIDsmIvdomk/GZfD3Tc87rO2l+k=; 24:aD3TKbyLh3h9wggf2GjWKacCokHK8dJ+YLUshp++l1Y/tXH2UPGSjNmPrTRD3J9WuWARsAq2oGAROBAhh4h4HNjciEFgHh9nISj4epNimzw=; 7:6fQFqgqhTlzGPA2RvFG2EKKp5+WkOzUF0ZGcrkfQy76s8htn8JZJpHHQW8lupZpV9YNcMBDRi21ojyPu82D7+Y8kIo0E3v/r6HcJLskvMmquXR1emJv/9KKelKKS/a38CESX2xoRBHEruAxfIhMDy4brKOMPM0FEsZA/EKyzhzAY+Z59johCYi+MNjprfSyHyEWrpu+s5f+6kSdG5N3dLurzIMA+Rdm5Noajs8r0jRnvGHYkuKAeW9y9fmDkcKfA SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Dec 2017 16:16:42.5909 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 935d9002-0e42-44cd-b3a6-08d55069e1ba 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: X-Mailing-List: netdev@vger.kernel.org Check that IPv4 and IPv6 react the same when the carrier of a netdev is toggled. Local routes should not be affected by this, whereas unicast routes should. Signed-off-by: Ido Schimmel --- tools/testing/selftests/net/fib_tests.sh | 142 +++++++++++++++++++++++++++++++ 1 file changed, 142 insertions(+) diff --git a/tools/testing/selftests/net/fib_tests.sh b/tools/testing/selftests/net/fib_tests.sh index b245bac956d1..9f2208e2d676 100755 --- a/tools/testing/selftests/net/fib_tests.sh +++ b/tools/testing/selftests/net/fib_tests.sh @@ -259,10 +259,152 @@ fib_down_test() fib_down_multipath_test } +fib_carrier_local_test() +{ + ret=0 + + # Local routes should not be affected when carrier changes. + netns_create "testns" + + ip netns exec testns ip link add dummy0 type dummy + ip netns exec testns ip link set dev dummy0 up + + ip netns exec testns ip link set dev dummy0 carrier on + + ip netns exec testns ip address add 198.51.100.1/24 dev dummy0 + ip netns exec testns ip -6 address add 2001:db8:1::1/64 dev dummy0 + + ip netns exec testns ip route get fibmatch 198.51.100.1 &> /dev/null + check_err $? + ip netns exec testns ip -6 route get fibmatch 2001:db8:1::1 &> /dev/null + check_err $? + + ip netns exec testns ip route get fibmatch 198.51.100.1 | \ + grep -q "linkdown" + check_fail $? + ip netns exec testns ip -6 route get fibmatch 2001:db8:1::1 | \ + grep -q "linkdown" + check_fail $? + + ip netns exec testns ip link set dev dummy0 carrier off + + ip netns exec testns ip route get fibmatch 198.51.100.1 &> /dev/null + check_err $? + ip netns exec testns ip -6 route get fibmatch 2001:db8:1::1 &> /dev/null + check_err $? + + ip netns exec testns ip route get fibmatch 198.51.100.1 | \ + grep -q "linkdown" + check_fail $? + ip netns exec testns ip -6 route get fibmatch 2001:db8:1::1 | \ + grep -q "linkdown" + check_fail $? + + ip netns exec testns ip address add 192.0.2.1/24 dev dummy0 + ip netns exec testns ip -6 address add 2001:db8:2::1/64 dev dummy0 + + ip netns exec testns ip route get fibmatch 192.0.2.1 &> /dev/null + check_err $? + ip netns exec testns ip -6 route get fibmatch 2001:db8:2::1 &> /dev/null + check_err $? + + ip netns exec testns ip route get fibmatch 192.0.2.1 | \ + grep -q "linkdown" + check_fail $? + ip netns exec testns ip -6 route get fibmatch 2001:db8:2::1 | \ + grep -q "linkdown" + check_fail $? + + ip netns exec testns ip link del dev dummy0 + + ip netns del testns + + if [ $ret -ne 0 ]; then + echo "FAIL: local route carrier test" + return 1 + fi + echo "PASS: local route carrier test" +} + +fib_carrier_unicast_test() +{ + ret=0 + + netns_create "testns" + + ip netns exec testns ip link add dummy0 type dummy + ip netns exec testns ip link set dev dummy0 up + + ip netns exec testns ip link set dev dummy0 carrier on + + ip netns exec testns ip address add 198.51.100.1/24 dev dummy0 + ip netns exec testns ip -6 address add 2001:db8:1::1/64 dev dummy0 + + ip netns exec testns ip route get fibmatch 198.51.100.2 &> /dev/null + check_err $? + ip netns exec testns ip -6 route get fibmatch 2001:db8:1::2 &> /dev/null + check_err $? + + ip netns exec testns ip route get fibmatch 198.51.100.2 | \ + grep -q "linkdown" + check_fail $? + ip netns exec testns ip -6 route get fibmatch 2001:db8:1::2 | \ + grep -q "linkdown" + check_fail $? + + ip netns exec testns ip link set dev dummy0 carrier off + + ip netns exec testns ip route get fibmatch 198.51.100.2 &> /dev/null + check_err $? + ip netns exec testns ip -6 route get fibmatch 2001:db8:1::2 &> /dev/null + check_err $? + + ip netns exec testns ip route get fibmatch 198.51.100.2 | \ + grep -q "linkdown" + check_err $? + ip netns exec testns ip -6 route get fibmatch 2001:db8:1::2 | \ + grep -q "linkdown" + check_err $? + + ip netns exec testns ip address add 192.0.2.1/24 dev dummy0 + ip netns exec testns ip -6 address add 2001:db8:2::1/64 dev dummy0 + + ip netns exec testns ip route get fibmatch 192.0.2.2 &> /dev/null + check_err $? + ip netns exec testns ip -6 route get fibmatch 2001:db8:2::2 &> /dev/null + check_err $? + + ip netns exec testns ip route get fibmatch 192.0.2.2 | \ + grep -q "linkdown" + check_err $? + ip netns exec testns ip -6 route get fibmatch 2001:db8:2::2 | \ + grep -q "linkdown" + check_err $? + + ip netns exec testns ip link del dev dummy0 + + ip netns del testns + + if [ $ret -ne 0 ]; then + echo "FAIL: unicast route carrier test" + return 1 + fi + echo "PASS: unicast route carrier test" +} + +fib_carrier_test() +{ + echo "Running netdev carrier change tests" + + fib_carrier_local_test + fib_carrier_unicast_test +} + fib_test() { fib_unreg_test fib_down_test + fib_carrier_test } if [ "$(id -u)" -ne 0 ];then