Age | Commit message (Collapse) | Author |
|
2006-05-12 Paul Jakma <paul.jakma@sun.com>
* ospf_ism.c: (ism_change_state) NULL check on oi->area is
useless, it's always valid. Only possibility where it
couldn't be is if there is a race between abr_task and
cleaning up oi's, in which case a NULL check here isn't going
to do anything. Fixes CID #15.
|
|
2006-05-12 Paul Jakma <paul.jakma@sun.com>
* ospf_ia.c: (ospf_update_router_route) ospf->backbone could be
NULL when passed to ospf_find_asbr_route_through_area,
check for NULL first, CID #14.
|
|
2006-05-12 Paul Jakma <paul.jakma@sun.com>
* ospf_asbr.c: (ospf_redistribute_withdraw) remove ospf_lookup
call by taking the struct ospf * as argument, which the
caller has, fixing CID #28.
* ospf_asbr.h: (ospf_redistribute_withdraw) update declaration
* ospf_zebra.c: (ospf_redistribute_unset) update call to
ospf_redistribute_withdraw to match.
|
|
2006-05-12 Paul Jakma <paul.jakma@sun.com>
* ospf_interface.c: (ospf_if_exists) Fix missing NULL return
check on ospf_lookup, CID #27.
|
|
2006-05-12 Paul Jakma <paul.jakma@sun.com>
* ospf_lsa.c: (ospf_lsa_action) Get rid of the ospf_lookup
call, which is not checked for NULL return, by stripping out
functionality which is never used, hence fixing Coverity CID
#29.
(struct lsa_action) remove unused member.
|
|
2006-05-11 Paul Jakma <paul.jakma@sun.com>
* ospf_lsa.c: (ospf_default_originate_timer) Let the thread
take (struct ospf *) as thread argument, rather than (struct
ospf *)->default_originate, thus avoiding having to call
ospf_lookup.
* ospf_zebra.c: (ospf_redistribute_default_set) change setup
of ospf_default_originate_timer thread to match.
* ospfd.c: (ospf_router_id_update) ditto.
|
|
2006-05-11 Paul Jakma <paul.jakma@sun.com>
* ospf_abr.c: (ospf_area_range_cost_set) Shouldn't create a new
range, should just lookup to see if one exists, the new range
is just leaked. Fixes CID #46.
|
|
2006-05-11 Paul Jakma <paul.jakma@sun.com>
* ospf_route.c: (ospf_route_delete_same_ext) Fix deref before
NULL check by moving into check-protected block, fix CID #49.
|
|
2006-05-11 Paul Jakma <paul.jakma@sun.com>
* ospf_vty.c: (no_ospf_area_filter_list) Check NULL result from
ospf_area_lookup_by_area_id, fixes Coverity CID #69
|
|
2006-05-11 Paul Jakma <paul.jakma@sun.com>
* ospf_vty.c: (general) Audit ospf_lookup calls in commands,
ensure check for NULL result, make vty messages consistent.
(show_ip_ospf_interface) Missing NULL check on ospf_lookup
result, fixes Coverity CID #70.
|
|
2006-05-11 Paul Jakma <paul.jakma@sun.com>
* interface.c: (if_delete_update) route_node_lookup may return
NULL, should fix Coverity CID #31.
|
|
2006-05-11 Paul Jakma <paul.jakma@sun.com>
* ripng_interface.c: (ripng_interface_address_add) Remove
unneeded NULL check, Coverity CID #72.
|
|
2006-05-10 Paul Jakma <paul.jakma@sun.com>
* quagga.info: update auto-built file.
|
|
2006-05-10 Paul Jakma <paul.jakma@sun.com>
* configure.ac: Bump to 0.99.4
|
|
2006-05-08 Paul Jakma <paul.jakma@sun.com>
* main.texi: --log_mode does not exist, remove, bug #245.
|
|
2006-05-08 Paul Jakma <paul.jakma@sun.com>
* bgp_route.c: (bgp_afi_node_get) given table should never be
NULL, check/assert this.
(bgp_static_update) Bug #240. Rsclients should only be passed
the static update if they are configured for the afi,safi.
|
|
2006-05-08 Paul Jakma <paul.jakma@sun.com>
* ripng_routemap.c: (route_set_ipv6_nexthop_local_compile) bug
#242, s/in_addr/in6_addr to fix crash.
Thanks to jithinvachery+quagga@gmail.com.
|
|
2006-05-08 Paul Jakma <paul.jakma@sun.com>
* bgp_community.c: (community_str2com) Coverity CID#62, fix
double-free, use-after-free.
|
|
2006-05-04 Paul Jakma <paul.jakma@sun.com>
* bgp_route.c: (general) Fix logical bug in clearing, noted
by Chris Caputo in [quagga-users 6728] - clearing depended on
at least one route being added to workqueue, in order for
workqueue completion function to restart FSM. However, if no
routes are cleared, then the completion function never is
called, it needs to be called manually if the workqueue
didn't get scheduled.
Finally, clearing is per-peer-session, not per AFI/SAFI, so
the FSM synchronisation should be in bgp_clear_route_table.
(bgp_clear_route_table) Wrong place for FSM/clearing
synchronisation, move to..
(bgp_clear_route) FSM/clearing synchronisation should be
here.
If no routes were cleared, no workqueue scheduled, call
the completion func to ensure FSM kicks off again.
|
|
2006-05-04 Paul Jakma <paul.jakma@sun.com>
* (general) VPNv4 fixes. Certain VPNv4 code was not enabled.
See bug #210.
* bgp_attr.{c,h}: (bgp_packet_{withdraw,attribute}) Tag should be
u_char really.
* bgp_packet.c: (bgp_{update,withdraw}_packet) Enable some
VPNv4 code which inexplicably was ifdef'd out. comments from
a tester on IRC suggest this fixes bug #210.
|
|
2006-05-04 Paul Jakma <paul.jakma@sun.com>
* ripd.texi: Add Version Control as a distinct section.
Expand Version Control section with overview text,
touching on insecurity of RIPv1 and referencing
authentication section, cleanup text of various version
commands.
RIP Authentication: Add overview text, refer to RIPv1 version
control, which is required to completely secure RIP.
|
|
2006-05-04 Paul Jakma <paul.jakma@sun.com>
* (general) Fixes for bugs #261 and 262. Thanks to
Konstantin V. Gavrilenko <kos@arhont.com> for the problem
reports, testing of a series of proposed patches and comment
on the proposed changes in behaviour.
* rip_interface.c: (ip_rip_authentication_mode_cmd) Parse all
of the command before making any changes to configured state.
* ripd.c: (rip_read) RIP version control should be absolute and
always apply, fixes bug #261 by allowing RIPv1 to be disabled.
Fix bug #262: If authentication is enabled, then
unauthenticated packets should not be accepted. We do however
make an exception for RIPv1 REQUEST packets, to which we will
reply as RIPv1 can now be disabled fully, to allow ripd to
still provide routing /information/ to simple devices.
|
|
2006-04-24 Paul Jakma <paul.jakma@sun.com>
* (general) More Virtual-link fixes, again with much help in
testing / debug from Juergen Kammer. Primarily in SPF.
* ospf_spf.h: Add guard. ospf_interface.h will include this
header.
* ospf_interface.h: Modify ospf_vl_lookup definition to take
struct ospf as argument, so as to allow for NULL area
argument.
(struct ospf_vl_data) Remove out_oi, instead add a struct
vertex_nexthop, to use as initial nexthop for backbone paths
through a vlink.
* ospf_interface.c: (ospf_vl_lookup) Modified to allow
NULL area to be passed to indicate "any" (first) area.
Add extra debug.
(ospf_vl_set_params) vl_oi -> nexthop. Add extra debug.
(ospf_vl_up_check) Fix debug, inet_ntoa returns a static
buffer..
* ospf_route.c: (ospf_intra_add_router) Vlinks dont go through
backbone, don't bother checking.
* ospf_spf.c: (static struct list vertex_list) Record vertices
that will need to be freed.
(cmp) Order network before router vertices, as required,
wasn't implemented.
(vertex_nexthop_free) Mild additional robustness check.
(vertex_parent_free) Take void argument, as this function
is passed as list deconstructor for vertex parent list.
(ospf_vertex_new) More debug. Set deconstructor for parent
list. Track allocated vertices on the vertex_list.
(ospf_vertex_free) Get rid of the tricky recursive cleanup of
vertices. Now frees only the given vertex.
(ospf_vertex_add_parent) Fix assert.
(ospf_nexthop_calculation) Fix calculation of nexthop for
VLink vertices, lookup the vl_data and use its previously
recorded nexthop information.
(ospf_spf_calculate) Vertices are freed simply by deleting
vertex_list nodes and letting ospf_vertex_free as deconstructor
work per-node.
(ospf_spf_calculate_timer) Trivial optimisation, leave
backbone SPF calculation till last to reduce SPF churn on
VLink updates.
* ospf_vty.c: (ospf_find_vl_data) update call to ospf_vl_lookup
(no_ospf_area_vlink_cmd) ditto.
(show_ip_ospf_interface_sub) For Vlinks, the peer address is
more interesting than the output interface.
|
|
2006-04-28 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
* ripd.c: (rip_update_process) Try to fix the logic for sending
an updated on each connected network. The new code will
attempt to send the update on each connected network, whereas
the previous code seemed to be attempting to avoid sending
more than one RIPv1 update on a given interface, but was coded
incorrectly. The actual effect of the old code was to send
an update only on the first connected address in the cases
where the interface is not multicast, or RIPv2 is not being used.
|
|
2006-04-03 Paul Jakma <paul.jakma@sun.com>
* quagga.xml.in: oops, ipvX-routing services don't exist yet in
any Solaris builds.
|
|
2006-04-03 Paul Jakma <paul.jakma@sun.com>
* (general) Fix issues with handling of Vlinks and entries
in the nbrs route-table which were highlighted by the
nsm/nbr_self fixes from bug #234. Many thanks to Juergen
Kammer for his help and efforts in testing out debug patches to
pinpoint the issue.
* ospf_interface.c: (ospf_vl_new) Add nbr_self for Vlink.
* ospf_neighbor.c: (ospf_nbr_key) new static function, helper
to create key in nbrs table for a given nbr.
(ospf_nbr_delete) Use ospf_nbr_key. Add an assert() to
document an expected state.
(ospf_nbr_add_self) Ditto.
(ospf_nbr_lookup_by_addr) Add an assert.
* ospf_nsm.c: (nsm_kill_nbr) Can never kill the nbr_self
psuedo-neighbour.
|
|
2006-03-31 Paul Jakma <paul.jakma@sun.com>
* fig*.txt: New files, txt versions of the diagrammes for the
info file.
* protocol.texi: Document the new version 1 header.
* routeserver.texi: Explicitly specify scaling widths for the
figures, only way to make them look reasonable, sadly.
Try fix some formatting and explicitely note lists as being
bulleted.
* Makefile.am: convert seems to do png to pdf just fine. No
need for intermediate eps.
Add txt figure expansions and list as dependencies and
EXTRA_DIST files.
|
|
|
|
2006-03-14 Paul Jakma <paul.jakma@sun.com>
* privs.c: (zprivs_caps_init) Change user IDs before lowering
privileges, while this seems to work on Linux, on Solaris
it rightfully refuses due to PRIV_PROC_SETID having been
dropped.
* command.h: Add the struct host global exported from command.c
|
|
2006-03-30 Paul Jakma <paul.jakma@sun.com>
* workqueue.c: (work_queue_run) fix line length of comment
|
|
2006-03-30 Paul Jakma <paul.jakma@sun.com>
* command.h: (DEFUN_CMD_FUNC_TEXT) Annotate arguments as
potentially being unused.
|
|
2006-03-30 Paul Jakma <paul.jakma@sun.com>
* bgp_community.c: (community_gettoken) Unknown token should
return NULL, to give a strong indication to callers that
the token no longer can be parsed, otherwise callers looping
on this function may have a hard time ending their loop.
(community_str2com) While loop around community_gettoken appears
to have been coded thinking that break statement would break
from the while{}, hence it could never exit for unknown token
case. Fix it to do..while, so it can use the NULL result from
community_gettoken easily.
|
|
2006-03-30 Paul Jakma <paul.jakma@sun.com>
* TODO: Add reminder for useful MED functionality we should
implement.
|
|
2006-03-27 Paul Jakma <paul.jakma@sun.com>
* ospf_lsa.c: (ospf_lsa_checksum) Add an explicit cast to avoid
the ambiguities of ANSI and C99 C with respect to type
conversion. Detailed problem report and test case with
example data supplied by Dmitry Ivanov <dimss@telecentrs.lv>.
|
|
2006-03-27 Paul Jakma <paul.jakma@sun.com>
* memtypes.awk: Fix gensub call, g should be a string..
|
|
2006-03-25 Paul Jakma <paul.jakma@sun.com>
* workqueue.h: (struct work_queue) Remove status field and
state flag, no longer used.
|
|
2006-03-25 Paul Jakma <paul.jakma@sun.com>
* ospf_interface.c: (ospf_if_lookup_recv_if) Ignore loopbacks,
we can never ever receive packets on those. Should fix
case where CARP is run with address in same subnet as real
interface. Problem report and diagnosis thanks to:
Landon Fuller <landonf@opendarwin.org>.
However, ospf_read() still can't deal deterministically with
multiple interfaces in same subnet.
|
|
2006-03-23 Steve Lawson <steve.lawson@aheadcomusa.com>
* ospf_lsa.c: (ospf_lsa_install) Fix incorrect byte-order
conversion of OSPF_MAX_SEQUENCE_NUMBER
|
|
2006-03-22 Paul Jakma <paul.jakma@sun.com>
* bgpd.c: (peer_free) release the per-peer workqueue when
freeing the peer.
|
|
2006-03-19 Paul Jakma <paul.jakma@sun.com>
* memtypes.c: Add MTYPE_BGP_SYNCHRONISE.
* bgp_advertise.c: Use a distinct memory type for struct
bgp_synchronize.
|
|
2006-03-19 Paul Jakma <paul.jakma@sun.com>
* bgpd/bgp_vty.c: Add includes to get several structs we want
to provide usage statistics on.
(show_bgp_memory_cmd) Show memory usage stats for various
notable fixed size objects. Using mtype_stats_alloc and
mtype_memstr recently added to memory.c.
(bgp_show_summary) Report some additional stats specific to
the given BGP instance and/or AFI/SAFI such as table counts,
peers, rsclients and peer-groups.
(bgp_vty_init) Install show_bgp_memory_cmd.
|
|
2006-03-19 Paul Jakma <paul.jakma@sun.com>
* bgp_nexthop.h: Include if.h as a dependent header, for struct
connected.
|
|
2006-03-16 Paul Jakma <paul.jakma@sun.com>
* Makefile.am: Fix -version-info argument.
|
|
2006-02-15 Paul Jakma <paul.jakma@sun.com>
* configure.ac: Check for mallinfo, being careful to link test
so we can detect things like umem being used (which doesn't
provide a mallinfo).
* lib/memory.c: (mtype_memstr) new helper function to
return human friendly string for a byte count.
(mtype_stats_alloc) new function, for users to retrieve
number of objects allocated.
(show_memory_mallinfo) New function, show mallinfo statistics
if available.
(show_memory_all_cmd) Call show_memory_mallinfo, if mallinfo
is available.
* lib/memory.h: Export mtype_memstr and mtype_stats_alloc.
Provide a define for a reasonable buffer size for
mtype_memstr.
|
|
2006-03-16 Paul Jakma <paul.jakma@sun.com>
* prototype.smf.in: Oops, continue to install manifest to
var/svc/manifest/network for now.
* Changelog: fix lack of trailing newline
|
|
2006-03-16 Paul Jakma <paul.jakma@sun.com>
* heavy-wq.c: (heavy_wq_init) delay is gone from workqueue
spec.
* aspath_test.c: (test_segments) Add an AS_SET with redundant
ASNs.
({empty_prepend,prepend,parse}_test) add static qualifiers
|
|
2006-03-13 Alan Maguire <alan.maguire@sun.com>
* quagga.xml.in: Change the naming of services and instances.
network/routing/quagga:<daemon> may be neat and tidy, but
it's at odds with SMF convention elsewhere that demands
the service be named for what it does, and the instance name
describe the implementation (e.g. network/smtp:sendmail).
Remove call to method script for 'stop', SMF can do that
itself.
Enumerate the privileges required in the SMF manifest, with the
method_credential element.
Dont try provide seperate properties for each argument, it's
just tedious, particularly when they can no longer be
inherited from a common quagga service - use a single
"daemon-args" property, defaulting to -P 0.
Specify authorisation for the 'routeadm' utility and for
RBAC.
2006-03-13 Paul Jakma <paul.jakma@sun.com>
* quagga.init.in: Update to match SMF manifest changes.
If run from an SMF environment, assume method is start.
Offer a more tradition init script interface for pre-SMF.
Enable zebra for the link-state daemons.
Don't allow daemons to start in non-global zones, except
for bgpd - it doesn't have to care about underlying
networking much.
Remove all the svcprop calls, SMF or the user will supply any
arguments on the command-line.
* depend.smf.in: Add dependency on SUNWroute, which provides
routeadm, which provides /var/svc/manifest/network/routing
* prototype.smf.in: Install manifest to
var/svc/manifest/network/routing.
|
|
2006-02-09 Paul Jakma <paul.jakma@sun.com>
* rib.h: (struct {rib,nexthop}) Rearrange fields to avoid
needless padding.
(struct rib) Remove the indirect pointer, not used anywhere!
|
|
2006-03-14 Paul Jakma <paul.jakma@sun.com>
* privs.c: (zprivs_caps_init) Change user IDs before lowering
privileges, while this seems to work on Linux, on Solaris
it rightfully refuses due to PRIV_PROC_SETID having been
dropped.
|
|
2006-03-12 Paul Jakma <paul.jakma@sun.com>
* bgp_attr.h: (struct attr) rearrange fields to avoid
wasted padding between them as much as possible.
(attr_count,attr_unknown_count) export new functions to
return number of counts of cached attributes.
* bgp_attr.c: (attr_count,attr_unknown_count) new functions to
return number of counts of cached attributes.
* bgp_route.h: (struct bgp_info) rearrange fields to avoid
wasted padding.
* bgp_table.h: (struct bgp_table) Add a count field, of number
of nodes in the table.
(struct bgp_node) rearrange fields to avoid
wasted padding between them, though I don't think there
was any in this case.
* bgp_table.c: (bgp_node_{delete,get}) Maintain the table node count.
(bgp_table_count) new function to access the table count.
|