summaryrefslogtreecommitdiffstats
path: root/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* | Use session->notification instead of peer's. Fix HUP - race condition.paulo2010-02-011-4/+4
| |
* | Simplified handling of connection pending queue.Chris Hall2010-02-012-1/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | Moved some of the complexity into functions in bgp_connection, so that "do" functions in bgp_session have to deal with less of the mechanics. modified: bgpd/bgp_connection.c modified: bgpd/bgp_connection.h modified: bgpd/bgp_session.c modified: bgpd/bgp_session.h modified: lib/mqueue.c modified: lib/mqueue.h
* | Testing and fixing round.Chris Hall2010-01-312-17/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | modified: bgpd/bgp_msg_read.c -- fix to accept updates when sEstablished ! modified: bgpd/bgp_packet.c -- modified XON/XOFF handling modified: bgpd/bgp_peer.c -- fix event handling to discard events when sLimping. modified: bgpd/bgp_route.c -- announce routes when sEstablished modified: bgpd/bgp_session.c -- add XOFF test free stream in update_receive when mqb_destroy modified: bgpd/bgp_session.h -- add XOFF threshold & XOFF test modified: bgpd/bgpd.c -- PRO TEM reenable in bgp_clear for max-prefix handling modified: lib/log.c -- fix zlog_backtrace modified: lib/mqueue.c -- dasserts for mqb_free_count
* | Changed zclient to use qfiles etc when we have a nexus. For BGP clientpaulo2010-01-283-29/+244
| | | | | | | | | | | | | | it runs in the routing_nexus. Makefile tidied. Fixed a few warnings. Re-enabled zclient, horrors of horrors bpg_nexthop thought it OK to poke arround with zclients threads directly. Now fixed, all private to zclient.
* | Binding to interfaces and counting of messages.Chris Hall2010-01-273-4/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Wired up message counters in bgp_session structure. Added fields to session for neighbor interface and neighbor update-source -- so that these can be set when connect() is done. Peering Engine resolves any interface name to an address, so that BGP Engine doesn't have to. Reinstated as much code as necessary in bgp_network to bind to specific interfaces, as set in the session. Moved setting of bgp_nexthop_set() back into Routeing Engine. Result is that only Peering Engine talks to Zebra or uses the iflist. Wired up setting of TTL. Reworked connections locking of the session mutex so more robust if/when connections are cut loose from the session. Made peer_index entry point at connection, not session. Works better in bgp_network that way. 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_write.c modified: bgpd/bgp_network.c modified: bgpd/bgp_network.h modified: bgpd/bgp_peer.c modified: bgpd/bgp_peer.h modified: bgpd/bgp_peer_index.c modified: bgpd/bgp_peer_index.h modified: bgpd/bgp_session.c modified: bgpd/bgp_session.h modified: lib/prefix.h modified: lib/sockunion.c modified: lib/sockunion.h
* | Fixed program shutdown. Added peering engine side of TTL changing.paulo2010-01-272-0/+26
| | | | | | | | | | Changed names of peer states. Writed in peering engine side of sending route_refresh.
* | Wiring up ROUTE-REFRESH and ORF handling. Work-in-progress.Chris Hall2010-01-271-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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_fsm.h 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_state.c modified: bgpd/bgp_open_state.h modified: bgpd/bgp_route_refresh.c modified: bgpd/bgp_route_refresh.h modified: lib/qafi_safi.h
* | 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".