summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
| | * | | ospfd: ospf_if_free can leave dangling references on ISM events - cancel themPaul Jakma2010-12-081-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | * ospf_interface.c: (ospf_if_free) events with dangling pointers left scheduled can be seriously bad for ospfd's health. Cancel the event.
| | * | | ospfd: Lower level of some common messages from info to debugPaul Jakma2010-12-082-11/+11
| | | | | | | | | | | | | | | | | | | | | | | | | * ospf_{ism,network}.c: Certain oft-repeated but trivial messages should be debug log level, not info, to avoid spamming 'terminal monitor'
| | * | | lib: Fix bug in prefix trie lookupPaul Jakma2010-12-081-6/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
| | * | | lib: prefix.c nano-optimisationPaul Jakma2010-12-081-4/+5
| | | | | | | | | | | | | | | | | | | | | | | | | * lib/prefix.c: (prefix_match) nano-optimisation, let it return early without copying pointers.
| | * | | lib: Make workqueue more conservative about ramping upPaul Jakma2010-12-081-8/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * workqueue.c: (work_queue_run) Err more on the side of keeping granularity down, by being more conservative about increasing it. Also, fix mispelling.
| | * | | lib: Add a command to clear the thread CPU history dataPaul Jakma2010-12-083-0/+86
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * (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
| | * | | lib: Thread scheduler should be fair and not let events starve I/O and timersPaul Jakma2010-12-081-16/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
| | * | | lib: thread history funcname shouldn't be constant, it's freedPaul Jakma2010-12-082-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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).
| | * | | bgpd: Simplify process queue initPaul Jakma2010-12-081-7/+6
| | |/ / | | | | | | | | | | | | | | | | * 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.
| | * | infrastructure: Express preference for published git reposGreg Troxel2010-11-031-5/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
| | * | infrastructure: Whitespace cleanup.Greg Troxel2010-11-031-8/+12
| | | | | | | | | | | | | | | | HACKING: Whitespace changes only.
| | * | infrastructure: Clarify commit message format.Greg Troxel2010-11-031-2/+6
| | | | | | | | | | | | | | | | | | | | Note 54/72 line length rules, and that this is intended to play nice with "git log --oneline".
| | * | Adjust description of tomhenderson repo.Greg Troxel2010-11-031-4/+4
| | | | | | | | | | | | | | | | | | | | Tom's repo is now a clone of the official repo and has an mttr branch off of 0.99.17.
| | * | bgpd: fix printed value of last-update timestampVladimir L Ivanov2010-10-211-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | * bgp_route.c: (route_vty_out_detail) calculate time value in a way, which works regardless of monotonic clock being used or not
| | * | zclient: fix router-id calculation for IPv6 (#595)Dmitry Tejblum2010-10-181-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| | * | bgpd, lib: adopt afi_t and safi_t in several placesMichael Lambert2010-10-065-20/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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 <balajig81@gmail.com> (cherry picked from commit c8af35ffa2dc79ff7d7ff00b1b61f1f50a100ab6)
| | * | Add MTR repository.Greg Troxel2010-09-241-0/+8
| | | |
| | * | lib/vty.c: add missing format string when printing out motd messageNico Golde2010-09-171-1/+1
| | | | | | | | | | | | | | | | Signed-off-by: G.Balaji <balajig81@gmail.com>
| | * | Document rules for zalloc and friends.Greg Troxel2010-09-171-5/+27
| | | | | | | | | | | | | | | | | | | | lib/memory.c:z{a,c,re}alloc, zfree, zdup: add requires/effects comments.
| | * | Add pointer to Balaji G. git.Greg Troxel2010-09-171-0/+7
| | | | | | | | | | | | | | | | | | | | Balaji has been accumulating patches from the mailing list and pre-screening them and spiffing up commit messages.
| | * | Set from even if binfo->extra is NULL.Greg Troxel2010-09-171-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| | * | Zebra zserv: bogus conditionalStephen Hemminger2010-08-191-1/+1
| | | | | | | | | | | | | | | | | | | | This looks like a bug in original code from misunderstanding of C rules of evaluation.
| | * | release: 0.99.17quagga_0_99_17_releaseDenis Ovsienko2010-08-191-1/+1
| | | | | | | | | | | | | | | | * configure.ac: bump up version number
| | * | bgpd: fix handling of AS path dataChris Hall2010-08-094-91/+131
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * bgpd/bgp_aspath.c * assegments_parse(): add handling of AS4_PATH input, update bounds checks, add check for AS segment type * aspath_parse(): add handling of AS4_PATH input, expect assegments_parse() to do length checking * aspath_empty(): update for the new function prototype * bgpd/bgp_aspath.h: ditto * tests/aspath_test.c: ditto * bgpd/bgp_attr.c * bgp_attr_aspath(): add handling of AS4_PATH input, update flags checks, change returned type * bgp_attr_as4_path(): discard, superseded by bgp_attr_aspath() * bgp_attr_parse(): update respectively
| | * | bgpd: tighten bounds checking in RR ORF msg readerChris Hall2010-05-141-9/+40
| | |/ | | | | | | | | | | | | | | | * bgp_packet.c: (bgp_route_refresh_receive) add validation of "Length" (RFC5292) field value, check input stream bounds each time bytes are pulled from it
| | * zebra: fix infinite loop when deleting an interfaceRoman Hoog Antink2010-05-051-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When deleting a VLAN interface after flushing its addresses, zebra uses 100% CPU time and freezes. * interface.c: The while loop in line 407 that should clean up connected routes never hits one of the 2 lines "last = node;" and thus loops forever. Signed-off-by: Roman Hoog Antink <rha@open.ch>
| | * Update for git and emphasize asking for good reports.Greg Troxel2010-05-051-3/+10
| | |
| | * build: ignore mkinstalldirs and texinfo.texDavid Lamparter2010-04-284-7187/+2
| | | | | | | | | | | | these are autogenerated by autoreconf, drop them from git.
| | * isisd: change ISIS_METHOD to use C preprocessorDavid Lamparter2010-04-285-13/+20
| | | | | | | | | | | | | | | | | | this fixes warnings from vtysh extract.pl by making sure the isis method files always 'work'. (previously, extract.pl would grab unselected isis method sources and then complain about missing headers)
| | * ospf6d: Fix crash when '[no] ipv6 ospf6 advertise prefix-list' is in ↵David Ward2010-04-281-10/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | startup-config * ospf6_interface.c: When '[no] ipv6 ospf6 advertise prefix-list' appears in the startup configuration for ospf6d, a crash occurs, because ospf6d attempts to schedule LSAs when the 'oi->area' structure has not yet been initialized. Now, when the command above is issued (either in the startup configuration or at runtime), ospf6d will only schedule LSAs if the 'oi->area' structure has been initalized. A similar test is already used when handling the commands 'ipv6 ospf6 priority' and 'ipv6 ospf6 cost'.
| | * build/extra: Enhance README.NetBSD make/gmake decision.Greg Troxel2010-04-201-7/+11
| | |
| | * ospfd: Only refresh external default route once.Joakim Tjernlund2010-04-181-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | * ospf_zebra.c: (ospf_distribute_list_update_timer) forces a refresh of default route each time it finds a default prefix. This is suboptimal, just record that it needs to be done and do it once. Signed-off-by: Joakim Tjernlund <Joakim.Tjernlund@transmode.se>
| | * ospfd: Make sure ospf_distribute_list_update_timer() eventually runs.Joakim Tjernlund2010-04-181-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * ospf_zebra.c: (ospf_distribute_list_update_timer) If there are updates to the distribute list every 5 second or less, ospf_distribute_list_update_timer() will never run as the timer gets rearmed for each update. This fixes it by never rearming an active distribute list timer. Signed-off-by: Joakim Tjernlund <Joakim.Tjernlund@transmode.se>
| | * ospfd: Make sure all external routes are updated.Joakim Tjernlund2010-04-181-17/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Roman Hoog Antink <rha@open.ch> reports: When adding a connected route (using vtysh, without restart) to the redistribution access list of ospfd, while static routes already exist, the update timer ospf_distribute_list_update_timer() is being run for static routes only. That way, the connected route never appears in the OSPF database, until quagga is completely restarted. The update timer for connected routes is cancelled in ospfd/ospfd_zebra.c:ospf_distribute_list_update():976, were a new timer is scheduled for static routes, caused by the loop in ospf_filter_update(). * ospf_zebra.c: (ospf_distribute_list_update_timer) make it refresh all external routes. This fixes the problem reported by Roman. Signed-off-by: Joakim Tjernlund <Joakim.Tjernlund@transmode.se>
| | * git: add pointers to out-of-tree workGreg Troxel2010-04-181-0/+34
| | | | | | | | | | | | | | | * (HACKING.pending): List known places where work on quagga that is not (yet) integrated into the main tree can be found.
| | * git: add (generated) m4 files to .gitignoreGreg Troxel2010-04-141-0/+1
| | |
| | * doc: fixed spelling in bgpd.texiIvan Moskalyov2010-03-111-1/+1
| | |
| | * build: Add QuaggaId to README.NetBSDGreg Troxel2010-03-101-1/+1
| | |
| | * release: 0.99.16quagga_0_99_16_releaseDenis Ovsienko2010-03-091-1/+1
| | | | | | | | | | | | * configure.ac: bump up version number
| | * lib: undo the last PIE commitStephen Hemminger2010-01-271-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Stephen: A recent change breaks build Quagga on Debian Lenny with amd64 (but not i386). Not sure whether this is cause by ld, gcc, or libtool; but whatever it just won't work for a large number of users. Mathias: I would guess it's a problem of libtool because it adds "-fPIC -DPIC" to the compiler flags but doesn't remove -fPIE. That wouldn't be a problem if the compiler would ignore the -fPIE in favor to the latter -fPIC, but obviously it does not. [...] Those objects were actually compiled with -fPIC but also -fPIE which seems to confuse gcc.
| | * lib: fix PIE build flagsMathias Krause2010-01-201-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Because the final executables are built as position independent executables (PIE) -- when configure has detected compiler supported for PIE -- the objects in the library archive must be built in that way, too. Otherwise the runtime linker has to do unneccesary relocation for each start of the program. Even worse, the programs won't even be able to start on a (hardened) kernel that doesn't allow those relocations to happen by preventing making the .text segment writable (PaX's MPROTECT feature comes to mind). The attached patch fixes this issue by adding the appropriate flags to the Makefile.am.
| | * bgp: use monotonic clock for time of dayStephen Hemminger2010-01-157-46/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | BGP uses time() to get system time of day; but that value fluctuates with time adjustments from NTP. This can cause premature flapping of peer sessions and other failures. Use the system monotonic clock supported by Quagga thread library to avoid issue. See: http://bugzilla.vyatta.com/show_bug.cgi?id=4467 * bgpd/bgp_fsm.c * bgp_uptime_reset(): dismiss function * bgpd/bgpd.c * bgp_clock(): new function * bgpd/bgp_damp.c * bgp_reuse_timer(): employ bgp_clock() instead of time(NULL) * bgp_damp_withdraw(): idem * bgp_damp_update(): idem * bgp_damp_scan(): idem * bgp_damp_info_vty(): idem * bgp_damp_reuse_time_vty(): idem * bgpd/bgp_fsm.c * bgp_routeadv_timer(): idem * bgp_stop(): idem * bgp_establish(): idem * bgpd/bgp_packet.c * bgp_update_receive(): idem * bgpd/bgp_route.c * bgp_update_rsclient(): idem * bgp_update_main(): idem * bgp_static_update_rsclient(): idem * bgp_static_update_main(): idem * bgp_static_update_vpnv4(): idem * bgp_aggregate_route(): idem * bgp_aggregate_add(): idem * bgp_redistribute_add(): idem * bgpd/bgp_snmp.c * bgpPeerTable(): idem * bgpTrapEstablished(): idem * bgpTrapBackwardTransition(): idem * bgpd/bgpd.c * peer_create(): idem * peer_uptime(): idem * bgp_master_init(): idem
| | * ospfd: Fix debug messages that were masked by DISCARD_LSAPaul Jakma2010-01-141-3/+4
| | | | | | | | | | | | | | | * ospf_packet.c: (ospf_ls_upd) DISCARD_LSA continues, and so should be after debug messages, not before them.
| | * ospfd: remove unneeded memset from a very hot functionPaul Jakma2010-01-141-1/+0
| | | | | | | | | | | | | | | | | | * ospf_lsdb.c: (lsdb_prefix_set) memset is unneeded, as all fields are initialised explicitly, and this function can be in the top-3 of a profile when there are a lot of LSAs.
| | * lib: fix memory loggingDavid Ward2010-01-131-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lib/memory.h * mtype_zcalloc(): correct function prototype * XFREE(): make both definitions consistent in setting the pointer to NULL after freeing the memory These changes will only have an effect if MEMORY_LOG is defined (it is not by default).
| | * zebra: change router-id selection algoStephen Hemminger2009-12-211-10/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The router-id table looks like is supposed to be sorted in current quagga code, but the nodes are not added with the sorting function. The sorting function is host byte order dependent. The values need to converted before comparison. Fixing this causes Zebra to choose the largest IP address as router-id, rather than the last address. This probably will surprise some users. The other option would be to just remove the comparison function and keep the existing LIFO behavior. Lastly, simple subtraction works well for comparing. * zebra/router-id.c * router_id_add_address(): employ listnode_add_sort() * router_id_cmp(): employ ntohl(), then compare integers
| | * lib: make some structures constantStephen Hemminger2009-12-213-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * isisd/isis_pdu.c * maskbit: this pre-initialized array is not modified * lib/prefix.c * maskbit: idem * lib/command.c * facility_map: idem * itoa64: idem * default_motd: make local var static * facility_name(): update local var accordingly * facility_match(): idem
| * | Fix SEGV when closing legacy threaded VTYex20bChris Hall2011-08-021-1/+1
| | | | | | | | | | | | Fix of simple typo.
* | | Disable the "~" VTY Terminal prompt.Chris Hall2011-07-213-66/+251
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commands sent to the Routing Engine are now sent as priority messages, so should no longer be a need for the "~" prompt which kept the CLI "live" while a command was waiting for the Routing Engine to pay attention. Also: reinstated test-vector.c tests for vector_move_item_here(), which seem somehow to have got lost.
* | | Added features to configure.Chris Hall2011-07-212-639/+48
| | | | | | | | | | | | | | | | | | | | | | | | --with-defines -Dxxx -Dyyy -- can add things to the cc line --with-memory-tracker -- add -DMEMORY_TRACKER to cc line --enable-gcc-debug -- -O0 -g3