From owner-freebsd-net@FreeBSD.ORG Tue Apr 19 12:03:30 2005 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 561DE16A4D0; Tue, 19 Apr 2005 12:03:30 +0000 (GMT) Received: from relay.bestcom.ru (relay.bestcom.ru [217.72.144.5]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3FB6243D39; Tue, 19 Apr 2005 12:03:29 +0000 (GMT) (envelope-from glebius@FreeBSD.org) Received: from cell.sick.ru (root@cell.sick.ru [217.72.144.68]) by relay.bestcom.ru (8.13.1/8.12.9) with ESMTP id j3JC3PlZ066527 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=FAIL); Tue, 19 Apr 2005 16:03:26 +0400 (MSD) (envelope-from glebius@FreeBSD.org) Received: from cell.sick.ru (glebius@localhost [127.0.0.1]) by cell.sick.ru (8.13.1/8.12.8) with ESMTP id j3JC3OmU005922 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 19 Apr 2005 16:03:25 +0400 (MSD) (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by cell.sick.ru (8.13.1/8.13.1/Submit) id j3JC3OXq005920; Tue, 19 Apr 2005 16:03:24 +0400 (MSD) (envelope-from glebius@FreeBSD.org) X-Authentication-Warning: cell.sick.ru: glebius set sender to glebius@FreeBSD.org using -f Date: Tue, 19 Apr 2005 16:03:24 +0400 From: Gleb Smirnoff To: Andre Oppermann Message-ID: <20050419120324.GA5862@cell.sick.ru> References: <20050419064747.GC734@cell.sick.ru> <4264D430.D39B81D0@freebsd.org> Mime-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Disposition: inline In-Reply-To: <4264D430.D39B81D0@freebsd.org> User-Agent: Mutt/1.5.6i X-Virus-Scanned: ClamAV version devel-20050125, clamav-milter version 0.80ff on relay.bestcom.ru X-Virus-Status: Clean cc: net@FreeBSD.org Subject: Re: if_link_state_change() patch for review X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Apr 2005 12:03:30 -0000 Andre, On Tue, Apr 19, 2005 at 11:49:36AM +0200, Andre Oppermann wrote: A> > we are working on fixing LORs in if_link_state_change() path, and A> > adding possibility to call if_link_state_change() pseudorecursively, A> > when link of interface depends on link of the other. A> > A> > I'm posting this patch for wider review. An important point about it A> > is that, if several link events occur VERY quickly, only the last one A> > will be processed. I don't know of any software that will be broken by A> > such behavoir. If you know some, please tell me. A> A> I assume this is per interface and not for all interfaces together. Yes, sure. A> You have to be careful here indeed. If the link is rapidly flapping A> then you only want to report changes in status. For example when A> it going down, up, down and all these events got queued it doesn't A> make sense to report down->down. This could indeed confuse some A> tools and isn't very useful. Either you check the first event vs. A> the last one if there is a change in state or you just take the events A> as trigger to have a look at the interface status when the ithread A> runs. There however you'd have to track the previous state to detect A> changes. I do not know any applications which would be confused, yet. Also, while event coalescing is possible theoretically, I failed to reproduce it. I've added a debugging printf, so we will see if anyone experiences these coalescing events at all. -- Totus tuus, Glebius. GLEBIUS-RIPN GLEB-RIPE