[Xorp-cvs] XORP cvs commit: xorp/ospf

Atanu Ghosh atanu at icir.org
Tue Mar 11 13:45:03 PDT 2008


CVSROOT:	/usr/local/www/data/cvs
Module name:	xorp
Changes by:	atanu at chum.icir.org	2008-03-11 20:45:03 UTC

XORP CVS repository


Modified files:
	ospf          peer.cc 

Log message:
	When a neighbour is in state "Exchange" the router lists the contents
	of its LSA database to its peer.
	
	The router builds Database Description Packets containing its LSA
	database. All the LSA information may not fit into a single packet so
	multiple packets may need to be sent. A new Database Description
	Packet is sent only when the previous one has been acknowledged. The
	LSA database can change while  Database Description Packets are being
	exchanged, for example an LSA could be invalidated.
	
	The interface to the LSA database requires that when an LSA is
	rquested one must be present. A flag associated with each request
	denotes whether the current LSA is the last LSA. It should not
	therefore be possible to make a request when no LSAs are
	present. However, an LSA being invalidated between the construction of
	Database Description Packets would cause a problem.
	
	1) Database Description Packet constructed *one* LSA description left to
	transmit.
	2) Last LSA in database invalidated.
	3) Attempt to fetch next LSA when no more are present:
	[ 2008/03/07 11:55:06  FATAL xorp_ospfv2:3279 OSPF +2964
	area_router.cc get_entry_database ] Index too far 72 length 72
	
	The fix is to check before trying to build the next Description
	Description Packet that there is an LSA left in the database.
	
	Bug found by:   Yue Li <yueli.m at gmail.com>

Revision  Changes                               Path
1.306     +5 -1;  commitid: 1060347d6ef4b41a7;  xorp/ospf/peer.cc



More information about the Xorp-cvs mailing list