No subject



Fri Jan 24 11:50:03 2003
Return-Path: xorp-cvs-admin@icir.org
Delivery-Date: Fri, 24 Jan 2003 11:51:03 -0800
Received: from wyvern.icir.org (wyvern.icir.org [192.150.187.14])
	by tigger.icir.org (8.12.3/8.12.3) with ESMTP id h0OJp3Rw091074
	for <atanu@tigger.icir.org>; Fri, 24 Jan 2003 11:51:03 -0800 (PST)
	(envelope-from xorp-cvs-admin@icir.org)
Received: from ICSI.Berkeley.EDU (fruitcake.ICSI.Berkeley.EDU [192.150.186.11])
	by wyvern.icir.org (8.12.3/8.12.3) with ESMTP id h0OJp260003017
	for <atanu@icir.org>; Fri, 24 Jan 2003 11:51:02 -0800 (PST)
	(envelope-from xorp-cvs-admin@icir.org)
Received: from fruitcake.icsi.Berkeley.EDU (localhost [127.0.0.1])
	by ICSI.Berkeley.EDU (8.9.0/8.9.0) with ESMTP id LAA09969;
	Fri, 24 Jan 2003 11:51:02 -0800 (PST)
Received: from wyvern.icir.org (wyvern.icir.org [192.150.187.14])
	by ICSI.Berkeley.EDU (8.9.0/8.9.0) with ESMTP id LAA09934
	for <xorp-cvs@icsi.berkeley.edu>; Fri, 24 Jan 2003 11:50:03 -0800 (PST)
Received: from xorpc.icir.org (xorpc.icir.org [192.150.187.68])
	by wyvern.icir.org (8.12.3/8.12.3) with ESMTP id h0OJo360002995
	for <xorp-cvs@icir.org>; Fri, 24 Jan 2003 11:50:03 -0800 (PST)
	(envelope-from pavlin@xorpc.icir.org)
Received: from xorpc.icir.org (localhost [127.0.0.1])
	by xorpc.icir.org (8.12.3/8.12.3) with ESMTP id h0OJo3NU017024
	for <xorp-cvs@icir.org>; Fri, 24 Jan 2003 11:50:03 -0800 (PST)
	(envelope-from pavlin@xorpc.icir.org)
Received: (from pavlin@localhost)
	by xorpc.icir.org (8.12.3/8.12.3/Submit) id h0OJo3pg017023;
	Fri, 24 Jan 2003 11:50:03 -0800 (PST)
	(envelope-from pavlin)
From: Pavlin Radoslavov <pavlin@icir.org>
Message-Id: <200301241950.h0OJo3pg017023@xorpc.icir.org>
Date:     Fri, 24 Jan 2003 11:50:03  ()
To: xorp-cvs@icir.org
Reply-To: pavlin@icir.org
Subject: [Xorp-cvs] XORP cvs commit: xorp/pim/ pim_mre.cc pim_mre_task.cc pim_mrt_task.cc
Sender: xorp-cvs-admin@icir.org
Errors-To: xorp-cvs-admin@icir.org
X-BeenThere: xorp-cvs@icir.org
X-Mailman-Version: 2.0
Precedence: bulk
List-Help: <mailto:xorp-cvs-request@icir.org?subject=help>
List-Post: <mailto:xorp-cvs@icir.org>
List-Subscribe: <http://mailman.ICSI.Berkeley.EDU/mailman/listinfo/xorp-cvs>,
	<mailto:xorp-cvs-request@icir.org?subject=subscribe>
List-Id: Mailing list for XORP CVS commit messages <xorp-cvs.icir.org>
List-Unsubscribe: <http://mailman.ICSI.Berkeley.EDU/mailman/listinfo/xorp-cvs>,
	<mailto:xorp-cvs-request@icir.org?subject=unsubscribe>

CVSROOT:	/usr/local/share/doc/apache/cvs
Module name:	xorp
Repository:	xorp/pim/
Changes by:	pavlin@xorpc.icir.org.	03/01/24 11:50:03

Modified files:
	xorp/pim/: pim_mre.cc pim_mre_task.cc pim_mrt_task.cc 

Log message:
	Fix the mechanism for deletion of PimMre entries:
	If an entry is marked for deletion, then schedule a task
	that will adjust the pointers from other related PimMre
	entries to that entry.
	When the task is executed, it will check first whether the
	entry is still a candidate for removal (e.g., if there was
	a Join message received right before this task was run).
	Only if the entry is still a candidate for removal, then pull
	it out of the multicast routing lookup table, and adjust
	the pointers to that entry.
	After all entries scheduled for removal with the same task
	have been processed and pulled out, then free the memory
	they are using.
	
	Previously, a PimMre routing entry was pulled-out of the lookup
	table right when the "PimMre delete" task was scheduled, and then
	the task had only to adjust the pointers to it and to free its
	memory.
	However, this created the race condition that there might be
	already some other tasks (scheduled to run before the
	"PimMre delete" task) that may be refering to (and modifying)
	this entry. If the PimMre entry was already pulled-out of
	the multicast routing lookup table, then those tasks will be
	modifying "half-dead" PimMre entry, and there will be
	some loss of information.

_______________________________________________
Xorp-cvs mailing list
Xorp-cvs@icir.org
http://mailman.ICSI.Berkeley.EDU/mailman/listinfo/xorp-cvs