summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* 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
* bgpd: code cleanupStephen Hemminger2009-12-175-21/+4
| | | | | | | | | | | * bgpd/bgp_aspath.c * ashash: only used in one file, make static * aspath_count_numas(): dead code, sayonara * bgpd/bgpd.c * peer_nsf_stop(): only used in one file, make static * bgpd/bgp_packet.h * bgp_capability_receive(): add missing prototype for a global function
* ripd: fix compiler warningsStephen Hemminger2009-12-104-8/+17
| | | | | | | | | | | | | | | | | | * ripd/rip_interface.c * rip_request_neighbor(): comment out, unused * rip_request_neighbor_all(): idem * rip_interface_up(): Cast flags otherwise compiler complains about %lld not matching uint64_t on 64 bit x86. Print in hex since flags are bit field. * rip_interface_add(): idem * rip_interface_delete(): idem * ripd/rip_zebra.c * rip_redistribute_set(): comment out, unused * ripd/ripd.h * rip_redistribute_check(): move prototype here so compiler can check function against prototype * ripd/ripd.c * rip_update_default_metric(): comment out, unused
* ospf6d: remove dead codeStephen Hemminger2009-12-102-17/+2
| | | | | | | | * ospf6d/ospf6_interface.c * loopind(): sayonara * ospf6d/ospf6_top.c * ospf6_delete(): comment out, it might be useful if real shutdown is added
* ospf6d: fix warnings from recent prefix bit commitStephen Hemminger2009-12-102-2/+8
| | | | | | | | * lib/prefix.h * prefix6_bit(): add IPv6 wrapper for prefix_bit() * ospf6d/ospf6_lsdb.c * ospf6_lsdb_type_router_head(): employ prefix6_bit() * ospf6_lsdb_type_head(): idem
* ripngd: compiler warnings cleanupStephen Hemminger2009-12-102-23/+13
| | | | | | | | | | * ripngd/ripng_interface.c * ripng_check_max_mtu(): unused, sayonara * ripng_interface_down(): cast flag arguments to logging function * ripng_interface_add(): idem * ripng_interface_delete(): idem * ripngd/ripngd.c * ripng_recv_packet(): avoid aliasing warning dereferencing pointer
* zebra: deal with irdp compile warningsStephen Hemminger2009-12-104-31/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * zebra/irdp.h * irdp_send_thread(): move prototype to common header file * irdp_advert_off(): idem * process_solicit(): idem * irdp_read_raw(): idem * send_packet(): idem * zebra/irdp_interface.c * inet_2a(): move function to where it is used * in_cksum(): lib/checksum.h already provides prototype * irdp_send_thread(): prototype moved away * inet_2a(): idem * irdp_advert_off(): idem * b1, b2, b3, b4: get rid of global buffers for inet_2a() * if_group(): add local buffer for inet_2a() * if_add_group(): idem * if_drop_group(): idem * irdp_config_write(): idem * Adv_new(): make static * zebra/irdp_main.c * irdp_read_raw(): prototype moved away * send_packet(): idem * in_cksum(): lib/checksum.h already provides prototype * inet_2a(): function moved to irdp_interface.c * zebra/irdp_packet.c * b1, b2, b3, b4: get rid of global buffers for inet_2a() * in_cksum(): lib/checksum.h already provides prototype * process_solicit(): prototype moved away * irdp_read_raw(): fix uninitialized variable
* bgpd: compile warnings cleanupStephen Hemminger2009-12-104-75/+1
| | | | | | | | | | | | * bgpd/bgp_fsm.c * bgp_clearing_completed(): only used in one file, can be static * bgpd/bgp_packet.c * afi2str(): sayonara * safi2str(): sayonara * bgpd/bgp_route.c * bgp_distance_reset(): sayonara * bgpd/bgp_zebra.c * bgp_ifindex_by_nexthop(): sayonara
* zebra: cleanup RIB meta queue codeStephen Hemminger2009-12-091-37/+10
| | | | | | | * zebra/zebra_rib.c * rib_queue_add(): indent comments and simplify debug code * rib_queue_init(): remove unneeded assert() calls and extra return statements
* lib: move check_bit into prefix common codeStephen Hemminger2009-12-095-72/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make one version of check prefix bit, and put it inline with proper prototype. This gets rid of some macro's and also some assert() that can never happen on a non-broken compiler. * bgpd/bgp_table.c * CHECK_BIT(): sayonara * check_bit(): sayonara * SET_LINK(): sayonara * set_link(): make use of prefix_bit() instead of check_bit() * bgp_node_match(): idem * bgp_node_lookup(): idem * bgp_node_get(): idem * lib/prefix.h * prefix_bit(): new inline version of check_bit() * lib/table.c * CHECK_BIT(): sayonara * check_bit(): sayonara * SET_LINK(): sayonara * set_link(): make use of prefix_bit() instead of check_bit() * route_node_match(): idem * route_node_lookup(): idem * route_node_get(): idem * ospf6d/ospf6_lsdb.c * CHECK_BIT(): sayonara * ospf6_lsdb_lookup_next(): make use of prefix_bit() instead of CHECK_BIT() * ospf6_lsdb_type_router_head(): idem * ospf6_lsdb_type_head(): idem * ospf6d/ospf6_route.c * CHECK_BIT(): sayonara * ospf6_route_match_head() make use of prefix_bit() instead of * CHECK_BIT()
* lib: fix warning on little endianStephen Hemminger2009-12-091-1/+2
| | | | | | | | * md5.c * md5_calc(): If building on little endian then X will be 'const uint32_t' which causes compiler warning in code that never gets used. Just move the endif to make sure code is not checked.
* zebra: fix more warnings in rtadvStephen Hemminger2009-12-081-8/+5
| | | | | | | | | * zebra/rtadv.c * rtadv_free(): remove unused function * rtadv_recv_packet(): break up cast/dereference to avoid compiler type pun warning * rtadv_read(): initialize ifindex, because compiler can't figure out that it is okay
* Merge branch 'master' of ssh://code.quagga.net/var/lib/git/quaggaDenis Ovsienko2009-12-083-27/+16
|\
| * zebra: remove unused function to fix warningStephen Hemminger2009-12-081-13/+0
| | | | | | | | | | * zebra/interface.c * if_supported_family(): sayonara