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=-1.0 required=3.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_PASS 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 756E5C282C2 for ; Wed, 13 Feb 2019 15:31:55 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 2E3632190A for ; Wed, 13 Feb 2019 15:31:55 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=6wind-com.20150623.gappssmtp.com header.i=@6wind-com.20150623.gappssmtp.com header.b="Q79vyAta" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2391949AbfBMPbx (ORCPT ); Wed, 13 Feb 2019 10:31:53 -0500 Received: from mail-wm1-f68.google.com ([209.85.128.68]:50709 "EHLO mail-wm1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2391891AbfBMPbx (ORCPT ); Wed, 13 Feb 2019 10:31:53 -0500 Received: by mail-wm1-f68.google.com with SMTP id x7so2938621wmj.0 for ; Wed, 13 Feb 2019 07:31:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=6wind-com.20150623.gappssmtp.com; s=20150623; h=reply-to:subject:to:references:from:organization:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=wP97OyXW11faEfnpZsHOd7gbXL4owSi4tRmm6Ed3q0w=; b=Q79vyAta7pCHhZKyTAx57IXwNBMMqQHNDcpJTkHHZjOlDTxY7bIbshvChS2N5igcNf kt+25lnvseC7UGaFDIwQCTlinJ88DvJlluFcq8XKGLcQ6yMx5RjpBmoIr7zNhHkhEKXr H2RMUZE2wQytfz5N9Jwa6gLg2ShUlj9+/PoiLHMULCi0if7GonPtyRQGNZl6L0u5wfq9 ZBiW4BdxDM4APXeS5nCoE8HSzN6cgd4Oq1q/Irrncj2uux6sHkkiXzCqMuAr6KQbaAtW q8UfN9h19wz9P6/sti0PozlNo7Ce1YkP5UxdId8rlk+m+aoo2Nj+PRNGz4ieAzaTU79k rUTQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:reply-to:subject:to:references:from:organization :message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=wP97OyXW11faEfnpZsHOd7gbXL4owSi4tRmm6Ed3q0w=; b=ALCCNtqIl7LJ6jmPe6j3KnHYRiwWAT95E/qwVgXPya7i3kUEH5KVWzUCht+JE8buqN 91tBoGk21oe8hC10EpRYmtrGnWgJtxD1PpxphPSR+wx0vqiQk2kNI5dKTdH6vlimQsRC shXK4LB5gM6DcXFMEPpp0cE313WMO/K+x33PYpd5aGcMw8OW+pHn46vs4YTAO8D98aWz 61J2lh8fMDfG9eebP3iD7hmk3v8tjK/2ygbZD/4FkQvcXpVnQ88dHWSL9+lU5wzakAtt MPTMdiEyYMn8lXlCVUNqAbHZqsgU+jY8QTDu8O7qOYUukZWANANLPuf68/QF6HBw1yLd O2kg== X-Gm-Message-State: AHQUAubiP0BuWoY1C5tSVtR23id9cxziMRrAF7Z0OJcRlz2c14uG6Br2 QELsLsuQjxY6Lz6+AUfYepRUow== X-Google-Smtp-Source: AHgI3IZzmn1PHl3Hr/z/9plxTXuFUQrURW4doLm/IJa6opfbaJV7VmSijBbhL1/Mh3MsCD4irsgB4g== X-Received: by 2002:a1c:6442:: with SMTP id y63mr710708wmb.143.1550071911548; Wed, 13 Feb 2019 07:31:51 -0800 (PST) Received: from ?IPv6:2a01:e35:8b63:dc30:ccd8:e662:fb13:d2be? ([2a01:e35:8b63:dc30:ccd8:e662:fb13:d2be]) by smtp.gmail.com with ESMTPSA id 65sm50139905wrb.62.2019.02.13.07.31.49 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 13 Feb 2019 07:31:50 -0800 (PST) Reply-To: nicolas.dichtel@6wind.com Subject: Re: [PATCH net-next v4] ipmr: ip6mr: Create new sockopt to clear mfc cache or vifs To: Callum Sinclair , davem@davemloft.net, kuznet@ms2.inr.ac.ru, yoshfuji@linux-ipv6.org, nikolay@cumulusnetworks.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org References: <20190212031255.16121-1-callum.sinclair@alliedtelesis.co.nz> <20190212031255.16121-2-callum.sinclair@alliedtelesis.co.nz> From: Nicolas Dichtel Organization: 6WIND Message-ID: <79bd14a5-de54-1ae1-80a5-ada98aa9cc42@6wind.com> Date: Wed, 13 Feb 2019 16:31:49 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.4.0 MIME-Version: 1.0 In-Reply-To: <20190212031255.16121-2-callum.sinclair@alliedtelesis.co.nz> Content-Type: text/plain; charset=utf-8 Content-Language: fr Content-Transfer-Encoding: 8bit Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Le 12/02/2019 à 04:12, Callum Sinclair a écrit : [snip] > /* Wipe the cache */ > - list_for_each_entry_safe(c, tmp, &mrt->mfc_cache_list, list) { > - if (!all && (c->mfc_flags & MFC_STATIC)) > - continue; > - rhltable_remove(&mrt->mfc_hash, &c->mnode, ipmr_rht_params); > - list_del_rcu(&c->list); > - cache = (struct mfc_cache *)c; > - call_ipmr_mfc_entry_notifiers(net, FIB_EVENT_ENTRY_DEL, cache, > - mrt->id); > - mroute_netlink_event(mrt, cache, RTM_DELROUTE); > - mr_cache_put(c); > - } > - > - if (atomic_read(&mrt->cache_resolve_queue_len) != 0) { > - spin_lock_bh(&mfc_unres_lock); > - list_for_each_entry_safe(c, tmp, &mrt->mfc_unres_queue, list) { > - list_del(&c->list); > + if (flags & (MRT_FLUSH_MFC | MRT_FLUSH_MFC_STATIC)) { > + list_for_each_entry_safe(c, tmp, &mrt->mfc_cache_list, list) { > + if (((c->mfc_flags & MFC_STATIC) && !(flags & MRT_FLUSH_MFC_STATIC)) || > + (!(c->mfc_flags & MFC_STATIC) && !(flags & MRT_FLUSH_MFC))) > + continue; > + rhltable_remove(&mrt->mfc_hash, &c->mnode, ipmr_rht_params); > + list_del_rcu(&c->list); > cache = (struct mfc_cache *)c; > + call_ipmr_mfc_entry_notifiers(net, FIB_EVENT_ENTRY_DEL, cache, > + mrt->id); > mroute_netlink_event(mrt, cache, RTM_DELROUTE); > - ipmr_destroy_unres(mrt, cache); > + mr_cache_put(c); > + } > + > + if (atomic_read(&mrt->cache_resolve_queue_len) != 0) { I wonder if the mfc_unres_queue must be cleaned up when only MRT_FLUSH_MFC_STATIC is provided. My first intuition would be to do it only with MRT_FLUSH_MFC. Any opinion? Regards, Nicolas