From owner-svn-src-all@FreeBSD.ORG Sat Apr 25 19:13:58 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5DF6E106566C; Sat, 25 Apr 2009 19:13:58 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from cyrus.watson.org (cyrus.watson.org [65.122.17.42]) by mx1.freebsd.org (Postfix) with ESMTP id 386A18FC19; Sat, 25 Apr 2009 19:13:58 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from fledge.watson.org (fledge.watson.org [65.122.17.41]) by cyrus.watson.org (Postfix) with ESMTPS id E6D9646B2C; Sat, 25 Apr 2009 15:13:57 -0400 (EDT) Date: Sat, 25 Apr 2009 20:13:57 +0100 (BST) From: Robert Watson X-X-Sender: robert@fledge.watson.org To: Bruce Simpson In-Reply-To: <49EEE63F.2060706@incunabulum.net> Message-ID: References: <200904212243.n3LMhW48027008@svn.freebsd.org> <49EEDB9C.8080409@incunabulum.net> <49EEE63F.2060706@incunabulum.net> User-Agent: Alpine 2.00 (BSF 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r191367 - head/sys/net X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 25 Apr 2009 19:13:58 -0000 On Wed, 22 Apr 2009, Bruce Simpson wrote: >> I'm not familiar with the workings of SSM, but my feeling is that it >> probably needs to take the (3) approach rather than (2) -- rather than >> preventing the ifnet from going away until a socket closes, it should >> detect that the ifnet is going away and take appropriate remedial action. >> Possibly it should detect when a similarly configured ifnet re-appears and >> consider attaching to that, but it will most likely be a different instance >> of struct ifnet, and there are semantic considerations. > > SSM isn't high traffic -- it actually reduces the chattiness of IGMP by > implementing per-interface output queues and state change report merges. > Same for MLDv2 in IPv6. Timeliness and stability are what counts, it's > control plane, not data plane. At the moment it mostly does (3) by doing an > ifindex lookup in the netisr dispatch callback before calling ip_output(). > > Of course if ip_output() were to look before it leapt, the book keeping > involved would go away. I have to stash the vimage context and ifindex in > the queued mbuf packet headers to implement this. > > Now that Giant is nuked, the netisr could be eliminated and the ifnet rlock > taken as it is before dispatching an entire chain. I only implemented a > netisr to allow the code to be back-ported, however I don't care about > back-porting any more -- it's too much effort and the time/funding budget > doesn't justify that amount of work. Have you thought about registering a callback with the ifnet_departure_event event handler to handle interfaces disappearing? Robert N M Watson Computer Laboratory University of Cambridge