From patchwork Wed Jan 4 23:01:01 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mahesh Bandewar X-Patchwork-Id: 711164 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3tv61Y06jXz9s2G for ; Thu, 5 Jan 2017 10:08:33 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=bandewar-net.20150623.gappssmtp.com header.i=@bandewar-net.20150623.gappssmtp.com header.b="qv6AfDNO"; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S969124AbdADXI0 (ORCPT ); Wed, 4 Jan 2017 18:08:26 -0500 Received: from mail-pg0-f68.google.com ([74.125.83.68]:33856 "EHLO mail-pg0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751998AbdADXIZ (ORCPT ); Wed, 4 Jan 2017 18:08:25 -0500 Received: by mail-pg0-f68.google.com with SMTP id b1so38545466pgc.1 for ; Wed, 04 Jan 2017 15:08:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bandewar-net.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id; bh=Paaq3bzhzcwV+m+wBJ1vVAV7oU0XjCO9Wg+pRdlJojQ=; b=qv6AfDNOMbBuhTxuZOpsDaxDi3CL0hZqZnTnuE8Yf2AZQ68rwmXX/ay1MC8VApVTdz ZAX3bvlCd2CRhSgiSaNI81UAB5ujwje3YU+P0JdE/c2CS2MZDziy+n4uI0o5yM4JDvmM lq6ZAvd+KzaciFpQzvy4E8OVwXkGnvZNPlPFVYWp2HhKjd0EFwUg9OVEI1x+LZwUPgG4 5E0/Xhmq7KO0Pz32z7YbK3tIRNMZHwu11owyQoSwjrwCUY21en2RD1Sr10hqvLf7nKYs q3rY0CMpKTXGuOnUaR5O0P/PJMnyYMdS5ZUc5A6JMJD5QLCjC4Z4kvguJIbVNCG+kKru 7Pjw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=Paaq3bzhzcwV+m+wBJ1vVAV7oU0XjCO9Wg+pRdlJojQ=; b=GBspLwmJPBHFxUAd5jcZc+W+0TvN6xCDv2WYQSz5kw2WWDl92Eu8uGRVPxjAOSvg+4 6peNz1sIki1X5FYEK91p30Mw0b+TVQRz/WjvLHCxZL8PFYaFKEW/3ZDGTubx2ydTo3BB REVSI9rzw53eDXkNmqy1YvylwYvj8SbaPocbH1usHcxXwKP1xds6qZOV70PqgzJRqmBQ IxizlPWHL0HvC/lvEeuY/PW27aq5TsRp7igKEZTSlDsQsDlCllG/rAnxTtJs8QY4dqAP S+nbwv+8T0a1y8go5wNhPhx52NUslRRFwy70RaZJRiFDGqVWSdIuGYcOKIPveKJKXCC0 GlpA== X-Gm-Message-State: AIkVDXJXyaTphx6uIPZWjCbzdLBIFGwoM5/8Tp//TTUM4YoAtKBJ7aaiJ5gMdtis25VwMg== X-Received: by 10.99.174.4 with SMTP id q4mr125852905pgf.178.1483570867549; Wed, 04 Jan 2017 15:01:07 -0800 (PST) Received: from localhost ([2620:0:1000:3012:f0a9:20d:926d:f3cf]) by smtp.gmail.com with ESMTPSA id 16sm149127786pfk.54.2017.01.04.15.01.06 (version=TLS1_2 cipher=AES128-SHA bits=128/128); Wed, 04 Jan 2017 15:01:06 -0800 (PST) From: Mahesh Bandewar To: David Miller Cc: netdev , Mahesh Bandewar , Mahesh Bandewar , Hideaki YOSHIFUJI , Patrick McHardy , Hannes Frederic Sowa Subject: [RFC PATCH next] ipv6: do not send RTM_DELADDR for tentative addresses Date: Wed, 4 Jan 2017 15:01:01 -0800 Message-Id: <20170104230101.17470-1-mahesh@bandewar.net> X-Mailer: git-send-email 2.11.0.390.gc69c2f50cf-goog Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Mahesh Bandewar RTM_NEWADDR notification is sent when IFA_F_TENTATIVE is cleared from the address. So if the address is added and deleted before DAD probes completes, the RTM_DELADDR will be sent for which there was no RTM_NEWADDR causing asymmetry in notification. However if the same logic is used while sending RTM_DELADDR notification, this asymmetry can be avoided. Signed-off-by: Mahesh Bandewar CC: Hideaki YOSHIFUJI CC: Patrick McHardy CC: Hannes Frederic Sowa --- net/ipv6/addrconf.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c index c1e124bc8e1e..ac9bd5620f81 100644 --- a/net/ipv6/addrconf.c +++ b/net/ipv6/addrconf.c @@ -4888,6 +4888,13 @@ static void inet6_ifa_notify(int event, struct inet6_ifaddr *ifa) struct net *net = dev_net(ifa->idev->dev); int err = -ENOBUFS; + /* Don't send DELADDR notification for TENTATIVE address, + * since NEWADDR notification is sent only after removing + * TENTATIVE flag. + */ + if (ifa->flags & IFA_F_TENTATIVE && event == RTM_DELADDR) + return; + skb = nlmsg_new(inet6_ifaddr_msgsize(), GFP_ATOMIC); if (!skb) goto errout;