| Age | Commit message (Collapse) | Author | 
|---|
|  | 2007-04-29 Paul Jakma <paul.jakma@sun.com>
	* ioctl{_solaris,}.c: (if_get_mtu) Fix missing ; in last commit. | 
|  | 2007-04-29 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
	* log.c: (quagga_timestamp) Optimize the subsecond timestamp generation. | 
|  | 2007-04-29 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
	* basic.texi: Document the new 'log timestamp precision' command. | 
|  | 2007-04-28 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
	* vtysh.c: (vtysh_log_timestamp_precision,
	  no_vtysh_log_timestamp_precision) Implement new log timestamp
	  precision commands: send to all daemons.
	  (vtysh_init_vty) Install new log timestamp precision commands. | 
|  | 2007-04-28 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
	* command.c: (config_write_host) Save "log timestamp precision"
	  if not default value.
	  (show_logging) Show configured timestamp precision.
	  (config_log_timestamp_precision) Enable configuration of timestamp
	  precision.
	  (no_config_log_timestamp_precision) Restore default timestamp
	  precision.
	  (cmd_init) Install new timestamp precision commands.
	* log.h: (struct zlog) New timestamp_precision field.
	  (quagga_timestamp) New function to generate a timestamp with the
	  desired precision.
	  (struct timestamp_control) Declare a structure for use in avoiding
	  repeated duplicate calls to quagga_timestamp.
	* log.c: (quagga_timestamp) New function to generate a timestamp
	  of the desired precision.
	  (time_print) Call quagga_timestamp if the time hasn't already been
	  calculated.
	  (vzlog) Initialize a timestamp_control structure and pass it to
	  time_print and vty_log.
	  (zlog_backtrace) Fix 64-bit problem: cannot print size_t with %u.
	* vty.h: Must now include "log.h".
	  (vty_log) Takes an additional struct timestamp_control argument.
	* vty.c: (vty_log_out) Use new struct timestamp_control and new
	  quagga_timestamp function to print timestamps of the desired
	  precision.
	  (vty_time_print) Use new quagga_timestamp function.
	  (vty_log) Accept new struct timestamp_control argument and pass it
	  down to vty_log_out. | 
|  | 2007-04-27 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
	* lib/smux.c: (smux_trap) Fix printf format to work with 64-bit size_t.
	* ospf6d/ospf6_snmp.c: (ospfv3AreaEntry, ospfv3AreaLsdbEntry) Fix some
	  zlog_debug printf formats to work with 64-bit size_t. | 
|  | 2007-04-27 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
	* ripd/ripd.c: (rip_vty_out_uptime) Remove unused variable timer_now.
	* ripngd/ripngd.c: (ripng_vty_out_uptime) Remove unused variable
	  timer_now. | 
|  | 2007-04-21 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
	* ospf_interface.c: (ospf_if_set_multicast) Fix bug: was testing
	  interface passive status improperly in light of the recent
	  'passive-interface default' patch.  Now need to test
	  OSPF_IF_PASSIVE_STATUS(oi) instead of
	  OSPF_IF_PARAM(oi, passive_interface). | 
|  |  | 
|  |  | 
|  | already marked "real" (ZEBRA_IFC_REAL), i.e., "in kernel." According
to Paul Jakma, this probably fixes Quagga bug #202. | 
|  | 2007-04-15 Sebastien Tandel <sebastien@tandel.be>
	* bgp_aspath.c: (aspath_as_add, aspath_segment_add) Minor performance
	  optimization: while loop should test one pointer instead of two. | 
|  |  | 
|  | thread_timer_remain_second) | 
|  | 2007-04-10 Paul Jakma <paul.jakma@sun.com>
	* ioctl{_solaris,}.c: (if_get_mtu) Ping clients via
          zebra_interface_up_update if MTU is changed. | 
|  | 2007-04-08 Paul Jakma <paul.jakma@sun.com>
	* bgp_attr.c: (general) Bug #354: parsing of MP_REACH_NLRI and
	  MP_UNREACH_NLRI does not take sufficient care to ensure reads
	  from stream buffer stay in-bounds. Hence bgpd may attempt to read
	  beyond end of stream, if given a crafted packet. As it uses the
	  stream access methods to do so, this will typically result in
	  assert() being hit in stream.c. Where code is compiled without
	  assert() enabled, result is unknown.
	  (struct message attr_str) should be static.
	  (bgp_mp_reach_parse) Carefully check length remaining in stream
	  against amount desired to read from stream, prior to each read,
	  particularly where lengths are conditional on data obtained from
	  stream - using STREAM_READABLE.
	  Remove code to parse SNPA-number, it's a defunct field and changed
	  to a fixed size in latest BGP MP update RFC - log warning if
	  SNPA-number is not 0.
	  (bgp_mp_unreach_parse) Check withdraw_length carefully against
	  STREAM_READABLE.
	  (bgp_attr_parse) If attribute-parser function returns error, log
	  warning.
	  Log attribute type on mismatch. | 
|  | 2007-04-08 Paul Jakma <paul.jakma@sun.com>
	* bgp_route.c: (general) Same bug as fixed on 2006-11-28 by ajs for
	  bgp static routes, but for main BGP RIB: Quick 'flap' of routes
	  can cause bgpd to mistake a new route for a duplicate route,
	  due to presence of removed, but not yet processed BGP RIB entry.
	  (bgp_update_rsclient) Ignore REMOVED bgp_info for duplicate,
	  restore route instead.
	  (bgp_update_main) Ditto. | 
|  | 2007-04-08 Paul Jakma <paul.jakma@sun.com>
	* interface.c: (if_delete_update) Address removal triggered
	  by kernel shouldn't remove configured IPv4 address from connected
	  list. | 
|  | 2007-04-08 Paul Jakma <paul.jakma@sun.com>
	* {ioctl,kernel}_null.c: Install of IP address should
	  reflect back to zebra via kernel_address_add..., makes
	  testzebra more useful. | 
|  | 2007-04-07 Paul Jakma <paul.jakma@sun.com>
	* lib/prefix.h: Add define to match IPv4 Link-Local addresses
	* zebra/redistribute.c: (zebra_check_addr) Don't redistribute routes
	  to IPv4 link-local prefixes, fixes bug #351.
	* zebra/redistribute.h: Export zebra_check_addr.
	* zebra/router-id.c: (router_id_bad_address) re-use zebra_check_addr
	  rather than implementing similar logic. | 
|  | 2007-04-07 Paul Jakma <paul.jakma@sun.com>
	* bgpd.c: (general) Fix bug #352
	  (bgp_config_write_family_header) write ipv6/multicast
	  address family header.
	  (bgp_config_write) write out ipv6 multicast AF config. | 
|  | 2007-03-23 Paul Jakma <paul.jakma@sun.com>
	* ospf_spf.c: (ospf_nexthop_calculation) Fix silly regression
	  causing ospfd to fail to calculate paths past networks not
	  attached to root vertex, introduced with bug #330 fixes. | 
|  | 2007-03-23 Paul Jakma <paul.jakma@sun.com>
	* ospf_spf.c: (various) Add more debug statements. | 
|  | 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 |