From owner-freebsd-net@FreeBSD.ORG Fri Mar 30 04:28:47 2012 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8B5EF106566C for ; Fri, 30 Mar 2012 04:28:47 +0000 (UTC) (envelope-from qing.li@bluecoat.com) Received: from plsvl-mailgw-01.bluecoat.com (plsvl-mailgw-01.bluecoat.com [199.91.133.11]) by mx1.freebsd.org (Postfix) with ESMTP id 6D35F8FC0A for ; Fri, 30 Mar 2012 04:28:47 +0000 (UTC) Received: from PWSVL-EXCHTS-01.internal.cacheflow.com (unknown [10.2.2.122]) by plsvl-mailgw-01.bluecoat.com (Postfix) with ESMTP id 7231381A1B5; Thu, 29 Mar 2012 21:25:32 -0700 (PDT) Received: from pwsvl-excmbx-05.internal.cacheflow.com ([fe80::f848:d461:9aa9:59a8]) by PWSVL-EXCHTS-01.internal.cacheflow.com ([fe80::5c50:e2ba:8115:4223%20]) with mapi id 14.01.0289.001; Thu, 29 Mar 2012 21:28:40 -0700 From: "Li, Qing" To: Ryan Stone , freebsd-net Thread-Topic: Removing an IPv6 address does not remove NDP entries on that subnet Thread-Index: AQHNDfXGw+n6xQubT0ubQhqUaNrA/5aCPeZA Date: Fri, 30 Mar 2012 04:28:39 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.2.2.106] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Cc: Subject: RE: Removing an IPv6 address does not remove NDP entries on that subnet X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 30 Mar 2012 04:28:47 -0000 >=20 > Currently, if you remove an IPv4 address from an interface, all ARP > cache entries on its subnet are invalidated. However, the same thing > is not done for NDP cache entries when an IPv6 address is removed*. > Is this correct behaviour? It seems weird to have IPv4 and IPv6 > behave differently. >=20 Yes, the behavior is different between IPv4 and IPv6 because=20 IPv6 manages prefixes and addresses separately. In IPv4 deleting=20 an address implies the prefix is also being deleted, that's not=20 the case with IPv6. >=20 > * In a way this is a good thing as in6_lltable_prefix_free() is > guaranteed to crash your kernel in two different ways, and that's not > counting the race conditions that it's subject to. > Could you please elaborate with some details on the two different ways in6_lltable_prefix_free() crashes the kernel definitively ? --Qing