summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* | Fix compiling with --enable-snmpChris Hall2010-04-152-18/+22
| | | | | | | | | | | | | | | | | | | | | | | | Now compiles with --enable-snmp, but note that: * setting timer values will not affect sessions which have already been activated. * the values for BGPPEERSTATE are not the same as before. (Am looking into what this should be.) * cannot (currently) stop sessions using SNMP.
* | Added configure-quagga for Euro-IX testingChris Hall2010-04-151-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Current code is not known to work for any daemon other than bgpd. (vtysh is known to be broken.) For pthreads requires --enable-pthread under gcc ! Compiled and run under: Linux 2.6.30+ gcc 4.4.1+ qlibc 2.10+ The code assumes POSIX 2006 or better. So requires NPTL which implies Linux at least 2.6.18 -- according to my reading.
* | Support gai_strerror() and tidy bgp_listener code.Chris Hall2010-04-118-203/+479
| | | | | | | | | | | | | | | | Added support for EAI_XXX error names and gai_strerror() error messages. Tidied up bgp_listener set up to remove #if skips around the "old" way -- so that the older code doesn't simply rot away.
* | New functions for error numbers and addresses in messages.Chris Hall2010-04-0832-293/+903
| | | | | | | | | | | | | | | | Implemented less onerous ways of including descriptions of errors and IP addresses in logging and other messages. Implemented mapping of error numbers to error names, which is generally more meaningful.
* | Fix multiple -l parameter addressesChris Hall2010-04-061-1/+1
| | | | | | | | | | | | | | The -l parameter now accepts multiple listen addresses, separated by commas. And empty listen address counts as <any>.
* | First beta releaseChris Hall2010-04-0676-8568/+9590
| | | | | | | | | | | | | | Various bug fixes and improvements. Running with a fair amount of debug/assert code, which must be removed at some date.
* | Use vty_set_node() to change node type.Chris Hall2010-03-161-1/+1
| |
* | Major updateChris Hall2010-03-1678-5382/+20595
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | bgpd/bgp_advertise.c bgpd/bgp_advertise.h The adj_in and adj_out objects are now put on a list based on the peer to whom the route belongs. The adj_in and adj_out objects also now point to the bgp_node which they are routes for. This substantially reduces the work needed to shut down a peer. bgpd/bgp_damp.c Changes to adj_in and adj_out forced small change to macros used in bgp_damp.c to manage its lists. bgpd/bgp_debug.c Replaced direct access to vty->node by the required vty_get_node(). bgpd/bgp_dump.c Changes to the names of fields in bgp_info structures. bgpd/bgp_engine.h Modified the debug and trace functions. bgpd/bgp_fsm.c Make use of sockunion2str() consistent with common usage. Improved some documentation. bgpd/bgp_main.c Use the newly extended qpn_add_hook_function() facility. bgpd/bgp_mplsvpn.c Changes to the names of fields in bgp_info structures. bgpd/bgp_msg_read.c Bug fix: correct handling of capability code length. Improvement: better casting in calculation of message length. bgpd/bgp_msg_write.c Bug fix: correct byte ordering of bgp_id in open message. bgpd/bgp_network.c Bug fix: correct handling of incoming connections. Takes advantage of improvements in sockunion.c. bgpd/bgp_nexthop.c Changes to the names of fields in bgp_info structures. bgpd/bgp_open_state.c Remove mistaken #include of memtypes.h bgpd/bgp_packet.c Improvements to handling of withdrawing routes for peers. bgpd/bgp_peer.c Tidying up the state of peers as they are enabled and disabled. Improvements to handling of withdrawing routes for peers. bgpd/bgp_peer.h Adding list bases for lists of routes originated by the peer. bgpd/bgp_peer_index.c Bug fix: correct freeing of peer indexes. bgpd/bgp_route.c Implement lists of bgp_info based in the owning peer. Adjust for name changes to bgp_info fields. Reimplemented all the clearing functions to use the lists of items that belong to the peer -- rather than searching route tables for stuff to withdraw. Changed work queue handling for added/changed routes, so that queues run through existing items, rather than having queues of auxiliary items -- lower memory overhead. bgpd/bgp_route.h Added fields to bgp_info to allow all bgp_info originated by each peer to live on lists based in the peer. And changed the name of existing fields to avoid confusion. bgpd/bgp_routemap.c Removing redundant code and fixing a memory leak. bgpd/bgp_table.h Based work queue for added/changed routes directly in the table, rather than having auxiliary structures. bgpd/bgp_vty.c Use vty_get_node() and vty_set_node() rather than direct access to the vty field. bgpd/bgpd.c Implement changes to route clearing. bgpd/bgpd.h Changes to work queue handling. lib/buffer.c Changes to allow embedded buffer structures. lib/buffer.h Moved struct buffer here so that could have embedded buffer structurs. lib/command.c Substantial tidy up and document exercise. Restructured the top level command processing and finding of descriptions and command completion. Removal of unpleasant messing around with the insides of vector structures. Movement of some command actions to vty.c. Uses uty.h to pick up the "private" functions from vty.c et al. lib/command.h Moved the "node" values to node_type.h, so that can use an enum node_type in places where cannot include command.h. lib/command_queue.c Updated to cope with the called command changing the node value. Improved handling of revoked commands, so the the command line handler does not get stuck waiting for a command to complete which has been revoked ! lib/command_queue.h Improved message format. lib/if.c Use vty_set_node(). lib/keychain.c Use vty_set_node(). new lib/keystroke.c new lib/keystroke.h New code to implement a keystroke FIFO. This moves some complexity out of the command handler. The handling of mixtures of escapes and Telnet IACs is tightened up. It would be possible to extend this to, say, UTF-8. Regularises the "stealing" of keystrokes for the "--more--" output handling... which was a bit hit and miss. new lib/list_util.c new lib/list_util.h New code to implement various forms of linked list, where the list pointers are embedded in structures. lib/log.c Changed the handling of log messages, so that all types of log output (except syslog) use the same message buffer scheme, and the message is constructed once and once only. Changes to the handling of VTY_LOCK() etc. Uses uty.h to pick up the "private" functions from vty.c et al. lib/log.h Changes to the buffering of log messages. new lib/mem_tracker.c New code to track memory allocation/deallocation, for debug purposes. lib/memory.c lib/memory.h Updated to allow the use of the mem_tracker. lib/memtypes.awk Made the memtypes into a named enum MTYPE. lib/memtypes.c Various new memory types. lib/mqueue.c lib/mqueue.h Add mqueue_finish function for close-down. lib/network.c lib/network.h Added non-blocking read_nb() and write_nb(). new lib/node_type.h As above. lib/plist.c Remove vty_puts() which wasn't a good idea. lib/qlib_init.c Added qps_init() to first stage and mqueue_finish to finish. lib/qpnexus.c lib/qpnexus.h More flexible hooks for in_thread_init and in_thread_final. lib/qpselect.c lib/qpselect.h Added qps_start_up() to build the required maps once and for all. Added qdebug to control the debug checks and validation. Improved validation and test functions. new lib/qstring.c new lib/qstring.h New code for limited flexible string handling. lib/qtimers.c Added qdebug to control the debug checks and validation. lib/routemap.c Use vty_set_node(). lib/sockunion.c lib/sockunion.h Tidied up and regularised the handling of sin_len and sin6_len. Created common function for setting port into socket. Created common function for initialisation/allocation of new sockunion. Reduced various functions by using common sub-functions. Rationalised some code. Added sockunion_listen() and sockunion_new_sockaddr(). Renamed sockunion_new() to sockunion_new_prefix(). Improved some logging messages. Added documentation. new lib/uty.h Functions etc. used only by vty/command/log/vty_io and vty_cli. lib/vector.c lib/vector.h Added vector_t type. Removed VECTOR_INDEX, vector_only_wrapper_free() and vector_only_index_free() -- following improvement of code in command.c. Added vector_set_min_length(), vector_set_new_min_length() and vector_length() functions. new lib/vio_fifo.c new lib/vio_fifo.h New code to manage simple FIFO of indefinite length. lib/vty.c lib/vty.h Reworked. Broken into vty.c, vty_io.c and vty_cli.c. new lib/vty_cli.c new lib/vty_cli.h CLI handling parts of the vty family. new lib/vty_io.c new lib/vty_io.h I/O parts of the vty family. lib/workqueue.h Introduced tyedefs for the various call-back entries. new tests/test-list_util.c Tests for the list-util stuff. vtysh/vtysh.c Small change to interface for cmd_execute_command()
* | Fixed bug in message skipping and added "pthread" to start message.Chris Hall2010-02-173-4779/+4
| | | | | | | | | | | | modified: bgpd/bgp_main.c modified: bgpd/bgp_msg_read.c deleted: bgpd/bgpd.cx -- bogus file
* | Revised thread/timer handling, work queue and scheduling.Chris Hall2010-02-1635-1157/+6281
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Updated quagga thread handling to use qtimers when using the new qpnexus -- so all timers are qtimers in the new scheme. Updated work queue handling so that each work queue item is a single malloced structure, not three. (Only bgpd and zebra use the work queue system.) When using qpnexus the background thread queue is no longer a timer queue, but simply a list of pending background threads. When a background thread is waiting on a timer, it is in the qtimer pile, same like any other thread. When using qpnexus, the only remaining quagga thread queues are the event and ready queues. Revised the qpnexus loop so that only when there is nothing else to do will it consider the background threads. Revised write I/O in the BGP Engine so that all writing is via the connection's write buffer. Revised the write I/O in the Routeing Engine, so that it passes groups of updates in a single mqueue message. This all reduces the number of TCP packets sent (because BGP messages are collected together in the connection's write buffer) and reduces the number of mqueue messages involved. (No need for TCP_CORK.) Code and comments review for the new code. modified: bgpd/bgp_advertise.c 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_main.c modified: bgpd/bgp_msg_read.c modified: bgpd/bgp_msg_write.c modified: bgpd/bgp_network.c modified: bgpd/bgp_packet.c modified: bgpd/bgp_packet.h modified: bgpd/bgp_peer.c modified: bgpd/bgp_peer_index.h modified: bgpd/bgp_route.c modified: bgpd/bgp_route_refresh.h modified: bgpd/bgp_session.c modified: bgpd/bgp_session.h modified: bgpd/bgpd.c new file: bgpd/bgpd.cx modified: lib/mqueue.h modified: lib/qpnexus.c modified: lib/qpnexus.h modified: lib/qpselect.c modified: lib/qtimers.c modified: lib/qtimers.h modified: lib/sigevent.c modified: lib/stream.c modified: lib/stream.h modified: lib/thread.c modified: lib/thread.h modified: lib/workqueue.c modified: lib/workqueue.h modified: tests/heavy-wq.c modified: zebra/zebra_rib.c
* | Re-implement xon.paulo2010-02-054-38/+19
| |
* | Fix retry for connect() connections + debug for mqueue.Chris Hall2010-02-056-57/+136
| | | | | | | | | | | | | | | | | | modified: bgpd/bgp_connection.c modified: bgpd/bgp_connection.h modified: bgpd/bgp_engine.h modified: bgpd/bgp_fsm.c modified: bgpd/bgp_session.c modified: bgpd/bgpd.c
* | peer_flag_modify_action must enable the peer if not SHUTDOWN.paulo2010-02-052-2/+2
| |
* | Relace localtime with localtime_r to be thread safe.paulo2010-02-053-13/+13
| |
* | Fixed shutdown. Centralized the testing of whether the session can bepaulo2010-02-053-16/+26
| | | | | | | | | | | | enabled in bgp_peer_enable. Added belt and braces notify in bgp_terminate after setting the SHUTDOWN flag, which should send the notify itself.
* | Recover lost bgp_peer.c Changed bgp_terminate to setpaulo2010-02-042-35/+24
| | | | | | | | PEER_STATE_SHUTDOWN and to not attempt to re-enable session if set.
* | Missed a few non safe calls of strerror. Improved comments.paulo2010-02-045-14/+25
| |
* | Corrected assert() in bgp_connection_free().Chris Hall2010-02-041-2/+5
| | | | | | | | modified: bgpd/bgp_connection.c
* | Thread safe versions of inet_ntoa and strerror.paulo2010-02-0419-71/+224
| |
* | Review and tidy new code and comments.Chris Hall2010-02-0415-392/+421
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Follows David Lamparter's code for update-source handling. 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_notification.c modified: bgpd/bgp_notification.h modified: bgpd/bgp_peer.c modified: bgpd/bgp_peer.h modified: bgpd/bgp_session.c modified: bgpd/bgp_session.h modified: lib/prefix.c modified: lib/prefix.h
* | Tidying up the new FSM and exception handling.Chris Hall2010-02-048-652/+415
| | | | | | | | | | | | | | | | | | | | | | modified: bgpd/bgp_common.h modified: bgpd/bgp_fsm.c modified: bgpd/bgp_fsm.h modified: bgpd/bgp_msg_read.c modified: bgpd/bgp_msg_write.c modified: bgpd/bgp_notification.c modified: bgpd/bgp_notification.h modified: bgpd/bgp_packet.c
* | Added test for sEstablished before processing incoming updates.Chris Hall2010-02-032-4/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Before disabling a session the Peering Engine now revokes its inbound queue for the session. This clears out anything that may have been queued up to that moment for the session. After disabling a session, some updates may still arrive, because it may be a while before the BGP Engine actions the disable, and stops queueing stuff. So, Peering Engine must check that the session is established before processing stuff in the queue. modified: bgpd/bgp_engine.h modified: bgpd/bgp_session.c
* | Restore skips around zeroizing route counts in bgp_peer_stoppaulo2010-02-031-0/+4
| |
* | When prefix overflow timer expires it mustn't re-enable the peer if wepaulo2010-02-031-0/+4
| | | | | | | | are still clearing.
* | Handling of peering states: Don't disable peer until sessionpaulo2010-02-035-70/+42
| | | | | | | | | | | | acknowledges disable. Explicity re-enable peer after clearing, unless shutdown or prefix overflow. On HUP send send admin reset, not admin shutdown.
* | Use notify routine, not disable. Only chnage to clearing state ifpaulo2010-02-022-3/+4
| | | | | | | | established.
* | Change nexus priorities to more closely resemble the originals.paulo2010-02-026-51/+66
| |
* | Free nexus's queue and thread signal.paulo2010-02-011-2/+4
| |
* | Added count to mqueue structure and implemented resets.Chris Hall2010-02-013-40/+151
| | | | | | | | | | | | modified: bgpd/bgp_peer.c -- collecting notification modified: lib/mqueue.c modified: lib/mqueue.h
* | Use session->notification instead of peer's. Fix HUP - race condition.paulo2010-02-017-16/+15
| |
* | In bgp_route.c bgp_maximum_prefix_overfow arrange for peer to bepaulo2010-02-017-75/+88
| | | | | | | | | | | | disabled then enabled by timer. Replaced calls to bgp_peer_reenable with bgp_send_notify which updates peer->last_reset as well as reenabling peer.
* | Clearing up the reaping of connections, and handling of notifications.Chris Hall2010-02-016-203/+262
| | | | | | | | | | | | | | | | | | modified: bgpd/bgp_connection.c modified: bgpd/bgp_fsm.c modified: bgpd/bgp_fsm.h modified: bgpd/bgp_msg_read.c modified: bgpd/bgp_peer.c modified: bgpd/bgp_session.c
* | Simplified handling of connection pending queue.Chris Hall2010-02-016-93/+91
| | | | | | | | | | | | | | | | | | | | | | | | | | 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-319-31/+78
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | Allow totally empty config file (even though it's useless).paulo2010-01-291-1/+15
| |
* | Enable zebra clientpaulo2010-01-291-4/+0
| |
* | Changed zclient to use qfiles etc when we have a nexus. For BGP clientpaulo2010-01-289-94/+288
| | | | | | | | | | | | | | 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.
* | Merge branch 'bgp_engine' of /git/quagga.euro-ix into bgp_engineChris Hall2010-01-273-7/+7
|\ \
| * | Fixed some missed peer state name changes.paulo2010-01-273-7/+7
| | |
* | | Binding to interfaces and counting of messages.Chris Hall2010-01-2716-187/+353
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | Wite route refresh received. Hive off statistics into separate struct.paulo2010-01-2710-91/+199
| |
* | Fixed program shutdown. Added peering engine side of TTL changing.paulo2010-01-2720-119/+324
| | | | | | | | | | 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-2717-271/+833
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | Merge branch 'bgp_engine' of /git/quagga.euro-ix into bgp_engineChris Hall2010-01-256-17/+80
|\ \
| * | Fixed problems in mqueue keeping tail pointers correct. Implementedpaulo2010-01-256-17/+80
| | | | | | | | | | | | | | | program terminate code that waits for all sissions to become disabled before terminating pthreads and running exit code.
* | | Fix bgp_session_do_disable() to return exactly one eDisabled event.Chris Hall2010-01-254-6/+27
|/ / | | | | | | | | | | | | modified: bgpd/bgp_fsm.c modified: bgpd/bgp_notification.c modified: bgpd/bgp_notification.h modified: bgpd/bgp_session.c
* | Getting BGP Engine to start and removing warnings.Chris Hall2010-01-2440-791/+913
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-2321-899/+1532
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-227-25/+83
| | | | | | | | | | | | 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.
* | Reduce peer FSM now that session handled elsewhere. Wire up statuspaulo2010-01-228-40/+52
| | | | | | | | changes, Idle, Established, Clearing, Deleted removed other status.