commit d8509631b47aba867c59eb463bb346d7ae5b91c7 Author: Paul Jakma Date: Mon Mar 21 14:56:00 2011 +0000 release: 0.99.18 * configure.ac: Bump to 0.99.18 commit c8f3fe3063cb9ff193b13011cfbda3e605395340 Author: Paul Jakma Date: Sun Dec 5 20:28:02 2010 +0000 bgpd: Remove AS Path limit/TTL functionality * draft-ietf-idr-as-pathlimit doesn't seem to have gone anywhere, and its author does not think it will make progress in IDR. Remove all support introduced for it, but leave stubs for the commands to avoid breaking any configurations. Basically reverts cecab5e9725792e60a5e4b473e238a14cd85815d. commit 0c46638122f10019a12ae9668aec91691cf2e017 Author: Paul Jakma Date: Sun Dec 5 17:17:26 2010 +0000 bgpd/security: CVE-2010-1674 Fix crash due to extended-community parser error * bgp_attr.c: (bgp_attr_ext_communities) Certain extended-community attrs can leave attr->flag indicating ext-community is present, even though no extended-community object has been attached to the attr structure. Thus a null-pointer dereference can occur later. (bgp_attr_community) No bug fixed here, but tidy up flow so it has same form as previous. Problem and fix thanks to anonymous reporter. commit 8f228de7b3f9d6f641c75b27ac7ac6e5862cf804 Author: Tom Goff Date: Wed Nov 10 13:02:11 2010 -0800 ospf6d: Extend the "[no] debug ospf6 route" vty commands * ospf6_route.c ([no_]debug_ospf6_route) Include memory as a debug option. This allows ospf6 route memory debugging to be enabled or disabled interactively or from a config file. commit e7a6d80d4fe70a546a33ffe063f182252237ccd8 Author: Tom Goff Date: Wed Nov 10 13:03:02 2010 -0800 ospf6d: Route locking (memory) cleanup * ospf6_route.c: (ospf6_route_best_next) Allows unlock route, even when there's no next route. This is consistent with how ospf6_route_next() behaves. * ospf6_intra.c: (ospf6_intra_prefix_lsa_remove) Make sure the last route considered is always unlocked. This is needed when the for loop terminates because ospf6_route_is_prefix() returns zero. commit ae2254aa7f2eb7436734f497658f1f26f4bf37c7 Author: Tom Goff Date: Wed Nov 10 13:01:41 2010 -0800 ospf6d: Have ospf6d cleanup when it terminates normally A clean exit makes it easier to use memory debuggers. * ospf6_asbr.c: (ospf6_asbr_terminate) Add a function to do route map cleanup. * ospf6_lsa.c: (ospf6_lsa_terminate) Add a function to cleanup the lsa handler vector. * ospf6_main.c: (ospf6_exit) Add an function that causes ospf6d to gracefully exit. * ospf6_message.c: (ospf6_message_terminate) Add a function that frees the send and receive buffers. * ospf6_top.c: (ospf6_delete) Enable the ospf6_delete() function. Disable ospf6 before freeing everything. commit fd795eb89cc421097f6580016ea9fbd3585d07bb Author: Tom Goff Date: Wed Nov 10 13:03:23 2010 -0800 ospf6d: Remove obsolete code * ospf6_area.c: (ospf6_area_delete) Get rid of unused code that refers to a nonexistent function and structure member. commit 1d19234e79c77a7d55194b513f2a77c6a691bc2c Author: Tom Goff Date: Wed Nov 10 13:02:38 2010 -0800 ospf6d: Fix memory allocation issues in SPF * ospf6_area.c: Call ospf6_spf_table_finish() before deleting the spf table. This ensures that the associated ospf6_vertex structures are also freed. * ospf6_spf.c: Only allocate a priority queue when a spf calculation is actually performed. Also defer calling ospf6_spf_table_finish(). commit 7e69d993673597334b1e1b3d1072a4c064f293d5 Author: Tom Goff Date: Wed Nov 10 13:01:17 2010 -0800 lib: zlog should clean up its memory * log.c: (closezlog) Also free the dynamically allocated filename when a log is closed. commit 4bd045d5dd28653af899c01d6f0c413d74677114 Author: Tom Goff Date: Wed Nov 10 13:00:54 2010 -0800 lib: Add a function to delete all interfaces if.c: (if_terminate) This adds a cleanup function that can be called when a daemon exits, similar to vty_terminate(). commit c8e7b8959051bf525183bdbff605e54b4b532e2c Author: Stephen Hemminger Date: Fri Aug 27 14:12:54 2010 -0700 bgpd: use Jenkins hash for BGP transit, cluster and attr hashes * bgp_attr.c: I observed while doing some debugging that even for simple tests there was a lot of hash collisions for BGP attributes. Switch to using Jhash rather than additive hashing. Probably overkill, but the function is fast and available. ({attrhash,cluster,transit}_hask_key_make) convert to Jenkins hash, instead of additive hash. commit 6392aa83c4f895ebbd23817c68d9b0da0de2e0f8 Author: Stephen Hemminger Date: Fri Aug 27 14:11:14 2010 -0700 lib: Better hashing of string values using Bernstein hash * hash.{h,c}: (string_hash_make) Hash optimised for strings, current implementation using Bernstein hash, which offers a good compromise between distribution and performance. * distribute.c: (distribute_hash_make) use previous instead of additive string hash. * if_rmap.c: (if_rmap_hash_make) ditto commit 25ff1e88bb5f1b0a16a364d7206db3ebdc5ecf52 Author: Barry Friedman Date: Thu Feb 3 14:02:53 2011 -0800 bgpd: Remove extra lock on interior table node If the radix tree creates an extra interior node in bgp_node_get(), it locks the interior node even though this node is not returned to the caller, so it may never be unlocked. The lock prevents this node from being deleted. * bgpd/bgp_table.c: (bgp_node_get) Remove lock on interior node which prevents proper node deletion commit c099baf6f0a6509d70fb62a8d6341432abb50d91 Author: Wataru Tanitsu Date: Fri Sep 10 09:47:56 2010 -0700 bgpd: Fix display of unsigned attributes * bgp_route.c: (route_vty_out*) The local prefix, metric and weight values are all stored as uint32_t. Change the format to %u so that large values are not displayed as negative integers. commit 7badc26301c8063dc2c6f171c11f9af4f3d0df20 Author: Stephen Hemminger Date: Thu Aug 5 10:26:31 2010 -0700 bgpd: fix use of free memory by update_rsclient * bgp_route.c: (bgp_static_update_rsclient) BGP sometimes crashes when removing route server client because of use after free. The code to update rsclient created a local static copy of bgp attributes but neglected to handle the extra information pointer. The extra information was getting freed by bgp_attr_unintern() and reused later when the copy was passed to bgp_attr_intern(). The fix is to use the attr_dup function to create a copy of the extra information, then clean it up. commit 368473f6120ff295253bcc0d774c6bd75d8cf98b Author: Robert Bays Date: Thu Aug 5 10:26:29 2010 -0700 bgpd: unlock node on aggregate error * bgp_route.c: (bgp_aggregate_set) make sure to unlock BGP node if failure commit f6269b4f7a2faddc44d03ff0a0e4d141562c67ee Author: Robert Bays Date: Thu Aug 5 10:26:28 2010 -0700 bgpd: fix errors in aggregate address command * bgpd: (bgp_aggregate_{set,unset,delete}) This fixes locking and other issues with aggregate set/unset command commit fac9c6b63aa74b34a22c89f005f7241d65a1765a Author: Stephen Hemminger Date: Thu Aug 5 10:26:30 2010 -0700 bgpd: use XCALLOC to allocate bgpd damp array * bgpd: (bgp_damp_parameter_set) The BGP reuse_index is not initialized properly. This would cause sporadic crash when disabling dampening. Use XCALLOC correctly and the right size array is initialized and no memset is needed. commit 6c88b44dcb26b60bb1f93e5c387aa102019ed849 Author: Chris Caputo Date: Tue Jul 27 16:28:55 2010 +0000 bgpd: fix bgp_node locking issues * bgpd: Connected table locks were being locked but not unlocked, such that eventually a lock would exceed 2^31 and become negative, thus triggering an assert later on. * bgp_main.c: (bgp_exit) delete connected elements along with ifp's. * bgp_nexthop.c: (bgp_nexthop_lookup{,_ipv6}) add missing unlocks (bgp_multiaccess_check_v4) ditto (bgp_connected_{add,delete}) Use a distinct memtype for bgp_connected_ref. (bgp_scan_finish) reset the nexthop cache to clean it up when bgpd exits * bgp_route.c: fix missing bgp_node unlocks * lib/memtype.c: (memory_list_bgp) add MTYPE_BGP_CONN * testing: has been tested for almost 2 months now. commit cca85d27a59c31e1b20e4c4adc7d9bb57606e584 Author: Chris Hall Date: Fri Jul 23 11:27:11 2010 -0700 lib: Fix accounting of memory * lib/memory.c: (zrealloc) If is called with NULL pointer then it should increment allocations because it behaves the same as zmalloc. (zfree) is called with NULL pointer, it does nothing therefore allocation count should not change. commit e6844aa5d23cf56dd1f31afc96e8145ab188953f Author: Denis Ovsienko Date: Fri Mar 18 20:20:53 2011 +0300 doc: fix "ipv6 address" interface command syntax (#608) commit 30b0017696dfe300b6ea630a6b6c91ea440d7828 Author: John Kemp Date: Fri Mar 18 17:52:18 2011 +0300 bgpd: improve "monotonic" uptime correction Older versions of Quagga/Zebra would output a value in MRT table dump files for "uptime" aka "ORIGINATED" that was a WALL clock value. Given that uptime is now internally a bgp_clock MONOTONIC value, the output in the MRT files is showing up as monotonic. Note: time of MRT dump is still recorded correctly as a time() based value, so we haven't lost that value. Proposal is to correct the uptime output on the vty and in the MRT files to again display something more akin to WALL time. * bgp_dump.c: (bgp_dump_routes_func) add conditional correction * bgp_route.c: (route_vty_out_detail) make correction conditional, move variable declaration to beginning of the function commit b016e9def4255a7406f5633c6edb820e13c9088e Author: Stephen Hemminger Date: Sun Mar 13 01:14:08 2011 +0300 ripngd: copy debug statements fix from ripd Doesn't ripng needs same fix as ripd. commit 0fa0335316ce14a79ea4bbb0c40e1322c9941dd3 Author: Andrew J. Schorr Date: Thu Feb 24 13:52:14 2011 +0300 ripd: resolve debug statements issue (bug 442) ...A nasty bug, if you forgot to disable debugging, stored the config and reboot your machine - if you really depend on ripd, then the machine will not fully come back on the network, because ripd fails. commit 6e22b9017e1ae2ce61c383b1b2b63973207704ac Author: David Ward Date: Mon Jan 17 10:58:52 2011 +0300 bgpd: VTY string fixes for debug commands * bgpd/bgp_debug.c: fix VTY strings for BGP debug commands to match correct syntax commit c7aa8abd8788c3607ad0131f02e892cf92221e40 Author: Dmitrij Tejblum Date: Fri Jan 14 18:27:05 2011 +0300 bgpd: fix handling of "Unsupported Capability" * bgp_packet.c: (bgp_notify_receive) justify the difference between BGP_NOTIFY_OPEN_UNSUP_PARAM and BGP_NOTIFY_OPEN_UNSUP_CAPBL cases, as it is explained in RFC5492, page 3, paragraph 1. "Unsupported Capability" error does not mean, that the peer doesn't support capabilities advertisement -- quite the opposite (if the peer would not support capabilities advertisement, the code would be "Unsupported Optional Parameter"). Thus there is no reason to mark the peer as one non-supporting capabilities advertisement. Example: suppose the peer is in fact IPv6-only, but we didn't configure anything address-family specific for it. Then, the peer would refuse the session with "Unsupported Capability" code. If we internally set the peer as non-supporting capabilities advertisement after that, we will not be able to establish the session with it ever, even with a fixed configuration -- IPv6-only BGP session cannot be established without capabilities. In practice an edge case would be seen as the same IPv6 peer working with its "neighbor" block read from bgpd.conf, but not working, when slowly input in "conf t" mode. commit 403138e189c24f6867824c4eeb668d11564e1ca0 Author: Dmitrij Tejblum Date: Thu Jan 13 18:25:40 2011 +0300 ospf6d: fix crash in SPF calculation * ospf6_spf.c: Don't replace a node with another node with a lower number of hops, instead get them from the queue in the correct order. (Actually, the replacement crashed the ospf6d daemon rather than worked.) commit 4dd87df5af8a59174362e44f83df11f12457c8b4 Author: Paul Jakma Date: Thu Apr 15 08:11:51 2010 +0100 ospfd: Remove oi field from LSA, have network_lsa_refresh look up when needed * ospf_lsa.h: (struct ospf_lsa) remove oi pointer * ospf_lsa.c: (ospf_network_lsa_refresh) instead of keeping a pointer, just lookup the oi when it's needed. This decouples network LSA from oi lifetime and avoids having to invalidate pointers in LSAs when an oi changes, simplifying the code. commit dfbd5176ea863e378999c03314dc42adfdd4e424 Author: Paul Jakma Date: Wed Apr 14 10:32:12 2010 +0100 ospfd: potential fix for router-id change assert on refresh cleanup patch * ospf_lsa.c: (various) unregister LSAs from refresher before flushing. commit 02d942c9d4afabf04bd781f0e1e5e8aa36945df2 Author: Paul Jakma Date: Sun Jan 24 23:36:20 2010 +0000 ospfd: Fix maxage/flush to not try flood twice, remember maxages for longer 2006-05-30 Paul Jakma * (general) Fix confusion around MaxAge-ing and problem with high-latency networks. Analysis and suggested fixes by Phillip Spagnolo, in [quagga-dev 4132], on which this commit expands slightly. * ospf_flood.{c,h}: (ospf_lsa_flush) new function. Scope-general form of existing flush functions, essentially the dormant ospf_maxage_flood() but without the ambiguity of whether it is responsible for flooding. * ospf_lsa.c: (ospf_lsa_maxage) Role minimised to simply setup LSA on the Maxage list and schedule removal - no more. ospf_lsa_flush* being the primary way to kick-off flushes of LSAs. Don't hardcode the remover-timer value, which was too short for very high-latency networks. (ospf_maxage_lsa_remover) Just do what needs to be done to remove maxage LSAs from the maxage list, remove the call to ospf_flood_through(). Don't hardcode remove-timer value. (ospf_lsa_{install,flush_schedule}) ospf_lsa_flush is the correct entrypoint to flushing maxaged LSAs. (lsa_header_set) Use a define for the initial age, useful for testing. * ospf_opaque.c: (ospf_opaque_lsa_refresh) ditto. (ospf_opaque_lsa_flush_schedule) ditto. * ospfd.h: ({struct ospf,ospf_new}) Add maxage_delay parameter, interval to wait before running the maxage_remover. Supply a suitable default. Add a define for OSPF_LSA_INITIAL_AGE, see lsa_header_set(). commit c363d3861b5384a31465a72ddc3b0f6ff007a95a Author: Paul Jakma Date: Sun Jan 24 22:42:13 2010 +0000 ospfd: Unify router and network LSA refresh logic with general refresher * (general) Get rid of the router and network LSA specific refresh timers and make the general refresher do this instead. Get rid of the twiddling of timers for router/network LSA that was spread across the code. This lays the foundations for future, general LSA refresh improvements, such as making sequence rollover work, and having generic LSA delays. * ospfd.h: (struct ospf) Bye bye to the router-lsa update timer thread pointer. (struct ospf_area) and to the router-lsa refresh timer. * ospf_interface.h: Remove the network_lsa_self timer thread pointer * ospf_lsa.h: (struct ospf_lsa) oi field should always be there, for benefit of type-2/network LSA processing. (ospf_{router,network}_lsa_{update_timer,timer_add}) no timers for these more (ospf_{router,network}_lsa_update) more generic functions to indicate that some router/network LSAs need updating (ospf_router_lsa_update_area) update router lsa in a particular area alone. (ospf_{summary,summary_asbr,network}_lsa_refresh) replaced by the general ospf_lsa_refresh function. (ospf_lsa_refresh) general LSA refresh function commit 7eb5b47e54169ac0da40ed1a6760db5d5f915a4d Author: Paul Jakma Date: Tue Oct 13 16:13:13 2009 +0100 ospfd: Remember network LSA sequence numbers across up/downs of an interface * ospf_interface.h: (struct ospf_if_params) add field for saved network LSA seqnum * ospf_interfa.c: (ospf_new_if_params) init network_lsa_seqnum field to initial seqnum - doesnt matter though. * ospf_lsa.c: (ospf_network_lsa_new) check for any saved sequence number, and use if it exists. Save the result back. This should help avoid needless round of LSUpdate/LSRequests when a neighbour has to tell the originator "uhm, i have something newer than that already". * ospf_vty.c: (show_ip_ospf_interface_sub) Show the saved network LSA seqnum commit aa276fd783f5cdbeefe22bf54109fe523a465e07 Author: Paul Jakma Date: Fri Jan 8 17:11:15 2010 +0000 ospfd: Prioritise hellos for sending by queueing to head of output buffer * It's possible for the packet output buffer to be filled up with a long series of non-Hello packets in between Hellos packets, such that the router's neighbours don't receive the Hello packet in time, even though the hello-timer ran at about the right time. Fix this by prioritising Hello packets, letting them skip the queue and go ahead of any packets already on the queue. This problem can occur when there are lots of LSAs and slow links. * ospf_packet.h: (ospf_hello_send_sub) not used outside of ospf_packet.c * ospf_packet.c: (ospf_fifo_push_head) add packet to head of fifo (so its no longer really a fifo, but hey) (ospf_packet_add_top) add packet to top of the packet output queue. (ospf_hello_send_sub) Put Hello's at the top of the packet output queue. make it take in_addr_t parameter, so that this ospf_hello_send can re-use this code too. (ospf_hello_send) consolidate code by using ospf_hello_send_sub (ospf_poll_send,ospf_hello_reply_timer) adjust for ospf_hello_send_sub. commit 57c5c6526df82970ca24293798d278862cf55106 Author: Paul Jakma Date: Thu Jan 7 06:12:53 2010 +0000 ospfd: Reset neighbour inactivity timer for any packet arrival * The hello protocol monitors connectivity in 2 different ways: a) local -> remote b) remote -> local Connectivity is required in both directions (2-way) for adjacencies to form. The first requires a round-trip to detect, and is done by advertising which other hosts a router knows about in its hello messages. This allows a host to detect which other routers are and are not receiving its message. If a remote neighbour delists the local router, then the local router raises a "1-Way Received" event. The latter is straight-forward, and is detected by setting a timer for the neighbour. If another Hello packet is not received within this time then the neighbour is dead, and a separate "Inactive" event is raised. These are 2 different and relatively independent measures. Knowing that we can optimise the 2nd, remote->local measure and reset the timer when /any/ packet arrives from that neighbour. For any packet is as good as a Hello packet. This can help in marginal situations, where the number of protocol messages that must be sent sometimes can exceed the capacity of the network to transmit the messages within the configured dead-time. I.e. an OSPF network with lots of LSAs, slow links and/or slow hosts (e.g. O(10k) LSAs, O(100kbit) links, embedded CPUs, and O(10s) dead-times). This optimisation allows an OSPF network to run closer to this margin, and/or allows networks to perhaps better cope with rare periods of exceptional load, where otherwise they would not. It's fully compatible with plain OSPF implementations and doesn't prejudice dead-neighbour detection. * ospf_nsm.h: Rename HelloReceived event to PacketReceived. * ospf_nsm.c: (nsm_hello_received) -> nsm_packet_received * ospf_packet.c: Schedule PacketReceived whenever a valid message is received. commit 94b6bfd28357dfa5a4f478b7393522816976c0b0 Author: Paul Jakma Date: Sat Jan 9 14:11:02 2010 +0000 ospfd: the maxage_lsa_remover should check whether it needs to yield the cpu commit e8f2226195e86f90f2409549ad8a8e5c8d64d23b Author: Paul Jakma Date: Tue Apr 13 22:43:34 2010 +0100 ospfd: Fix various route_unlock discrepencies * ospf_ase.c: (ospf_ase_calculate_route) Fix compiler warning about eval needing brackets. (various) add defensive asserts. * ospf_lsdb.c: (ospf_lsdb_add) add missing node unlock if same lsa already was indexed. (ospf_lsdb_delete) check it's actually the same as specified lsa before deleting (ospf_lsdb_lookup_by_id_next) fix another corner case - no result => don't go on. commit 6634974d68b8cc78cdde1104636fe97d7e310845 Author: Paul Jakma Date: Tue Apr 13 22:33:54 2010 +0100 ospfd: fix lsa_refresh_walker unlock before use bug * ospf_lsa.c: (ospf_lsa_refresh_walker) fix an "unlock before use" bug (various) add asserts for lsa refcounting. commit 8a81ee114a122966cb396d53dd8fcbda2eb619f5 Author: Paul Jakma Date: Sun Jan 24 21:34:54 2010 +0000 ospfd: interface code should leave network_lsa_self alone * ospf_interface.c: (ospf_if_{new,cleanup}) don't touch the network_lsa_self, ISM and NSM take care of cleaning it up if needs be + we want to keep network_lsa_self around when possible for the the seqnum. This shouldn't really make much difference though, particularly as we have a separate sequence number memory mechanism. commit 2c9f8e36c4de4bb1412364b79c3a44881208266e Author: Paul Jakma Date: Mon Jan 11 16:22:12 2010 +0000 ospfd: OSPF_MIN_LS_ARRIVAL compare should be >= to match ospf_flood * ospf_packet.c: (ospf_ls_upd) the corresponding test on the arrival side in (ospf_flood) is <, so this should be >=, not >, purely for consistency. There is no practical effect here though. commit cfd670f3af25dfc34d5c06e30d21160e3dfb6421 Author: Paul Jakma Date: Thu Apr 15 11:39:05 2010 +0100 ospfd: ospf_if_free can leave dangling references on ISM events - cancel them * ospf_interface.c: (ospf_if_free) events with dangling pointers left scheduled can be seriously bad for ospfd's health. Cancel the event. commit ec70497bc5eac732139c3d94987ecb6691557795 Author: Paul Jakma Date: Mon Dec 6 12:21:52 2010 +0000 ospfd: Lower level of some common messages from info to debug * ospf_{ism,network}.c: Certain oft-repeated but trivial messages should be debug log level, not info, to avoid spamming 'terminal monitor' commit f8416810aad4cba6f622c6b3f9352abdd54cd01e Author: Paul Jakma Date: Tue Apr 13 22:42:33 2010 +0100 lib: Fix bug in prefix trie lookup * lib/table.c: (route_node_match) fix overshoot that was causing this function to go 1 bit too far and thus reading past end of prefix. (route_node_lookup) be defensive - don't assume others will clean up leaves when removing info. commit d358344759d85a965bbd767f4a994695f99b842e Author: Paul Jakma Date: Sun Jan 24 21:41:02 2010 +0000 lib: prefix.c nano-optimisation * lib/prefix.c: (prefix_match) nano-optimisation, let it return early without copying pointers. commit 3322055b392f20f4b97122a8034e479719e4b86d Author: Paul Jakma Date: Mon Jan 11 13:55:01 2010 +0000 lib: Make workqueue more conservative about ramping up * workqueue.c: (work_queue_run) Err more on the side of keeping granularity down, by being more conservative about increasing it. Also, fix mispelling. commit e276eb82820eb92d221f183496e28da4ffe0fe68 Author: Paul Jakma Date: Sat Jan 9 16:15:00 2010 +0000 lib: Add a command to clear the thread CPU history data * (general) this can be useful when investigating thread latency problems, when you don't want to have to restart a daemon between tests. * thread.c: (cpu_record_(hash_)clear) wipe the stored thread cpu history data, according to the filter, similar to the vty print code. (clear_thread_cpu_cmd) new command to clear data. * thread.h: export new command * command.c: install it commit 2613abe64fe48761d798942af8dc0ec90c804b22 Author: Paul Jakma Date: Mon Jan 11 16:33:07 2010 +0000 lib: Thread scheduler should be fair and not let events starve I/O and timers * thread.c: (thread_fetch) the current scheduler will service events indefinitely, ignoring I/O and timers, so long as there are events. In other words, events can crowd out I/O and timers. In theory this shouldn't be a huge problem as events are generated only by timers and I/O, however in practice it means normal-load behaviour is not as useful a predictor of high-load behaviour as it should be. Fix this by considering all the kinds of threads, in every run of the scheduler. For any given run, we prioritise events, however across runs the scheduler should be fair. This has been observed to give more stable inter-packet times in testing of ospfd (i.e. lower std-dev). (thread_process) new heler to queue all the given threads onto the ready list commit 8526100eebf9c56ff6fac2b80938b232bb687946 Author: Paul Jakma Date: Mon Jan 11 16:30:45 2010 +0000 lib: thread history funcname shouldn't be constant, it's freed * thread.h: (struct cpu_thread_history.funcname) malloc gets called on this so it should not be const * thread.c: (cpu_record_print) cast the (const char *) to (char *), this function knows what it's doing (free wont be called on it). commit 838bbde0426e562132d22fb11932ea413aebf928 Author: Paul Jakma Date: Fri Jan 8 14:05:32 2010 +0000 bgpd: Simplify process queue init * bgp_route.c: (bgp_process_queue_init) rsclient wasn't getting all the same things initialised as the main queue. Simplify to make it more robust. commit b729294c8c5c6f2af8ddf6cfbea2374b6faabe9d Author: Denis Ovsienko Date: Wed Dec 8 18:51:37 2010 +0300 bgpd: fix community-list error message spelling * bgp_vty.c: (community_list_perror, show_ip_community_list_arg, show_ip_extcommunity_list_arg) fix spelling commit 5195e17f8b49dc720252526a21afd7840240137b Author: Greg Troxel Date: Wed Nov 3 07:37:23 2010 -0400 infrastructure: Express preference for published git repos * HACKING: Express notion that a published git repository is preferred. Fold request for commit message into patch section. Express desire for comments in code explaining correctness of post-commit state, and for commit message to explain correctness of the change. commit a8e474a598ed01591fd3814eee5f5b6a909e4f59 Author: Greg Troxel Date: Wed Nov 3 07:22:00 2010 -0400 infrastructure: Whitespace cleanup. HACKING: Whitespace changes only. commit d7a9779742748f0658be22664349669438e69af1 Author: Greg Troxel Date: Wed Nov 3 07:20:38 2010 -0400 infrastructure: Clarify commit message format. Note 54/72 line length rules, and that this is intended to play nice with "git log --oneline". commit f3bd05011ceb5173c2b01d2d51616fabe4860f57 Author: Greg Troxel Date: Wed Nov 3 07:16:32 2010 -0400 Adjust description of tomhenderson repo. Tom's repo is now a clone of the official repo and has an mttr branch off of 0.99.17. commit 213b6cd9fb24381563d6d44c7ddc4700abfae676 Author: Vladimir L Ivanov Date: Thu Oct 21 14:59:54 2010 +0400 bgpd: fix printed value of last-update timestamp * bgp_route.c: (route_vty_out_detail) calculate time value in a way, which works regardless of monotonic clock being used or not commit 08a7a91646a1ee317c402b421e3a7036a640bcf4 Author: Dmitry Tejblum Date: Mon Oct 18 19:05:39 2010 +0400 zclient: fix router-id calculation for IPv6 (#595) If router-id is not specified in ospf6d.conf, ospf6d will get it from the zebra daemon. But ospf6d originates Link LSAs before the router-id is returned by zebra, thus this router's Link LSAs will be flooded with AdvRouter set to 0. * zclient.c: zclient_start(): send ZEBRA_INTERFACE_ADD message after ZEBRA_ROUTER_ID_ADD, not before commit 4c9641ba4df276080c670e03f65b1d442660a50f Author: Michael Lambert Date: Thu Jul 22 13:20:55 2010 -0400 bgpd, lib: adopt afi_t and safi_t in several places * bgpd/bgp_attr.c, bgpd/bgp_open.h, bgpd/bgp_route.c, lib/prefix.c, lib/prefix.h: Various integer types were being used where, if we had strict type checking, afi_t and safi_t would be required. Signed-off-by: G.Balaji (cherry picked from commit c8af35ffa2dc79ff7d7ff00b1b61f1f50a100ab6) commit 11d3fe9b9a327b3218a76b2b9001ace50c08de8c Author: Greg Troxel Date: Fri Sep 24 09:22:37 2010 -0400 Add MTR repository. commit b830c89a4532819a78c251c559566767b89ee5ac Author: Nico Golde Date: Sun Aug 1 15:24:35 2010 +0200 lib/vty.c: add missing format string when printing out motd message Signed-off-by: G.Balaji commit b16793870794919ecc34138bdc51703cc3f409ca Author: Greg Troxel Date: Fri Sep 17 12:19:13 2010 -0400 Document rules for zalloc and friends. lib/memory.c:z{a,c,re}alloc, zfree, zdup: add requires/effects comments. commit cbc64b07c40f35c4ae5f2c0cfbf92ac5b375bc83 Author: Greg Troxel Date: Fri Sep 17 11:02:45 2010 -0400 Add pointer to Balaji G. git. Balaji has been accumulating patches from the mailing list and pre-screening them and spiffing up commit messages. commit d3ddb22e902bc4dc175ed6974515f6e14d9be931 Author: Greg Troxel Date: Fri Sep 17 10:47:49 2010 -0400 Set from even if binfo->extra is NULL. bgpd/bgp_packet.c:bgp_update_packet(): When extracting the peer, don't fail to extract it because "binfo->extra" is NULL. While one should certainly avoid dereferencing binfo->extra, that's not a good reason not to use binfo->peer. Fixes https://bugzilla.quagga.net/show_bug.cgi?id=497. Patch by Eric Sobocinksi. commit cf8a831bcb53b60a7b5c4b26dda7646ebc7506d8 Author: Stephen Hemminger Date: Wed Aug 18 15:56:46 2010 -0700 Zebra zserv: bogus conditional This looks like a bug in original code from misunderstanding of C rules of evaluation.