From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.1 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_PASS, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5E9C2C10F14 for ; Sun, 21 Apr 2019 15:55:03 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 2DC8E2075A for ; Sun, 21 Apr 2019 15:55:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1555862103; bh=0pShE6UenqO9TNU11DOjpgSIcm0dNje0smR/bOAuLiU=; h=From:To:Cc:Subject:Date:List-ID:From; b=UWLrLQuKa6hzrmu+HdGpB7c2O28zIopr7iLLI8tMiKVy5pWt9iFNCePi6wo4dszYb zuRE0+27nI6xVsUC6IHDEm++xT3UZGN4MR0gHDcomJacn0GswY2Nm1TlgnBHUDwuTw VcmolDeauRea2fLWgf7pi6BEDCR0O4GgUfs6HutA= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727358AbfDUPsQ (ORCPT ); Sun, 21 Apr 2019 11:48:16 -0400 Received: from mail.kernel.org ([198.145.29.99]:41078 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726786AbfDUPsP (ORCPT ); Sun, 21 Apr 2019 11:48:15 -0400 Received: from kenny.it.cumulusnetworks.com. (fw.cumulusnetworks.com [216.129.126.126]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 21D3420693; Sun, 21 Apr 2019 15:48:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1555861695; bh=0pShE6UenqO9TNU11DOjpgSIcm0dNje0smR/bOAuLiU=; h=From:To:Cc:Subject:Date:From; b=olfOrZJBZeF30R35TuKofG+qo/t3TAP2EBwZ0UNQHTHlTtOEl8Ub6V/7Qaq15oLL5 HDDrQxIKtfCeqY2/6jp1ryfEMcKdEJ/WG3PeN7s2ELO3TPrP/DOaFDZaAAmFyqoWhQ QHCXtj67i7df+413hcTmCyzX8zvu9m7Lcr6j/bQA= From: David Ahern To: davem@davemloft.net Cc: netdev@vger.kernel.org, idosch@mellanox.com, David Ahern Subject: [PATCH net-next] ipv6: Simplify rt6_qualify_for_ecmp Date: Sun, 21 Apr 2019 08:49:01 -0700 Message-Id: <20190421154901.14202-1-dsahern@kernel.org> X-Mailer: git-send-email 2.11.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: David Ahern After commit c7a1ce397ada ("ipv6: Change addrconf_f6i_alloc to use ip6_route_info_create"), the gateway is no longer filled in for fib6_nh structs in a prefix route. Accordingly, the RTF_ADDRCONF flag check can be dropped from the 'rt6_qualify_for_ecmp'. Further, RTF_DYNAMIC is only set in rt6_info instances, so it can be removed from the check as well. This reduces rt6_qualify_for_ecmp and the mlxsw version to just checking if the nexthop has a gateway which is the real indication of whether entries can be coalesced into a multipath route. Signed-off-by: David Ahern --- drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c | 2 +- include/net/ip6_route.h | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c index 64498c9f55ab..779f5a7c85f2 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c @@ -4928,7 +4928,7 @@ static void mlxsw_sp_rt6_destroy(struct mlxsw_sp_rt6 *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_ADDRCONF) && rt->fib6_nh.fib_nh_gw_family; + return rt->fib6_nh.fib_nh_gw_family; } static struct fib6_info * diff --git a/include/net/ip6_route.h b/include/net/ip6_route.h index 46bbd8ff9cc6..518d97fbe074 100644 --- a/include/net/ip6_route.h +++ b/include/net/ip6_route.h @@ -68,8 +68,7 @@ static inline bool rt6_need_strict(const struct in6_addr *daddr) static inline bool rt6_qualify_for_ecmp(const struct fib6_info *f6i) { - return !(f6i->fib6_flags & (RTF_ADDRCONF|RTF_DYNAMIC)) && - f6i->fib6_nh.fib_nh_gw_family; + return f6i->fib6_nh.fib_nh_gw_family; } void ip6_route_input(struct sk_buff *skb); -- 2.11.0