| Age | Commit message (Collapse) | Author | 
|---|
|  |  | 
|  | 2006-07-27 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
	* ospfd.c: (ospf_router_id_update) Fix and document the algorithm for
	  selecting the router ID: if there is not a statically configured ID,
	  then stick to the most recent value to avoid disruptive changes.
	  This should fix bug #288. | 
|  | 2006-07-27 Paul Jakma <paul.jakma@sun.com>
	* rib.h: (struct rib) Add a route_node rn_status flag field,
	  this has to be copied every time head RIB of a route_node
	  changes.
	  Remove the rib lock field, not needed - see below.
	  Add a status field for RIB-private flags.
	* zebra_rib.c: Add a global for the workqueue hold time, useful
	  for testing.
	  (general) Fix for bug #268. Problem originally
	  detailed by Simon Bryden in [quagga-dev 4001].
	  Essentially, add/delete of a RIB must happen /before/ the
	  queue. Best-path selection (ie rib_process) and reaping of
	  freed RIBs can then be done after queueing. Only the route_node
	  is queued - no important RIB state (i.e. whether a RIB is to be
	  deleted) is queued.
	  (struct zebra_queue_node_t) Disappears, no longer need to
	  track multiple things on the queue, only the route_node.
	  (rib_{lock,unlock}) removed, RIBs no longer need to be
	  refcounted, no longer queued.
	  (rib_queue_qnode_del) Removed, deleted RIBs no longer deleted
	  via the queue.
	  (rib_queue_add_qnode) deleted
	  (rib_queue_add) Only the route_node is queued for best-path
	  selection, we can check whether it is already queued or
	  not and avoid queueing same node twice - struct rib * argument
	  is not needed.
	  (rib_link/unlink) (un)link RIB from route_node.
	  (rib_{add,del}node) Front-end to updates of a RIB.
	  (rib_process) Reap any deleted RIBs via rib_unlink.
	  Unset the route_node 'QUEUED' flag.
	  (General) Remove calls to rib_queue_add where add/del node was
	  called - not needed, update calls where not.
	  Ignore RIB_ENTRY_REMOVEd ribs in loops through route_nodes | 
|  | 2006-07-27 Paul Jakma <paul.jakma@sun.com>
	* debug.{c,h}: Add 'debug zebra rib' and 'debug zebra rib queue'. | 
|  | 2006-07-27 Paul Jakma <paul.jakma@sun.com>
	* {ioctl,kernel}_null.c: Dummy/Null kernel method implementations,
	  useful for testing zebra code that calls such methods.
	* {redistribute,misc}_null.c: Dummy/Null methods, as above. But
	  for zclient, and for various misc functions.
	* test_main.c: Test harness for zebra, currently just to test the
	  RIB.
	* Makefile.am: Build testzebra using above.
	* zebra_rib.c: Add a global for the workqueue hold time, useful
	  for testing. | 
|  | 2006-07-27 Paul Jakma <paul.jakma@sun.com>
	* bgpd.c: (peer_delete) Ensure freed buffers can not be
	  accidently reused. A potential fix for bug #287. | 
|  | 2006-07-27 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
	* vtysh.1: Document new options -d and -E, and note that now multiple
	  -c options may be supplied, with embedded linefeed now supported.
	  In BUGS section, remove warning about vtysh causing a daemon
	  to freeze, since this has been fixed.
	* vtysh_main.c: (usage) Add new -d and -E options.  And note that
	  -c can be used multiple times, possibly with embedded linefeeds.
	  (longopts) Add new -d and -E options.
	  (main) Add new -d and -E options, and create a linked list to
	  support multiple -c options.  Do not call vtysh_connect_all until
	  after vtysh_read_config(config_default) and vtysh_auth have
	  succeeded.  This prevents the vtysh.conf file from configuring
	  any daemons, and it ensures that authentication has been passed
	  before we send any commands to any daemons.  Call vtysh_connect_all
	  with any daemon name supplied with -d.  If it is unable to connect
	  to any daemons, issue an error message and exit immediately.
	  When used in -c mode, call vtysh_execute("enable") before
	  executing the commands in order to match interactive behavior.
	  And detect embedded linefeed chars in -c commands and break them up
	  appropriately.
	* vtysh.h: (vtysh_connect_all) Fix proto to reflect new
	  daemon_name argument, and that it now returns an integer -- the
	  number of daemons to which we were able to connect.
	* vtysh.c: (vtysh_connect_all) Add a new daemon_name argument.
	  If supplied, connect only to that daemon.  And return
	  the number of daemons to which we were able to connect.
	  (vtysh_prompt): Performance enhancement -- make struct utsname
	  static so we call uname to get the hostname only once. | 
|  | 2006-07-27 Rumen Svobodnikov <rumen@telecoms.bg>
	* connected.c: (connected_up_ipv4) interface connected routes always
	  go to table main (or otherwise they cannot be used by linux as
          nexthops)
	* zserv.c: (zread_ipv4_add) send route to the correct routing table
	* zebra_rib.c (static_install_ipv4) set routing table | 
|  | 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. | 
|  | 2006-07-25 Paul Jakma <paul.jakma@sun.com>
	* ospf_neigbor.h: (struct ospf_neighbor) Add some additional
	  neighbour state statistics fields, timestamps for progressive
	  and regressive state changes, and pointer to event string
	  for the latter state change.
	* ospf_nsm.c: (nsm_notice_state_change) Update new state changs
	  history as required.
	* ospf_vty.c: (show_ip_ospf_neighbor_detail_sub) Print out above
	  new per-neighbour state change stats. | 
|  | 2006-07-25 Paul Jakma <paul.jakma@sun.com>
	* thread.h: (struct thread) Add a cache pointer to the struct
	  cpu_thread_history, if it is known - saving hash lookup on
	  each thread_call.
	* thread.c: (thread_call) Cache the pointer to the
          cpu_thread_history, so that future thread_calls of same
          thread can avoid the hash_lookup. | 
|  | 2006-07-10 Paul Jakma <paul.jakma@sun.com>
	* ospf_nsm.c: (ospf_nsm_event) Record state change timestamp
	  and event in nbr struct.
	* ospf_neighbor.h: (struct ospf_neighbor) Add fields to record
	  timestamp of last NSM change and event.
	* ospf_vty.c: (show_ip_ospf_neighbor_detail_sub) Print
	  last state change timestamp and event, if available. | 
|  | 2006-07-10 Paul Jakma <paul.jakma@sun.com>
	* ospf_nsm.c: (nsm_notice_state_changes) Move state change
	  logging code to new func to declutter nsm_change_state and
	  ospf_nsm_event.
	  Log event with AdjChange, it's useful to know.
	  (nsm_change_state) move adjchange and snmp logging to previous.
	  (ospf_nsm_event) call nsm_notice_state_changes from here.
	  Move the debug message to entry of function, so it gets out
	  even if something goes wrong. | 
|  | 2006-07-10 Paul Jakma <paul.jakma@sun.com>
	* ospf_nsm.c: (nsm_change_state) call nsm_clear_adj for all
	  adjacency losses, hence removing need for nsm_reset_nbr.
	  (nsm_reset_nbr) kill it, clear_adj in previous does fine.
	  (nsm_kill_nbr,nsm_start) remove nsm_reset_nbr call.
	  (ospf_nsm_event) Allow NSM function to be NULL, this along with
	  removal of nsm_reset_nbr, allows a bunch of now useless functiosn
	  to be removed.
	  Remove some useless variables.
	  (nsm_ignore) now useless, remove.
	  (nsm_bad_ls_req) ditto
	  (nsm_seq_number_mismatch)   "
	  (nsm_oneway_received)       "
	  (nsm_inactivity_timer)      "
	  (nsm_ll_down)               "
	  (NSM) replace removed action functions with NULL. | 
|  | 2006-07-10 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
	* ospf_packet.c: (ospf_hello) Improve NetworkMask mismatch warning
	  message to include interface name and conflicting prefix lengths. | 
|  | 2006-07-10 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
	* vty.c: (vty_log_out) Do not call vty_close, because this could
	  result in a parent function's accessing the freed memory.
	  Instead, set status VTY_CLOSE and call shutdown(vty->fd, SHUT_RDWR).
	  And add a comment on vty_close. | 
|  | 2006-07-10 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
	* vty.c: (vty_log_out, vty_read, vty_flush, vtysh_flush, vtysh_read)
	  After an I/O error, must set vty->monitor to 0 before calling
	  zlog_warn, otherwise an infinite recursion could occur
	  (since zlog_warn triggers a message to be written to the vty,
	  and that in turn triggers another error message when it fails, etc.). | 
|  | 2006-07-07 Paul Jakma <paul.jakma@sun.com>
	* ospf_nsm.h: Add a NSM_Deleted neighbour state, to act as dummy
	  state indicating the neighbour is to be deleted.
	* ospf_nsm.c: (general) Use the NSM_Deleted state to delete
	  neighbours, thus allowing code to be slightly more obvious
	  in its flow.
	  (nsm_timer_set) Add NSM_Deleted. Add another timer the code
	  missed.
	  (nsm_kill_nbr) No need for special case call to nsm_change_state
	  anymore.
	  Make the assert and error-handling for same case more readable
	  (Andrew Schorr)
	  Remove the call to ospf_nbr_delete, nsm_change_state can do
	  this generally now via NSM_Deleted.
	  (struct ... NSM) Add the dummy NSM_Deleted state, the 3 events
	  that can lead to nsm_kill_nbr all now transition the NBR to
	  NSM_Deleted and the general change_state function can be left
	  to do the work.
	  (ospf_nsm_event) Special casing of events and early-return can
	  be removed now.
	  On transition into Deleted, delete the nbr.
	* ospf_dump.c: (ospf_nsm_state_msg) Add Deleted. | 
|  | 2006-07-06 Paul Jakma <paul.jakma@sun.com>
	* ospf_nsm.c: (ospf_nsm_event) LLDown event also results in nbr
	  being deleted, requires early-return too. Likely explains
	  some crash reports after interface events. | 
|  | 2006-07-04 Paul Jakma <paul.jakma@sun.com>
	* quagga.info: remove auto-generated file. It will still be
	  present in dist tarballs, so shouldn't affect anyone but
	  direct users of CVS. Required texinfo version should be
	  widely available.
	* .cvsignore: ignore quagga.info | 
|  | 2006-07-04 Paul Jakma <paul.jakma@sun.com>
	* ospf_nsm.c: (general) Various small cleanups from Andrew's
	  review of last set of patches.
	  (nsm_timer_set) Loading, Full and default can share
	  same code too.
	  (nsm_should_adj) Can just be one big OR.
	  (nsm_twoway_received) Collapse into return statement. | 
|  | 2006-07-02 Paul Jakma <paul.jakma@sun.com>
	* ospf_lsa.c: (ospf_translated_nssa_refresh) CID #13. | 
|  | 2006-07-02 Paul Jakma <paul.jakma@sun.com>
	* ospf_nsm.c: (nsm_clear_adj) clear adjacency related state for a
	  neighbour, needed for some state changes from > ExStart down
	  to ExStart or less, which need not go through nsm_reset_nbr.
	  (nsm_reset_nbr) move code to former. Should be static.
	  (ospf_nsm_event) Remove long dead code.
	  Use nsm_clear_adj for state changes that take down
	  adjacencies to TwoWay/ExStart.
	  (nsm_kill_nbr) Oops, action function shouldn't try return
	  1 for error. | 
|  | 2006-07-02 Paul Jakma <paul.jakma@sun.com>
	* ospf_nsm.c: (nsm_timer_set) ls_req timer should be OFF in
	  early states.
	  Compact several identical sections.
	  Set inactivity timer to OFF for Down, for documentary purposes. | 
|  | 2006-07-02 Paul Jakma <paul.jakma@sun.com>
	* ospf_nsm.c: (ospf_nsm_event) Don't allow action functions to
	  change next_state if the NSM tables do not indicate
	  next_state is conditional, log warning if one tries -
	  existing code appears fine though. | 
|  | 2006-07-02 Paul Jakma <paul.jakma@sun.com>
	* ospf_nsm.c: (nsm_should_adj) New function, just consolidate the
	  10.4 adjacency check from nsm_twoway_received/nsm_adj_ok.
	  (nsm_twoway_received/nsm_adj_ok) Use former. | 
|  | 2006-07-03 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
	* vty.c: (vty_log_out) Debug messages to terminal vty sessions
	  should include timestamps. | 
|  | 2006-07-02 Paul Jakma <paul.jakma@sun.com>
	* rt_netlink.c: (netlink_interface_addr) Fix CID #104, can not
	  proceed if addr is NULL.
	* zebra_rib.c: (static_add_ipv6) Fix CID #18, double check
	  required arguments are supplied for the given nexthop type. | 
|  | 2006-07-02 Paul Jakma <paul.jakma@sun.com>
	* bgp_fsm.c: (bgp_{stop,start}) Move clear/free of certain
	  bits of state from stop to start, as they may be used via
	  peer references on clearing queues.. | 
|  | 2006-06-29 Paul Jakma <paul.jakma@sun.com>
	* rip_zebra: (general) convert redistribute commands to use
	  the auto-generated defines. | 
|  | - entry was left in wrong order, according to date. | 
|  | 2006-06-30 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
	* ospf_vty.c: (show_ip_ospf_neighbor_id) Should show all instances
	  of that neighbor (since it may appear on multiple interfaces)
	  instead of bailing out after showing the first match. | 
|  | 2006-06-28 Paul Jakma <paul.jakma@sun.com>
	* memory.c: Fix typo in cpp conditional around malloc.h, from
	  comment in bug #269. | 
|  | 2006-06-29 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
	* ospf_nsm.c: (nsm_twoway_received) When deciding whether to
	  change from state Init to ExStart, the test for whether the
	  neighboring router is DR or BDR should be against the
	  local router's notion of DR/BDR, not the neighbor's view. | 
|  | 2006-06-28 Erik Muller <erikm@internap.com>
	* ospfd.h: Define 2 new struct ospf config flags:
	  OSPF_LOG_ADJACENCY_CHANGES and OSPF_LOG_ADJACENCY_DETAIL
	* ospf_nsm.c (nsm_change_state): Log adjacency changes if
	  requested.
	* ospf_vty.c (ospf_log_adjacency_changes): New command function
	  to implement ospf subcommand "log-adjacency-changes [detail]".
	  (no_ospf_log_adjacency_changes) Turn off log-adjacency-changes.
	  (show_ip_ospf) Show whether adjacency changes are logged.
	  (ospf_config_write) Add "log-adjacency-changes [detail]" to config.
	  (ospf_vty_init) Add ospf_log_adjacency_changes and
	  no_ospf_log_adjacency_changes.
	* ospfd.texi: Document new ospf router subcommand
	  "log-adjacency-changes [detail]". | 
|  | 2006-06-27 Paul Jakma <paul.jakma@sun.com>
	* route_types.awk: Fix previous commit. Forgot to remove the
	  printf of the bare/numeric route-type help string (empty string) | 
|  | 2006-06-27 Paul Jakma <paul.jakma@sun.com>
	* route_types.awk: Remove setting the 'bare' numeric route type
	  in redist strings. | 
|  | 2006-05-23 Paul Jakma <paul.jakma@sun.com>
	* ospf_vty.c: (general) Replace in-place route redistribution
	  command and help strings with the new auto-generated defines
	  from lib/route_types.h | 
|  | 2006-05-23 Paul Jakma <paul.jakma@sun.com>
	* route_types.txt: New file, table of ZEBRA_ROUTE definitions.
	* route_types.awk: New script, to parse previous and generate
	  (for now) redistribute string defines.
	* Makefile.am: build route_types.h using previous two, ala
	  memtypes.h, include the script and table file in EXTRA_DIST.
	* command.h: pull in route_types.h, add a REDIST_STR define. | 
|  | 2006-06-26 Paul Jakma <paul.jakma@sun.com>
	* ospfd.texi: Document that MD5 keyid is part of the protocol.
	* bgpd.texi: shut texinfo warnings up by replacing brackets in
	  variable with angle brackets. | 
|  | 2006-06-26 Paul Jakma <paul.jakma@sun.com>
	* ospf_abr.c: (general) NSSA translate-candidate ABRs need to
	  be ASBRs, or other routers may rightfully refuse to install
	  translated type-5s LSAs. reported by dendroot@gmail.com.
	  (ospf_abr_nssa_check_status) Detect change in translator
	  state when ABR, and inc/dec redistribute count as when we
	  leave/enter the disabled state - so that translate-enabled
	  ABR properly sets ASBR bit on non-NSSA areas.
	  Run the resulting function through indent to clean it up.
	* ospf_lsa.c: (router_lsa_flags) For purposes of ASBR bit,
	  NSSA area is same as stub area. | 
|  | 2006-06-24 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
	* ospf_snmp.c: (ospfTrapNbrStateChange, ospfTrapIfStateChange) Improve
	  info log message to indicate why the trap is being sent. | 
|  | 2006-06-24 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
	* ospf_dump.c: (config_write_debug) Fix typo to show debug ospf nsm
	  status properly (not ism status). | 
|  | 2006-06-17 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
	* ospf_vty.c: ({no_,}ospf_passive_interface) Replace if_lookup_by_name
	  with a call to if_get_by_name -- if the interface does not exist
	  already, it should be created.  And remove the obsolete warning
	  message. | 
|  | 2006-06-15 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
	* redhat/quagga.spec.in: Get default distro automatically
	  by using rpm to query the fedora-release version.
	  And fix a typo (should be default_dist, not dist_default). | 
|  | 2006-06-15 Paul Jakma <paul.jakma@sun.com>
	* Reported by Milan Koci
	* ospf_interface.h: (struct ospf_if_info) Add reference counts
	  for multicast group memberships. Add various macros to help
	  manipulate/check membership state.
	* ospf_interface.c: (ospf_if_set_multicast) Maintain the
	  ospf_if_info reference counts, and only actually drop
	  memberships if it hits 0, to avoid losing membership when
	  OSPF is disabled on an interface with multiple active OSPF
	  interfaces.
	* ospf_packet.c: (ospf_{hello,read}) Use the new macros to
	  check/set
	  multicast membership.
	* ospf_vty.c: (show_ip_ospf_interface_sub) ditto. | 
|  | 2006-06-15 Paul Jakma <paul.jakma@sun.com>
	* (general) The key fixes are actually Andrew Schorr's.
	* interface.c: (ip_address_uninstall) Unset the configured flag.
	* connected.c: (connected_same) new helper, check whether
	  two connected are same.
	  (connected_implicit_withdraw) new helper, consolidation of
	  existing code in connected_add_ipv{4,6}.
	  Try filter out unneeded Zserv address delete/adds when
	  address is exact same.
	  Where old address is implicitely removed, be sure to preserve
	  the IFC_CONFIGURED flag if set, fixes bug where configured
	  addresses were being lost on FreeBSD. | 
|  | 2006-06-15 Paul Jakma <paul.jakma@sun.com>
	* lib/if.c: (if_flag_dump) remove the whitespace indentation, callers
	  should provide.
	* zebra/interface.c: (if_flag_dump_vty) redundant code, remove.
	  (if_dump_vty) use libzebra if_flag_dump. | 
|  | 2006-06-15 Paul Jakma <paul.jakma@sun.com>
	* linklist.c: (list_delete) call list_delete_all_node, don't
	  duplicate it. | 
|  | 2006-06-15 Paul Jakma <paul.jakma@sun.com>
	* memory.h: Experimental, have XFREE macro NULL out the freed
	  pointer. |