summaryrefslogtreecommitdiffstats
path: root/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* | | Initial commit for bgp_engine branch -- seeding new files...Chris Hall2010-01-0416-432/+993
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On branch bgp_engine modified: .gitignore modified: bgpd/Makefile.am new file: bgpd/bgp.h new file: bgpd/bgp_common.c new file: bgpd/bgp_common.h new file: bgpd/bgp_connection.c new file: bgpd/bgp_connection.h modified: bgpd/bgp_debug.c new file: bgpd/bgp_engine.c new file: bgpd/bgp_engine.h modified: bgpd/bgp_fsm.c modified: bgpd/bgp_fsm.h modified: bgpd/bgp_network.c modified: bgpd/bgp_network.h new file: bgpd/bgp_notification.c new file: bgpd/bgp_notification.h modified: bgpd/bgp_open.c new file: bgpd/bgp_open_state.c new file: bgpd/bgp_open_state.h modified: bgpd/bgp_packet.c new file: bgpd/bgp_peer.c new file: bgpd/bgp_peer.h modified: bgpd/bgp_route.c new file: bgpd/bgp_session.c new file: bgpd/bgp_session.h modified: bgpd/bgp_vty.c modified: bgpd/bgp_zebra.c modified: bgpd/bgpd.c modified: bgpd/bgpd.h modified: lib/Makefile.am modified: lib/memtypes.c modified: lib/mqueue.c modified: lib/mqueue.h new file: lib/qafi_safi.h modified: lib/qpselect.c modified: lib/qpselect.h modified: lib/qpthreads.c modified: lib/qpthreads.h modified: lib/sockopt.c modified: lib/sockunion.c modified: lib/sockunion.h modified: lib/stream.c modified: lib/stream.h modified: lib/symtab.h modified: lib/zebra.h
* | Fix bug in using new mqueue interface. Change which signalspaulo2009-12-182-2/+9
| | | | | | | | are blocked for non-main thraeds
* | QDEBUG handling. Debug banner on stderr, vty and log file. Annoucepaulo2009-12-184-1/+52
| | | | | | | | | | before and after reading config file. Announce on all vty when shutting down.
* | Changes to mqueue interface to support revoke.paulo2009-12-184-74/+40
| |
* | Add qpt_thread_join() to lib/qpthreadsChris Hall (GMCH)2009-12-172-0/+31
| |
* | Add qpt_threads_equal() to lib/qpthreadsChris Hall (GMCH)2009-12-171-1/+9
| | | | | | | | All qpt_thread_t values are equal if !qpthreads_enabled.
* | Use static mutexespaulo2009-12-176-65/+58
| |
* | Fix shutdown. Move cpu stats command to cli thread.paulo2009-12-178-12/+73
| |
* | Add timer interval handling to lib/qtimerChris Hall (GMCH)2009-12-172-4/+52
| | | | | | | | | | For some timers it is convenient to have an interval stored in the timer, and to be able to set the timer using that interval.
* | Add vector_trim() and vector_condense() to lib/vector.cChris Hall (GMCH)2009-12-172-7/+50
| | | | | | | | | | Go with vector_unset_item(). May be used to trim NULL values at the end of a vector or to remove all NULL values from a vector.
* | Fix to qps_selection_ream()Chris Hall (GMCH)2009-12-171-1/+1
| | | | | | | | | | | | Remove vector_ream(), which removes item from the vector, by vector_get_last_item(). Leaves removal from the vector to qps_file_remove().
* | Fix race condition when threads start. Make memory stats thread safepaulo2009-12-166-36/+97
| | | | | | | | Run memory commands in cli thread.
* | Get CLI thread and UI working properly. Sex commands according topaulo2009-12-158-176/+426
| | | | | | | | thread to run in. Add qlib_init stuff. Add -t parameter for "threaded".
* | Using message queue to send commands from cli thread to bgp thread.paulo2009-12-1411-102/+261
| |
* | Fix to mqueue_dequeue in lib/mqueue.cChris Hall (GMCH)2009-12-141-2/+2
| | | | | | | | | | When adding to signal queue, must use mq->kick.signal.head == NULL to check for an empty queue (not mq->kick.signal.tail == NULL).
* | vty running in main thread. bgp running in its own thread.paulo2009-12-118-48/+156
| | | | | | | | Each has its own nexus.
* | Merge branch 'master' of /git/quagga.euro-ix into pthreadsChris Hall (GMCH)2009-12-101-0/+6
|\ \
| * \ Merge branch 'master' of /git/quagga.euro-ixChris Hall (GMCH)2009-12-1014-1403/+4476
| |\ \ | | |/ | |/|
| * | ospf6d: fix warnings from recent prefix bit commitStephen Hemminger2009-12-101-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | * 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
* | | Merge branch 'pthreads' of /git/quagga.euro-ix into pthreadsChris Hall (GMCH)2009-12-103-63/+80
|\ \ \
| * | | Needed unprotected version of vty_reset for use in vty_terminatepaulo2009-12-101-4/+10
| | | |
| * | | Merge branch 'master' of ssh://paulo@80.177.246.130/git/quagga.euro-ix into ↵paulo2009-12-101-2/+3
| |\ \ \ | | | |/ | | |/| | | | | pthreads
| * | | Merge branch 'master' of ssh://paulo@80.177.246.130/git/quagga.euro-ix into ↵paulo2009-12-101-6/+9
| |\ \ \ | | | | | | | | | | | | | | | pthreads
| * \ \ \ Merge branch 'master' of ssh://paulo@80.177.246.130/git/quagga.euro-ix into ↵paulo2009-12-101-2/+3
| |\ \ \ \ | | | | | | | | | | | | | | | | | | pthreads
| * | | | | Stop recursive lock checking assertpaulo2009-12-103-59/+70
| | | | | |
* | | | | | New access functions for mqueue_blocks & use qpthreads_enable.Chris Hall (GMCH)2009-12-102-92/+273
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Functions to set and get all user accessable parts of an mqueue_block are now provided. Uses the qpthreads_enabled flag to allow mqueues to work (though in a limited fashion) when pthreads are not enabled.
* | | | | | Introduced qpthreads_enabled flag in lib/qpthreadsChris Hall (GMCH)2009-12-102-99/+296
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This supports running without pthreads, but with code that is made thread-safe. A Big Switch -- qpthreads_enabled -- enables or disables all pthread functions. When disabled, all mutex calls become NOPs.
* | | | | | Merge branch 'master' of /git/quagga.euro-ix into pthreadsChris Hall (GMCH)2009-12-101-2/+3
|\ \ \ \ \ \ | | |_|_|/ / | |/| | | |
| * | | | | Fix reaming of empty symbol table -- lib/symtab.cChris Hall (GMCH)2009-12-101-2/+3
| | |_|/ / | |/| | |
* | | | | Merge branch 'master' of /git/quagga.euro-ix into pthreadsChris Hall (GMCH)2009-12-101-6/+9
|\| | | |
| * | | | Allow orphan symbols to be unset -- lib/symtab.cChris Hall (GMCH)2009-12-101-6/+9
| | |/ / | |/| | | | | | | | | | Improved version.
* | | | Merge branch 'master' of /git/quagga.euro-ix into pthreadsChris Hall (GMCH)2009-12-101-2/+3
|\| | | | |/ / |/| |
| * | Allow orphan symbols to be unset -- lib/symtab.cChris Hall (GMCH)2009-12-101-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | May not set orphan symbol values to anything meaningful, but must be allowed to unset an orphan value (which is already unset) so that when reaming a symbol table ordinary value delete/unset functions can be called. So fixed the assert which was disallowing all value changes for orphans, in symbol_set_value().
| * | Merge remote branch 'quagga/master' of /git/quagga.euro-ixChris Hall (GMCH)2009-12-095-59/+34
| |\|
* | | Merge remote branch 'quagga/master' of /git/quagga.euro-ix into pthreadsChris Hall (GMCH)2009-12-095-59/+34
|\ \ \ | | |/ | |/|
| * | lib: move check_bit into prefix common codeStephen Hemminger2009-12-092-31/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | 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
| * | 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.
* | | 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-094-31/+26
| | |
* | | 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
| | |