summaryrefslogtreecommitdiffstats
path: root/bgpd
Commit message (Collapse)AuthorAgeFilesLines
...
* | Fix bug in bgp_connection not clearing pointers after free. Plantedpaulo2010-01-202-2/+15
| | | | | | | | 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-191-1/+1
| |
* | 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-191-13/+40
|\ \
| * \ 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-181-13/+40
| | | | | | | | | | | | | | | | 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-1811-126/+100
| | | | | | | | | | 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-178-113/+540
| | | | | | | | | | | | | | | | | | | | | | | | | | 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-1319-351/+340
| | | | | | | | TODOs.
* | Progress on bgp_msg_read. Still on going.paulo2010-01-119-229/+393
| |
* | Further work-in-progressChris Hall2010-01-1017-2558/+1372
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-087-326/+536
| | | | | | | | wiring. New queue I/F handling. Routing engine nexus.
* | Further work-in-progress.Chris Hall2010-01-0813-278/+2943
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-0813-268/+1188
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | Added "threaded" command.paulo2010-01-061-4/+27
| |
* | 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
* | Initial commit for bgp_engine branch -- seeding new files...Chris Hall2010-01-0428-2010/+7974
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | Can't use stderr after daemonizing, goes to dev/nullpaulo2009-12-181-8/+0
| |
* | QDEBUG handling. Debug banner on stderr, vty and log file. Annoucepaulo2009-12-181-1/+19
| | | | | | | | | | before and after reading config file. Announce on all vty when shutting down.
* | Use qpt version of pthread_joinpaulo2009-12-171-3/+2
| |
* | Fix shutdown. Move cpu stats command to cli thread.paulo2009-12-171-9/+23
| |
* | Merge branch 'master' of /git/quagga.euro-ix into pthreadsChris Hall (GMCH)2009-12-175-21/+4
|\ \
| * | Merge branch 'master' of git://code.quagga.net/quaggaChris Hall (GMCH)2009-12-175-21/+4
| |\|
| | * bgpd: code cleanupStephen Hemminger2009-12-175-21/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * bgpd/bgp_aspath.c * ashash: only used in one file, make static * aspath_count_numas(): dead code, sayonara * bgpd/bgpd.c * peer_nsf_stop(): only used in one file, make static * bgpd/bgp_packet.h * bgp_capability_receive(): add missing prototype for a global function
* | | Get CLI thread and UI working properly. Sex commands according topaulo2009-12-151-7/+14
| | | | | | | | | | | | 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-141-5/+21
| | |
* | | vty running in main thread. bgp running in its own thread.paulo2009-12-111-10/+40
| | | | | | | | | | | | Each has its own nexus.
* | | Merge branch 'master' of /git/quagga.euro-ix into pthreadsChris Hall (GMCH)2009-12-104-75/+1
|\| |
| * | Merge branch 'master' of /git/quagga.euro-ixChris Hall (GMCH)2009-12-108-1441/+1305
| |\ \ | | |/ | |/|
| | * Merge remote branch 'quagga/master' of /git/quagga.euro-ixChris Hall (GMCH)2009-12-092-33/+9
| | |\
| * | | bgpd: compile warnings cleanupStephen Hemminger2009-12-104-75/+1
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * bgpd/bgp_fsm.c * bgp_clearing_completed(): only used in one file, can be static * bgpd/bgp_packet.c * afi2str(): sayonara * safi2str(): sayonara * bgpd/bgp_route.c * bgp_distance_reset(): sayonara * bgpd/bgp_zebra.c * bgp_ifindex_by_nexthop(): sayonara
* | | Merge remote branch 'quagga/master' of /git/quagga.euro-ix into pthreadsChris Hall (GMCH)2009-12-092-33/+9
|\| |
| * | lib: move check_bit into prefix common codeStephen Hemminger2009-12-091-31/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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()
| * | bgpd: work around warning in assegments_parse()Denis Ovsienko2009-12-041-2/+5
| | |
* | | Wired up the CLI thread with new qpnexus type. Still work in progress.paulo2009-12-081-1/+5
| | | | | | | | | | | | Needs debugging.
* | | Make vty and log thread safe under single mutex.paulo2009-12-071-2/+2
| |/ |/|
* | Upgrade Prefix-List & BGP Community-List handlingChris Hall (GMCH)2009-11-268-1441/+1305
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Affects: lib/plist.c & .h and bgpd/bgp_clist.c & .h With very long prefix-lists the repeated scanning of the linked list of prefix_list_entry slowed things down (scaled O(n**2)). For lists of 10,000 or more entries this could consume several *minutes* while reading a configuration file. This is a substantial re-working of the code, making use of new facilities introduced in lib/symtab and lib/vector. The prefix-list names are held in a symbol table. The addition of entries to a prefix-list uses binary-chop searches rather than linear list scans. For bgpd, all references to prefix-lists are replaced by symbol table references. The peer_prefix_list_update function is called every time a prefix-list changes. This used to run through every possible reference to a prefix-list to see if its address needed updating. For other daemons, the old interfaces have been preserved. The prefix match code has been stream-lined a little. The BGP community-list and extcommunity-list handling has also been updated to use a symbol table to hold the names. This improves the processing of route-maps, which look-up the list by name each time it is used. (In the longer term, this should be replaced by the use of symbol references.) Other files affected: bgpd/bgpd.c & .h bgpd/bgp_route.c & .h bgpd/bgp_packet.c bgpd/bgp_vty.c updated to use prefix list references & community list symbols. symtab.c & .h small change to symbol_dec_ref & symbol_zero_ref to return NULL if reference count goes to zero, and the symbol otherwise.
* bgpd: fix md5 set on listen socketsStephen Hemminger2009-08-281-9/+10
| | | | | | * bgp_network.c: (bgp_md5_set) Missing piece from earlier listener change did not get ported from Vyatta code into upstream. The list listener_sockets changed from (int *) to (struct bgp_listener *).
* bgp: missing pieces from listener patchStephen Hemminger2009-08-131-10/+5
| | | | | | | * bgp_network.c: (bgp_accept) The code in current git will crash as part of the revised listener code is missing. The new listener thread code passes a pointer to a bgp_listener structure, not the bgp pointer. The old code always got a NULL for bgp pointer, so that is now hard coded.
* bgp: compiler warning fixStephen Hemminger2009-08-131-2/+2
| | | | | * bgp_filter.h: Gcc complains the function prototype is not correct because the function argument is using old K&R style.
* bgpd: Fix mistakes in applying 'allow inbound connections to non-default view'Paul Jakma2009-08-051-26/+28
| | | | | | * bgpd.c: (peer_lookup_with_open) Bodged application of previous patch meant the second loop around bgp->peer wasn't included in the loop around bm->bgp as it was supposed to be. Fix..
* [bgpd] delete erroneous extra brace..Paul Jakma2009-07-301-1/+0
|