Received: by 2002:ac0:946b:0:0:0:0:0 with SMTP id j40csp262400imj; Wed, 13 Feb 2019 07:59:01 -0800 (PST) X-Google-Smtp-Source: AHgI3IYx5P0kazW6W5fuuV8v0HJu1OJdwdP+sufKnxkxwYgr8vz+hy5p91M1o+t/hxr+uVM7HkzB X-Received: by 2002:a17:902:7592:: with SMTP id j18mr1131411pll.289.1550073541570; Wed, 13 Feb 2019 07:59:01 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1550073541; cv=none; d=google.com; s=arc-20160816; b=tQmmQ1iUKEbPqxSSlQLVOmguou+q3ckAmMtyCEHsT7PJxme4EGqaDNsrsVcHpOebVI IoED7CaiBMV6D1I/e4I70SExf5uP+SgN2bMJf2s5kmprETKxGkxZFeUtUveoWHrOYUH/ Siuq2KYF68cq7aapkbV4HjKXb3KBr264/C76LbZU/PSDtEdjDomw7cMv38/eBc4GX1tv J6LbZjY9GtewEjBD6eP6kkG7pETHgxPEykti+vIUuWkHRvmib1u1DcqVzQonV5YqUldl mP7swmX+gdhxBFFNgwRYZO5461//M7dLOI3cNOpniddqbcwznsKE5XePe0uHSt/R9RvS Wa5A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:organization:from:references:to:subject:reply-to :dkim-signature; bh=wP97OyXW11faEfnpZsHOd7gbXL4owSi4tRmm6Ed3q0w=; b=UiLRm2yrYJOVZGnAQifgwHxDT+3ie32fgdRNhv3yWAyh2OScoEtWl+lP2nh5Kus7b7 q0HNUFA3Twxjkb+eYWU2RPLaySNEV6TEwNVxOQgDWpAQgvITbzcT7bZQIpEL2hctAGXs 7K3r8eKRlri9OCj3vhY7AJuSA7bM84FaeQoe4H3l/YESJYxBGV8+YABZE5RGACA0k52Z 2O8IZ/wy6dHJhdx/DYWbS0BITDBJNo+zxyNVRJD4kiwOyKRwW+thCjLYiNHDkgVJm3Vg NwbTT5fP+G4kAFa5+pgBjIAofiDv/kBI/UzwgYCe9NC9B/h+xTPS+RXLiyQpvsrK5PZA iqLw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@6wind-com.20150623.gappssmtp.com header.s=20150623 header.b=Q79vyAta; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id t10si8741910plh.91.2019.02.13.07.58.44; Wed, 13 Feb 2019 07:59:01 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@6wind-com.20150623.gappssmtp.com header.s=20150623 header.b=Q79vyAta; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2391995AbfBMPbz (ORCPT + 99 others); Wed, 13 Feb 2019 10:31:55 -0500 Received: from mail-wm1-f67.google.com ([209.85.128.67]:51990 "EHLO mail-wm1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2391894AbfBMPby (ORCPT ); Wed, 13 Feb 2019 10:31:54 -0500 Received: by mail-wm1-f67.google.com with SMTP id b11so2961028wmj.1 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=V64SS5AiyrP9kNGxmo3ou1uqOll7TiKOGvdZi2BNVYiKCcgx+qka++8msKNu4jcmd0 hMPvYJxUeKKwQbRNCOM8Ur2LqcGigVBbbG2TJF0Khqh2YraVNbNEAryOQNFV6TEZk2Ud CELrIo3Hz13r5kddonSimw7sS1ViWmkMJjlJ/X+JzCyt5BXf4rKGUixXvoXnDi5EwD8a ZUJ/puEA14G9Zu7WqizsJ9roLpmaTg08LZNFYNBiUTcsHXu9VHxY+NBK8XBLXtTy+6D9 ceM4ZVBBqbgmfnqCqxqE9zMPrGIOhxwD1t2f94CeiVMXzGvPmic4mtzjaQLtqKaV9ZcL x3sA== X-Gm-Message-State: AHQUAuaEoEuuLQn0phVM7w72V5OLVekoTIMjef7SOPfePtA/uUvF9p0A KFh3SzaHpJUeEjSIUbm49WUb+16eN/M= 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: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@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