From patchwork Tue Jun 5 10:39:39 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ido Schimmel X-Patchwork-Id: 10448009 X-Patchwork-Delegate: jiri@resnulli.us Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 003EA6053F for ; Tue, 5 Jun 2018 10:40:36 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E1F3629036 for ; Tue, 5 Jun 2018 10:40:35 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id D6CDE2903F; Tue, 5 Jun 2018 10:40:35 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.8 required=2.0 tests=BAD_ENC_HEADER,BAYES_00, DKIM_SIGNED, MAILING_LIST_MULTI, T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from lists.ozlabs.org (lists.ozlabs.org [203.11.71.2]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 196282903D for ; Tue, 5 Jun 2018 10:40:35 +0000 (UTC) Received: from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) by lists.ozlabs.org (Postfix) with ESMTP id 410Sxs3P8HzF1nc for ; Tue, 5 Jun 2018 20:40:33 +1000 (AEST) Authentication-Results: lists.ozlabs.org; dmarc=pass (p=none dis=none) header.from=mellanox.com Authentication-Results: lists.ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=Mellanox.com header.i=@Mellanox.com header.b="eXwzZEnt"; dkim-atps=neutral X-Original-To: linux-mlxsw@lists.ozlabs.org Delivered-To: linux-mlxsw@lists.ozlabs.org Authentication-Results: lists.ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=mellanox.com (client-ip=40.107.0.58; helo=eur02-am5-obe.outbound.protection.outlook.com; envelope-from=idosch@mellanox.com; receiver=) Authentication-Results: lists.ozlabs.org; dmarc=pass (p=none dis=none) header.from=mellanox.com Authentication-Results: lists.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=Mellanox.com header.i=@Mellanox.com header.b="eXwzZEnt"; dkim-atps=neutral Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-eopbgr00058.outbound.protection.outlook.com [40.107.0.58]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 410Sxh5X7SzF1l4 for ; Tue, 5 Jun 2018 20:40:24 +1000 (AEST) 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:X-MS-Exchange-SenderADCheck; bh=F0nKKiUrj9jiXCk3s5ouPAMkzUwEV07F+/Q+zc3EAKk=; b=eXwzZEnt41KpRQzzBO4R+AJHH26apJje+mOXQ89icgBM6UnR0zTLLWl98VSaqmayFqV/VcU/Uog9HVLhZD7zXBGagVDLur5plvnOOqj58O8N33wwOsxsdYpgU4L0J6254WEJGYuuCFYeLRbKsi4PtnnXoB/ryDVcKJMnrP0JVRc= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=idosch@mellanox.com; Received: from splinter.mtl.com (193.47.165.251) by VI1PR0501MB2334.eurprd05.prod.outlook.com (2603:10a6:800:2c::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.820.15; Tue, 5 Jun 2018 10:40:10 +0000 From: Ido Schimmel To: linux-internal@mellanox.com Subject: [PATCH net-next mlxsw 2/3] mlxsw: spectrum_router: Allow appending to dev-only routes Date: Tue, 5 Jun 2018 13:39:39 +0300 Message-Id: <20180605103940.5248-3-idosch@mellanox.com> X-Mailer: git-send-email 2.14.4 In-Reply-To: <20180605103940.5248-1-idosch@mellanox.com> References: <20180605103940.5248-1-idosch@mellanox.com> MIME-Version: 1.0 X-Originating-IP: [193.47.165.251] X-ClientProxiedBy: CWLP265CA0005.GBRP265.PROD.OUTLOOK.COM (2603:10a6:401:10::17) To VI1PR0501MB2334.eurprd05.prod.outlook.com (2603:10a6:800:2c::23) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(48565401081)(5600026)(2017052603328)(7153060)(7193020); SRVR:VI1PR0501MB2334; X-Microsoft-Exchange-Diagnostics: 1; VI1PR0501MB2334; 3:F5fybqYwzuD5I/26OgQ1mDU/+ARWlbAuTd7KukHFmsfZFzUdD9tLTSgX9rwyf/B0r1to8Kd3hsJy5AfnM/pU0mqivPY6bwRo045xlX2TRpgH+iQ9aXBYK1M7auaMABvca0LcTonhHI2KTZqCQ8z59Vd7ThFtD/uWeMfealJmfFU3EBP3JFhzzDfGk/CvAMvUH0ucNRbhRUd1uuuXlhknOC/E70DqN9AB2hPBkqxhMRGx7hKmPeUR0/lBpLfn5wQe; 25:QhNtf6C5ojNzd0iAs7vo/iCqqtHmPahdZIH15L8auDvq5arH2LX4Odx2OJ8b3VVJtrFAFJb712nSJoEaxoaAqQhU8i0T0M7Uupvp+rKVK94LGIs3aB+4IRhDziOdMvmYYP7jYcDYeNkmiR2xdSeONSAt9MKYs+FBcC/1guJYmsr+oogeFxFdkePZmz/4Muc5zbyj7xalv0UZUra6StCpv0kb9AYqvbdEqGSfFRLnNKBreCQnB/GKWM7wt82x927EVEBkt3TE00/nugU+bLOUetGzGz5OPJfnt534Dc4vOrrV0t/pXwXNDn/ftgbLOldoMPJiE3nCU933Ciam+JhmiQ==; 31:cqSZG5bnVFLaG59xeVnIcRG/fcywLA4v2V87r97ppBGgLrSLhEZTvZRFgbYKYo/LRg12NH8P/U8IElZNoJXFo2WJTtZjKaqxx8d4qGfvDYp1zTLNX8Mn+zPCGj6o8jxf9gIdFy937VmED81bP2Yv+dYnI86FKkVO/AJ4qs9a2xafSZLlV3fO1PAWrza0IRXaOxQ8alZ5+oUC0PqvKjeXiNeCLWqm5xKAqLI2vm74Nn8= X-MS-TrafficTypeDiagnostic: VI1PR0501MB2334: X-Microsoft-Exchange-Diagnostics: 1; VI1PR0501MB2334; 20:KKeKkJZmqmGiL5TIwl/YBVC1dhBs9k2yeSBPl+f1BKHXzUu8gK6Ij+BzvMt88x3ElvH3ZAPQiortZn96SklrlA/i4VS4ao3xuAHSHBDdhLza87NPq8rFXry9RR0Uer0XxcA2W+MxYzkn6ZZ1pHEGE7cIZK2XCMdWA4HKz4EcD6pU2lIos4265OFLvib3jfk6AH7M3Kh2jiTnJNR/sp0adyGt9MClL1h4bnEGsi+E1teAFUVI/B+4xzDLXAnZMfVHDisoPIr+naCl0Tu03xphyA9s94xgGvf+1G5ywuk07CqiOKkBCLLhR0joVt4VeEWhH5e5K7lra+RN6FHkQpKRPsTLz6KzjzHMW4AtlE8vqUn7e0YE4qftDPDdJN5g+r98qWzfDT2O9+MlscQGGX9slkNbTq8u/4an3DnorC3E+pCxNsW188zXajjTQdF5E/c7hxwzU9EIZX5X8zXTijcWtLuupw/lu/jg/wks/jkuVCptfA2J9iZu6CwZxHWesSLe; 4:EKDeCeQ6kD9h5lsfjab29SYWy+fD4vXqDHAnYE2cAsSUMHztLQCUTOSg5OtjttVnXcJ+pHgYvuwevA8b0Z/7qNgeBtoVOiVw+UGdmsI01g1Wz6T1DwqtfuchrqG+zfFQXG9VLQkBDPhnmxzkDfn7/b/LUs7/YaeZw6xnc77oKfUvEtywe27UJU9nYNqZ3eJSaavE9PLzcxh5fX/9Kfz1SvSUAzD8Wcd3TDb6+dGCHvK8nYP75ykHzcf+XiUNuy54brk4Cf1c6+BuIvOPZKaXVNKMz7g+Ag4DLICaTy8Rr6Yjdp5ARM4frZnq0G1G58yt X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(788757137089); X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(3002001)(3231254)(944501410)(52105095)(10201501046)(93006095)(93001095)(6055026)(149027)(150027)(6041310)(20161123564045)(20161123558120)(20161123560045)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011)(7699016); SRVR:VI1PR0501MB2334; BCL:0; PCL:0; RULEID:; SRVR:VI1PR0501MB2334; X-Forefront-PRVS: 0694C54398 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(39380400002)(396003)(39860400002)(366004)(376002)(346002)(199004)(189003)(81166006)(66066001)(4326008)(81156014)(97736004)(8676002)(476003)(76176011)(6486002)(6506007)(7736002)(52116002)(386003)(37006003)(59450400001)(86362001)(106356001)(47776003)(16586007)(51416003)(305945005)(316002)(50226002)(486006)(8936002)(2906002)(956004)(5660300001)(6636002)(6666003)(68736007)(3846002)(6116002)(446003)(6512007)(2616005)(48376002)(50466002)(16526019)(26005)(2361001)(478600001)(2351001)(53416004)(53936002)(105586002)(34206002)(11346002)(25786009)(36756003)(107886003)(1076002); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR0501MB2334; H:splinter.mtl.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; Received-SPF: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; VI1PR0501MB2334; 23:Jl6Y1i6jkPXjemUKxE+yqCS0IB4UnJSRzVlIuu1?= =?us-ascii?Q?fpgd49Pnsjh72B4r2AtygJk2JgrtrTY+LNXkrupq51sufIwXSy7YdVVdYrgt?= =?us-ascii?Q?LVdJwGnEBTbQSBsNZflgoGAUJJfU0KmAcARXqbzM+LAWwr1a7uX82+Yue07n?= =?us-ascii?Q?NEUl1ZXoHapLLryy6meZKApnwSSgaZkc7x7N4WFdzAlUD1KKz0EOGIvm/ain?= =?us-ascii?Q?sHOZsy4gN43xs2a0QgUEa6ZH6Vh9Ye29a2otsNTSLp6YchVHkiakID0QPI1N?= =?us-ascii?Q?lTPNwjGHUXxwFrZUYO9F/yLyO+1eWJshsg29aogvcRNVlvAkwvVNkhiMfj1u?= =?us-ascii?Q?yRUoo2DCLe6jlBCYPuezvT9otQuBv76BFOcUumaE1qYK4NxBKj38b/JwrH3C?= =?us-ascii?Q?MD7JyMii29Yrm5MybFkZSz7r1vKC0l/Bu7uz4QmYEIbA+FxZiowhbDukiJMc?= =?us-ascii?Q?7E5Bk5K/g9EXBjVJgoIreHIR5csjD/zyQoEv4xZ8Lpur9n0VJwoootHx4W/O?= =?us-ascii?Q?NJWRwVWg4/hGygRJ18BW6zJUFjjoQ74ttEzTO6oObWjx01gvUwjS7IYlZYam?= =?us-ascii?Q?t2b+Tt4Q6z0KnttrlvdGEnwq73+JhvkFrsFjvpipAYKtvizuQwCRlirejguj?= =?us-ascii?Q?u8KGDpP2Z0g6sZGZ93w7Pj33Vl8S2ca/bNdmtgiUGntqsJZ7ULpyrzN6UMkD?= =?us-ascii?Q?pacIefZHjz8lm2U/b/ItGrVAz+WlR7T+yD2tPF+knUiW1LEEF3Lh08+VRjUG?= =?us-ascii?Q?pRm1QXtJKgJdnRo41xEuearg8LJJOe59ZPtnuY5o383RnuKmakXL8dzWNsw1?= =?us-ascii?Q?lfjOf3/lJ1TauhWfM+mkHSpsimWvN+I8YoJC5OPNxHMDlyF6mxAVK9++v7Jy?= =?us-ascii?Q?GnqkXjUKBNZQtldxwPJlw7NyJIqYpwEEgkmrxflksBaR5E97VNEUSNP1W7zF?= =?us-ascii?Q?90G56VCWy4sJkM56ptG2R9QA2QFxoRkWXraAUntBxN/p9FWLx69gace5ckPz?= =?us-ascii?Q?yvwMCimOiNvDBlQkHNNzeOH8Kr3oFBdBv310Nl3fYt9tzV3WaFsPsP6Co9Cx?= =?us-ascii?Q?iMvKfDCB7fL6tAZpluK+C3pu4otubtSrfhqlcLo0Q7PHwIIsdAsmN+RWDjJE?= =?us-ascii?Q?ydFgguxK+0vXz63exbhFk61ObKo/NmkX/zUhFxwTckQ5xXRyMO+q+8VfYy3C?= =?us-ascii?Q?7NCKZRh0KvBnv4WVMhxZ1a0b9iuqMRcOeeHkeuXx4rcCbmcrme5Tu0e2iSJH?= =?us-ascii?Q?MQMfFzdZdShrHtp+0uHSLObO3HgdJjLZ49LnDHNXwvW2BcMcZ+5kMxG+LnJi?= =?us-ascii?Q?DEWSO8QusfSuZS1R8lQrlO5xSKTDprwMhYXyIsUUypCBq?= X-Microsoft-Antispam-Message-Info: JvEfBc+KW913E/dtN/Z21zAMjOsVvHdXY7+boE2l4xI854WNvj2u1scsYg+H/YzOn2Ql5jgD3VUJXM0hK+qEHCrW5f1uKNiI+Jv44bGxItc/2PWDXvd/2TIViLTKt8zN9iRvT+GkteOA8KFHMvl1569onbdS3Cqx3XBEXE1ehBk9kph2B8DAzeQ1EqqcQE7/ X-Microsoft-Exchange-Diagnostics: 1; VI1PR0501MB2334; 6:w7dJt/tonJlkXPfb5DvGgd8QYT/FaZDyGcfbzUyggooG7QHnKs8MQBfbg1yj+XT56dgRCdExDeaj16xmqfMevftuBcZhtWPGU3OngWoHrUG4kTLQ67I2iX5WiNITTyOdB9altXgYej2I4ordLvJDhuC3eNkOrFO9ShUFjfOWCWU4n5RB1KAhzjHmWbuBnqfWcu3JYBH3KKRFO2JfZJmxv9oR5QqSi090SmVJidKLlvPs7fsiX6sQPKSSmEwpuxsqg/UhaCaUQU0K1apu6kDpzc43do8KvHMBXMVHiBIXVtvTVDZEyzZGO+N7W+H5xVRqBOHShuCWnMM+KOmOUejzRXGvm4/Iw6iMy5qjIr6mPvp2xmGSkpop1E9IgREpg7bPtZ4qaMQJOJHv4+2/O434ALa4LcBxr9GX/qtiw5QMozvbyMUuCOLfb8zAO42BTkl+HNXRUGZmVLiqcrGIe+R8sA==; 5:PCL4+AljFky9Y1z3dLoRofTgpOyXPy0W6YHvmnKmuapztoRgL5NLlUH8LP1MdWreZno353SBLPkf5bFIhUG6sEX6JGEZT8OpG47LABn5WYjMf+fUI+aMh5IYA6FhRsOKK9p+P74vDFRZzLScO0Nk5P7wNitbBr/3vHGed3AzOfk=; 24:u0A23XgUlCr0auyGz3pDbHzADoowOxCH2byDhl4mEq0/9uGntote8YMevyrB0iUUx1QEqk0sxn1dMGsaNp0zqk80TQ/yB5PBgxfJZSt+QMo= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; VI1PR0501MB2334; 7:G9hnkkXBqTkpWHxbdHVk8wOjcHau7dY0sJcPwehGxhaGoh/pgBn9c7c/5RvNz5X+99XB2bx0XflhjvZbEGa5E5Iit51WMvB5UwyFK6SDI1TLY1fNrf+V3ssY1Ni0LpnlscCt8NzA3Q0tuNLaTFyNjPFl3RKDrXbs1T4BvGDZJbYRfOp00xF6PDaH+m7e60b3kv+Acnwodm8YfjRa7EAry3OK5mNGsbKvi1qgKDmarP+VQh/jp4YHDWCQYOsolVUZ X-MS-Office365-Filtering-Correlation-Id: b3eb560b-174a-4a4b-e788-08d5cad0b6a0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jun 2018 10:40:10.4268 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b3eb560b-174a-4a4b-e788-08d5cad0b6a0 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0501MB2334 X-BeenThere: linux-mlxsw@lists.ozlabs.org X-Mailman-Version: 2.1.26 Precedence: list List-Id: mlxsw driver development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: linux-mlxsw-bounces+patchwork-linux-mlxsw=patchwork.kernel.org@lists.ozlabs.org X-Virus-Scanned: ClamAV using ClamSMTP Commit f34436a43092 ("net/ipv6: Simplify route replace and appending into multipath route") changed the IPv6 route append logic so that dev-only routes can be appended and not only gatewayed routes. Align mlxsw with the new behaviour. Fixes: f34436a43092 ("net/ipv6: Simplify route replace and appending into multipath route") Signed-off-by: Ido Schimmel --- .../net/ethernet/mellanox/mlxsw/spectrum_router.c | 33 +++++++++++++--------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c index 77b2adb29341..6ddb1a4e23fa 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c @@ -4756,12 +4756,6 @@ static void mlxsw_sp_rt6_destroy(struct mlxsw_sp_rt6 *mlxsw_sp_rt6) kfree(mlxsw_sp_rt6); } -static bool mlxsw_sp_fib6_rt_can_mp(const struct fib6_info *rt) -{ - /* RTF_CACHE routes are ignored */ - return (rt->fib6_flags & (RTF_GATEWAY | RTF_ADDRCONF)) == RTF_GATEWAY; -} - static struct fib6_info * mlxsw_sp_fib6_entry_rt(const struct mlxsw_sp_fib6_entry *fib6_entry) { @@ -4771,11 +4765,11 @@ mlxsw_sp_fib6_entry_rt(const struct mlxsw_sp_fib6_entry *fib6_entry) static struct mlxsw_sp_fib6_entry * mlxsw_sp_fib6_node_mp_entry_find(const struct mlxsw_sp_fib_node *fib_node, - const struct fib6_info *nrt, bool replace) + const struct fib6_info *nrt, bool append) { struct mlxsw_sp_fib6_entry *fib6_entry; - if (!mlxsw_sp_fib6_rt_can_mp(nrt) || replace) + if (!append) return NULL; list_for_each_entry(fib6_entry, &fib_node->entry_list, common.list) { @@ -4790,8 +4784,7 @@ mlxsw_sp_fib6_node_mp_entry_find(const struct mlxsw_sp_fib_node *fib_node, break; if (rt->fib6_metric < nrt->fib6_metric) continue; - if (rt->fib6_metric == nrt->fib6_metric && - mlxsw_sp_fib6_rt_can_mp(rt)) + if (rt->fib6_metric == nrt->fib6_metric) return fib6_entry; if (rt->fib6_metric > nrt->fib6_metric) break; @@ -5316,7 +5309,8 @@ static void mlxsw_sp_fib6_entry_replace(struct mlxsw_sp *mlxsw_sp, } static int mlxsw_sp_router_fib6_add(struct mlxsw_sp *mlxsw_sp, - struct fib6_info *rt, bool replace) + struct fib6_info *rt, bool replace, + bool append) { struct mlxsw_sp_fib6_entry *fib6_entry; struct mlxsw_sp_fib_node *fib_node; @@ -5342,7 +5336,7 @@ static int mlxsw_sp_router_fib6_add(struct mlxsw_sp *mlxsw_sp, /* Before creating a new entry, try to append route to an existing * multipath entry. */ - fib6_entry = mlxsw_sp_fib6_node_mp_entry_find(fib_node, rt, replace); + fib6_entry = mlxsw_sp_fib6_node_mp_entry_find(fib_node, rt, append); if (fib6_entry) { err = mlxsw_sp_fib6_entry_nexthop_add(mlxsw_sp, fib6_entry, rt); if (err) @@ -5350,6 +5344,14 @@ static int mlxsw_sp_router_fib6_add(struct mlxsw_sp *mlxsw_sp, return 0; } + /* We received an append event, yet did not find any route to + * append to. + */ + if (WARN_ON(append)) { + err = -EINVAL; + goto err_fib6_entry_append; + } + fib6_entry = mlxsw_sp_fib6_entry_create(mlxsw_sp, fib_node, rt); if (IS_ERR(fib6_entry)) { err = PTR_ERR(fib6_entry); @@ -5367,6 +5369,7 @@ static int mlxsw_sp_router_fib6_add(struct mlxsw_sp *mlxsw_sp, err_fib6_node_entry_link: mlxsw_sp_fib6_entry_destroy(mlxsw_sp, fib6_entry); err_fib6_entry_create: +err_fib6_entry_append: err_fib6_entry_nexthop_add: mlxsw_sp_fib_node_put(mlxsw_sp, fib_node); return err; @@ -5717,7 +5720,7 @@ static void mlxsw_sp_router_fib6_event_work(struct work_struct *work) struct mlxsw_sp_fib_event_work *fib_work = container_of(work, struct mlxsw_sp_fib_event_work, work); struct mlxsw_sp *mlxsw_sp = fib_work->mlxsw_sp; - bool replace; + bool replace, append; int err; rtnl_lock(); @@ -5728,8 +5731,10 @@ static void mlxsw_sp_router_fib6_event_work(struct work_struct *work) case FIB_EVENT_ENTRY_APPEND: /* fall through */ case FIB_EVENT_ENTRY_ADD: replace = fib_work->event == FIB_EVENT_ENTRY_REPLACE; + append = fib_work->event == FIB_EVENT_ENTRY_APPEND; err = mlxsw_sp_router_fib6_add(mlxsw_sp, - fib_work->fen6_info.rt, replace); + fib_work->fen6_info.rt, replace, + append); if (err) mlxsw_sp_router_fib_abort(mlxsw_sp); mlxsw_sp_rt6_release(fib_work->fen6_info.rt);