|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* (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.
|