Age | Commit message (Collapse) | Author |
|
2007-03-21 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
* Makefile.am: Patch rule for draft-zebra-00.txt to work
in VPATH build environments.
|
|
2007-03-21 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
* ripd.c: (show_ip_rip_status) Use new thread_timer_remain_second
function instead of rip_next_thread_timer to display the time until
next update properly.
(rip_next_thread_timer) Remove obsolete function.
|
|
2007-03-20 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
* log.c: (mes_lookup) Make the function more robust: check for
cases where the index does not match the key value at that position.
If so, give a warning and fall back to a linear search.
And improve the error message in cases where even that fails.
|
|
2007-03-14 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
* ospf_snmp.c: (ospf_snmp_neighbor_state) New function to
map internal quagga neighbor states to SNMP standard values.
(ospfNbrEntry) Call new ospf_snmp_neighbor_state function.
|
|
2007-03-14 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
* ospf_zebra.c: (ospf_zebra_add, ospf_zebra_delete) Fix bug
where inet_ntoa was used twice in the same debug message,
which doesn't work because there's a single shared buffer
for the returned string. The fix is to use inet_ntop.
|
|
2007-03-08 David Siebörger d.sieborger@ru.ac.za
* ospf6_neighbor.c: (ospf6_neighbor_show) Fix bug #322, ospf6d
wasn't updated to match thread times changing to relative
time.
|
|
2007-03-06 Paul Jakma <paul.jakma@sun.com>
* kernel_socket.c: (ifam_read) Do not update interface metric on
receipt of NEW/DEL ADDR messages, bogus as: a) some systems
dont include iface metric for address events b) we didn't
update clients either. Initial diagnosis by Eugene Grosbein.
|
|
2007-02-27 Pavol Rusnak <prusnak@suse.cz>
* ospf6_lsa.c: (ospf6_lsa_handler_name) Fix bug: must use strcmp
to compare strings.
|
|
2007-02-27 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
* ospfd.c: (ospf_terminate) Exit immediately if ospf is not
actually running (e.g. the config file was empty). Fixes
bug where SIGTERM would not kill ospfd.
|
|
2007-02-26 Paul Jakma <paul.jakma@sun.com>
* ospf_spf.c: Fix regression introduced with bug #330 fix: The
cost update added to ospf_spf_add_parent only handled PtP
case, differing from same functionality in higher-level
ospf_spf_next. Regression diagnosed by Anders Pedersen,
mailnews+router-quagga-dev@news.cohaesio.com.
(ospf_vertex_new) Initialise vertices to max-cost.
(ospf_spf_init) Root vertex always creates with 0 cost.
(ospf_spf_add_parent) Remove the buggy V->W cost calculating
code, instead take the new distance as a parameter.
(ospf_nexthop_calculation) Take distance as parameter, so it
can be passed down to add_parent.
(ospf_spf_next) Dont initialise candiate vertex distance,
vertex_new does so already. Pass distance down to
nexthop_calculation (see above).
|
|
2007-02-26 Robert Olsson <Robert.Olsson@data.slu.se>
* irdp_main.c: (irdp_send_thread) Skip non-AF_INET addresses,
i.e. do not try interpret IPv6 addresses as IPv4 addresses
to broadcast in IRDP announcements..
|
|
2007-02-22 Paul Jakma <paul.jakma@sun.com>
* quagga.{xml,init}.in: Add licence boilerplate to ensure
licence terms are clear.
|
|
2007-02-22 Paul Jakma <paul.jakma@sun.com>
* bgp_fsm.c: (bgp_fsm_change_status) Handle state change into
clearing or greater here. Simpler.
(bgp_event) Clearing state change work moved to previous
* bgp_route.c: (bgp_clear_route_node) Clearing adj-in here
is too late, as it leaves a race between a peer being deleted
and an identical peer being configured before clearing
completes, leading to a crash.
Simplest fix is to clean peers Adj-in up-front, rather than
queueing such work.
(bgp_clear_route_table) Clear peer's Adj-In and Adj-Out
up-front here, rather than queueing such work.
Extensive comment added on the various bits of indexed data
that exist and how they need to be dealt with.
(bgp_clear_route) Update comment.
|
|
|
|
Update notes on required tool versions Note that autoconf 2.59 is the
standard (even though it's old, 2.60 and 2.61 are pretty recent). For
others, pick releases that are at least 1.5 years old.
Note that GNU awk is required.
Replace update-autotools reference with bootstrap.sh.
(no changelog, doc change only, per GNU coding standards)
|
|
|
|
|
|
|
|
bombs on NetBSD. (Without, all is ok. We may need workarounds, but
first we should identify minimum tool versions and figure out what's
still wrong.)
ok'd by paul.
|
|
|
|
|
|
(from pkgsrc)
|
|
* update-autotools: print out tool name before invoking to aid debugging
|
|
2007-01-24 Paul Jakma <paul.jakma@sun.com>
* ospf_spf.c: Bug #330: Nexthop calculation sometimes may fail,
and it needs to indicate this result to SPF.
(ospf_spf_add_parent) Flush of parent list needs to be done here,
for simplicity.
(ospf_nexthop_calculation) Caller needs to know whether
nexthop calculation succeeded. Every return statement must
correctly indicate such.
(ospf_spf_next) Queueing/prioritisation of vertices in SPF
must take into account whether nexthop_calculation succeeded,
or SPF may fail to find best paths.
|
|
2006-12-13 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
* if_ioctl_solaris.c: (if_get_addr) For IPv6, stop assuming
that all IFF_POINTOPOINT have prefixlen of IPV6_MAX_BITLEN.
Instead, always try the SIOCGLIFSUBNET ioctl; if that fails,
then we fall back to IPV6_MAX_BITLEN for PtP interfaces.
|
|
2006-12-12 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
* if.h: (struct connected) Add new ZEBRA_IFA_PEER flag indicating
whether a peer address has been configured. Comment now shows
the new interpretation of the destination addr: if ZEBRA_IFA_PEER
is set, then it must contain the destination address, otherwise
it may contain the broadcast address or be NULL.
(CONNECTED_DEST_HOST,CONNECTED_POINTOPOINT_HOST) Remove obsolete
macros that were specific to IPv4 and not fully general.
(CONNECTED_PEER) New macro to check ZEBRA_IFA_PEER flag.
(CONNECTED_PREFIX) New macro giving the prefix to insert into
the RIB: if CONNECTED_PEER, then use the destination (peer) address,
else use the address field.
(CONNECTED_ID) New macro to come up with an identifying address
for the struct connected.
* if.c: (if_lookup_address, connected_lookup_address) Streamline
logic with new CONNECTED_PREFIX macro.
* prefix.h: (PREFIX_COPY_IPV4, PREFIX_COPY_IPV6) New macros
for better performance than the general prefix_copy function.
* zclient.c: (zebra_interface_address_read) For non-null destination
addresses, set prefixlen to equal the address prefixlen. This
is needed to get the new CONNECTED_PREFIX macro to work properly.
* connected.c: (connected_up_ipv4, connected_down_ipv4,
connected_up_ipv6, connected_down_ipv6) Simplify logic using the
new CONNECTED_PREFIX macro.
(connected_add_ipv4) Set prefixlen in destination addresses (required
by the CONNECTED_PREFIX macro). Use CONNECTED_PEER macro instead
of testing for IFF_POINTOPOINT. Delete invalid warning message.
Warn about cases where the ZEBRA_IFA_PEER is set but no
destination address has been supplied (and turn off the flag).
(connected_add_ipv6) Add new flags argument so callers may set
the ZEBRA_IFA_PEER flag. If peer/broadcast address satisfies
IN6_IS_ADDR_UNSPECIFIED, then reject it with a warning.
Set prefixlen in destination address so CONNECTED_PREFIX will work.
* connected.h: (connected_add_ipv6) Add new flags argument so
callers may set the ZEBRA_IFA_PEER flag.
* interface.c: (connected_dump_vty) Use CONNECTED_PEER macro
to decide whether the destination address is a peer or broadcast
address (instead of checking IFF_BROADCAST and IFF_POINTOPOINT).
* if_ioctl.c: (if_getaddrs) Instead of setting a peer address
only when the IFF_POINTOPOINT is set, we now accept a peer
address whenever it is available and not the same as the local
address. Otherwise (no peer address assigned), we check
for a broadcast address (regardless of the IFF_BROADCAST flag).
And must now pass a flags value of ZEBRA_IFA_PEER to
connected_add_ipv4 when a peer address is assigned.
The same new logic is used with the IPv6 code as well (and we
pass the new flags argument to connected_add_ipv6).
(if_get_addr) Do not bother to check IFF_POINTOPOINT: just
issue the SIOCGIFDSTADDR ioctl and see if we get back
a peer address not matching the local address (and set
the ZEBRA_IFA_PEER in that case). If there's no peer address,
try to grab SIOCGIFBRDADDR regardless of whether IFF_BROADCAST is set.
* if_ioctl_solaris.c: (if_get_addr) Just try the SIOCGLIFDSTADDR ioctl
without bothering to check the IFF_POINTOPOINT flag. And if
no peer address was found, just try the SIOCGLIFBRDADDR ioctl
without checking the IFF_BROADCAST flag. Call connected_add_ipv4
and connected_add_ipv6 with appropriate flags.
* if_proc.c: (ifaddr_proc_ipv6) Must pass new flags argument to
connected_add_ipv6.
* kernel_socket.c: (ifam_read) Must pass new flags argument to
connected_add_ipv6.
* rt_netlink.c: (netlink_interface_addr) Copy logic from iproute2
to determine local and possible peer address (so there's no longer
a test for IFF_POINTOPOINT). Set ZEBRA_IFA_PEER flag appropriately.
Pass new flags argument to connected_add_ipv6.
(netlink_address) Test !CONNECTED_PEER instead of if_is_broadcast
to determine whether the connected destination address is a
broadcast address.
* bgp_nexthop.c: (bgp_connected_add, bgp_connected_delete)
Simplify logic by using new CONNECTED_PREFIX macro.
* ospf_interface.c: (ospf_if_is_configured, ospf_if_lookup_by_prefix,
ospf_if_lookup_recv_if) Simplify logic using new CONNECTED_PREFIX
macro.
* ospf_lsa.c: (lsa_link_ptop_set) Using the new CONNECTED_PREFIX
macro, both options collapse into the same code.
* ospf_snmp.c: (ospf_snmp_if_update) Simplify logic using new
CONNECTED_ID macro.
(ospf_snmp_is_if_have_addr) Simplify logic using new CONNECTED_PREFIX
macro.
* ospf_vty.c: (show_ip_ospf_interface_sub) Use new CONNECTED_PEER macro
instead of testing the IFF_POINTOPOINT flag.
* ospfd.c: (ospf_network_match_iface) Use new CONNECTED_PEER macro
instead of testing with if_is_pointopoint. And add commented-out
code to implement alternative (in my opinion) more elegant behavior
that has no special-case treatment for PtP addresses.
(ospf_network_run) Use new CONNECTED_ID macro to simplify logic.
* rip_interface.c: (rip_interface_multicast_set) Use new CONNECTED_ID
macro to simplify logic.
(rip_request_interface_send) Fix minor bug: ipv4_broadcast_addr does
not give a useful result if prefixlen is 32 (we require a peer
address in such cases).
* ripd.c: (rip_update_interface) Fix same bug as above.
|
|
2006-12-08 Paul Jakma <paul.jakma@sun.com>
* configure.ac: Bump to 0.99.6
|
|
2006-12-08 Hannes Gredler <hannes@gredler.at>
* isis_adjacency.c: (isis_new_adj) Allow NULL snpa argument.
* isis_pdu.c: (various) Update calls to isis_new_adj() to pass
NULL and use default.
* (general) Add forward declarations where required.
Fix up const char *'s.
Allow V4-only compilation.
|
|
2006-12-08 Piotr Chytla <pch@packetconsulting.pl>
* zebra_rib.c: (static_install_ipv{4,6}) Case where existing
RIB is updated must explicitely rib_addqueue the route_node,
to ensure the update actually takes effect.
|
|
2006-12-07 Paul Jakma <paul.jakma@sun.com>
* bgp_fsm.c: Bug #302 fix, diagnosis, suggestions and testing
by Juergen Kammer <j.kammer@eurodata.de>. Fix follows from
his suggested fix, just made in a slightly different way.
(bgp_event) Transitions into Clearing always must call
bgp_clear_route_all().
(bgp_stop) No need to clear routes here, BGP FSM should do
it.
|
|
2006-12-04 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
* ospfd.c: (ospf_network_run) Remove an offending 'break' statement.
Previously, after creating a single ospf_interface on a given
network interface, the code would skip to the next interface
without considering other connected addresses on the interface.
After removing the 'break', we now consider all connected addresses.
|
|
2006-11-30 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
* bgp_debug.h: Declare new bgp_debug_zebra conf and term flags,
and define BGP_DEBUG_ZEBRA.
* bgp_debug.c: Declare conf_bgp_debug_zebra and term_bgp_debug_zebra.
(debug_bgp_zebra, no_debug_bgp_zebra, undebug_bgp_zebra) New
functions to enable/disable bgp zebra debugging.
(no_debug_bgp_all) Turn off zebra debugging.
(show_debugging_bgp) Show whether zebra debugging is on.
(bgp_config_write_debug) Add 'debug bgp zebra' if configured.
(bgp_debug_init) Add new zebra debugging commands.
* bgp_zebra.c: (bgp_router_id_update, bgp_interface_add,
bgp_interface_delete, bgp_interface_up, bgp_interface_down,
bgp_interface_address_add, bgp_interface_address_delete,
zebra_read_ipv4, zebra_read_ipv6, bgp_zebra_announce,
bgp_zebra_withdraw, bgp_redistribute_set, bgp_redistribute_unset)
If zebra debugging is enabled, log an appropriate debug message.
|
|
2006-11-30 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
* ospf_zebra.c: (ospf_router_id_update_zebra,
ospf_interface_address_add, ospf_interface_address_delete)
If (IS_DEBUG_OSPF (zebra, ZEBRA_INTERFACE)) is enabled, then
add a debug message about what Zebra is telling us.
(ospf_zebra_add_discard) Add a debug message matching the one
already in ospf_zebra_delete_discard.
|
|
2006-11-28 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
* bgp_route.c: (bgp_info_restore) New function that undoes
the effects of a previous call to bgp_info_delete. This is
used when a route is deleted and quickly re-added before the
deletion has been processed.
(bgp_static_update_rsclient, bgp_static_update_main,
bgp_redistribute_add) Check whether a pre-existing route
has the BGP_INFO_REMOVED set, and, if so, we need to call
bgp_info_restore to resurrect it.
|
|
2006-11-28 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
* ospf_vty.c: (ospf_passive_interface_default) Take additional
'newval' arg so we can update ospf->passive_interface_default inside
this function. More importantly, we now call ospf_if_set_multicast
on all ospf_interfaces.
(ospf_passive_interface, no_ospf_passive_interface) Fix bug:
for 'default' case, argv[0] is undefined, so we must test for
(argc == 0) before using argv[0]. And since
ospf_passive_interface_default now calls ospf_if_set_multicast as
needed, we can just return after calling
ospf_passive_interface_default.
|
|
2006-10-27 Paul Jakma <paul.jakma@sun.com>
* bgp_route.c: (bgp_table_stats) oops, u_intXX_t should be
uintXX_t
|
|
2006-10-24 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
* ospf_zebra.c: (ospf_redistribute_default_set) Fix bug where
a new value for ospf->default_originate was being ignored
if a previous 'default-information originate' command
had already been processed.
|
|
2006-10-22 Yar Tikhiy <yar@comp.chem.msu.su>
* (general) Add support for passive-interface default (with
minor edits by Paul Jakma).
* ospf_interface.h: Add OSPF_IF_PASSIVE_STATUS macro, looking
at configured value, or the global 'default' value, as
required.
* ospf_interface.c: (ospf_if_new_hook) Leave passive
unconfigured per default, allowing global 'default' to
take effect for unconfigured interfaces.
* ospf_packet.c: (various) use OSPF_IF_PASSIVE_STATUS
* ospf_vty.c: (ospf_passive_interface_default) new function,
unset passive from all interfaces if default is enabled, as
the per-iface settings become redundant.
(ospf_passive_interface_update) new func, update passive
setting taking global default into account.
({no,}ospf_passive_interface_addr_cmd) Add support for
'default' variant of command.
(show_ip_ospf_interface_sub) Update to take global
default into account when printing passive status.
(ospf_config_write) ditto.
* ospfd.c: (ospf_new) set global passive-interface default.
* ospfd.h: (struct ospf) Add field for global
passive-interface.
|
|
2006-10-19 Paul Jakma <paul.jakma@sun.com>
* bgpd.c: (peer_new) bgp element of peer absolutely must be
filled in, make peer_new() require it as argument and update
all callers. Fixes a crash reported by Jan 'yanek' Bortl and
Andrew Schorr where bgpd would crash in bgp_pcount_adjust
trying to dereference the bgp member of bgp->peer_self,
triggered through redistribution.
* bgp_route.c: (bgp_pcount_adjust) assert sanity of arguments.
|
|
NULL pointer.
2006-10-15 Paul Jakma <paul.jakma@sun.com>
* bgp_packet.c: (bgp_update_packet) adv->rn can not be NULL,
check is bogus - changed to assert(), CID#64.
binfo is checked for NULL, but then dereferenced
unconditionally, fix, CID #63.
(bgp_withdraw_packet) Assert adv->rn is valid, as with
bgp_update_packet().
|
|
emtpy table
2006-10-15 Paul Jakma <paul.jakma@sun.com>
* bgp_route.c: (bgp_table_stats_walker) NULL deref if table is
empty, bgp_table_top may return NULL, Coverity CID#73.
|
|
stuck in Clearing.
2006-10-14 Paul Jakma <paul.jakma@sun.com>
* bgp_fsm.h: Remove BGP_EVENT_FLUSH_ADD, dangerous and not
needed.
* bgp_fsm.c: (bgp_stop) Move BGP_EVENT_FLUSH to the top of the
of the function, otherwise it could flush a ClearingCompleted
event, bug #302.
* bgp_packet.c: Replace all BGP_EVENT_FLUSH_ADD with
BGP_EVENT_ADD, fixing bug #302.
|
|
syntax
2006-10-04 Oliver Hookins <ohookins@gmail.com>
* bgpd/bgp_main.c: Add configuration check option, with
'-C' rather than '-c' for consistency between daemons.
* isisd/isis_main.c: ditto
* ospf6d/ospf6_main.c: ditto
* ospfd/ospf_main.c: ditto
* ripngd/ripng_main.c: ditto
* vtysh/vtysh_main.c: ditto
* ripd/rip_main.c: Change the config check option to
'-C' and tidy up the code.
* zebra/main.c: ditto
2006-10-04 Stergiakis Alexandros <astergiakis@antcor.com>
* ripd/rip_main.c: This trivial patch introduces a new
command-line option '-c', which instructs zebra/ripd
to check its configuration file for validity, print
any error message, and then exit. This is useful when
the configuration file is edited by hand or otherwise,
and you simply want to validate it without any other
effect.
* zebra/main.c: ditto
|
|
2006-10-14 Paul Jakma <paul.jakma@sun.com>
* if.c: (general) Handle upgrades from SUNWzebra, which tried
to track each logical interface as a seperate struct
interface, to Quagga, which assigns only one struct interface
per ifindex.
(if_sunwzebra_get) Try decompose a logical interface name
(fooX:Y) to the 'primary' name (fooX), for Solaris.
(interface_cmd) Use if_sunwzebra_get on Solaris.
|
|
2006-09-26 Pierre-Yves Ritschard <pierre-yves@spootnik.org>
* smux.c: (smux_open,smux_trap,smux_register) Fix various
asn_build_* calls to pass the proper length in the final
argument: use sizeof(<variable>) instead of sizeof(<type>),
since there were several inconsistencies between the actual
variable type and the size that was passed. This should
fix some problems on 64-bit architectures where sizeof(int)
!= sizeof(long).
|
|
2006-09-25 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
* ospf_packet.c: (ospf_packet_dup, ospf_make_md5_digest)
Fix zlog_warn messages to eliminate compiler warnings.
(ospf_hello) Improve warning messages to show why we
are complaining.
|
|
Add Dragonfly.
Clarify that the C99 requirement includes libraries and headers, not
just compiler.
|
|
2006-09-19 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
* bgpd.c: (peer_uptime) Fix printf format/arg mismatch in
zlog_warn message (%ld/size_t -> %lu/u_long).
|
|
2006-09-14 Paul Jakma <paul.jakma@sun.com>
* bgp_route.c: (bgp_process_queue_init) process queue hold time
too high, adds extra memory load. Change to be much lower,
until such time as it's made configurable.
|
|
2006-09-14 Paul Jakma <paul.jakma@sun.com>
* bgp_route.c: (bgp_table_stats_walker) Address space announced
should only count top-level unaggregateable prefixes, to
avoid falling afoul of anti-dodgy-accounting regulations
in various jurisdictions.. ;)
|