summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2005-08-10add INSTALL.quagga.txt to the distribution, so that people who applygdt
patches and lose because of old autoconf/automake versions have the opportunity to find tout what to do.
2005-08-10 * topology/spgrid.c: MAXLONG is deprecated, use LONG_MAX instead.hasso
values.h, where MAXLONG is defined, is deprecated as well. Thanks to Greg for noticing and to Rivo for fix.
2005-08-10reworkgdt
clarify make (BSD make not working is a bug, and GNU make not working is a really serious bug) declare POSIX.2 as a semi-requirement, with notion that workarounds for non-posix must be clean. list OS versions for which not working is a bug. add instructions for using info and emacs/info, and remove admonition to use pinfo add note about GNU awk (really needed? BSD awk) Note that NetBSD 2.99.15 has texinfo 4.7
2005-08-102005-08-10 Greg Troxel <gdt@fnord.ir.bbn.com>gdt
* getopt.h: Don't declare getopt (rather than getopt_long), since quagga doesn't need it. * getopt.c (getopt): Don't define getopt. Fixes build breakage on NetBSD, and seems likely to work on most platforms since it avoids the entire issue of system getopt declarations and whether they conform to POSIX.2. Note that this change doesn't address system getopt_long declarations, but also doesn't change anything about getopt_long.
2005-08-05 * ospf_zebra.c: Don't assert/stop before type == ZEBRA_ROUTE_MAX ifhasso
dealing with routemaps. There is ospf->route_map[ZEBRA_ROUTE_MAX] for default-information. Fixes bugzilla #208. [backport candidate]
2005-08-03 * bgp_routemap.c: Revert part of leaking communities fix commited inhasso
2005-05-27. While ecommunity fix seems to be correct, community case isn't. Fixes bugzilla #209. [backport candidate]
2005-07-292005-07-29 Paul Jakma <paul.jakma@sun.com>paul
* interface.c: (if_delete_update) should always be available, not just on RTM_IFANNOUNCE/NETLINK systems. * kernel_socket.c: (ifan_read) only call if_delete_update when interface departs, dont if_delete, because we wish to retain interface configuration state even when interfaces are removed. (ifm_read) If we dont have RTM_IFANNOUNCE, then transitioning to down state is only chance we have to clean up interface in case it is deleted (eg Solaris down -> unplumb -> plumb up). * redistribute.c: (zebra_interface_delete_update) should always be available, we /will/ call it now on all systems, via if_delete_update. * zserv.c: (zsend_interface_delete) ditto (zsend_interface_address) Update the call-flow diagramme, to reflect that if_delete_update /is/ now called on all systems, potentially. * zserv.h: (zsend_interface_delete) unconditionally exported, as above.
2005-07-262005-07-26 Andrew J. Schorr <ajschorr@alumni.princeton.edu>ajs
* prefix.c: (prefix_ipv4_new, prefix_ipv6_new): Call prefix_new to allocate the memory to make sure that all struct prefix pointers point to objects of the same length (avoids memory overruns on struct prefix assignments). (prefix_ipv4_free, prefix_ipv6_free): Simply call prefix_free. It is interesting to note that these functions are never actually called anywhere in the code. Instead prefix_free was already being called directly, despite the previous MTYPE incompatibility. [backport candidate]
2005-07-262005-07-26 Andrew J. Schorr <ajschorr@alumni.princeton.edu>ajs
* prefix.c: (ip_masklen) While loop should test that 'pnt' pointer is in range before dereferencing it. [backport candidate]
2005-07-262005-07-26 Paul Jakma <paul.jakma@sun.com>paul
* ospf_abr.c: (ospf_abr_announce_network_to_area) SET_FLAG should be on lsa not old, which may be freed for one thing, obviously.
2005-07-122005-07-12 Paul Jakma <paul.jakma@sun.com>paul
* ospfd.h: add OSPF_ABR_DEFAULT for convenience, make OSPF_ABR_CISCO be the default ABR type. * ospfd.c: (ospf_new) initialise abr_type to OSPF_ABR_DEFAULT * ospf_vty.c: (no_ospf_abr_type_cmd) add standard as a negatable abr_type. default abr_type should be OSPF_ABR_DEFAULT. (ospf_config_write) test whether default abr_type against OSPF_ABR_DEFAULT, rather than any specific ABR_TYPE.
2005-07-12- Fix ChangeLog entry to properly refer to problem being Linux/ARM, notpaul
ARM in general.
2005-07-122005-07-12 Christian Hammers <ch@debian.org>paul
* vtysh_user.c: rename struct user to struct vtysh_user to avoid clashes with sys/user.h on ARM.
2005-06-30 * configure.ac: Actually test whether libc has IPv6 support.hasso
[backport candidate]
2005-06-282005-06-28 Paul Jakma <paul.jakma@sun.com>paul
* kernel_socket.c: (RTA_{ADDR,ATTR}_GET) fix mistake, NULL check should be on DEST argument
2005-06-282005-06-28 Paul Jakma <paul.jakma@sun.com>paul
* (global) Extern and static'ification, with related fixups of declarations, ensuring files include their own headers, etc. if_ioctl.c: (interface_info_ioctl) fix obvious arg mis-order in list loop
2005-06-282005-06-28 Paul Jakma <paul.jakma@sun.com>paul
* (global) The great bgpd extern and static'ification. * bgp_routemap.c: remove unused ROUTE_MATCH_ASPATH_OLD code (route_set_metric_compile) fix u_int32_t to ULONG_MAX comparison warnings. * bgp_route.h: (bgp_process, bgp_withdraw, bgp_update) export these used by various files which had their own private declarations, in the case of mplsvpn - incorrect.
2005-06-282005-06-28 Paul Jakma <paul.jakma@sun.com>paul
* INSTALL.quagga.txt: GNU make is required now, because of manual automatic rules in solaris/Makefile.am. (If someone knows how to do these in a better way..). GNU AWK is required for CVS checkout builds.
2005-06-24 * ospf6_abr.[ch], ospf6_area.[ch]: Add area filter-list (in|out)hasso
support and area import and export lists support.
2005-06-24 * ospf6_message.c: Changed to be insensitive to changes of neighbors'hasso
IP source address in the OSPF packets. It was sometimes problematic in actual operation (needed some operational cost: restarting all-neighbor routers when I/F NIC was changed). Due to this change, a previously safe case, attaching multiple interface to the same link will now be dengerous and will not work. Remedy to that should be applied later. [port from GNU Zebra]
2005-06-24 * ospf6_interface.c: fix the way inactivity_timer is called. Becausehasso
inactivity_timer() deletes the neighbor from the neighbor_list, it cannot be called by thread_execute() from inner side of the neighbor_list for-loop. (Although crash was already fixed in Quagga, it's better follow the GNU Zebra logic). [port from GNU Zebra]
2005-06-242005-06-24 Pawel Worach <pawel.worach@gmail.com>paul
* getopt.h: add further tests for full getopt declaration on various systems.
2005-06-20Fix date.hasso
2005-06-20 * ospf_nsm.c: Make database exchange for NSSA database work.hasso
[backport candidate]
2005-06-182005-06-18 Paul Jakma <paul.jakma@sun.com>paul
* memtypes.h: update autobuilt file to match memtypes.c changes
2005-06-152005-06-15 Paul Jakma <paul.jakma@sun.com>paul
* bgpd.c: (bgp_terminate) workqueue's are lazy allocated and its possible to terminate bgpd before workqueues were setup, causing an abort/crash. Reported by Ashish Mehta of Sun.
2005-06-152005-06-15 Paul Jakma <paul.jakma@sun.com>paul
* README.txt: updated to match changed SMF manifest and its changed service, instance and property group names.
2005-06-152005-06-15 Paul Jakma <paul.jakma@sun.com>paul
* quagga.xml.in: Pass the FMRI to the method, removing need for daemon_name property and deducing the FMRI. remove the empty config_file and pid_file definitions, they just make things difficult in the method script, cause it then has to deal with svcprop returning "" for defined empty properties. Remove daemon_name everywhere. * quagga.init.in: Take the FMRI as an argument Remove deducing the FMRI from the defunct daemon_name property. Use svcprop -q to test for presence of a property first. Default vty_port to 0 and vty_addr to 127.1 if equivalent SMF properties are not set. Deduce the pid_file, we can infer it from @quagga_statedir@ I think, it's probably not useful to allow it to be configurable as a property anyway. /var/run/ is on tmpfs on Solaris, so we probably will need to create @quagga_statedir@ first run after boot. Use @sbindir@, not /usr/local/sbin.
2005-06-142005-06-14 Paul Jakma <paul.jakma@sun.com>paul
* kernel_socket.c: consolidate the IFAM{ADDR,MASK}GET and RTM{ADDR,MASK}GET macros into generic rta_addrs macros, RTA_{ADDR,ATTR}_GET. (af_check) could use 'inline' attribute (ifam_read_mesg) remove IFAM{ADDR,MASK}GET macro, change to generic macro. (rtm_read_mesg) similar
2005-06-132005-06-13 Paul Jakma <paul.jakma@sun.com>paul
* ospf_spf.c: Try get more information on a SEGV under ospf_spf_vertex_add_parent. (ospf_vertex_free) NULL out the child and nexthop lists (ospf_vertex_add_parent) nexthop and child can not be NULL vertex_nexthop's parent->child list can not be NULL (ospf_spf_next) w and cw are per-loop iteration variables, move declarations into loop body.
2005-06-12 * rt_netlink.c: Remove unused netlink-addr socket declaration.hasso
* rt_netlink.c (netlink_parse_info): Fix debug messages - nlmsg_pid is unsigned and one zlog call had swapped arguments. * rt_netlink.c (netlink_route_multipath): Fix compile with disabled IPv6 support. [backport candidate] - with stuff commited to rt_netlink.c before to fix logging in netlink_route_multipath().
2005-06-07 * ospf_apiserver.c: Fix obvious error in notifying clients about ISMhasso
changes - oi->ifp->status doesn't give to us info about ISM, oi->state does. [backport candidate]
2005-06-032005-06-03 Paul Jakma <paul.jakma@sun.com>paul
* ripd.c: (rip_create_socket) Make it static. Remove the getservbyname stuff, as RFC2453 3.9.2 says non-RIP port messages should be discarded, quagga doesnt accept them, no need to lookup port. Take a 'to' argument, if socket should be bound to something else. setsockopt_so_recvbuf might need privs, move it to the raised privileges section. dont forget to close the socket if bind fails. (rip_send_packet) use strncpy, just in case (address is under our control anyway, but still). dont duplicate rip_create_socket - just use it. (rip_create) rip_create_socket takes an argument now, modify.
2005-06-032005-06-03 Paul Jakma <paul.jakma@sun.com>paul
* ripd.c: (rip_create_socket) move it up so rip_send_packet can use it too.
2005-06-022005-06-02 Paul Jakma <paul.jakma@sun.com>paul
* quagga.xml.in: Fix mistake in bgpd definition. Change dependency on zebra to optional. Remove the duplicated stability statements. * quagga.init.in: svcprop should check PACKAGE_TARNAME, not _NAME. no need to check for config file either, there's already a dependency in the manifest.
2005-06-022005-06-01 Paul Jakma <paul.jakma@sun.com>paul
* NEWS: bgpd work queues and ripd auth-mode change
2005-06-022005-06-01 Paul Jakma <paul.jakma@sun.com>paul
* rip_interface.c: Fix authentication, no-auth impossible to specify (rip_interface_new) default to RIP_NO_AUTH (rip_interface_reset) ditto (rip_interface_config_write) write out config for simple
2005-06-012005-06-01 Akihiro Mizutani <mizutani@net-chef.net>paul
* ospf_ism.c (ospf_elect_bdr/ospf_elect_dr): Fix DR election bug.
2005-06-012005-06-01 Paul Jakma <paul.jakma@sun.com>paul
* bgpd/(general) refcount struct peer and bgp_info, hence allowing us add work_queues for bgp_process. * bgpd/bgp_route.h: (struct bgp_info) Add 'lock' field for refcount. Add bgp_info_{lock,unlock} helper functions. Add bgp_info_{add,delete} helpers, to remove need for users managing locking/freeing of bgp_info and bgp_node's. * bgpd/bgp_table.h: (struct bgp_node) Add a flags field, and BGP_NODE_PROCESS_SCHEDULED to merge redundant processing of nodes. * bgpd/bgp_fsm.h: Make the ON/OFF/ADD/REMOVE macros lock and unlock peer reference as appropriate. * bgpd/bgp_damp.c: Remove its internal prototypes for bgp_info_delete/free. Just use bgp_info_delete. * bgpd/bgpd.h: (struct bgp_master) Add work_queue pointers. (struct peer) Add reference count 'lock' (peer_lock,peer_unlock) New helpers to take/release reference on struct peer. * bgpd/bgp_advertise.c: (general) Add peer and bgp_info refcounting and balance how references are taken and released. (bgp_advertise_free) release bgp_info reference, if appropriate (bgp_adj_out_free) unlock peer (bgp_advertise_clean) leave the adv references alone, or else call bgp_advertise_free cant unlock them. (bgp_adj_out_set) lock the peer on new adj's, leave the reference alone otherwise. lock the new bgp_info reference. (bgp_adj_in_set) lock the peer reference (bgp_adj_in_remove) and unlock it here (bgp_sync_delete) make hash_free on peer conditional, just in case. * bgpd/bgp_fsm.c: (general) document that the timers depend on bgp_event to release a peer reference. (bgp_fsm_change_status) moved up the file, unchanged. (bgp_stop) Decrement peer lock as many times as cancel_event canceled - shouldnt be needed but just in case. stream_fifo_clean of obuf made conditional, just in case. (bgp_event) always unlock the peer, regardless of return value of bgp_fsm_change_status. * bgpd/bgp_packet.c: (general) change several bgp_stop's to BGP_EVENT's. (bgp_read) Add a mysterious extra peer_unlock for ACCEPT_PEERs along with a comment on it. * bgpd/bgp_route.c: (general) Add refcounting of bgp_info, cleanup some of the resource management around bgp_info. Refcount peer. Add workqueues for bgp_process and clear_table. (bgp_info_new) make static (bgp_info_free) Ditto, and unlock the peer reference. (bgp_info_lock,bgp_info_unlock) new exported functions (bgp_info_add) Add a bgp_info to a bgp_node in correct fashion, taking care of reference counts. (bgp_info_delete) do the opposite of bgp_info_add. (bgp_process_rsclient) Converted into a work_queue work function. (bgp_process_main) ditto. (bgp_processq_del) process work queue item deconstructor (bgp_process_queue_init) process work queue init (bgp_process) call init function if required, set up queue item and add to queue, rather than calling process functions directly. (bgp_rib_remove) let bgp_info_delete manage bgp_info refcounts (bgp_rib_withdraw) ditto (bgp_update_rsclient) let bgp_info_add manage refcounts (bgp_update_main) ditto (bgp_clear_route_node) clear_node_queue work function, does per-node aspects of what bgp_clear_route_table did previously (bgp_clear_node_queue_del) clear_node_queue item delete function (bgp_clear_node_complete) clear_node_queue completion function, it unplugs the process queues, which have to be blocked while clear_node_queue is being processed to prevent a race. (bgp_clear_node_queue_init) init function for clear_node_queue work queues (bgp_clear_route_table) Sets up items onto a workqueue now, rather than clearing each node directly. Plugs both process queues to avoid potential race. (bgp_static_withdraw_rsclient) let bgp_info_{add,delete} manage bgp_info refcounts. (bgp_static_update_rsclient) ditto (bgp_static_update_main) ditto (bgp_static_update_vpnv4) ditto, remove unneeded cast. (bgp_static_withdraw) see bgp_static_withdraw_rsclient (bgp_static_withdraw_vpnv4) ditto (bgp_aggregate_{route,add,delete}) ditto (bgp_redistribute_{add,delete,withdraw}) ditto * bgpd/bgp_vty.c: (peer_rsclient_set_vty) lock rsclient list peer reference (peer_rsclient_unset_vty) ditto, but unlock same reference * bgpd/bgpd.c: (peer_free) handle frees of info to be kept for lifetime of struct peer. (peer_lock,peer_unlock) peer refcount helpers (peer_new) add initial refcounts (peer_create,peer_create_accept) lock peer as appropriate (peer_delete) unlock as appropriate, move out some free's to peer_free. (peer_group_bind,peer_group_unbind) peer refcounting as appropriate. (bgp_create) check CALLOC return value. (bgp_terminate) free workqueues too. * lib/memtypes.c: Add MTYPE_BGP_PROCESS_QUEUE and MTYPE_BGP_CLEAR_NODE_QUEUE
2005-05-31 * ospf6d.c: No need for double ';'. Fixes parsing "show ipv6 ospf6hasso
database ..." commands for vtysh by extract.pl. Remove duplicate install_element calls. Fixes bugzilla #194. [backport candidate]
2005-05-31Ignore generated prototype.smf.hasso
2005-05-312005-05-31 Paul Jakma <paul.jakma@sun.com>paul
* zserv.c: (zsend_route_multipath) Fix bug if route is sent with no NEXTHOP_FLAG_FIB nexthops. As ZAPI_MESSAGE_IFINDEX and ZAPI_MESSAGE_NEXTHOP are always set, clients would try read non-existent nexthop information and hit stream assert. Zserv is still broken for multi-nexthop messages, but it always was.
2005-05-292005-05-29 Paul Jakma <paul@dishone.st>paul
* ripd.c: (rip_output_process) fix error which crept in my previous rip auth untanglement commit - it had become impossible to not have authentication (even for v1).
2005-05-28Sync bgpd and ripd set_metric_addsub_cmd commands. Fixes bugzilla #192.hasso
[backport candidate]
2005-05-27 * bgp_routemap.c: Stop leaking communities.hasso
Fixes bugzilla #89. [backport candidate]
2005-05-26 * bgpd.c: Deleting bgp->rsclient list needs fix similar to pree-groupshasso
deleting fix. Avoid leaking bgp->group, bgp->peer and bgp->rsclient lists. [backport candidate]
2005-05-262005-05-26 Paul Jakma <paul.jakma@sun.com>paul
* ospf_abr.c: (ospf_abr_update_aggregate) Fix comment, cost bug itself had been fixed long ago by Sowmini.
2005-05-26 * isis_dr.c: Fix copy&paste error in isis_dr_resign().hasso
[backport candidate]
2005-05-26 * bgpd.c: Don't crash while deleting list of peer-groups.hasso
[backport candidate]
2005-05-26 * rip_routemap.c: In case of '0.0.0.0' used as 'nexthop', use senderhasso
address as nexthop in routemap. Fixes bugzilla #186. [backport candidate]