summaryrefslogtreecommitdiff
path: root/usr.sbin/ospfd
AgeCommit message (Collapse)Author
2005-10-26some unneeded #includes; ok claudio@Kevin Steves
2005-10-250) ospfctl doesn't use ospfd.conf so remove that from FILESKevin Steves
1) add /var/run/ospfd.sock to ospfd and ospfctl FILES 2) add .Xr ospfd.conf 5 to ospfctl SEE ALSO ok claudio@ jmc@
2005-10-21htons() instead of ntohs() when going from host to network.Claudio Jeker
2005-10-21Revert part of rev 1.14. For now queue LSAs to all neighbors if the interfaceClaudio Jeker
is in state BACKUP or DR -- even to the DR. This causes unneeded retransmission of LSAs but solves a problem with self originated ones. The BDR was no longer capable to reliably flood self originated LSA. Better solution will follow. Reported by stevesk@
2005-10-19small cleanups while reading; ok claudio@Kevin Steves
2005-10-19Add neighbor ID in warning and use correct function names.Claudio Jeker
2005-10-19fix some spellings in comments.Claudio Jeker
2005-10-19header cleaning; ok claudio@Kevin Steves
2005-10-19use string.h; ok claudio@Kevin Steves
2005-10-18Simplify code a bit. OK norby@Claudio Jeker
2005-10-18Cleanup interface code a minimal bit. There is no need for if_shutdown(),Claudio Jeker
especially it got called in the wrong place. OK norby@
2005-10-18Better warning for non equal MTU in the database phase. Instead of justClaudio Jeker
whining that the MTU differs tell actually what is expected and what was sent. OK norby@
2005-10-18The kroute nexthop stuff was removed long time ago. So remove theseClaudio Jeker
function prototypes too.
2005-10-18Correct log_debug(). Found while scrolling through that file.Claudio Jeker
2005-10-13Fix a memory leak in the ospf engine. First of all ospfd did not track if aClaudio Jeker
LSA was already queued on nbr self. So after the first round -- where the lsa was queued -- ospfd would remove it again in a second run. That was not enough but the LSA was removed from the wrong neighbor -- nbr instead of iface->self. LIST_REMOVE does not track the queue and so that resulted in some strangeness (especially the lsa_cache did not get cleared). OK norby@
2005-10-13Correctly queue ls updates on the retransmission lists.Claudio Jeker
First of all it is not clever to set queued before we actually queue something -- unless queued is set. If ospfd is running as BDR don't add updates to the retransmission list to the DR. OK norby@
2005-10-12Correct function name in warning.Claudio Jeker
2005-10-12Revert last commit. That file was not intended to be commited.Claudio Jeker
2005-10-12Fix the flooding procedure. Violate the RFC else many BAD_LS_REQ events andClaudio Jeker
session drops happend while booting up. If a router is conected to a other router over two different interface one session will be unable to load until the other one is in state FULL. ospfd no longer issues a BAD_LS_REQ event if the LSA is equal to the one in table but if the sent lsa is older a BAD_LS_REQ event is still issued. OK norby@
2005-10-12Fix a massive memory leak in the RDE. ospfd leaked every ls update unlessClaudio Jeker
lsa_add() was called (which is just one specific case of many) OK norby@
2005-10-12If router is DR or BDR join the AllDRouter list (and leave it if otherwise).Claudio Jeker
OK norby@
2005-10-12Minor cleanup. Use iface->state & IF_STA_DRORBDR as used in other placesClaudio Jeker
instead of iface->state != (IF_STA_DR | IF_STA_BACKUP). OK norby@
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-10-03typoMathieu Sauve-Frankel
ok claudio@
2005-09-29Show the time a neighbor was DOWN instead of counting down fromClaudio Jeker
DEFAULT_NBR_TMOUT. Makes it easy to see since when a peer is dead. OK norby@ some time ago
2005-09-28- use proper function name in log messageMathieu Sauve-Frankel
ok norby@
2005-09-24- add auth_type and auth_keyid to struct ctl_ifaceMathieu Sauve-Frankel
- have ospfctl tell us when we are using authentication with 'show interface' ok claudio@ norby@
2005-09-17- add get_rtr_id() based on bgpd's get_bgpid()Mathieu Sauve-Frankel
- remove rtr_id from struct iface we don't need to keep a copy of this value per interface - replace all references to iface->rtr_id.s_addr with calls to ospfe_rtr_id() ok claudio@ norby@
2005-09-15auth-md-keyid 0 is valid but is not allowed on Cis^H^Hrap routers.Claudio Jeker
Default to id 1 and mention it in the man page. From a discussion with msf@ OK norby@
2005-09-15Correctly handle loopback interfaces. Mark them as point-to-point networksClaudio Jeker
that are in loopback mode. With this it is possible to use lo1 to hold the loopback address of the router as done often on ciscos etc. Problem found and fix tested by jakob@ OK norby@
2005-09-01rt_lookup() did not respect the route node invalid flag and so AS-extClaudio Jeker
routes where not cleared even though the advertising router was no longer reachable. Same problem has the rt_dump() function that is used for ospfctl show rib. Tested by me and norby@ OK norby@ deraadt@
2005-08-30Fix one of the most fragile part of ospfd -- the interface election code.Claudio Jeker
One of the main problems is that the RFC is very unprecise about the process and so a bit of guessing and "violating" the RFC is needed. The problem was that on fast restarts ospfd computed wrong DR and BDR routers. OK norby@ deraadt@
2005-08-30Fix a bug in the nexthop calculation for complex networks. The result was aClaudio Jeker
routing table where most entries used the local interface IP as nexthop. This bug was found by jakob@ and he verified that it fixes his problems. Additional tests by me and norby@. OK norby@ deraadt@
2005-08-15Fix possible race condition in signal handler.Esben Norby
Report and fix from Micheal Knudsen. Prep, test and OK claudio@
2005-08-11EINTR, and a little KNF in packet.cHenning Brauer
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-08-08Correctly order LSA/route entries. Also prefer network vertices over routerClaudio Jeker
ones in the candidate list. Be more careful about LS_INFINITY as it is possible that the cost overflows in the calculation (checking for == is in some cases wrong). Simplify the code a bit. Tested and OK norby@
2005-08-08tab before newline.Claudio Jeker
2005-06-28Make it possible to specify interfaces just by using "interface em0" withoutClaudio Jeker
a {} block. Only drawback is that it is no longer possible to do "interface em0\n{ ...". OK henning@ norby@ some time ago
2005-06-27Mark connected routes (routes without a nexthop) in the rib. Without thisClaudio Jeker
as-ext routes would select a wrong nexthop if the forwarding router is directly connected. OK, help and debugging norby@
2005-06-27Don't let /32 DT_NET routes override DT_RTR routes. This should helpClaudio Jeker
setups with /32 loopback networks. OK norby@
2005-06-26typo by claudioTheo de Raadt
2005-06-26Don't htonl() something that is already in network byte order. AS-Ext routesClaudio Jeker
suffered because of this. Normaly seen because they where not added to the rib or ended up with a bad nexthop. This is what you get for stealing code from bgpd :( OK norby@
2005-06-26Do not automaticaly announce routes that have RTF_DYNAMIC set. These routesClaudio Jeker
are e.g. created by the PMTU code and are removed after some time. OK norby@
2005-06-21Backout/Disable the change introduced in rev. 1.26. Don't start the helloClaudio Jeker
timer in IF_STA_WAITING. We are not ready for this because the RFC is totaly fucked up in that specific area causing many issues on fast reloads. OK norby@
2005-06-21The ev_sighup event handler should handle SIGHUP and not SIGTERM.Claudio Jeker
SIGTERM is already handled by ev_sigterm.
2005-06-13One additional if_act_elect bug. Neighbors in preliminary state (down, attemptClaudio Jeker
and init) are not electable not only neighbors that are in state down. OK norby@
2005-06-13Doh. Fix another stupid copy paste typo. Once again BDR != DR.Claudio Jeker
OK norby@
2005-06-13add a new fsm transition for IF_EVT_WTIMER in state IF_STA_ANY that simplyClaudio Jeker
ignores the event. This removes the warning "fsm_if: interface em0, event WAITTIMER not expected in state DROTHER" in case of a quick startup. OK norby@