summaryrefslogtreecommitdiff
path: root/usr.sbin/ospfd/rde_lsdb.c
AgeCommit message (Collapse)Author
2006-04-25The return value of lsa_num_links is an u_int16_t tnd not int. Found by lint.Claudio Jeker
2006-03-22Move the AS external LSA tree out of struct ospfd_config. This simplifiesClaudio Jeker
the code and makes config reloads easier. OK norby@
2006-03-13The return value of the start/stop timer functions is almost never checked.Claudio Jeker
Switch them to void functions and check if evtimer_add/del fails -- in which case we fatal() as there is no useful way to recover in such an event. OK norby@
2006-03-08Spaces and other minor cleanup.Claudio Jeker
2006-02-23Prevent ospfd from crashing when LSA Ext's are changed.Esben Norby
ok claudio@
2006-02-15Do not try to dirty an area when adding LSA ext.Esben Norby
OK henning@
2006-02-09Don't calculate all areas every time the link state database is updated,Esben Norby
only calculate the dirty ones. ok claudio@
2006-01-05Improve how ospfd copes with time changes.Esben Norby
ok claudio@
2005-11-04The maximal rate LSA can be updated is all MIN_LS_INTERVAL seconds and notClaudio Jeker
MIN_LS_ARRIVAL. MIN_LS_ARRIVAL is used to limit the rate of incomming updates.
2005-11-04Set the vertex timestamp as soon as possible giving ospfd a chance to recoverClaudio Jeker
from time jumps.
2005-10-12In one special condition ospfd sent out ls updates without updating theClaudio Jeker
checksum. Because of the invalid checksum the other routers dropped it and so the update was retransmitted over and over again. Now we update the checksum in lsa_merge() after bumping the sequence number instead of hoping that lsa_timeout() -> lsa_refresh() will do it for us. OK norby@
2005-10-06I should have read the RFC more carefully.Claudio Jeker
...if only one of the instances has its LS age field set to MaxAge The important part is "only one", so check if both LSA are at MaxAge and in that case return 0 -- the LSAs are identical. This fixes a super nasty doom loop between two ospfd sending each other LSA updates at an incredible speed. Tested and OK norby@
2005-08-08Try to do an SPF recalculation only if the LS DB changed.Claudio Jeker
This is still not perfect as on ABRs it is only necessary to recalculate the area that got changed and not all others too. More to come but it is a good start. OK norby@
2005-05-25spellingEsben Norby
2005-05-25spellingDavid Krause
2005-05-24An lsa with age == MAX_AGE is always different and needs to be merged.Claudio Jeker
This solves a bug that made it impossible to remove a LSA by premature aging. OK norby@
2005-05-24In lsa_merge() check if the LSA changed. If it did not change just free theClaudio Jeker
new one and use the old one. This will reduce the amount of updates sent. OK norby@
2005-05-24Fix some obvious issues in the summary LSA origination.Claudio Jeker
Actually remove summary LSA if the LSA they refer to are no longer valid. Set correct cost on the summary LSA. Announce type 4 summary LSA. OK norby@
2005-05-12Every time a LSA is returned from a lookup lsa_age() it.Claudio Jeker
Also move the lsa_age() prototype to rde.h so that we can access it from the SPF code. OK norby@
2005-05-12Add "show database asbr/external/network/router/self-originate/summary"Esben Norby
to ospfctl. Show detailed information about the LSAs in the Link State Database. ok claudio@
2005-04-12spellingTheo de Raadt
2005-02-27SPF and route table calculation.Esben Norby
Calculate Shortest Path Tree for each area known in the link state database. The Shortest Path Tree is used as input for route table calculation. Route tabled is calculated and the result is inserted into the kernel route table. ok claudio@
2005-02-09Fix premature ageing of self originating LSA. Still not perfect but betterClaudio Jeker
than before where it just failed to work.
2005-02-09Use log_warnx() in lsa_check() to report bad LSA settings.Claudio Jeker
2005-02-09Rework of self originated LSA. First of all the code to generate the LSAClaudio Jeker
is rewritten to use the dynamic buffer api introduced lately. Add missing parts in the RDE to merge these LSA originated from the OE into the LSDB with correct seq_num, etc. Add hooks to the neighbor and interface fsm so that the LSA get updated if needed. This is not perfect, still many things are missing. OK norby@
2005-02-08The LSA seq_num should be unsigned as it is expected by ntohl/htonl() evenClaudio Jeker
though the seq_num needs to be compared as signed number. No idea how IETF came up with such a stupid idea especially because the seq_num is not allowed to wrap. requested by henning@ OK henning@
2005-02-07spelling fixesDavid Krause
2005-02-04Add sanity checks for AS-external LSA. Refine some other checks to be asClaudio Jeker
strict as possible. OK norby@
2005-02-02excessive ()Henning Brauer
2005-02-02KNFHenning Brauer
2005-01-28Welcome ospfdClaudio Jeker
started by Esben Norby some time ago by using the imsg/three process framework of bgpd. He implemented the basic concept plus the ospf finite state machines. Later I joined and helped him cleanup, debug and extend his work. Right now it is not particularly useful, major parts are still missing but is imported to allow more people to work on it. status: The basic protocol works for broadcast networks and the LS database is synchronized and updated. It is not possible to be DR or BDR on a network and other interface types like point-to-point are not yet supported. The shortest path tree is not calculated and so no routing information is exchanged with the kernel FIB. Not yet connected to the builds. OK henning@