[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