| Age | Commit message (Collapse) | Author | 
|---|
|  |  | 
|  | Add an struct interface paramenter and adjust the affected
    code accordingly.
    The old code was a mess looping over all interfaces several times
    when one interface was added/changed.
    * ospfd/ospfd.h: Add struct interface parameter to ospf_if_update()
    * ospfd/ospf_zebra.c: Add ifp arg to ospf_if_update() calls.
      (ospf_interface_address_delete) delete ospf_if_update() call,
      redundant as function calls ospf_if_free() itself.
    * ospfd/ospfd.c: (ospf_network_unset) handle deconfiguration here,
      rather than ospf_if_update.
      (ospf_network_run_interface) ospf_network_run, for
      any given interface.
      (ospf_network_run) move guts to previous, and use it.
      (ospf_if_update) Adjust to take struct interface as argument, as
      all callers have a specific ifp in mind.
      Iterate over ifp's connected list and call ospf_network_run_interface
      instead of ospf_network_run, turning this path into O(nm) rather
      than O(n^2).
      Adjust all code dealing with opsf_if_update and ospf_network_run to
      pass the new struct interface * arg.
     (some minor modifications and bug-additions by Paul Jakma).
Signed-off-by: Paul Jakma <paul@quagga.net> | 
|  | 'remotes/jocke/snmp_crosscompile' | 
|  | Update ospf_db_desc_send(), ospf_ls_upd_queue_send() and ospf_ls_req_send()
to always use OSPF_ALLSPFROUTERS for PtP links.
See RFC 2328, chap 8.1 for details:
    "The IP destination address for the packet is selected as
     follows.  On physical point-to-point networks, the IP
     destination is always set to the address AllSPFRouters."
Without this, it won't be possible to establish adjacencies on
multiple unnumbered links to the same router.
ChangeLog:
2008-07-25 Joakim Tjernlund <Joakim.Tjernlund@transmode.se>
	* ospfd/ospf_packet.c: Set destination for PtP links to
	  OSPF_ALLSPFROUTERS. | 
|  | PtP links with /32 masks adds host routes to the remote host,
see RFC 2328, 12.4.1.1, Option 1.
Make sure that such routes are ignored | 
|  | --without-crypto
Autoconfig work by me, the rest was done by
"Kirill K. Smirnov" <lich@math.spbu.ru> | 
|  | Dont use vty->index in show_ip_ospf_neighbor_all_cmd(),
It is invalid, use ospf_lookup() instead. | 
|  |  | 
|  |  | 
|  | 2008-08-15 Paul Jakma <paul.jakma@sun.com>
	* */*: Fix various problems flagged by Sun Studio compiler.
	  - '<qualifier> <storage>' obsolescent in declarations
	  - empty statements (';' after ALIAS definitions)
	  - implicit declarations (e.g printstack in lib/log.c)
	  - "\%" in printf string instead of "%%"
	  - loops that return on the first iteration (legitimately, but
 	    compiler can't really know), e.g. bgp_routemap.c
 	  - internal declarations which mask prototypes. | 
|  | 2008-08-14 Stephen Hemminger <stephen.hemminger@vyatta.com>
	* lib/log.{c,h}: struct message argument should point to const
	* */*.c: adjust to suit,
Signed-off-by: Paul Jakma <paul@quagga.net> | 
|  | 2008-08-13 Daniel Ng <daniel_ng11@lycos.com>
	* ospf_nsm.c: (nsm_change_state) Refresh default route on
	  state change - a hack, but it works.
Signed-off-by: Paul Jakma <paul@quagga.net> | 
|  | 2008-08-13 Jingjing Duan <Jingjing.Duan@sun.com>
	* ospfd/: Remove the old checksum implementation and
	  use the consolidated version.
	* isisd/: ditto, thus fixing isisd checksuming on big-endian.
Signed-off-by: Paul Jakma <paul@quagga.net> | 
|  |  | 
|  | 2008-05-29 Martin Nagy <mnagy@redhat.com>
	* */*main.c: Sanity check port numbers before using. | 
|  | 2008-01-30 Peter Szilagyi <sp615@hszk.bme.hu>
	* lib/stream.h: Remove named 'new' parameter in prototype
	  for c++ header compatibility.
	* ospfd/ospf_opaque.h: ditto
	* ospfd/ospfd.h: Renamed struct export to _export for c++
	  header compatibility.
	* ospf6d/ospf6_area.h: ditto | 
|  |  | 
|  |  | 
|  |  | 
|  | 2007-08-07 Paul Jakma <paul.jakma@sun.com>
	* ospf_spf.c: (ospf_spf_next) Finish off the explanatory
	  comment made in previous commit | 
|  | 2007-08-07 Atis Elsts <atis@mikrotik.com>
	* ospf_spf.c: (ospf_spf_next) Sort heap in correct direction
	  after vertex cost is changed, thus fixing incorrect SPF
	  calculation on certain topologies.
	* lib/pqueue.{c,h}: Export trickle_up | 
|  | uninentionally deleted along with a test. | 
|  | 2007-08-06 Paul Jakma <paul.jakma@sun.com>
	* ospf_lsa.c: (router_lsa_flags) Bug #331, NSSA regression caused
	  caused ASBRs to not advertise E-bit into NSSA areas. | 
|  | 2007-05-09 Milan Kocian <milon@wq.cz>
	* ospf_vty.c: Fix commands: 'ip ospf authentication A.B.C.D',
	  'no ip ospf authentication A.B.C.D', 'no ip ospf
	  authentication-key A.B.C.D'. Simply fix argv's indexes and
          argc check in DEFUN functions. | 
|  | 2007-05-09 Paul Jakma <paul.jakma@sun.com>
	* configure.ac: sys/conf.h depends on sys/param.h, at least on
	  FBSD 6.2.
	  (bug #363) Should check for in_pktinfo for IRDP
2006-05-27 Paul Jakma <paul.jakma@sun.com>
	* configure.ac: General cleanup of header and type checks, introducing
	  an internal define, QUAGGA_INCLUDES, to build up a list of
	  stuff to include so as to avoid 'present but cant be compiled'
	  warnings.
	  Misc additional checks of things missing according to autoscan.
	  Add LIBM, for bgpd's use of libm, so as to avoid burdening
	  LIBS, and all the binaries, with libm linkage.
	  Remove the bad practice of using m4 changequote(), just
	  quote the []'s in the case statements properly.
	  This should fix bugs 162, 303 and 178.
	* */*.{c,h}: Update all HAVE_* to the standard autoconf namespaced
	  HAVE_* defines. I.e. HAVE_SA_LEN -> HAVE_STRUCT_SOCKADDR_SA_LEN,
	* bgpd/Makefile.am: Add LIBM to bgpd's LDADD, for pow(). | 
|  | 2007-05-07 Paul Jakma <paul.jakma@sun.com>
	* ospf_spf.c: (ospf_vertex_new) Dont init vertices to infinity,
	  just let 0 be a special case.
	  (ospf_spf_add_parent) 0 distance candidate vertex is special,
	  cost still to be initialised - asserting that new distance
	  is <= existing only makes sense where w already has a cost.
	  (ospf_spf_next) Infinite cost links should not be followed,
	  bar those of the root. | 
|  | 2007-04-30 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
	* ospfd/ospfd.c: (ospf_network_match_iface) Comment out
	  COMPATIBILITY_MODE.  Going forward, the ospf "network" command
	  will use a simple test: does the network command prefix
	  contain the connected (destination) prefix of the interface?
	* doc/ospfd.texi: Add a paragraph to the description of the OSPFv2
	  network command to explain how we handle interfaces with
	  peer addresses. | 
|  | 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). | 
|  | 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-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-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-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-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-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>
	* 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>
	* 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-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. | 
|  | 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-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. | 
|  | 2006-08-28 Andy Gay <andy@andynet.net>
	* ospf_packet.c: (ospf_make_db_desc) Assert added with More-bit
	  fixes does not hold up with addition of Ogier DB-Exchange
	  optimisation, which can empty the db-summary list in between
	  sent DD packets. Remove assert, update More-bit always when
	  in Exchange. | 
|  | 2006-08-27 J.J. Krabbendam <jkrabbendam@aimsys.nl>
	* ospfd.c: (ospf_finish_final) default redistribute should be
	  unset too, fixes bug where reconfiguring ospfd completely
	  can no longer enable default redistribution. | 
|  | 2006-08-25 Paul Jakma <paul.jakma@sun.com>
	* (general) Bug #134. Be more robust to backward time changes,
	  use the newly added libzebra time functions.
	  In most cases: recent_time -> recent_relative_time()
	  gettimeofday -> quagga_gettime (QUAGGA_CLK_MONOTONIC, ..)
	  time -> quagga_time.
	  (ospf_make_md5_digest) time() call deliberately not changed.
	  (ospf_external_lsa_refresh) remove useless gettimeofday, LSA
	  tv_orig time was already set in ospf_lsa_new, called via
	  ospf_external_lsa_new. | 
|  | 2006-08-03 Paul Jakma <paul.jakma@sun.com>
	* ospf_packet.c: (ospf_make_db_desc) Implement
	  draft-ogier-ospf-dbex-opt DB-exchange optimisation. | 
|  | 2006-08-03 Paul Jakma <paul.jakma@sun.com>
	* ospf_packet.c: (ospf_make_db_desc) Unset the DD More bit
	  after constructing the packet, if appropriate.
	  (ospf_db_desc_proc) Speed up Exchange, slave should raise
	  ExchangeDone earlier, as RFC mandates, by forming its reply
	  before deciding whether both sides are done, avoids a
	  needless round of empty DD packet exchanges at the end of
	  Exchange, hence speeding up ExchangeDone.
	  (ospf_db_desc) use UNSET_FLAG macro. | 
|  | 2006-08-04 Paul Jakma <paul.jakma@sun.com>
	* ospf_lsdb.c: (ospf_lsdb_delete_entry) new function, consolidate
	  exact same functionality replicated in other functions.
	  (ospf_lsdb_add) Strip out code by using ospf_lsdb_delete_entry.
	  (ospf_lsdb_delete) ditto.
	  (ospf_lsdb_delete_all) ditto. | 
|  | 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. |