summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
| * | 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.
* | | Fix qps_pselect() so that zeroises results, not enabled.Chris Hall (GMCH)2009-12-091-2/+2
| | |
* | | Ensure all timeouts are timeout times in qtime_mono_t.Chris Hall (GMCH)2009-12-0912-209/+202
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Introduced separate types for qtime_mono_t and qtime_real_t, to distinguish the time base of a given value. Revised all users of timeouts so that they are all expressed as qtime_mono_t values, so are all Quagga monotonic time based. Revised qpt_cond_timedwait() so that all condition variables use the same timebase (CLOCK_MONOTONIC if available, by default). Now all timeout times are qtime_mono_t, and are converted to whatever the condition variable is set to, if necessary. Added explicit timeout to mqueue. Fixed qps_pselect() to zeroise result vectors if no fds are reported pending -- seems the O/S does not do this.
* | | Fixed -ve return from qps_pselect. Fixed calls of qps_enable_mode - usespaulo2009-12-092-10/+6
| | | | | | | | | | | | mnum, not mbits.
* | | Changed timeout handling in qpn_start -- lib/qpnexus.cChris Hall (GMCH)2009-12-091-3/+2
| | |
* | | Bug fix in qps_selection_validate(), lib/qpselect.cChris Hall (GMCH)2009-12-091-33/+132
| | | | | | | | | | | | | | | | | | Also, added testing for qps_make_super_set_map() to simulate wide range of little-/big-endian word sizes and forwards/backwards bit numbering.
* | | Fix timeouts in nexus, fix LOCK in vtypaulo2009-12-093-9/+13
| | |
* | | Fixes to get as far as creating the thread and calling qps_pselectpaulo2009-12-096-34/+28
| | |
* | | Bug fix in qps_make_super_set_map(), lib/qpselect.cChris Hall (GMCH)2009-12-091-2/+2
| | |
* | | Add qps_selection_ream() to lib/qpselect.cChris Hall (GMCH)2009-12-082-200/+449
| | | | | | | | | | | | Tidied up and implemented qps_selection_validate() as a debug aid.
* | | Nexus handling.paulo2009-12-082-0/+208
| | |
* | | Wired up the CLI thread with new qpnexus type. Still work in progress.paulo2009-12-085-86/+356
| | | | | | | | | | | | Needs debugging.
* | | Fixes to lib/qtime.c and lib/qtimers.hChris Hall (GMCH)2009-12-082-5/+5
| | | | | | | | | | | | Needs to use lldiv in qtime.c on 32bit machine.
* | | Merge branch 'pthreads' of /git/quagga.euro-ix into pthreadsChris Hall (GMCH)2009-12-086-210/+515
|\ \ \
| * | | Make vty and log thread safe under single mutex.paulo2009-12-076-210/+515
| | | |
* | | | Improved lib/qt_craft_monotonic() handling of overflow.Chris Hall (GMCH)2009-12-082-40/+106
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Improved the arithmetic and changed code to deal with wrap around only if clock_t is 32-bits (and not to compile if it is less !). Updated documentation.
* | | | Added qtimer_pile_top_time() to lib/qtimers.cChris Hall (GMCH)2009-12-084-112/+177
|/ / / | | | | | | | | | | | | | | | | | | | | | For use when preparing for pselect or other timed wait. Simplified the handling of pending unsets. Tidied up in heap.c & .h.
* | | Fixed qpt_mutex_unlock() (debug version).Chris Hall (GMCH)2009-12-071-2/+2
| | |
* | | Enabled qpt_mutex_recursive in lib/qpthreads.Chris Hall (GMCH)2009-12-072-17/+66
| | | | | | | | | | | | | | | | | | | | | | | | | | | This allows mutexes to be initialised as recursive. Required correctly placed setting of _GNU_SOURCE (for gcc). It is assumed that "config.h" will enable the required pthreads features -- which are now documented in lib/qpthread.c.
* | | Initial commit for lib/qpselect.c & .h and lib/qtimers.c & .hChris Hall (GMCH)2009-12-066-2/+1665
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | lib/qpselect supports data structure to multiplex between many file descriptors using pselect(). lib/qtimers supports data structures to run multiple timers. Also affected: lib/Makefile.am -- to add the new files lib/memtypes.c -- to add further memory types for the above
* | | Updates to lib/qtime.c & .hChris Hall (GMCH)2009-12-062-12/+66
| | | | | | | | | | | | | | | | | | | | | Added conversion routines for CLOCK_REALTIME/timeofday to/from monotonic clock -- so can set timers to actual time, if required. Added confirms and tidied up documentation.
* | | Updates to lib/qpthreads.c & .hChris Hall (GMCH)2009-12-062-3/+18
| | | | | | | | | | | | | | | | | | Added qpt_thread_self(). Initialised output sigset_t before setting it in qpt_thread_sigmask().
* | | Updates after code review: lib/heap.c & .h lib/vector.c & .hChris Hall (GMCH)2009-12-064-127/+180
| | | | | | | | | | | | | | | | | | | | | Added vector_unset_item() & recast vector_unset(). Added heap_pop_push_item() and made a number of simple operations Inline functions.
* | | Initial commit of lib/mqueue.c & .hChris Hall (GMCH)2009-12-035-4/+716
| | | | | | | | | | | | | | | Adds message queue structure to manage the passing of messages between qpthreads.
* | | Add signal functions to lib/qpthreads.cChris Hall (GMCH)2009-12-032-0/+60
| | | | | | | | | | | | Adding qpt_thread_sigmask() and qpt_thread_signal().
* | | Allow floating argument for QTIME(s) in lib/qtime.hChris Hall (GMCH)2009-12-031-1/+2
| | | | | | | | | | | | | | | Changed casts around so that the seconds argument can be a floating point value. So that, in particular, QTIME(2.33) works.
* | | Added zlog_abort functions. Changed pthread mutes to qpthread mutexespaulo2009-12-035-115/+183
| | |
* | | Merge branch 'pthreads' of /git/quagga.euro-ix into pthreadsChris Hall (GMCH)2009-12-0210-240/+710
|\ \ \
| * | | Fix nested LOCK bugpaulo2009-12-012-9/+35
| | | |
| * | | Fix raise_count in zprivs_change_caps HAVE_LCAPS casepaulo2009-12-011-9/+18
| | | |
| * | | log_r.h no longer needed. It was invented incase we needed a separatepaulo2009-11-301-32/+0
| | | | | | | | | | | | | | | | pthread safe interface for logging. log.h is that interface.
| * | | Make logging (lib.c) and privileges (privs.c) pthread safepaulo2009-11-309-205/+672
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | lib.c: use a mutex to protect all public methods. Replaced code in command.c etc that modified zlog_default directly with interlocked getters and setters. Requires that vty_log in vty.c handles its own pthread safety TBA. privs.c: use a mutex to protect all public methods. Counts RAISE and LOWER so that privilege stays RAISED until all pthreads have lowered. Improved messages in test-privs.c
* | | | Pthreads infrastructure -- initial commitChris Hall (GMCH)2009-12-029-5/+1818
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | New files: lib/qpthreads.c & .h Encapsulates the Pthreads facilities to be used in Quagga. Implicitly documents the sub-set of Pthreads being used. Provides error checking for a number of functions which may return errors, but are not generally expected to and for whom an error is treated as fatal. Could be modified to "null out" the use of Pthreads. New files: lib/qtime.c & .h Defines a 64-bit integer time value which is a lot easier to handle than the usual timespec and timeval structures. (C99 requires a 64-bit integer.) Provides front ends for gettimeofday() & clock_gettime() which return 64-bit time value. Also conversions to and from timespec and timeval. Provides a monotonic clock for when CLOCK_MONOTONIC is not available. (This is based on code from Joakim Tjernlund.) New files: lib/heap.c & .h Implements a heap data structure closely allied to the vector. This will be used for timer handling. Modified: lib/memtypes.c New memory types for qpthreads structures and for the heap. Modified: lib/zassert.h Added explicit "passert" == assert which is not subject to NDEBUG. Added explicit "nassert" == assert which is subject to NDEBUG. Added zabort, zabort_errno and zabbort_err for when something has gone fatally wrong. (Require changes to lib/log.c which are TBD.)
* | | | Merge branch 'master' of /git/quagga.euro-ix into pthreadsChris Hall (GMCH)2009-12-021-50/+37
|\ \ \ \ | |/ / / |/| | / | | |/ | |/|
| * | Avoid deleting symbol reference twice in prefix_list_delete().Chris Hall (GMCH)2009-12-021-50/+37
| | | | | | | | | | | | | | | | | | | | | Affects: lib/plist.c Merged otherwise unused prefix_list_free() into prefix_list_delete(), and removed second call of symbol_unset_value().
* | | Start populating pthreads branchpaulo2009-11-271-0/+32
|/ /