summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* 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
| * lib: make match functions take const argsStephen Hemminger2009-12-082-14/+16
| | | | | | | | | | | | | | | | | | * table.c: general type safety and compiler help: * maskbit[]: become const * route_node_match(): take const args * route_node_match_ipv4(): idem * route_node_match_ipv6(): idem * check_bit(): idem, plus adjust local vars typing
* | zebra: fix more compiler warningsStephen Hemminger2009-12-081-40/+4
|/ | | | | | | | | | | * zebra/zebra_rib.c * nexthop_active_update(): make local int vars unsigned * nexthop_active_check(): return unsigned for consistency * rib_dump(): cast time in printf format * vrf_free(): remove unused function * vrf_lookup_by_name(): idem * rib_if_up(): idem * rib_if_down(): idem
* lib: remove unused function: route_dump_node()Denis Ovsienko2009-12-071-17/+0
|
* lib: log source of vty connections (bug #566)heasley2009-12-071-0/+6
| | | | heasley: I've used this for a while to track usage.
* ospf6d: review LSA sequence number comparisonOndrej Zajicek2009-12-071-7/+4
| | | | | | | | | | | | | | | | | | It seems that there is a bug in ospf6d in ospf6_lsa_compare(): If LSA A has sequence number smaller than 0x80000000 and LSA B has sequence number larger than 0x80000000, ospf6_lsa_compare() returns that B is more recent than A, although RFC says that sequence numbers should be compared as signed numbers (0x8000001 smallest and 0x7FFFFFFF largest). In ospfd, the function ospf_lsa_more_recent() has it right. The problem appears when Quagga is used together with OSPFv3 in development version of BIRD daemon ( http://bird.network.cz/ ), which creates LSAs with maximum sequence number (0x7FFFFFFF) as a part of flushing/premature aging LSA from OSPF area. Because both daemons has different idea of which LSA instance is more recent, it would lead to LSA storm.
* bgpd: work around warning in assegments_parse()Denis Ovsienko2009-12-041-2/+5
|
* zebra: handle RTF_CLONING removal from FreeBSD 8.0David Ward2009-12-031-0/+7
| | | | | | | The RTF_CLONING flag has been removed in FreeBSD 8.0 with arp-v2 (see http://svn.freebsd.org/viewvc/base/stable/8/UPDATING?view=markup), since it no longer has any meaning. This patch checks if RTF_CLONING exists before using it.
* isisd: fix --enable-isis-topology for 64-bit LinuxDavid Ward2009-12-031-0/+3
|
* zebra: fix argument reference in strncpy() call for BSDheasley2009-12-031-1/+1
|
* isisd: fix BPF ioctl() calls, treat "true" and "false" as reservedDavid Ward2009-12-031-6/+7
| | | | | | | | | | | | | Avoid a potential conflict with the C99 defines 'true' and 'false' found in <stdbool.h> by choosing better variable names. Also fix the calls to these ioctls, as described in <net/bpf.h> in FreeBSD, NetBSD, and OpenBSD: * BIOCGBLEN, BIOCIMMEDIATE, BIOCSSEESENT (the parameter should be of type 'u_int') * BIOCPROMISC (there should be no parameters)
* configure: fix spellingDavid Ward2009-12-031-1/+1
|
* ospfd: VTY strings cleanupStephen Hemminger2009-12-031-15/+2
| | | | Several bits of text can be local or are unused.
* ospfd: comment out unused functionStephen Hemminger2009-12-031-0/+2
|
* ospfd: make local functions staticStephen Hemminger2009-12-032-55/+8
| | | | | | | | | This code is only used one place and can be made local. Gcc is smart enough to inline local functions if it wants to. The function also has a big chunk of compatiablity code that is no longer used; since quagga is now in a version control system the source does not need to be used as a historical reference.
* zebra: fix RIB debug message for IPv6David Ward2009-12-031-4/+4
| | | | | | | Apply changes from commit f304cb48f0d7d0ff8f36e7aca8293141a9fa9e60 to rib_queue_add. Also includes spelling fixes.
* zebra: make declaration const in rtm_flag_dump()Tom Goff2009-12-031-1/+1
| | | | | * kernel_socket.c: (rtm_flag_dump) Use a const message pointer to be in sync with commit ce0db9cb11c0bc2e7f89a7d042e50afa495556b4.
* ospf6d: fix LSA locking in ospf6_new_ls_id()Tom Goff2009-12-011-0/+3
| | | | | | | * ospf6_lsdb.c: (ospf6_new_ls_id) Unlock the current LSA when breaking out of the ospf6_lsdb_*_head() / ospf6_lsdb_*_next() loop early. No explicit unlocking is needed when all LSAs are looped through because ospf6_lsdb_*_next() manages everything in that case.
* configure: fix HAVE_CLOCK_MONOTONIC spellingDmitry Tejblum2009-11-051-1/+1
|
* [ospfd] enable more OSPF cost command aliasesDenis Ovsienko2009-09-281-0/+88
| | | | | | | | | | | | The following syntax forms were not historically supported by Quagga, although IOS accepted them w/o a problem: no ip ospf cost <1-65535> no ospf cost <1-65535> no ip ospf cost <1-65535> A.B.C.D no ospf cost <1-65535> A.B.C.D From now on Quagga also supports these variants.
* zebra: Fix router advertisements for non-Ethernet link layer addressesDavid Ward2009-09-011-2/+16
| | | | | * rtadv.c: round up when calculating the link-layer address option length; add padding to the option if needed to end on an octet boundary
* release: 0.99.15quagga_0_99_15_releasePaul Jakma2009-08-281-1/+1
| | | | * configure.ac: Bump to 0.99.15
* ospf6d: bug #529, fix endianness problem in earlier commit Tom Henderson2009-08-281-7/+4
| | | | | | * ospf6_lsa.c: (ospf6_lsa_age_current) arithmetical compares make no sense in non-host order..
* bgpd: fix md5 set on listen socketsStephen Hemminger2009-08-281-9/+10
| | | | | | * bgp_network.c: (bgp_md5_set) Missing piece from earlier listener change did not get ported from Vyatta code into upstream. The list listener_sockets changed from (int *) to (struct bgp_listener *).
* lib/trivial: str2prefix checks return of inet_pton in fragile wayPaul Jakma2009-08-281-2/+2
| | | | | * prefix.c: (str2prefix_ipv6) inet_pton succesful return is presumed to be 1, rather than the "not zero" the man page describes - seemed fragile.
* zebra: Add an example config file for testzebraPaul Jakma2009-08-281-0/+56
| | | | * testrib.conf: Example config file for testzebra
* zebra: test_main.c should be a bit more helpful about its usagePaul Jakma2009-08-281-1/+5
| | | | * test_main.c: If required arguments are missing, say that.
* lib: if_lookup_by_name should be more robust to null argumentPaul Jakma2009-08-281-7/+9
| | | | * if.c: (if_lookup_by_name) shouldn't crash just cause we got a NULL name
* ospfd: Make sure priority is respected.Joakim Tjernlund2009-08-281-1/+1
| | | | | * ospf_ism.c (ospf_dr_eligible_routers) should test for priority > 0 instead of != 0 as ospf_nbr_new () initially sets prio to -1
* ospfd: Tighten up the connected check for redistributionJoakim Tjernlund2009-08-281-8/+5
| | | | | | * ospf_zebra.c: (ospf_distribute_check_connected) check to make filter out routes matching connected routes was matching against OSPF networks, which can be far more general than the actual connected interfaces. Fix.
* all: check return value from daemon() callStephen Hemminger2009-08-139-17/+45
| | | | | | * */*main.c: (main) Current versions of Gcc warn if the return value for daemon() is not checked. So add a simple test and exit on failure.
* bgp: missing pieces from listener patchStephen Hemminger2009-08-131-10/+5
| | | | | | | * bgp_network.c: (bgp_accept) The code in current git will crash as part of the revised listener code is missing. The new listener thread code passes a pointer to a bgp_listener structure, not the bgp pointer. The old code always got a NULL for bgp pointer, so that is now hard coded.
* bgp: compiler warning fixStephen Hemminger2009-08-131-2/+2
| | | | | * bgp_filter.h: Gcc complains the function prototype is not correct because the function argument is using old K&R style.
* ospfd: fix performance problem with redistribute deleteStephen Hemminger2009-08-132-14/+4
| | | | | | | | | | | | Doing redistribute delete with full BGP table was taking 30 minutes, this drops it down to less than a second. * ospf_lsa.c: (ospf_lsa_maxage) When flushing lots of entries the performance is terrible because it looks up each LSA entry through ospf_lsa_maxage_exist before deleting causing O(N^2) performance. Use a new OSPF_LSA_MAXAGE flag instead of scan - and maintain it. (ospf_lsa_maxage_exist) removed (ospf_lsa_maxage_delete) maintain OSPF_LSA_MAXAGE flag