summaryrefslogtreecommitdiff
path: root/ospfd
AgeCommit message (Collapse)Author
2005-05-112005-05-11 Paul Jakma <paul.jakma@sun.com>paul
* (general) Fix memory leaks in opaque AS-scope LSAs, reported and with much debugging done by by scott collins <scollins@agile.tv>. (possible backport candidate?) * ospf_lsa.c: (ospf_discard_from_db) dont call ospf_ase_unregister_external_lsa for opaque-lsa's, opaques are never registered with ase in the first place. * ospf_packet.c: (general) Disabuse opaque related code of its tendency to try gather up things into temporary lists. (ospf_ls_upd) remove the temporary lists opaque uses, call opaque functions inline, just like all other types. (ospf_ls_ack) ditto. (ospf_recv_packet) fixup sign warning. * ospf_opaque.c: (general) fix the unneeded use of lists, and untwist some of the logic. (ospf_opaque_self_originated_lsa_received) take a single LSA as argument, not a list of them. Remove the list loop. Logic otherwise unchanged. (ospf_opaque_ls_ack_received) Mostly ditto. But untwist the logic, move the actions up into the switch block, remove the goto's and sanitise the logic near the end a bit. * ospf_opaque.h: Adjust definitions of aforementioned functions in ospf_opaque.c to match.
2005-05-072005-05-07 Yar Tikhiy <yar@comp.chem.msu.su>paul
* configure.ac: Check for OSes which support passing ifindex in struct ip_mreq. * lib/sockopt.c: Add support for BSD style ifindex in ip_mreq. * ospfd/ospf_network.c: Log ifindex on multicast membership leave/join events.
2005-05-062005-05-06 Paul Jakma <paul.jakma@sun.com>paul
* (general) extern and static qualifiers added. unspecified arguments in definitions fixed, typically they should be 'void'. function casts added for callbacks. Guards added to headers which lacked them. Proper headers included rather than relying on incomplete definitions. gcc noreturn function attribute where appropriate. * ospf_opaque.c: remove the private definition of ospf_lsa's ospf_lsa_refresh_delay. * ospf_lsa.h: export ospf_lsa_refresh_delay * ospf_packet.c: (ospf_make_md5_digest) make *auth_key const, correct thing to do - removes need for the casts later. * ospf_vty.c: Use vty.h's VTY_GET_INTEGER rather than ospf_vty's home-brewed versions, shuts up several warnings. * ospf_vty.h: remove VTY_GET_UINT32. VTY_GET_IPV4_ADDRESS and VTY_GET_IPV4_PREFIX moved to lib/vty.h. * ospf_zebra.c: (ospf_distribute_list_update_timer) hacky overloading of the THREAD_ARG pointer should at least use uintptr_t.
2005-04-152005-04-15 Zhipeng Gong <zpgong@cdc.3upsystems.com>paul
* ospf_abr.c: (ospf_abr_announce_network_to_area) dont forget to approve LSAs for the case where metric has changed, lsa gets flushed otherwise. (backport candidate).
2005-04-112005-04-11 Andrew J. Schorr <ajschorr@alumni.princeton.edu>ajs
Implement non-blocking zclient I/O with buffering. * zclient.h (struct zclient): Add two fields to support non-blocking I/O: struct buffer *wb, and struct thread *t_write. (zclient_free): Remove function. (zebra_redistribute_send): Change 2nd arg from socket fd to struct zclient * (needed to support non-blocking I/O and buffering). (zclient_send_message): New function to send an arbitrary message with non-blocking I/O. * zclient.c (zclient_new): Create write buffer. (zclient_free): Remove unused function. (zclient_stop): Must cancel new t_write thread. Also, reset all buffers: ibuf, obuf, and wb. (zclient_failed): New helper function for typical error handling. (zclient_flush_data): New thread to flush queued data. (zclient_send_message): New function to send the message in zclient->obuf to zebra using non-blocking I/O and buffering. (zebra_message_send, zapi_ipv4_route, zapi_ipv6_route): Use new zclient_send_message function instead of calling writen. (zclient_start): Set socket non-blocking. Also, change 2nd arg to zebra_redistribute_send from zclient->sock to zclient. (zebra_redistribute_send): Change 2nd arg to struct zclient *. Can now use zclient->obuf to assemble the message instead of allocating a temporary stream. And call zclient_send_message to send the message instead of writen. (zclient_read): Convert to support non-blocking I/O by using stream_read_try instead of deprecated stream_read. (zclient_redistribute): Change 2nd arg to zebra_redistribute_send from zclient->sock to zclient. * ospf6_zebra.c (ospf6_zebra_redistribute, ospf6_zebra_no_redistribute): Change 2nd arg to zebra_redistribute_send from zclient->sock to zclient. * ospf_zebra.c (ospf_zebra_add): Call zclient_send_message instead of writen. * rip_zebra.c (rip_redistribute_set, rip_redistribute_unset, rip_redistribute_clean): Change 2nd arg to zebra_redistribute_send from zclient->sock to zclient. * ripng_zebra.c (ripng_redistribute_unset, ripng_redistribute_clean): Change 2nd arg to zebra_redistribute_send from zclient->sock to zclient. * bgp_zebra.c (bgp_redistribute_set, bgp_redistribute_unset): The 2nd arg to zebra_redistribute_send is now zclient instead of zclient->sock. * isis_zebra.h (isis_zebra_finish): Remove declaration of unused function. * isis_zebra.c (isis_zebra_route_add_ipv4): Call zclient_send_message to send the message to zebra instead of calling writen directly, since zclient_send_message understands non-blocking I/O and will manage the buffer queue appropriately. (isis_zebra_finish): Remove unused function, particularly since the zclient_free function has been removed.
2005-04-072005-04-07 Paul Jakma <paul.jakma@sun.com>paul
* (global): Fix up list loops to match changes in lib/linklist, and some basic auditing of usage. * configure.ac: define QUAGGA_NO_DEPRECATED_INTERFACES * HACKING: Add notes about deprecating interfaces and commands. * lib/linklist.h: Add usage comments. Rename getdata macro to listgetdata. Rename nextnode to listnextnode and fix its odd behaviour to be less dangerous. Make listgetdata macro assert node is not null, NULL list entries should be bug condition. ALL_LIST_ELEMENTS, new macro, forward-referencing macro for use with for loop, Suggested by Jim Carlson of Sun. Add ALL_LIST_ELEMENTS_RO for cases which obviously do not need the "safety" of previous macro. LISTNODE_ADD and DELETE macros renamed to ATTACH, DETACH, to distinguish from the similarly named functions, and reflect their effect better. Add a QUAGGA_NO_DEPRECATED_INTERFACES define guarded section with the old defines which were modified above, for backwards compatibility - guarded to prevent Quagga using it.. * lib/linklist.c: fix up for linklist.h changes. * ospf6d/ospf6_abr.c: (ospf6_abr_examin_brouter) change to a single scan of the area list, rather than scanning all areas first for INTER_ROUTER and then again for INTER_NETWORK. According to 16.2, the scan should be area specific anyway, and further ospf6d does not seem to implement 16.3 anyway.
2005-04-022005-04-02 Andrew J. Schorr <ajschorr@alumni.princeton.edu>ajs
* ospf_interface.h: (ospf_if_lookup_by_name) Remove declaration of a function that does not exist. * ospf6_interface.[ch]: (ospf6_interface_lookup_by_name) Remove unused function.
2005-04-022005-04-02 Andrew J. Schorr <ajschorr@alumni.princeton.edu>ajs
* ospf_zebra.c: (zebra_interface_if_lookup) Must use if_lookup_by_name_len.
2005-04-022005-04-02 Andrew J. Schorr <ajschorr@alumni.princeton.edu>ajs
* if.h: (if_lookup_by_name_len, if_get_by_name_len) New functions. * if.c: (if_lookup_by_name_len, if_get_by_name_len) New functions. (if_get_by_name) Tighten up code. (interface) Use new function if_get_by_name_len. * zclient.c: (zebra_interface_add_read) Use new if_get_by_name_len function. (zebra_interface_state_read) Use new if_lookup_by_name_len function. * kernel_socket.c: (ifm_read) Use new if_lookup_by_name_len function to save a memcpy. * if_ioctl_solaris.c: (interface_list_ioctl) Fix subtle bug with new if_get_by_name_len function. * ospf_interface.c: (ospf_vl_new) Use strnlen to fix call to if_create.
2005-04-022005-04-02 Andrew J. Schorr <ajschorr@alumni.princeton.edu>ajs
Fix problems when netlink interfaces are renamed (same ifindex used for a new interface). Start cleaning up some problems with the way interface names are handled. * interface.c: (if_new_intern_ifindex) Remove obsolete function. (if_delete_update) After distributing the interface deletion message, set ifp->ifindex to IFINDEX_INTERNAL. (if_dump_vty) Detect pseudo interface by checking if ifp->ifindex is IFINDEX_INTERNAL. (zebra_interface) Check return code from interface_cmd.func. Do not set internal ifindex values to if_new_intern_ifindex(), since we now use IFINDEX_INTERNAL for all pseudo interfaces. * kernel_socket.c: (ifm_read) Fix code and comments to reflect that all internal interfaces now have ifp->ifindex set to IFINDEX_INTERNAL. * rt_netlink.c: (set_ifindex) New function used to update ifp->ifindex. Detects interface rename events by checking if that ifindex is already being used. If it is, delete the old interface before assigning the ifindex to the new interface. (netlink_interface, netlink_link_change) Call set_ifindex to update the ifindex. * if.h: Remove define for IFINDEX_INTERNBASE and add define IFINDEX_INTERNAL 0, since all internal (i.e. non-kernel) pseudo- interfaces should have ifindex set to 0. (if_new) Remove function. (if_delete_retain) New function to delete an interface without removing from iflist and freeing the structure. (ifname2ifindex) New function. * if.c: (if_new) Remove function (absorb into if_create). (if_create) Replace function if_new with call to calloc. Set ifp->ifindex to IFINDEX_INTERNAL. Fix off-by-one error in assert to check length of interface name. Add error message if interface with this name already exists. (if_delete_retain) New function to delete an interface without removing from iflist and freeing the structure. (if_delete) Implement with help of if_delete_retain. (ifindex2ifname) Reimplement using if_lookup_by_index. (ifname2ifindex) New function to complement ifindex2ifname. (interface) The interface command should check the name length and fail with a warning message if it is too long. (no_interface) Fix spelling in warning message. (if_nametoindex) Reimplement using if_lookup_by_name. (if_indextoname, ifaddr_ipv4_lookup) Reimplement using if_lookup_by_index. * bgp_zebra.c: (bgp_interface_delete) After deleting, set ifp->ifindex to IFINDEX_INTERNAL. * isis_zebra.c: (isis_zebra_if_del) Call if_delete_retain instead of if_delete, since it is generally not safe to remove interface structures. After deleting, set ifp->ifindex to IFINDEX_INTERNAL. (zebra_interface_if_lookup) Tighten up code. * ospf6_zebra.c: (ospf6_zebra_if_del) Previously, this whole function was commented out. But this is not safe: we should at least update the ifindex when the interface is deleted. So the new version updates the interface status and sets ifp->ifindex to IFINDEX_INTERNAL. (ospf6_zebra_route_update) Use if_indextoname properly. * ospf_vty.c: (show_ip_ospf_interface_sub) Show ifindex and interface flags to help with debugging. * ospf_zebra.c: (ospf_interface_delete) After deleting, set ifp->ifindex to IFINDEX_INTERNAL. (zebra_interface_if_lookup) Make function static. Tighten up code. * rip_interface.c: (rip_interface_delete) After deleting, set ifp->ifindex to IFINDEX_INTERNAL. * ripng_interface.c: (ripng_interface_delete) After deleting, set ifp->ifindex to IFINDEX_INTERNAL.
2005-03-312005-03-31 Andrew J. Schorr <ajschorr@alumni.princeton.edu>ajs
* ospf_dump.c: (show_debugging_ospf) Show if ospf event debugging is turned on. [backport candidate]
2005-03-292005-03-29 Andrew J. Schorr <ajschorr@alumni.princeton.edu>ajs
* rt_netlink.c: (netlink_link_change) If the status of an operative interface changes (e.g. MTU changes), the client daemons should be notified by calling zebra_interface_up_update. Previously, the information was being updated in zebra's interface structure, but the clients were not notified of changes to an operative interface. * ospf_zebra.c: (ospf_interface_state_up) If the MTU of an operative interface changes, print a debug message and call ospf_if_reset() to simulate down/up on the interface. * ospf_interface.h: Declare new function ospf_if_reset(). * ospf_interface.c: (ospf_if_reset) New function to call ospf_if_down and ospf_if_up for all ospf interfaces attached to an interface.
2005-03-292005-03-29 Andrew J. Schorr <ajschorr@alumni.princeton.edu>ajs
* ospf_packet.c: (ospf_write_frags) Enhance error message to show MTU. Also make function static. (ospf_write) Enhance error message to show interface name and MTU. Also make function static.
2005-03-292005-03-29 Andrew J. Schorr <ajschorr@alumni.princeton.edu>ajs
* ospf_vty.c (show_ip_ospf_interface_sub): Display interface MTU and bandwidth; this is useful for debugging problems. Also, the function should be static.
2005-03-28 * configure.ac, */Makefile.am: Fix previous commit. SNMP includeshasso
must be after lib/ includes in some systems. Introduce SNMP_INCLUDES for that.
2005-03-27 * ospf_snmp.c: Don't crash in snmp query if ospf instance doesn'thasso
exist at all. [backport candidate]
2005-03-25 * ospfd.h: Include log.h, fixes compile with gcc-4.0.hasso
[backport candidate]
2005-03-132005-03-13 Andrew J. Schorr <ajschorr@alumni.princeton.edu>ajs
* ospf_lsa.c: (ospf_lsa_refresh_walker) If the system clock jumps backward, then current time may be less than ospf->lsa_refresher_started. This was causing invalid values for ospf->lsa_refresh_queue.index resulting in infinite loops. Problem fixed by casting the expression to unsigned before taking the modulus. [backport candidate]
2005-02-232005-02-23 Andrew J. Schorr <ajschorr@alumni.princeton.edu>ajs
* ospfd.h: Add new field struct stream *ibuf to struct ospf. * ospfd.c: (ospf_new) Check return code from ospf_sock_init. Allocate ibuf using stream_new(OSPF_MAX_PACKET_SIZE+1). (ospf_finish) Call stream_free(ospf->ibuf. * ospf_packet.c: (ospf_read) Call stream_reset(ospf->ibuf) and then pass it to ospf_recv_packet for use in receiving the packet (instead of allocating a new stream for each packet received). Eliminate all calls to stream_free(ibuf). (ospf_recv_packet) The struct stream *ibuf is now passed in as an argument. No need to use recvfrom to peek at the packet header (to see how big it is), just use ospf->ibuf which is always large enough (this eliminates a system call to recvfrom). Therefore, no need to allocate a stream just for this packet, and no need to free it when done.
2005-02-23 * ospf_lsa.h: New flag to the LSA structure for the SPF calculation.hasso
* ospf_lsdb.h: Export ospf_lsdb_clean_stat() function. * ospf_spf.h: Add link to the LSA stat structure into vertex. * ospf_spf.c: New functions cmp() and update_stat() to manage candidates. Remove ospf_spf_has_vertex(), ospf_vertex_lookup(), ospf_install_candidate() and ospf_spf_register() functions not needed any more. Update ospf_vertex_new(), ospf_spf_next() and ospf_spf_calculate() functions to use pqueue instead of linked list.
2005-02-21 * ospf_ase.c: Don't show messages related to the ase calculations ifhasso
we are not debugging.
2005-02-19 * ospf_api.h: char isn't always signed, but it has to be it here.hasso
Fixes bugzilla #153. [backport candidate]
2005-02-192005-02-19 Paul Jakma <paul.jakma@sun.com>paul
* ospf_packet.c: (ospf_stream_copy) remove (ospf_packet_dup) use stream_copy instead of ospf_stream_copy
2005-02-172005-02-17 Andrew J. Schorr <ajschorr@alumni.princeton.edu>ajs
* ospf_packet.c: (ospf_recv_packet) If there is somehow a runt packet in the queue, it must be discarded. Improve warning messages. Fix scope to static. (ospf_read) Fix bug: should reset the read thread in all cases to make sure we continue to get incoming messages.
2005-02-152005-02-15 Paul Jakma <paul.jakma@sun.com>paul
* ospf_packet.c: (ospf_recv_packet) Fix silly error wrt allocating ibuf. Thanks Andrew.
2005-02-142005-02-14 Paul Jakma <paul.jakma@sun.com>paul
* ospf_packet.c: (ospf_recv_packet) use stream_recvmsg. 2005-02-11 Hasso Tepper <hasso at quagga.net> * ospf_lsdb.c: Fix sum of checksums calculation. 2005-02-09 Andrew J. Schorr <ajschorr@alumni.princeton.edu> * ospf_packet.c: (ospf_write) If sendmsg fails, give more info in the error message. 2005-02-08 Andrew J. Schorr <ajschorr@alumni.princeton.edu> * ospf_interface.h: Reduce structure padding by putting new u_char field multicast_memberships in a better spot (grouped with other u_char fields type and state). 2005-02-08 Andrew J. Schorr <ajschorr@alumni.princeton.edu> * ospf_interface.h: Improve passive_interface comment. Add new multicast_memberships bitmask to struct ospf_interface to track active multicast subscriptions. Declare new function ospf_if_set_multicast. * ospf_interface.c: (ospf_if_set_multicast) New function to configure multicast memberships properly based on the current multicast_memberships status and the current values of the ospf_interface state, type, and passive_interface status. (ospf_if_up) Remove call to ospf_if_add_allspfrouters (this is now handled by ism_change_state's call to ospf_if_set_multicast). (ospf_if_down) Remove call to ospf_if_drop_allspfrouters (now handled by ism_change_state). * ospf_ism.c: (ospf_dr_election) Remove logic to join or leave the DRouters multicast group (now handled by ism_change_state's call to ospf_if_set_multicast). (ism_change_state) Add call to ospf_if_set_multicast to change multicast memberships as necessary to reflect the new interface state. * ospf_packet.c: (ospf_hello) When a Hello packet is received on a passive interface: 1. Increase the severity of the error message from LOG_INFO to LOG_WARNING; 2. Add more information to the error message (packet destination address and interface address); and 3. If the packet was sent to ospf-all-routers, then try to fix the multicast group memberships. (ospf_read) When a packet is received on an interface whose state is ISM_Down, enhance the warning message to show the packet destination address, and try to update/fix the multicast group memberships if the packet was sent to a multicast address. When a packet is received for ospf-designated-routers, but the current interface state is not DR or BDR, then increase the severity level of the error message from LOG_INFO to LOG_WARNING, and try to fix the multicast group memberships. * ospf_vty.c: (ospf_passive_interface) Call ospf_if_set_multicast for any ospf interface that may have changed from active to passive. (no_ospf_passive_interface) Call ospf_if_set_multicast for any ospf interface that may have changed from passive to active. (show_ip_ospf_interface_sub) Show multicast group memberships. 2005-02-08 Paul Jakma <paul@dishone.st> * ospf_packet.c: (various) Remove unneeded stream_set_putp abuse. 2005-02-02 Andrew J. Schorr <ajschorr@alumni.princeton.edu> * ospf_packet.c: (ospf_read) Fix bug: must check for state ISM_Down, not for event ISM_InterfaceDown. And improve the message by adding the interface flags. 2005-01-30 Andrew J. Schorr <ajschorr@alumni.princeton.edu> * ospf_network.c: (ospf_sock_init) Save errno before calling ospfd_privs.change. 2005-01-29 Andrew J. Schorr <ajschorr@alumni.princeton.edu> * ospf_packet.c: (ospf_packet_add) If oi->obuf is NULL, print an error message and return. (ospf_read) If the interface state is ISM_InterfaceDown, issue a warning message and ignore the packet. 2005-01-10 Greg Troxel <gdt@fnord.ir.bbn.com> * ospf_packet.h: Remove commented out definition of OSPF_MAX_PACKET; neither it or the uncommented one are used any more. * ospf_packet.c (ospf_make_ls_upd): Leave room for authentication when deciding if an update will fit. (ospf_packet_authspace): Factor out calculation of size required for authentication. (ospf_make_db_desc): Use ospf_max_packet, not OSPF_MAX_PACKET. Don't confuse readers that there is a macro. 2004-12-30 Andrew J. Schorr <ajschorr@alumni.princeton.edu> * ospf_network.c: Improve all setsockopt error messages to give detailed information on the arguments. 2004-12-29 Andrew J. Schorr <ajschorr@alumni.princeton.edu> * ospf_packet.c: (ospf_db_desc) Reduce severity of "Negotiation done" messages from LOG_WARNING to LOG_INFO, since this seems to be normal. 2004-12-29 Andrew J. Schorr <ajschorr@alumni.princeton.edu> * ospf_packet.c: (ospf_read) Always look up the interface if ospf_recv_packet returns NULL ifp, since some platforms such as Solaris 8 appear to support ifindex retrieval but don't. 2004-12-22 Hasso Tepper <hasso at quagga.net> * ospf_dump.c: Show debug configuration in vtysh. * ospf_vty.c: Fix "show ip ospf" output. Router can't be elected in any case if it's configured as "translate-never". * ospf_lsdb.[ch]: New function to calculate sum of checksums. * ospf_vty.c: Bugfix to show really number of AS external LSAs, not number of all LSAs with AS scope, this includes opaque as LSAs as well, show this number separately. Show numbers and sums of checksums for each type of LSAs. * ospf_lsa.c: Calculate checksum before putting LSA into database. 2004-12-15 Andrew J. Schorr <ajschorr@alumni.princeton.edu> * ospf_interface.h: Declare new function ospf_default_iftype. * ospf_interface.c: (ospf_default_iftype) New function to centralize this logic in one place. * ospf_zebra.c: (ospf_interface_add) Use new function ospf_default_iftype. * ospf_vty.c: (no_ip_ospf_network,config_write_interface) Fix logic by using new function ospf_default_iftype. 2004-12-11 Andrew J. Schorr <ajschorr@alumni.princeton.edu> * ospf_packet.c: (ospf_db_desc) Should be static, not global. (ospf_hello,ospf_db_desc,ospf_ls_upd,ospf_ls_ack) Improve warning messages to include identifying information (e.g. router id). * ospf_nsm.c: (nsm_change_state) Improve info message to include router id and state names. 2004-12-09 Greg Troxel <gdt@fnord.ir.bbn.com> * ospf_apiserver.c (ospf_apiserver_term): Obtain struct ospf_apiserver * from listnode. Remove unused variables. Follows suggestion from Jay Fenlason. 2004-12-08 Andrew J. Schorr <ajschorr@alumni.princeton.edu> * *.c: Change level of debug messages to LOG_DEBUG. 2004-12-07 Andrew J. Schorr <ajschorr@alumni.princeton.edu> * ospf_main.c: (main) The 2nd argument to openzlog has been removed. 2004-12-03 Andrew J. Schorr <ajschorr@alumni.princeton.edu> * ospf_packet.c: (ospf_db_desc) Reduce priority on a debug message from LOG_NOTICE to LOG_DEBUG. 2004-12-03 Andrew J. Schorr <ajschorr@alumni.princeton.edu> * ospf_main.c: (sigint) Use zlog_notice for termination message. (main) Issue a startup announcement using zlog_notice. 2004-11-30 Andrew J. Schorr <ajschorr@alumni.princeton.edu> * ospf_packet.c: (ospf_db_desc_proc) Fix spelling of packet in warning message and in comment. (ospf_db_desc) Warning message that a packet is being discarded should give the router id of the packet source. Fix spelling of packet in two warning messages. (ospf_ls_req) Warning message that a link state request is being discarded should give the router id of the neighbor that sent it. 2004-11-26 Andrew J. Schorr <ajschorr@alumni.princeton.edu> * ospf_main.c: Remove #include "debug.h" (was not being used, and lib/debug.h has now been deleted). 2004-11-25 Hasso Tepper <hasso at quagga.net> * ospf_main.c: Make group to run as configurable. 2004-11-15 Greg Troxel <gdt@fnord.ir.bbn.com> * ospf_packet.c (ospf_recv_packet): Assume CMSG_SPACE is present and works (lib/zebra.h provides if OS doesn't). 2004-11-15 Paul Jakma <paul@dishone.st> * ospf_{apiserver,te}.c: ospf_lsa_free's should be ospf_lsa_unlock. 2004-11-12 Paul Jakma <paul@dishone.st> * ospf_ia.c: (process_summary_lsa) Only an ABR has any reason to ignore stub area summary default. Even so it seems a strange check, add a comment to that effect. 2004-11-04 Paul Jakma <paul@dishone.st> * ospfd.c: (ospf_network_match_iface) revert to previous network statement match behaviour. 2004-11-02 Paul Jakma <paul@dishone.st> * ospf_packet.c: (ospf_write_frags) remove iov arg, msg already points to it. Add convenience pointer to msg->msg_iov[1], and use this, fixing the unfortunate borkenness introduced in moving of this code to a function. (ospf_write) remove iovp and fix up call to previous. (ospf_ls_upd_packet_new) cast size to long int - unfortunately glibc's size_t format modifier is not portable. 2004-10-31 Paul Jakma <paul@dishone.st> * ospf_packet.c: (ospf_write_frags) Add debug output (ospf_write) set type early, so we can pass it to ospf_write_frags. (ospf_ls_upd_packet_new) print size in debug output when too large packet is encountered. * ospf_zebra.c: (ospf_distribute_list_update_timer) Ugly misuse of THREAD_ARG to store an integer, but it should at least use same same type to retrieve the value. Assert value is sane. 2004-10-22 Paul Jakma <paul@dishone.st> * ospf_network.c: (ospf_sock_init) call neutral setsock_ifindex() function. * ospf_packet.c: (ospf_read) manually look up ifindex if system could not have returned one, eg openbsd, thanks to Rivo Nurges for highlighting problem and fix. Change setsockopt_pktinfo to setsockopt_ifindex. 2004-10-19 Andrew J. Schorr <aschorr@telemetry-investments.com> * ospf_snmp.c: (ospf_snmp_if_update) Fix logic to handle PtP links with dedicated subnets properly. * ospf_lsa.c: (lsa_link_ptop_set) ditto. * ospfd.c: (ospf_network_match_iface) ditto. (ospf_network_run) ditto. * ospf_interface.c: (ospf_if_is_configured) ditto. (ospf_if_lookup_by_prefix) ditto. (ospf_if_lookup_recv_if) ditto. * ospf_vty.c: (show_ip_ospf_interface_sub) Display the peer or broadcast address if present. 2004-10-13 Hasso Tepper <hasso at quagga.net> * ospf_main.c: Unbreak compilation with ospfapi disabled. * ospf_snmp.c: Remove defaults used to initialize smux connection to snmpd. Connection is initialized only if smux peer is configured. 2004-10-12 Hasso Tepper <hasso at quagga.net> * ospf_main.c, ospf_opaque.c: Unbreak ospfclient compilation - move static variable from ospf_main.c into ospf_opaque.c. 2004-10-11 Hasso Tepper <hasso at quagga.net> * ospf_main.c, ospf_opaque.c: Disable ospfapi init by default. New command line switch to enable it. 2004-10-11 Paul Jakma <paul@dishone.st> * ospf_dump.c: (ospf_ip_header_dump) Assume header is in host order remove ntohs that should have dissappeared. Take struct ip as argument, caller has to know there's an IP header at start of stream anyway. * ospf_dump.h: update declaration of ospf_ip_header_dump. * ospf_packet.c: (ospf_write) correct call to sockopt_iphdrincl_swab_htosys which was munging the header. (ospf_recv_packet) ip_len is needed for old OpenBSD fixup. (ospf_read) sockopt_iphdrincl_swab_systoh ip header as soon as we have it. * (global) Const char update and signed/unsigned fixes. * (various headers) size defines should be unsigned. * ospf_interface.h: remove duplicated defines, include the authoritative header - though, these defines should probably be moved to a dedicated header, or ospfd.h. * ospf_lsa.h: (struct lsa) ls_seqnum should be unsigned. * ospf_packet.c: (ospf_write) cast result of shift to unsigned. 2004-10-08 Hasso Tepper <hasso at quagga.net> * *.[c|h]: Fix compiler warnings: make some strings const, signed -> unsigned, remove unused variables etc. 2004-10-07 Greg Troxel <gdt@claude.ir.bbn.com> * ospf_apiserver.c (ospf_apiserver_unregister_opaque_type): Don't use of variable names 'node' and 'nextnode' to avoid possible conflict with list macros. Move variable declaration inside for loop after a statement to top of function. 2004-10-07 Paul Jakma <paul@dishone.st> * ospf_snmp.c: Missed list typedef update * ospf_dump.c: Include sockopt.h for header swab functions. 2004-10-05 Paul Jakma <paul@dishone.st> * ospf_packet.c: replace ospf_swap_iph_to... with sockopt_iphdrincl_swab_... 2004-10-03 James R. Leu <jleu at mindspring.com> * ospf_zebra.c: Read router id related messages from zebra daemon. Schedule router-id update thread if it's changed. * ospfd.c: Remove own router-id selection function. Use router id from zebra daemon if it isn't manually overriden in configuration. 2004-09-27 Paul Jakma <paul@dishone.st> * ospf_dump.c: (ospf_ip_header_dump) Use HAVE_IP_HDRINCL_BSD_ORDER Apply to offset too. Print ip_cksum, lets not worry about possible 2.0.37 compile problems. * ospf_packet.c: (ospf_swap_iph_to{n,h}) Use HAVE_IP_HDRINCL_BSD_ORDER. (ospf_recv_packet) ditto. (ospf_write) Fixup iov argument to ospf_write_frags. (struct msghdr).msg_name is caddr_t on most platforms. (ospf_recv_packet) ditto. And msg_flags is not always there memset struct then set fields we care about rather than initialise all fields individually. 2004-09-26 Hasso Tepper <hasso at quagga.net> * ospf_abr.c, ospf_dump.c, ospf_lsa.c, ospf_packet.c, ospf_vty.c, ospf_zebra.c: Fix compiler warnings. 2004-09-24 Paul Jakma <paul@dishone.st> * ospf_apiserver.{c,h}: lists typedef removal cleanup. update some list loops to LIST_LOOP. some miscellaneous indent fixups. (ospf_apiserver_unregister_opaque_type) fix listnode_delete of referenced node in loop. (ospf_apiserver_term) loops calling ospf_apiserver_free, which deletes referenced nodes from apiserver_list, fixed. * ospf_interface.h: lists typedef removal cleanup. * ospf_opaque.{c,h}: lists typedef removal cleanup. update some list loops to LIST_LOOP. miscellaneous style and indent fixups. * ospf_te.{c,h}: ditto * ospf_packet.c: lists typedef removal cleanup. (ospf_write) ifdef fragmentation support. move actual fragmentation out to a new, similarly ifdefed, function. (ospf_write_frags) fragmented write support, moved from previous. 2004-09-23 Hasso Tepper <hasso at quagga.net> * *.[c|h]: list -> struct list *, listnode -> struct listnode *. 2004-09-12 Paul Jakma <paul@dishone.st> * ospf_packet.c: Fix bugzilla #107 (ospf_packet_max) get rid of the magic 88 constant (ospf_swab_iph_ton) new function. set ip header to network order, taking BSDisms into account. (ospf_swab_iph_toh) the inverse. (ospf_write) Add support for IP fragmentation, will only work on linux though, other kernels make it impossible. get rid of the magic 4 constant. (ospf_make_ls_upd) Bound check to end of stream, not to interface mtu. (ospf_ls_upd_packet_new) New function, allocate upd packet taking oversized LSAs into account. (ospf_ls_upd_queue_send) use ospf_ls_upd_packet_new to allocate, rather than statically allocating mtu sized packet buffer, which actually was wrong - it didnt take ip header into account, which should not be included in packet buffer. (ospf_ls_upd_send_queue_event) minor tweaks and remove TODO comment. 2004-08-31 David Wiggins <dwiggins@bbn.com> * ospf_spf.c (ospf_spf_calculate): Many more comments and debug print statements. New function ospf_vertex_dump used in debugging. 2004-08-31 David Wiggins <dwiggins@bbn.com> * ospf_spf.h (struct vertex): Comments for flags and structure members. 2004-08-31 David Wiggins <dwiggins@bbn.com> * ospf_route.c: When finding an alternate route, log cost as well. 2004-08-31 David Wiggins <dwiggins@bbn.com> * ospf_interface.c (ospf_lookup_if_params): Initialize af in struct prefix allocated on stack. 2004-08-31 David Wiggins <dwiggins@bbn.com> * ospf_packet.c (ospf_ls_ack_send_delayed): In p2mp mode, send acks to AllSPFRouters, rather than All-DR. 2004-08-27 Hasso Tepper <hasso at quagga.net> * ospf_vty.c: Don't print ospf network type under interface only if interface is in broadcast mode and interface type really is broadcast. Fixes Bugzilla #108. 2004-08-27 David Wiggins <dwiggins@bbn.com> * ospf_spf.c (ospf_nexthop_calculation): Initialize address family in on-stack struct prefix_ipv4. Fixes point-to-multipoint SPF calculation. 2004-08-26 Greg Troxel <gdt@fnord.ir.bbn.com> * ospf_packet.c (ospf_recv_packet): adjust size declaration of buffer used to get interface index so that it compiles on other than Linux and includes the required alignment space. Probably this was only working on sparc/sparc64 because most of sockaddr_dl was not being written. 2004-08-19 Paul Jakma <paul@dishone.st> * ospf_packet.c: update to match sockopt renames. 2004-08-04 Paul Jakma <paul@dishone.st> * ospf_spf.c: (ospf_spf_consider_nexthop) Add comment about issue. Compare only against list head - all nexthops must be same cost anyway, fixes a reference-listnode-after-delete bug noted by Kir Kostuchenko. (ospf_nexthop_calculation) Use ospf_spf_consider_nexthop for all candidates attached to root. 2004-07-27 Paul Jakma <paul@dishone.st> * ospf_packet.c: (ospf_ls_upd_send_queue_event) fix thinko from last fix for ospfd wedging due to oversize LSAs: dont list loop on ospf_ls_upd_queue_send() - guaranteed segfault. 2004-07-27 Paul Jakma <paul@dishone.st> * ospf_opaque.c: (ospf_opaque_lsa_flush_schedule) do not NULL out the LSA as then free_opaque_info_per_id() can never unlock (and free) the LSA. Reported by Gunnar Stigen. 2004-07-23 Paul Jakma <paul@dishone.st> * ospf_network.c: Replace PKTINFO/RECVIF with call to setsockopt_pktinfo * ospf_packet.c: Use getsockopt_pktinfo_ifindex and SOPT_SIZE_CMSG_PKTINFO_IPV4. 2004-07-14 Paul Jakma <paul@dishone.st> * ospf_packet.c: (ospf_ls_upd_send_queue_event) Partial fix for problem reported by Peter Frost amongst others, where function will spin indefinitely if update list contains LSAs greater than MTU-headers or other condition leading to update list never being cleared. Problem of what to do with these LSAs remains. (ospf_make_ls_upd) add comment about large LSA problem, indentation cleanup. 2004-07-01 Greg Troxel <gdt@fnord.ir.bbn.com> * Makefile.am (lib_LTLIBRARIES): make libospf shared 2004-06-30 Greg Troxel <gdt@poblano.ir.bbn.com> * Makefile.am: Add shlib support. 2004-06-10 Hasso Tepper <hasso@estpak.ee> * *: Removed ifdefs HAVE_NSSA. 2004-06-06 Paul Jakma <paul@dishone.st> * ospf_dump.c,ospf_lsa.c: Fix typos of merge of previous. ospf_flood.c: (ospf_process_self_originated_lsa) fix zlog format 2004-05-31 Sagun Shakya <sagun.shakya@sun.com> * ospf_dump.c: (ospf_lsa_header_dump) LOOKUP can return null if index is out of range. ospf_flood.c: endianness fix ospf_lsa.c: Missing ntohl's on (struct lsa *)->data->ls_seqnum in various places. 2004-05-10 Hasso Tepper <hasso@estpak.ee> * ospf_zebra.c, ospfd.c: Move ospf_prefix_list_update() function to ospf_zebra.c from ospfd.c and add redistribution updates if route-map is used in redistribution. * ospf_main.c: Remove now useless call to ospf_init(). 2004-05-08 Paul Jakma <paul@dishone.st> * ospf_zebra.c: Sync with lib/zclient changes 2004-05-05 Paul Jakma <paul@dishone.st> * ospf_network.c: (ospf_sock_init) Check whether IP_HDRINCL is defined. Warn at compile and runtime. Use IPTOS_PREC_INTERNETCONTROL otherwise. * ospf_packet.c: (ospf_associate_packet_vl) cleanup, move some of the checks up to ospf_read, return either a virtual link oi, or NULL. (ospf_read) Cleanup, make it responsible for checks. Remove the nbr lookup - moved to ospf_neighbor. Adjust all nbr lookups to use new wrappers exported by ospf_neighbor. * ospf_neighbor.h: Add ospf_neigbour_get and ospf_nbr_lookup. * ospf_neighbor.c: (ospf_neigbour_get) Index ospf_interface neighbour table by router-id for virtual-link ospf_interfaces, not by peer_addr (which breaks for asymmetric vlinks) (ospf_nbr_lookup) add a wrapper for nbr lookups to deal with above. * ospf_interface.c: (ospf_vl_set_params) Catch changes of interface address for either end of a virtual-link, and hence potential cost changes. 2004-04-22 Hasso Tepper <hasso@estpak.ee> * ospf_zebra.c: Don't ignore reject/bh routes, it's the only way to "summarize" routes in ASBR at the moment. 2004-04-20 Hasso Tepper <hasso@estpak.ee> * ospfd.c: Unset NP flag if area is going to be normal or stub. Fixes UNH OSPF_NSSA.1.2a comment. * ospf_abr.c: Originate default into stub/nssa area even if summaries are disabled. * ospf_zebra.c: Don't attempt to redistribute 127.0.0.0/8. 2004-04-19 Hasso Tepper <hasso@estpak.ee> * ospf_vty.c: Don't warn that export- and import-list can't be configured to backbone area if they are applied and are working fine. 2004-02-19 Sowmini Varadhan <sowmini.varadhan@sun.com> * ospf_packet.c: Don't drop packets in Solaris x86. [quagga-dev 1005]. 2004-03-18 Amir Guindehi <amir@datacore.ch> * ospf_opaque.c: Attempt to correct the incorrect behavior of Quagga's ospfd in the special situation that a node's opaque capability has changed as "ON -> OFF -> ON". [quagga-dev 843]. 2004-02-19 Sowmini Varadhan <sowmini.varadhan@sun.com> * ospf_abr.c: (ospf_abr_update_aggregate) UNH 3.12b,c, address range should be configured with the highest cost path within the range, not lowest. 2004-02-17 Paul Jakma <paul@dishone.st> * ospf_zebra.c: (ospf_interface_delete) Do not delete the interface params, nor the interface structure, if an interface delete message is received from zebra. * ospf_interface.c: (ospf_if_delete_hook) Delete the interface params and interface, ie that which was previously removed in (ospf_interface_delete) above. 2004-02-11 Hasso Tepper <hasso@estpak.ee> * ospf_interface.c, ospf_zebra.c: Don't attempt to read path->oi->ifp if oi doesn't exist any more. 2004-02-11 Vadim Suraev <vadim.suraev@terayon.com> * ospf_packet.c (ospf_ls_upd): Router should flush received network LSA if it was originated with older router-id ([zebra 14710] #6). 2003-12-08 Mattias Amnefelt <mattiasa@kth.se> * ospf_packet.c: (ospf_recv_packet) OpenBSD now leaves iph.ip_len network byte order. 2003-12-05 Greg Troxel <gdt@poblano.ir.bbn.com> * ospfd.c (ospf_network_match_iface): Rewrite code for clarity while trying not to change semantics. Add ifdefed-out code to avoid matching ppp interfaces whose destination address does not also match the prefix under consideration, to help out people with problems due to as-yet-unfixed bugs with p2p interfaces coming and going. 2003-07-25 kamatchi soundaram <kamatchi@tdd.sj.nec.com> * ospf_packet.c (ospf_ls_upd_send_queue_event): get next route node in body of the loop to avoid chance that route node is unlocked and deleted before the next iteration tries to get next route node. 2003-05-24 Kenji Yabuuchi * ospf_interface.c(ospf_if_lookup_recv_if): Use the most specific match for interface lookup. 2003-05-18 Hasso Tepper <hasso@estpak.ee> * ospf_vty.c: Show NSSA LSA route info in "show ip ospf database" output 2003-05-16 Hasso Tepper <hasso@estpak.ee> * ospf_lsa.c: Fix handling of NSSA 2003-04-23 Hasso Tepper <hasso@estpak.ee> * ospf_vty.c: fix "router xxx" node commands in vtysh 2003-04-19 Hasso Tepper <hasso@estpak.ee> * {ospf_abr,ospfd}.c: area id's DECIMAL -> ADDRESS * ospf_routemap.c: sync daemon's route-map commands to have same syntax. 2003-04-19 Sergey Vyshnevetskiy <serg@vostok.net> * ospf_packet.c: Add missing param to zlog * ospf_flood.c: remove unused vars 2003-04-17 Denis Ovsienko <zebra@pilot.org.ua> * ospf_interface.c: fix incorrect memset 2003-04-10 Amir Guindehi <amir@datacore.ch> * ospf_lsa.[ch]: opaque LSA fix, use ospf_lookup. 2003-04-03 David Watson <dwatson@eecs.umich.edu> * ospf_lsa.c: byte order fix 2002-03-17 Amir Guindehi <amir@datacore.ch> * ospf_apiserver.[ch]: Merge Ralph Keller's OSPFAPI support. * ospf_api.[ch]: Merge Ralph Keller's OSPFAPI support. * ospfclient: OSPFAPI demonstration client. 2003-01-23 Masahiko Endo <endo@suri.co.jp> * ospf_ism.c: NSM event schedule bug fix. 2002-10-30 Greg Troxel <gdt@ir.bbn.com> * ospf_packet.c (ospf_make_md5_digest): MD5 length fix. 2002-10-23 endo@suri.co.jp (Masahiko Endo) * ospf_opaque.c: Update Opaque LSA patch. 2002-10-23 Ralph Keller <keller@tik.ee.ethz.ch> * ospf_vty.c (show_ip_ospf_database): Fix CLI parse. 2002-10-23 Juris Kalnins <juris@mt.lv> * ospf_interface.c (ospf_if_stream_unset): When write queue becomes empty stop write timer. 2002-10-10 Greg Troxel <gdt@ir.bbn.com> * ospf_packet.c (ospf_check_md5_digest): Change >= to > to make it conform to RFC. 2002-07-07 Kunihiro Ishiguro <kunihiro@ipinfusion.com> * zebra-0.93 released. 2002-06-19 Kunihiro Ishiguro <kunihiro@ipinfusion.com> * ospf_spf.c (ospf_nexthop_calculation): Add NULL set to oi and check of l2. Reported by: Daniel Drown <dan-zebra@drown.org> (ospf_lsa_has_link): LSA Length calculation fix. Reported by: Paul Jakma <paulj@alphyra.ie>. * ospfd.c (ospf_if_update): Fix nextnode reference bug. Reported by: juris@mt.lv. 2002-01-21 Kunihiro Ishiguro <kunihiro@ipinfusion.com> * ospfd.c: Merge [zebra 11445] Masahiko ENDO's Opaque-LSA support. 2001-08-27 Kunihiro Ishiguro <kunihiro@zebra.org> * ospf_interface.c (ospf_add_to_if): Use /32 address to register OSPF interface information. (ospf_delete_from_if): Likewise. * ospf_zebra.c (ospf_interface_address_delete): Likewise. 2001-08-23 Kunihiro Ishiguro <kunihiro@ipinfusion.com> * ospf_zebra.c (ospf_redistribute_unset): When redistribute type is OSPF, do not unset redistribute flag. 2001-08-19 Kunihiro Ishiguro <kunihiro@ipinfusion.com> * zebra-0.92a released. 2001-08-15 Kunihiro Ishiguro <kunihiro@ipinfusion.com> * zebra-0.92 released. 2001-08-12 Kunihiro Ishiguro <kunihiro@ipinfusion.com> * ospfd.c (ospf_config_write): auto-cost reference-bandwidth configuration display. 2001-07-24 David Watson <dwatson@eecs.umich.edu> * ospf_spf.c (ospf_spf_next): Modify ospf_vertex_add_parent to check for an existing link before connecting the parent and child. ospf_nexthop_calculation is also modified to check for duplicate entries when copying from the parent. Finally, ospf_spf_next removes duplicates when it merges two equal cost candidates. 2001-07-23 itojun@iijlab.net * ospfd.c (show_ip_ospf_neighbor): Check ospf_top before use it [zebra 8549]. 2001-07-23 Kunihiro Ishiguro <kunihiro@ipinfusion.com> * ospf_packet.c (ospf_write): Remove defined(__OpenBSD__) to make it work on OpenBSD. 2001-06-26 Kunihiro Ishiguro <kunihiro@zebra.org> * ospf_zebra.c (config_write_ospf_default_metric): Display default-metric configuration. 2001-06-18 Kunihiro Ishiguro <kunihiro@ipinfusion.com> * ospf_ia.h (OSPF_EXAMINE_SUMMARIES_ALL): Remove old macros. 2001-05-28 Kunihiro Ishiguro <kunihiro@ipinfusion.com> * ospf_snmp.c (ospfIfEntry): Fix interface lookup bug to avoid crush. (ospfIfMetricEntry): Likewise. 2001-03-18 Kunihiro Ishiguro <kunihiro@zebra.org> * ospf_packet.c (ospf_read): Fix typo. Reported by: "Jen B Lin'Kova" <jen@stack.net>. 2001-03-15 Gleb Natapov <gleb@nbase.co.il> * ospf_interface.c (ip_ospf_network): Set interface parameter. (interface_config_write): Add check for OSPF_IFTYPE_LOOPBACK. * ospf_zebra.c (ospf_interface_add): Set interface parameter. 2001-02-21 Kunihiro Ishiguro <kunihiro@zebra.org> * ospf_packet.c (ospf_recv_packet): Solaris also need to add (iph.ip_hl << 2) to iph.ip_len. 2001-02-09 Kunihiro Ishiguro <kunihiro@zebra.org> * ospfd.h (OSPF_LS_REFRESH_TIME): Fix OSPF_LS_REFRESH_TIME value. Suggested by: David Watson <dwatson@eecs.umich.edu>. * ospf_zebra.c (zebra_init): Remove zebra node. * ospfd.c (ospf_area_range_set): Function name is changed from ospf_ara_range_cmd. (ospf_area_range_unset): New function which separated from DEFUN. New commands are added: "no area A.B.C.D range A.B.C.D/M advertise" "no area <0-4294967295> range A.B.C.D/M advertise" "no area A.B.C.D range A.B.C.D/M not-advertise" "no area <0-4294967295> range A.B.C.D/M not-advertise" * ospf_lsa.c (ospf_lsa_more_recent): Fix previous change. 2001-02-08 Matthew Grant <grantma@anathoth.gen.nz> * ospf_network.c (ospf_if_add_allspfrouters): Use setsockopt_multicast_ipv4. (ospf_if_drop_allspfrouters): Likewise. * ospf_lsa.c (ospf_router_lsa_install): Add rt_recalc flag. (ospf_network_lsa_install): Likewise. (ospf_summary_lsa_install): Likewise. (ospf_summary_asbr_lsa_install): Likewise. (ospf_external_lsa_install): Likewise. (ospf_lsa_install): Call ospf_lsa_different to check this LSA is new one or not. 2001-02-08 Kunihiro Ishiguro <kunihiro@zebra.org> * ospf_zebra.c (ospf_interface_delete): Do not free interface structure when ospfd receive interface delete message to support pseudo interface. 2001-02-01 Dick Glasspool <dick@ipinfusion.com> * ospfd.c (area_range_notadvertise): Change area range "suppress" command to "not-advertise". * ospfd.h (OSPF_LS_REFRESH_TIME): Change OSPF_LS_REFRESH_TIME from 1800 to 60. * ospf_abr.c (ospf_abr_update_aggregate): When update_aggregate is updating the area-range, the lowest cost is now saved. * ospf_lsa.c (ospf_lsa_more_recent): Routing to compare sequence numbers rather than creating overflow during calculation. 2001-02-01 Kunihiro Ishiguro <kunihiro@zebra.org> * zebra-0.91 is released. 2001-01-31 Kunihiro Ishiguro <kunihiro@zebra.org> * ospf_packet.c (ospf_db_desc_proc): Do not continue process when NSM_SeqNumberMismatch is scheduled. (ospf_ls_req): Free ls_upd when return from this function. (ospf_ls_upd_timer): When update list is empty do not call ospf_ls_upd_send(). Suggested by: endo@suri.co.jp (Masahiko Endo). 2001-01-26 Kunihiro Ishiguro <kunihiro@zebra.org> * ospf_lsa.c (ospf_maxage_flood): Flood LSA when it reaches MaxAge. RFC2328 Section 14. (ospf_maxage_lsa_remover): Call above function during removing MaxAge LSA. 2001-01-26 Dick Glasspool <dick@ipinfusion.com> * ospf_flood.c (ospf_flood_through_as): Function is updated for NSSA Translations now done at ospf_abr.c with no change in P-bit. * ospf_lsa.c (ospf_get_nssa_ip): Get 1st IP connection for Forward Addr. (ospf_install_flood_nssa): Leave Type-7 LSA at Lock Count = 2. * ospf_ase.c (ospf_ase_calculate_route): Add debug codes. * ospf_abr.c (ospf_abr_translate_nssa): Recalculate LSA checksum. * ospf_packet.h (OSPF_SEND_PACKET_LOOP): Added for test packet. * ospf_dump.c (ospf_lsa_type_msg): Add OSPF_GROUP_MEMBER_LSA and OSPF_AS_NSSA_LSA. * ospfd.c (data_injection): Function to inject LSA. This is debugging command. 2001-01-11 Kunihiro Ishiguro <kunihiro@zebra.org> * ospf_route.c (ospf_route_match_same): Remove function. (ospf_route_match_same_new): Renamed to ospf_route_match_same. * ospf_zebra.c (ospf_interface_address_delete): Add check for oi->address. Suggested by Matthew Grant <grantma@anathoth.gen.nz>. (ospf_zebra_add): Remove function. (ospf_zebra_add_multipath): Rename to ospf_zebra_add. * ospf_interface.c: Remove HAVE_IF_PSEUDO part. * ospf_zebra.c: Likewise. 2001-01-10 Kunihiro Ishiguro <kunihiro@zebra.org> * ospf_ase.c: Remove OLD_RIB part. * ospf_route.c: Likewise. * zebra-0.90 is released. * ospf_packet.c (ospf_recv_packet): Use ip_len adjestment code to NetBSD. 2001-01-09 Kunihiro Ishiguro <kunihiro@zebra.org> * ospf_route.c (ospf_route_delete): Use ospf_zebra_delete_multipath. 2001-01-09 Matthew Grant <grantma@anathoth.gen.nz> * ospf_interface.c (ospf_if_cleanup): Function name is renamed from ospf_if_free(). Rewrite whole procudure to support primary address deletion. * ospf_zebra.c (ospf_interface_address_delete): Add primary address deletion process. 2001-01-09 Kunihiro Ishiguro <kunihiro@zebra.org> * ospf_packet.c (ospf_recv_packet): OpenBSD has same ip_len treatment like FreeBSD. 2001-01-09 endo@suri.co.jp (Masahiko Endo) * ospf_packet.c (ospf_recv_packet): FreeBSD kernel network code strips IP header size from receiving IP Packet. So we adjust ip_len to whole IP packet size by adding IP header size. 2001-01-08 endo@suri.co.jp (Masahiko Endo) * ospf_network.c (ospf_serv_sock): When socket() is failed return
2005-02-11 * ospf_lsdb.c: Fix sum of checksums calculation.hasso
[backport candidate]
2005-02-092005-02-09 Paul Jakma <paul.jakma@sun.com>paul
* (global) Update code to match stream.h changes. stream_get_putp effectively replaced with stream_get_endp. stream_forward renamed to stream_forward_getp. stream_forward_endp introduced to replace some previous setting/manual twiddling of putp by daemons. * lib/stream.h: Remove putp. Update reference to putp with endp. Add stream_forward_endp, which daemons were doing manually. Rename stream_forward to stream_forward_getp. lib/stream.c: Remove/update references to putp. introduce stream_forward_endp.
2005-02-092005-02-09 Andrew J. Schorr <ajschorr@alumni.princeton.edu>ajs
* ospf_packet.c: (ospf_write) If sendmsg fails, give more info in the error message.
2005-02-082005-02-08 Andrew J. Schorr <ajschorr@alumni.princeton.edu>ajs
* ospf_interface.h: Reduce structure padding by putting new u_char field multicast_memberships in a better spot (grouped with other u_char fields type and state).
2005-02-082005-02-08 Andrew J. Schorr <ajschorr@alumni.princeton.edu>ajs
* ospf_interface.h: Improve passive_interface comment. Add new multicast_memberships bitmask to struct ospf_interface to track active multicast subscriptions. Declare new function ospf_if_set_multicast. * ospf_interface.c: (ospf_if_set_multicast) New function to configure multicast memberships properly based on the current multicast_memberships status and the current values of the ospf_interface state, type, and passive_interface status. (ospf_if_up) Remove call to ospf_if_add_allspfrouters (this is now handled by ism_change_state's call to ospf_if_set_multicast). (ospf_if_down) Remove call to ospf_if_drop_allspfrouters (now handled by ism_change_state). * ospf_ism.c: (ospf_dr_election) Remove logic to join or leave the DRouters multicast group (now handled by ism_change_state's call to ospf_if_set_multicast). (ism_change_state) Add call to ospf_if_set_multicast to change multicast memberships as necessary to reflect the new interface state. * ospf_packet.c: (ospf_hello) When a Hello packet is received on a passive interface: 1. Increase the severity of the error message from LOG_INFO to LOG_WARNING; 2. Add more information to the error message (packet destination address and interface address); and 3. If the packet was sent to ospf-all-routers, then try to fix the multicast group memberships. (ospf_read) When a packet is received on an interface whose state is ISM_Down, enhance the warning message to show the packet destination address, and try to update/fix the multicast group memberships if the packet was sent to a multicast address. When a packet is received for ospf-designated-routers, but the current interface state is not DR or BDR, then increase the severity level of the error message from LOG_INFO to LOG_WARNING, and try to fix the multicast group memberships. * ospf_vty.c: (ospf_passive_interface) Call ospf_if_set_multicast for any ospf interface that may have changed from active to passive. (no_ospf_passive_interface) Call ospf_if_set_multicast for any ospf interface that may have changed from passive to active. (show_ip_ospf_interface_sub) Show multicast group memberships.
2005-02-082005-02-08 Paul Jakma <paul@dishone.st>paul
* ospf_packet.c: (various) Remove unneeded stream_set_putp abuse.
2005-02-022005-02-02 Andrew J. Schorr <ajschorr@alumni.princeton.edu>ajs
* ospf_packet.c: (ospf_read) Fix bug: must check for state ISM_Down, not for event ISM_InterfaceDown. And improve the message by adding the interface flags. * if.h: Declare if_flag_dump. [backport candidate]
2005-01-302005-01-30 Andrew J. Schorr <ajschorr@alumni.princeton.edu>ajs
* ospf_network.c: (ospf_sock_init) Save errno before calling ospfd_privs.change.
2005-01-292005-01-29 Andrew J. Schorr <ajschorr@alumni.princeton.edu>ajs
* ospf_packet.c: (ospf_packet_add) If oi->obuf is NULL, print an error message and return. (ospf_read) If the interface state is ISM_InterfaceDown, issue a warning message and ignore the packet.
2005-01-102005-01-10 Greg Troxel <gdt@fnord.ir.bbn.com>gdt
* ospf_packet.h: Remove commented out definition of OSPF_MAX_PACKET; neither it or the uncommented one are used any more. * ospf_packet.c (ospf_make_ls_upd): Leave room for authentication when deciding if an update will fit. (ospf_packet_authspace): Factor out calculation of size required for authentication. (ospf_make_db_desc): Use ospf_max_packet, not OSPF_MAX_PACKET. Don't confuse readers that there is a macro.
2004-12-302004-12-30 Andrew J. Schorr <ajschorr@alumni.princeton.edu>ajs
* ospf_network.c: Improve all setsockopt error messages to give detailed information on the arguments.
2004-12-292004-12-29 Andrew J. Schorr <ajschorr@alumni.princeton.edu>ajs
* ospf_packet.c: (ospf_db_desc) Reduce severity of "Negotiation done" messages from LOG_WARNING to LOG_INFO, since this seems to be normal.
2004-12-292004-12-29 Andrew J. Schorr <ajschorr@alumni.princeton.edu>ajs
* ospf_packet.c: (ospf_read) Always look up the interface if ospf_recv_packet returns NULL ifp, since some platforms such as Solaris 8 appear to support ifindex retrieval but don't.
2004-12-29add XXX comment that perhaps we need to recover from short headers.gdt
2004-12-22Show sums of checksums in "show ip ospf" output. Okayed by Paul and Jameshasso
R. Leu (author of original idea).
2004-12-22Fix "show ip ospf" output. If router is configured as "translate-never", wehasso
say so - we can never be translator.
2004-12-22Show debug configuration in vtysh.hasso
2004-12-152004-12-15 Andrew J. Schorr <ajschorr@alumni.princeton.edu>ajs
* ospf_interface.h: Declare new function ospf_default_iftype. * ospf_interface.c: (ospf_default_iftype) New function to centralize this logic in one place. * ospf_zebra.c: (ospf_interface_add) Use new function ospf_default_iftype. * ospf_vty.c: (no_ip_ospf_network,config_write_interface) Fix logic by using new function ospf_default_iftype.
2004-12-112004-12-11 Andrew J. Schorr <ajschorr@alumni.princeton.edu>ajs
* ospf_packet.c: (ospf_db_desc) Should be static, not global. (ospf_hello,ospf_db_desc,ospf_ls_upd,ospf_ls_ack) Improve warning messages to include identifying information (e.g. router id). * ospf_nsm.c: (nsm_change_state) Improve info message to include router id and state names.
2004-12-09 * ospf_apiserver.c (ospf_apiserver_term): Obtain structgdt
ospf_apiserver * from listnode. Remove unused variables. Follows suggestion from Jay Fenlason.
2004-12-09ospf_apiserver_term:gdt
Remove unused variable. Add comment: this is seriously broken, and needs fixing. It appears likely to segfault if ever called. Comments please - should I make the fix I suggest in the comment? -gdt
2004-12-09add comments about warningsgdt
2004-12-082004-12-08 Andrew J. Schorr <ajschorr@alumni.princeton.edu>ajs
* *.c: Change level of debug messages to LOG_DEBUG.
2004-12-082004-12-08 Andrew J. Schorr <ajschorr@alumni.princeton.edu>ajs
* *.c: Change level of debug messages to LOG_DEBUG.