summaryrefslogtreecommitdiffstats
path: root/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* Fixed problems in mqueue keeping tail pointers correct. Implementedpaulo2010-01-251-0/+11
| | | | | program terminate code that waits for all sissions to become disabled before terminating pthreads and running exit code.
* Getting BGP Engine to start and removing warnings.Chris Hall2010-01-2410-138/+146
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Finish the wiring required to get bgp_msg_read to process OPEN messages into the connection's open_state, and be able to check for correct peer AS, etc. Removed bugs preventing messages from being written. Added BGP Id check to collision detection logic. Removed as many warnings from comilation as possible. Replaced horrible FIFO kludge in the process. (Introduced the even more horrible miyagi kludge.) modified: bgpd/bgp_advertise.c modified: bgpd/bgp_advertise.h modified: bgpd/bgp_connection.c modified: bgpd/bgp_connection.h modified: bgpd/bgp_debug.c modified: bgpd/bgp_fsm.c modified: bgpd/bgp_msg_read.c modified: bgpd/bgp_msg_write.c modified: bgpd/bgp_network.c modified: bgpd/bgp_nexthop.c modified: bgpd/bgp_notification.c modified: bgpd/bgp_open.c modified: bgpd/bgp_packet.c modified: bgpd/bgp_session.c modified: bgpd/bgp_session.h modified: bgpd/bgpd.c modified: lib/Makefile.am modified: lib/distribute.c modified: lib/if_rmap.c new file: lib/miyagi.h modified: lib/prefix.h modified: lib/sockopt.c modified: lib/stream.c modified: lib/thread.c modified: lib/vty.c modified: lib/zebra.h modified: tests/bgp_capability_test.c modified: tests/bgp_mp_attr_test.c modified: tests/ecommunity_test.c modified: tests/heavy-thread.c modified: tests/heavy-wq.c modified: tests/heavy.c modified: tests/main.c modified: tests/test-checksum.c modified: tests/test-sig.c modified: watchquagga/watchquagga.c modified: zebra/if_netlink.c modified: zebra/ioctl.c modified: zebra/rt_netlink.c modified: zebra/rtread_netlink.c
* Blitz on bgp_msg_read, particularly OPEN message handlingChris Hall2010-01-235-46/+103
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In the BGP Engine the OPEN message needs to be processed into the open_recv structure in the *connection*. The OPEN that arrives must be checked for acceptability before it is acknowledged. Later the connection may be discarded in collision resolution, or the connection may become the Established connection, and the open_recv structure is passed to the session and hence to the Peering Engine. modified: bgpd/bgp.h modified: bgpd/bgp_common.c modified: bgpd/bgp_common.h modified: bgpd/bgp_connection.c modified: bgpd/bgp_connection.h modified: bgpd/bgp_fsm.c modified: bgpd/bgp_msg_read.c modified: bgpd/bgp_msg_read.h modified: bgpd/bgp_msg_write.c modified: bgpd/bgp_notification.c modified: bgpd/bgp_notification.h modified: bgpd/bgp_open.h modified: bgpd/bgp_open_state.c modified: bgpd/bgp_open_state.h modified: bgpd/bgp_packet.c modified: bgpd/bgp_session.h modified: lib/distribute.c modified: lib/if_rmap.c modified: lib/qafi_safi.h modified: lib/stream.c modified: lib/stream.h
* Fix "write file" command so reports "threaded". Working on Shutdown andpaulo2010-01-223-9/+17
| | | | | | HUP. Shutdown needs mechanism to know when bgp_engine has closed everything. HUP don't understand how it is supposed to cope with added/ deleted/retained peers and get them going again.
* Fixes to get 3 threads working. Fixes to get threaded command working.paulo2010-01-217-16/+27
| | | | | | Removed some of the temporary debuggery in qtimers that only worked in 1 thread. Initialised the mqueue mutex. Stopped peer_index from zeroizing its mutex after it had been initialized.
* Tidy up handling of fd_last in qpselect.Chris Hall2010-01-212-14/+28
|
* Fix debuggery in qtimers. Check NULL notify pointer in bgp_vtypaulo2010-01-201-1/+2
|
* Fix sockunion_connect() error handling.Chris Hall2010-01-201-1/+1
|
* Fixing heap_push.Chris Hall2010-01-201-3/+3
|
* Adding verify debug code for qtimers and tidied up.Chris Hall2010-01-204-4/+103
| | | | | | | | | | | | | | | | modified: bgpd/bgp_connection.c -- using _unset functions -- added bgp_connection_close_file modified: bgpd/bgp_connection.h modified: bgpd/bgp_fsm.c -- checked notification handling -- uses bgp_connection_close_file modified: bgpd/bgp_notification.c -- added _unset function modified: bgpd/bgp_notification.h modified: bgpd/bgp_open_state.c -- added _unset function modified: bgpd/bgp_open_state.h modified: lib/qtimers.c -- added debug _verify function modified: lib/qtimers.h modified: lib/sockunion.c -- added _unset function modified: lib/sockunion.h
* Fix bug in bgp_connection not clearing pointers after free. Plantedpaulo2010-01-202-5/+17
| | | | asserts to try to track timer crash.
* Use sigprocmask when non-threaded. Fixed assert.paulo2010-01-191-1/+8
|
* Merged with GMCH changespaulo2010-01-181-16/+13
|
* Nexus to handle old threads and process the bgp local events. Dealspaulo2010-01-184-16/+86
| | | | with having 1 or multiple nexus (and pthreads).
* Wired in nexus for bgp_ routing_ and cli_ such that if not usingpaulo2010-01-184-99/+73
| | | | | pthreads then all point at same nexus object. Do necessary in-thread initialization and finalization. Fix some minor warnings.
* Further work-in-progress.Chris Hall2010-01-172-0/+67
| | | | | | | | | | | | | modified: bgpd/bgp_connection.c completed pending queue modified: bgpd/bgp_engine.c TODOs for start/stop modified: bgpd/bgp_msg_write.c ) added send_update and send_eor modified: bgpd/bgp_msg_write.h ) modified: bgpd/bgp_open_state.c fixed free modified: bgpd/bgp_packet.c tidied up peer->work usage modified: bgpd/bgp_session.c ) completed various message handlers modified: bgpd/bgp_session.h ) modified: lib/mqueue.c ) added revoke modified: lib/mqueue.h )
* Knitting it all together. Still not got clean compile. Still lots ofpaulo2010-01-133-0/+4
| | | | TODOs.
* Further work-in-progressChris Hall2010-01-106-14/+48
| | | | | | | | | | | | | | | | | | | | | | | | | | | modified: .gitignore modified: bgpd/Makefile.am modified: bgpd/bgp.h modified: bgpd/bgp_common.h modified: bgpd/bgp_connection.c modified: bgpd/bgp_connection.h modified: bgpd/bgp_fsm.c modified: bgpd/bgp_msg_write.c modified: bgpd/bgp_msg_write.h modified: bgpd/bgp_notification.c modified: bgpd/bgp_notification.h modified: bgpd/bgp_open_state.c modified: bgpd/bgp_open_state.h modified: bgpd/bgp_packet.h new file: bgpd/bgp_route_refresh.c new file: bgpd/bgp_route_refresh.h modified: bgpd/bgp_session.c modified: bgpd/bgp_session.h modified: lib/Makefile.am new file: lib/confirm.h modified: lib/memtypes.c modified: lib/stream.c modified: lib/stream.h modified: lib/zassert.h
* Update peer from received open state. Threaded command. Peer indexpaulo2010-01-083-84/+120
| | | | wiring. New queue I/F handling. Routing engine nexus.
* Further work-in-progress.Chris Hall2010-01-081-1/+1
| | | | | | | | | | | | | | | | | modified: bgpd/Makefile.am modified: bgpd/bgp_common.h modified: bgpd/bgp_connection.c modified: bgpd/bgp_connection.h modified: bgpd/bgp_engine.c modified: bgpd/bgp_fsm.c modified: bgpd/bgp_fsm.h new file: bgpd/bgp_msg_write.c new file: bgpd/bgp_msg_write.h modified: bgpd/bgp_notification.c modified: bgpd/bgp_notification.h modified: bgpd/bgp_session.c modified: bgpd/bgp_session.h modified: lib/sockunion.h
* Continuing work-in-progressChris Hall2010-01-082-0/+3
| | | | | | | | | | | | | | | | | | modified: bgpd/Makefile.am modified: bgpd/bgp.h modified: bgpd/bgp_common.h modified: bgpd/bgp_connection.c modified: bgpd/bgp_connection.h modified: bgpd/bgp_engine.h modified: bgpd/bgp_fsm.c modified: bgpd/bgp_network.c modified: bgpd/bgp_network.h new file: bgpd/bgp_peer_index.c new file: bgpd/bgp_peer_index.h modified: bgpd/bgp_session.c modified: bgpd/bgp_session.h modified: lib/memtypes.c modified: lib/mqueue.h
* Further refinement to arguments for message queue blocks.Chris Hall2010-01-073-359/+210
| | | | | | | | | | | | | Updates lib/mqueue.c and .h Allows for main message argument to be a (small) embedded structure. Users of messages can now define suitable structs for the information to be passed in a message, and use those to write/read the message data. Should be easier to use and less error prone than trying to match anonymous argv[n] values. Allows for straightforward, flexible argv[] array as well.
* Further extension to arguments for message queue blocks.Chris Hall2010-01-062-0/+124
| | | | | | | | Updates lib/mqueue.c and .h Added: mqb_push_argv_array() push array of 'n' pointers. mqb_pop_argv_array() pop remains "list" to array of pointers.
* Extended argument handling for message queue blocks.Chris Hall2010-01-063-38/+509
| | | | | | | | | | | | | | | | | | | Updates lib/mqueue.c and .h Having concluded that two arguments is really too restrictive, this change: * allows for an indefinite number of arguments. With up to 6 in the body of the message queue block itself. * supports the treatment of arguments from a given argument 'n' onwards as a list of indefinite length. So message queue block may be treated as having 'n' fixed arguments and a variable number of further arguments. Adds a further memory type.
* Tighten SU_ADDRSTRLEN and sockunion2str() in lib/sockunion.c/.hChris Hall2010-01-052-1/+14
| | | | | Added confirms and assert for SU_ADDRSTRLEN in sockunion.h and in sockunion2str().
* Merge branch 'bgp_engine' of /git/quagga.euro-ix into bgp_engineChris Hall2010-01-052-8/+28
|\
| * Fix typo in lib/sockunion.cpaulo2010-01-041-1/+1
| |
| * Merge branch 'pthreads' of ssh://paulo@80.177.246.130/git/quagga.euro-ix ↵paulo2010-01-041-7/+27
| |\ | | | | | | | | | into bgp_engine
| | * Set socket non-blocking prior to listen(). Changed to recursivepaulo2010-01-041-7/+27
| | | | | | | | | | | | mutex so that can call zlog from anywhere.
* | | Add qpthreads_thread_created to lib/qpthreadsChris Hall2010-01-052-4/+10
|/ / | | | | | | | | Flag indicates that at least one thread has been created. (To be used to ensure no surprises when daemonising !)
* / 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
|\ \ \