summaryrefslogtreecommitdiffstats
path: root/ospfd/ospf_ase.c
Commit message (Collapse)AuthorAgeFilesLines
* ospfd: use workqueue for ospf_ase_calculate_routePaul Jakma2010-02-051-23/+54
| | | | | | | | | | | | | | | | | | | | | | | | * The ospf_ase_calculate_timer can take a long time to run, as it scales O(# of AS-External LSAs), in domains with lots of external routes. Fix this by using a work-queue for the per-LSA processing, thus splitting it up a bit. * ospf_ase.h: (ospf_ase_calculate_route, ospf_ase_calculate_schedule) no need for these to be exported. * ospf_spf.c: (ospf_spf_calculate_timer) ospf_ase_calculate_schedule is gone. * ospfd.h: (struct ospf) add a work-queue for the AS-External route calculation. * ospf_ase.c: (ospf_ase_calc_completion) completion func, for when ase-calculation is done. Also have to take care to see if the timer needs to be rescheduled, which is the case if ospf->ase_calc is set again but there is no timer scheduled. (ospf_ase_calc_process) workqueue processing function, calls to the existing ospf_ase_calculate_route. (ospf_ase_calculate_timer) add to work-queue, instead of calling ospf_ase_calculate_route directly. (ospf_ase_calculate_timer_add) do the job of ospf_ase_calculate_schedule which can be removed. Set flag so we can tell if a timer schedule comes in while the previous timer is running.
* ospfd: External routes over PtoP must be directly connected.Paul Jakma2010-02-041-22/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | On Fri, 31 Jul 2009, Joakim Tjernlund wrote: > How can I do that? ASE is screwing with the P2P route and needs > some fixing. Perhaps you are suggesting to remove the check in ase > all togher(delete the whole for loop) and place it somewhere else? > I haven't looked at that possiblity and I am not convinced that it > is a good idea either. Well, what I'm curious about is how you don't see a similar issue with non-AS-external routes? Indeed, I wonder why we can't just apply your check much earlier - as/when we add routes to the intra-area routing table - and just get rid of that complete_direct_routes thing altogether. > ASE is forcing a nexthop.s_addr when it should not. So would this perhaps fix it too (and if so, possibly fix similar issues with other kinds of routes too)?: REPLACES "External routes over PtoP must be directly connected." by Joakim Tjernlund As all locally routes over PtoP interfaces are interface routes, one must also make sure that external routes over PtoP interfaces are directly connected. Cc: David Lamparter <equinox@diac24.net>
* ospfd: comment out unused functionStephen Hemminger2009-12-031-0/+2
|
* ospfd: Change struct ospf_path *oi to ifindex.Joakim Tjernlund2009-08-031-1/+2
| | | | | | * global: In struct ospf_path, change struct ospf_interface *oi to int ifindex. It is unsafe to reference *oi as an ospf interface can be deleted under your feet. Use a weak reference instead.
* [ospfd] compare ifIndex too when matching pathsJoakim Tjernlund2009-06-251-0/+2
| | | | | | ospf_path_lookup(), ospf_route_match_same() and ospf_ase_route_match_same() needs to compare if the interface matches too.
* [ospfd] external LSA route_unlock_node() fixesJoakim Tjernlund2009-06-251-10/+15
| | | | A few route_unlock_node() calls was missing.
* [ospfd] Allow ospf_lsa_unlock to NULL out callers' LSA pointers upon freePaul Jakma2006-07-261-9/+3
| | | | | | | | | | | | | | | | 2006-07-26 Paul Jakma <paul.jakma@sun.com> * ospf_lsa.{c,h}: (ospf_lsa_unlock) Change to take a double pointer to the LSA to be 'unlocked', so that, if the LSA is freed, the callers pointer to the LSA can be NULLed out, allowing any further use of that pointer to provoke a crash sooner rather than later. * ospf_*.c: (general) Adjust callers of ospf_lsa_unlock to match previous. Try annotate 'locking' somewhat to show which 'locks' are protecting what LSA reference, if not obvious. * ospf_opaque.c: (ospf_opaque_lsa_install) Trivial: remove useless goto, replace with return. * ospf_packet.c: (ospf_make_ls_ack) Trivial: merge two list loops, the dual-loop predated the delete-safe list-loop macro.
* 2005-09-30 Vincent Jardin <vincent.jardin@6wind.com>jardin2005-10-011-2/+0
| | | | | * ospf_dump.c, ospf_ia.c, ospf_spf.c, ospf_ase.c: remove unused DEBUG
* 2005-05-06 Paul Jakma <paul.jakma@sun.com>paul2005-05-061-7/+7
| | | | | | | | | | | | | | | | | | | | | | | * (general) extern and static qualifiers added. unspecified arguments in definitions fixed, typically they should be 'void'. function casts added for callbacks. Guards added to headers which lacked them. Proper headers included rather than relying on incomplete definitions. gcc noreturn function attribute where appropriate. * ospf_opaque.c: remove the private definition of ospf_lsa's ospf_lsa_refresh_delay. * ospf_lsa.h: export ospf_lsa_refresh_delay * ospf_packet.c: (ospf_make_md5_digest) make *auth_key const, correct thing to do - removes need for the casts later. * ospf_vty.c: Use vty.h's VTY_GET_INTEGER rather than ospf_vty's home-brewed versions, shuts up several warnings. * ospf_vty.h: remove VTY_GET_UINT32. VTY_GET_IPV4_ADDRESS and VTY_GET_IPV4_PREFIX moved to lib/vty.h. * ospf_zebra.c: (ospf_distribute_list_update_timer) hacky overloading of the THREAD_ARG pointer should at least use uintptr_t.
* 2005-04-07 Paul Jakma <paul.jakma@sun.com>quagga_post_listloop_cleanuppaul2005-04-071-46/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * (global): Fix up list loops to match changes in lib/linklist, and some basic auditing of usage. * configure.ac: define QUAGGA_NO_DEPRECATED_INTERFACES * HACKING: Add notes about deprecating interfaces and commands. * lib/linklist.h: Add usage comments. Rename getdata macro to listgetdata. Rename nextnode to listnextnode and fix its odd behaviour to be less dangerous. Make listgetdata macro assert node is not null, NULL list entries should be bug condition. ALL_LIST_ELEMENTS, new macro, forward-referencing macro for use with for loop, Suggested by Jim Carlson of Sun. Add ALL_LIST_ELEMENTS_RO for cases which obviously do not need the "safety" of previous macro. LISTNODE_ADD and DELETE macros renamed to ATTACH, DETACH, to distinguish from the similarly named functions, and reflect their effect better. Add a QUAGGA_NO_DEPRECATED_INTERFACES define guarded section with the old defines which were modified above, for backwards compatibility - guarded to prevent Quagga using it.. * lib/linklist.c: fix up for linklist.h changes. * ospf6d/ospf6_abr.c: (ospf6_abr_examin_brouter) change to a single scan of the area list, rather than scanning all areas first for INTER_ROUTER and then again for INTER_NETWORK. According to 16.2, the scan should be area specific anyway, and further ospf6d does not seem to implement 16.3 anyway.
* * ospf_ase.c: Don't show messages related to the ase calculations ifhasso2005-02-211-29/+52
| | | | we are not debugging.
* 2004-12-08 Andrew J. Schorr <ajschorr@alumni.princeton.edu>ajs2004-12-081-3/+3
| | | | * *.c: Change level of debug messages to LOG_DEBUG.
* Remove usage of evil list and listnode typedefs.hasso2004-09-231-16/+16
|
* Remove ifdef's HAVE_NSSA. NSSA support is stable enough.hasso2004-06-201-7/+0
|
* 2003-08-10 amir <amir@datacore.ch>paul2003-08-101-5/+4
| | | | | * Add missing 'i' to getopts, short form of --pid_file. see http://bugzilla.quagga.net/show_bug.cgi?id=25
* Compile fix - convert foreach_lsa to LSDB_LOOPpaul2003-04-071-2/+2
|
* 2003-03-25 Paul Jakma <paul@dishone.st>paul2003-03-251-51/+53
| | | | | | | | * sync to latest zebra CVS * spec file: updated and added define for ospf-api/client NB: OSPF-API has been broken by the zebra.org changes, which has added struct ospf * as a new arg to many functions
* Kevin C Miller <kevinm@andrew.cmu.edu>patch_z16681_ospfd_nssapaul2002-12-131-0/+4
| | | | [zebra 16681] OSPF NSSA Patches
* zebra link state detection supportpatch_z12269_linkstatepaul2002-12-131-1/+1
|
* Initial revisionpaul2002-12-131-0/+838