summaryrefslogtreecommitdiff
path: root/usr.sbin/ospfd
AgeCommit message (Collapse)Author
2011-09-16Rather than reloading kernel routes immediately when an RTM_DESYNC is seen,Stuart Henderson
set (or extend) a timer and only reload when this expires. Avoids repeatedly dumping full kernel routes (thus generating more load) when the machine has problems keeping up with messages on the route socket. (if you see lots of repeated "reloading interface list and routing table" in ospfd logs, this will help). Suggestions/ok claudio@.
2011-08-20Decouple log_verbose() from log_init() so the verbose flag stays set withStuart Henderson
"ospfd -v" (previously only "-vd" worked). Feedback on earlier implementation from henning@ blambert@ claudio@, ok claudio@
2011-07-04LINK_STATE_IS_UP() cleanup userland part. There is no need to specialClaudio Jeker
case carp(4) interfaces anymore. LINK_STATE_IS_UP() almost always does the right job. OK deraadt@ henning@ This needs a -current kernel or link state may be not reported correctly.
2011-06-21Convert SO_RTABLE's protocol level to the SOL_SOCKET; ok claudioMike Belopuhov
2011-05-24Fix nexthop calculation for directly connected P2P links. connectedClaudio Jeker
may only be set on directly connected networks but not on router nodes which are used by the P2P links. Fix for PR 6597. OK sthen@
2011-05-09First bits to support opaque LSA. Type-9, 10 and 11 are LSA that canClaudio Jeker
hold about any data you like and is used for things like greaceful reload. Implement the basic redistribute logic and LSDB handling but the data sent is currently not looked at. Tested and OK sthen@
2011-05-06Do not special case loopback interfaces on init. Instead force themClaudio Jeker
to IF_STA_LOOPBACK in if_act_start() this way they will repsect IFF_UP on startup. Also remove a now no longer needed workaround when reloading interfaces. Initial diff provided by Patrick Coleman. OK dlg@
2011-05-02More spring cleaningClaudio Jeker
2011-05-02Wrap some long lines and other cleanup. No functional change.Claudio Jeker
2011-05-02Some KNF, some other cleanup, fix some fatalx() messages.Claudio Jeker
No functional change
2011-04-30no need to escape |, pointed out by jmc@Stuart Henderson
"it's worth killing, if just to stop it being copied all over the place"
2011-03-25Rewrite the lsack generation. Make it more like the lsupdate code.Claudio Jeker
Removes some of the rather strange packet handling. Tested by a few especially sthen@
2011-03-24Fix some memory leaks. Mainly better cleanup on shutdown but the v_nexthopClaudio Jeker
leak is a runtime one. OK bluhm@
2011-03-08It was not possible to send out LS updates larger then the MTU.Claudio Jeker
Change the code in such a way that single huge LSA get fragmented but avoid IP fragmentation when packing multiple ones. Problem found and fix tested by Benjamin Papillon. Tested & OK sthen@
2011-03-08Instead of using IBUF_READ_SIZE as upper bound when building variousClaudio Jeker
packets use a better upper bound based on IP_MAXPACKET. Also change one IBUF_READ_SIZE to READ_BUF_SIZE since that is what the rest of the code uses. Tested and OK sthen@
2011-03-04Indent block correctly.Claudio Jeker
2011-02-02s/microseconds/milliseconds/, from Stijn on bugs@.Stuart Henderson
"whichever one is a thousandth of a second is the one i am ok with" dlg@
2011-01-18When fixing conflicts make sure the right vertex is passed to lsa_merge()Claudio Jeker
so that the correct sequence number is used for the LSA. So re-lookup the vertex before calling lsa_merge(). Problem found and diff OK bluhm@
2011-01-17Fix redistribution of overlapping routes (e.g 10/8 and 10.0/16).Claudio Jeker
Select a different LS ID in case of a conflict. The most specific route keeps the LS ID the others will try their broadcast addr first and then count down. The redistributed asext LSA are now stored in a RB tree to make this all work. Tested by a few people no problems seen so far.
2011-01-12Kill struct rroute and move the metric to struct kroute. ThisClaudio Jeker
disturbed me for a long time and makes upcomming work a bit easier. OK sthen@, phessler@
2010-12-13Do not use a carp address as ospf router id because it is not unique.Alexander Bluhm
ok claudio@
2010-10-14kr_redistribute() needs to be called with the head node of a multipathClaudio Jeker
chain. Fix kroute_insert() and rtmsg_process() to correctly do this. OK bluhm@
2010-10-01Reword a commentClaudio Jeker
2010-09-25When counting the lsa also build the sum of the ls_checksums. This can beClaudio Jeker
used to quickly verify if two LSDBs are in sync. Other systems do the same. OK dlg@
2010-09-02remove trailing spaces and tabs from source code; no binary changesIgor Sobrado
(verified by both sthen@ and me). ok sthen@; "just commit it" claudio@
2010-08-03fix linecount bug with comments spanning multiple linesHenning Brauer
problem reported with the obvious fix for bgpd by Sebastian Benoit <benoit-lists at fb12.de>, also PR 6432 applied to all the others by yours truly. ok theo isn't it amazing how far this parser (and more) spread?
2010-07-19When removing an announced prefix inherit the metric and ext_tag from theClaudio Jeker
LSA that is currently in the tree. Pruning with default metrics is bad since the checksum of the LSA is different and therefor an additional update cycle is needed to convince the other systems. OK bluhm@, sthen@
2010-07-19lsa_refresh() was able to resurect dead LSA resulting in zombie anouncements.Claudio Jeker
Make sure that if the LSA is managed by this router that we force timed-out LSA to stay timed out which causes them to be pruned in the secound round. This problem can show up when not exactly the same LSA is pruned because the checksum is used as tiebreaker resulting in indeterministic selection of which LSA is considered newer. OK bluhm@, sthen@
2010-07-14handle RTM_DESYNC. if the kernel says we're out of sync with the kernelDavid Gwynne
routing table and interface list, do a reload of the kernel state. ive been running this in production for 2 or 3 weeks. tested by sthen@ ok sthen@ claudio@ deraadt@ code written by andrew sallaway at the univeristy of queensland.
2010-07-12Merge duplicate log messages into one log_warn().Alexander Bluhm
ok claudio@
2010-07-09ospfd is a AF_INET only routing daemon so limit the routing socket to thatClaudio Jeker
af. This is possible since this filtering no longer blocks RTM_IFINFO. OK henning@
2010-07-03Fix the naming of interfaces and variables for rdomains and rtablesPhilip Guenthe
and make it possible to bind sockets (including listening sockets!) to rtables and not just rdomains. This changes the name of the system calls, socket option, and ioctl. After building with this you should remove the files /usr/share/man/cat2/[gs]etrdomain.0. Since this removes the existing [gs]etrdomain() system calls, the libc major is bumped. Written by claudio@, criticized^Wcritiqued by me
2010-07-01Fix memory leak by adding a missing free(lsa).Alexander Bluhm
ok claudio@
2010-06-28Fix IFADDRDEL imsg error message.Alexander Bluhm
ok claudio@
2010-06-27fix rtmsg_process to return on an error during processing rather thanDavid Gwynne
continue. fix kr_dispatch_msg so it acts when rtmsg_process fails. from andrew sallaway based on discussion with claudio@ ok claudio@
2010-06-26Use offsetof() instead of writing our own version (...which generatesPhilip Guenthe
warnings from gcc4) os claudio@
2010-06-23127/8 is INADDR_LOOPBACK & IN_CLASSA_NET the kroute code does notClaudio Jeker
automagicaly mask the addresses. While there kill a #ifdef that no longer makes sense since it is the least problem for portable versions.
2010-06-23fetchifs and fetchtable return -1 on error, not !0. in fact, they returnDavid Gwynne
the number of bytes they processed from the kernel on success, so testing against 0 meant that the fib reload code always dropped out early. found by andrew sallaway ok claudio@
2010-05-26Move imsg into libutil and add a man page.Nicholas Marriott
Minor bump for libutil. Previous versions of this diff and man page looked at by various people. "you should just commit" deraadt
2010-05-26Rename some imsg bits to make namespace collisions less likely buf toNicholas Marriott
ibuf, buf_read to ibuf_read, READ_BUF_SIZE to IBUF_READ_SIZE. ok henning gilles claudio jacekm deraadt
2010-05-24now that we can handle >9 args, put "-D name=value" on one line: it's a bitJason McIntyre
more readable, and fixes a spacing bug we had in smtpd.8;
2010-05-18Spacing.Claudio Jeker
2010-05-17more then -> more than;Jason McIntyre
2010-05-14Use calloc() instead of malloc() to allocate the connection structure. ThisClaudio Jeker
way the memory is zeroed. This is equivalent to the relayd commit by reyk. OK reyk, jsg
2010-05-14When merging interfaces after a config reload, the fsm state for interfacesStuart Henderson
is forced into IF_STA_NEW so that if_init() can be called to setup timers etc. When a loopback interface is added to the config, this means there's no way to get to the correct state. Fix by avoiding changing an existing IF_STA_LOOPBACK and forcing loopback interfaces to be passive (otherwise skipping the if_init on an active interface causes problems). ok claudio@
2010-05-13typo: colision->collisionStuart Henderson
2010-05-07When failing to form an adjacency, log the interface name as wellStuart Henderson
as the neighbour. ok claudio@
2010-04-27imsg.h does not need sys/tree.h.Nicholas Marriott
ok eric
2010-04-07Remove XXX comment and just close received fd if calloc() fails.Nicholas Marriott
If this happens the imsg may no longer be usable as there may be queued messages, but this is a) already the case with the code now, and b) would be the case if recvmsg() fails anyway, so we can document that -1 from imsg_read() invalidates the struct imsgbuf. discussed with and ok eric
2010-04-02The rtm_errno check which was moved in the last commit should onlyStuart Henderson
be done for rtmsgs (which have an rtm_errno) and not ifmsgs (which have part of an if_data struct in that location). Fixes problems finding interface addresses at startup. ok claudio@