summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* | Fixes to get 3 threads working. Fixes to get threaded command working.paulo2010-01-219-32/+57
| | | | | | | | | | | | 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
| |
* | Weed out last vestiges of FSM setting session->state.Chris Hall2010-01-212-6/+1
| |
* | close(fd) in bgp_connection_close()Chris Hall2010-01-211-4/+0
| |
* | Fix typo in bgp_connection_open.Chris Hall2010-01-211-1/+1
| |
* | Keep timer running past IO errors in Connect/Active states.Chris Hall2010-01-213-68/+58
| |
* | Fix sense of session->connect flagChris Hall2010-01-202-2624/+1
| | | | | | | | | | deleted: bgpd/bgp_fsm.x -- added by mistake modified: bgpd/bgp_session.c -- get session->connect right
* | Fix debuggery in qtimers. Check NULL notify pointer in bgp_vtypaulo2010-01-202-2/+3
| |
* | Fix sockunion_connect() error handling.Chris Hall2010-01-201-1/+1
| |
* | Fixing heap_push.Chris Hall2010-01-201-3/+3
| |
* | Fixed dangling uses of bgp_notify_free()Chris Hall2010-01-205-9/+7
| | | | | | | | | | | | | | | | modified: bgpd/bgp_msg_write.c modified: bgpd/bgp_notification.c modified: bgpd/bgp_open_state.c modified: bgpd/bgp_peer.c modified: bgpd/bgp_session.c
* | Adding verify debug code for qtimers and tidied up.Chris Hall2010-01-2012-59/+2830
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-204-7/+32
| | | | | | | | asserts to try to track timer crash.
* | Small fix to bgp_network & add reset to peer indexChris Hall2010-01-194-65/+97
| | | | | | | | | | | | | | Correctly stepping along list of listeners in bgp_md5_set_listeners. Added reset function for peer index and remove spurious argument for bgp_peer_index_mutex_init.
* | Use sigprocmask when non-threaded. Fixed assert.paulo2010-01-192-2/+9
| |
* | Recast bgp_peer_index so that pointers to entries work !Chris Hall2010-01-191-70/+73
| | | | | | | | | | Replaced single array of index entries by list of chunks of array entries, and a vector for access by peer_id.
* | Minor fixes to get a clean compile so can start debugging.paulo2010-01-1911-47/+55
| |
* | Merge branch 'bgp_engine' of /git/quagga.euro-ix into bgp_engineChris Hall2010-01-195-29/+123
|\ \
| * | Merged with GMCH changespaulo2010-01-181-16/+13
| | |
| * | Merge branch 'bgp_engine' of ssh://paulo@80.177.246.130/git/quagga.euro-ix ↵paulo2010-01-185-84/+168
| |\ \ | | | | | | | | | | | | into bgp_engine
| * | | Nexus to handle old threads and process the bgp local events. Dealspaulo2010-01-185-29/+126
| | | | | | | | | | | | | | | | with having 1 or multiple nexus (and pthreads).
* | | | Disable zebra pro temChris Hall2010-01-192-33/+44
| |/ / |/| | | | | | | | | | | | | | | | | modified: bgpd/bgp_nexthop.c -- skipped queueing of connect "thread" modified: bgpd/bgp_zebra.c -- disabled and closed down "threads"
* | | Refining the session state handling.Chris Hall2010-01-185-84/+168
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | modified: bgpd/bgp_common.h Renaming of states: sStopping -> sLimping sStopped -> sDisabled modified: bgpd/bgp_fsm.c Removed last vestige of session->state stuff. modified: bgpd/bgp_peer.c Upgraded event processing so that disable session has full hand shake with BGP Engine. modified: bgpd/bgp_session.c Changed to implement sLimping and sDisabled states and the disable session hand-shake. modified: bgpd/bgp_session.h
* | Wired in nexus for bgp_ routing_ and cli_ such that if not usingpaulo2010-01-1815-225/+173
| | | | | | | | | | 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-1710-113/+607
| | | | | | | | | | | | | | | | | | | | | | | | | | 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 )
* | Wired up receiving updates, with update packet sent from BGP to Routingpaulo2010-01-1511-207/+224
| | | | | | | | | | | | | | | | | | | | | | engine. Wired up Routing engine side of sending update packets to BGP engine with flow control. Eliminated a lot of compilation errors and warnings although a few remain. Have skipped out now unused code, particularly in bgp_packet.c that will be deleted eventually.
* | Make session state a Peering Engine item.Chris Hall2010-01-148-84/+90
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Along with the introduction of the sStopping session state, move responsibility for the session->state field entirely back to Peering Engine, and get it to change same when session events arrive. Stop FSM from writing the session->state, session->event, session->notification, session->err and session->ordinal fields. (Which may now be used by Peering Engine if it wants.) Handle sStopping as an active state where required. Not issue a further session disable once in sStopping state. Wire up bgp_connection and bgp_msg_read. modified: bgpd/bgp_connection.c modified: bgpd/bgp_fsm.c modified: bgpd/bgp_msg_read.c modified: bgpd/bgp_msg_read.h modified: bgpd/bgp_peer.c modified: bgpd/bgp_peer_index.c modified: bgpd/bgp_session.c modified: bgpd/bgp_session.h
* | More knitting and clean up replacing old state machine with events withpaulo2010-01-1411-255/+240
| | | | | | | | new. Still work in progress.
* | Knitting it all together. Still not got clean compile. Still lots ofpaulo2010-01-1322-351/+344
| | | | | | | | TODOs.
* | Progress on bgp_msg_read. Still on going.paulo2010-01-119-229/+393
| |
* | Further work-in-progressChris Hall2010-01-1024-2572/+1422
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | Fixed type in bgp_open_state.c. New file bgp_msg_read.c for parsingpaulo2010-01-082-21/+940
| | | | | | | | bgp messages
* | Update peer from received open state. Threaded command. Peer indexpaulo2010-01-0810-410/+656
| | | | | | | | wiring. New queue I/F handling. Routing engine nexus.
* | Further work-in-progress.Chris Hall2010-01-0814-279/+2944
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-0815-268/+1191
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | Merge branch 'bgp_engine' of /git/quagga.euro-ix into bgp_engineChris Hall2010-01-061-4/+27
|\ \
| * | Added "threaded" command.paulo2010-01-061-4/+27
| | |
* | | 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.
* | Work in progress on BGP EngineChris Hall2010-01-069-417/+907
| | | | | | | | | | | | | | | | | | | | | | | | 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_network.c modified: bgpd/bgp_open_state.h modified: bgpd/bgp_session.c modified: bgpd/bgp_session.h
* | 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-0445-2443/+8972
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | Can't use stderr after daemonizing, goes to dev/nullpaulo2009-12-181-8/+0
| |