| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
| |
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
|
| |
ospf_path_lookup(), ospf_route_match_same() and
ospf_ase_route_match_same() needs to
compare if the interface matches too.
|
|
|
|
| |
A few route_unlock_node() calls was missing.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
* ospf_dump.c, ospf_ia.c, ospf_spf.c, ospf_ase.c:
remove unused DEBUG
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* (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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* (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.
|
|
|
|
| |
we are not debugging.
|
|
|
|
| |
* *.c: Change level of debug messages to LOG_DEBUG.
|
| |
|
| |
|
|
|
|
|
| |
* Add missing 'i' to getopts, short form of --pid_file.
see http://bugzilla.quagga.net/show_bug.cgi?id=25
|
| |
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
| |
[zebra 16681] OSPF NSSA Patches
|
| |
|
|
|