From nobody Sun Jun 28 08:40:02 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0BCE9C433EF for ; Wed, 9 Feb 2022 20:38:43 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232131AbiBIUii (ORCPT ); Wed, 9 Feb 2022 15:38:38 -0500 Received: from gmail-smtp-in.l.google.com ([23.128.96.19]:49660 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232022AbiBIUig (ORCPT ); Wed, 9 Feb 2022 15:38:36 -0500 Received: from mail-pf1-x436.google.com (mail-pf1-x436.google.com [IPv6:2607:f8b0:4864:20::436]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 876B5E00FA58 for ; Wed, 9 Feb 2022 12:38:38 -0800 (PST) Received: by mail-pf1-x436.google.com with SMTP id 9so3536270pfx.12 for ; Wed, 09 Feb 2022 12:38:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arista.com; s=google; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=3CCwZDVWnTz0k1KLIvecC5nUo5ERwSy7pI4Pplg9Wl8=; b=euriZtsupOGjw8a7umqT2cBDmUzLH4VaDyzNGSo3vCdzBeVAEQwlwdsjpyhTvCDcnf JyhDahslFehlYA6KhhswwXeyV06XZ1Z8AvIonnkIK4H89xRvmsGGZiV1RknHadkxAAFH Lo23ARtbPshgAgbZ5Q1oDW9X0gpXcf/+JtqBpbJzJDh7xsrzE7Rl0UC3UZ0WH3z5Q/rk GiDZZt1HKmY1lDcSkVAj1sQxF1wd2env4RoJJ5jTxGBZgj1Y0vxX8w/VdAOUPY+wEXB6 J2A21hXcM7EQu/d2RTLnOSzRpHUpRIA6NGtm2pJzx+J9VwH6n9hZgi2Ku8P6GVrgdLb5 Xxqg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=3CCwZDVWnTz0k1KLIvecC5nUo5ERwSy7pI4Pplg9Wl8=; b=y6AXEDyMHve2Db1cIEEpcQayrZoH0peYiYEBWRjQvAFl50Iu5kd2h9Yk4rOeMdc2GF SZujbnxj1+p62yrv1cHvIQXgZ3InIEwX2ABRjtkFvVJtZV+uzZKHavCWhea9BII80bq8 gavrCe1TBPfniucHaGcZfW9yNRFMM6e+kOkpSVF8PkSF7eJEnHVJphBUQnn6Hw0bGHiw Faf8BXwxRccXFwdBMjRp5Ez6YRCNpv47p1l853/9g7XDuWJDtS+zgwZG95BSjnXL+izK ei6iWbumwx8zDR8S+x2lBD/8AxQjfW1O5mJvmQN0vFhl9LHiS6CSVMDE8FjtD6fqN+Bh Bkaw== X-Gm-Message-State: AOAM531Jhpi+ZRwAh61gM8Tjeh8QvRFJ9MYjU+fPfZm0OKqWyEk1OgEw qRvDjCsbaAY/Xi73dnVd4Ukf8w== X-Google-Smtp-Source: ABdhPJyZl9J2c7WQrcgVt2vZAMPqb1B2hJwEtuDLTLIv0TWjgnD8a+scZYKTNFnmpQ1YT7P8fEtFnA== X-Received: by 2002:a63:89:: with SMTP id 131mr3348551pga.253.1644439117946; Wed, 09 Feb 2022 12:38:37 -0800 (PST) Received: from kalash.aristanetworks.com (d64-180-125-150.bchsia.telus.net. [64.180.125.150]) by smtp.googlemail.com with ESMTPSA id v123sm3722386pfb.12.2022.02.09.12.38.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 09 Feb 2022 12:38:36 -0800 (PST) From: Kalash Nainwal To: netdev@vger.kernel.org Cc: fruggeri@arista.com, kalash@arista.com, "David S. Miller" , Hideaki YOSHIFUJI , David Ahern , Jakub Kicinski , linux-kernel@vger.kernel.org Subject: [PATCH] Generate netlink notification when default IPv6 route preference changes Date: Wed, 9 Feb 2022 12:38:18 -0800 Message-Id: <20220209203818.11351-1-kalash@arista.com> X-Mailer: git-send-email 2.30.1 (Apple Git-130) MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Generate RTM_NEWROUTE netlink notification when the route preference changes on an existing kernel generated default route in response to RA messages. Currently netlink notifications are generated only when this route is added or deleted but not when the route preference changes, which can cause userspace routing application state to go out of sync with kernel. Signed-off-by: Kalash Nainwal --- net/ipv6/ndisc.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/net/ipv6/ndisc.c b/net/ipv6/ndisc.c index f03b597e4121..fd14f5b1c767 100644 --- a/net/ipv6/ndisc.c +++ b/net/ipv6/ndisc.c @@ -1337,8 +1337,12 @@ static void ndisc_router_discovery(struct sk_buff *s= kb) return; } neigh->flags |=3D NTF_ROUTER; - } else if (rt) { + } else if (rt && IPV6_EXTRACT_PREF(rt->fib6_flags) !=3D pref) { + struct nl_info nlinfo =3D { + .nl_net =3D net, + }; rt->fib6_flags =3D (rt->fib6_flags & ~RTF_PREF_MASK) | RTF_PREF(pref); + inet6_rt_notify(RTM_NEWROUTE, rt, &nlinfo, NLM_F_CREATE); } =20 if (rt) --=20 2.30.1 (Apple Git-130)