summaryrefslogtreecommitdiffstats
path: root/lib/Makefile.am
Commit message (Collapse)AuthorAgeFilesLines
* Compile all daemons, except vtysh, clean but with warnings.Chris Hall2010-04-161-1/+2
| | | | | | | | Now compiles with all daemons enabled. Split command.h to separate out the functions whish are only used durring command execution -- that is, those used in vty.c and family and in vtysh.
* New functions for error numbers and addresses in messages.Chris Hall2010-04-081-2/+2
| | | | | | | | 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.
* First beta releaseChris Hall2010-04-061-2/+4
| | | | | | | Various bug fixes and improvements. Running with a fair amount of debug/assert code, which must be removed at some date.
* Major updateChris Hall2010-03-161-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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()
* Thread safe versions of inet_ntoa and strerror.paulo2010-02-041-2/+2
|
* Getting BGP Engine to start and removing warnings.Chris Hall2010-01-241-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Further work-in-progressChris Hall2010-01-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Initial commit for bgp_engine branch -- seeding new files...Chris Hall2010-01-041-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Get CLI thread and UI working properly. Sex commands according topaulo2009-12-151-2/+2
| | | | 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-2/+4
|
* Wired up the CLI thread with new qpnexus type. Still work in progress.paulo2009-12-081-2/+2
| | | | Needs debugging.
* Initial commit for lib/qpselect.c & .h and lib/qtimers.c & .hChris Hall (GMCH)2009-12-061-2/+2
| | | | | | | | | | | | lib/qpselect supports data structure to multiplex between many file descriptors using pselect(). lib/qtimers supports data structures to run multiple timers. Also affected: lib/Makefile.am -- to add the new files lib/memtypes.c -- to add further memory types for the above
* Initial commit of lib/mqueue.c & .hChris Hall (GMCH)2009-12-031-2/+2
| | | | | Adds message queue structure to manage the passing of messages between qpthreads.
* Pthreads infrastructure -- initial commitChris Hall (GMCH)2009-12-021-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | New files: lib/qpthreads.c & .h Encapsulates the Pthreads facilities to be used in Quagga. Implicitly documents the sub-set of Pthreads being used. Provides error checking for a number of functions which may return errors, but are not generally expected to and for whom an error is treated as fatal. Could be modified to "null out" the use of Pthreads. New files: lib/qtime.c & .h Defines a 64-bit integer time value which is a lot easier to handle than the usual timespec and timeval structures. (C99 requires a 64-bit integer.) Provides front ends for gettimeofday() & clock_gettime() which return 64-bit time value. Also conversions to and from timespec and timeval. Provides a monotonic clock for when CLOCK_MONOTONIC is not available. (This is based on code from Joakim Tjernlund.) New files: lib/heap.c & .h Implements a heap data structure closely allied to the vector. This will be used for timer handling. Modified: lib/memtypes.c New memory types for qpthreads structures and for the heap. Modified: lib/zassert.h Added explicit "passert" == assert which is not subject to NDEBUG. Added explicit "nassert" == assert which is subject to NDEBUG. Added zabort, zabort_errno and zabbort_err for when something has gone fatally wrong. (Require changes to lib/log.c which are TBD.)
* Introduce lib/symtab.c & .hChris Hall (GMCH)2009-11-241-2/+2
| | | | | | | | | | | | | | | | | | | | | These are two brand new files. They provide a "Symbol Table" data structure, which maps symbol "names" to symbol "values. (Inside the dta structure is a hash table.) There is also support for managing references to symbols, and the ability to visit all references to a symbol when its value is set or unset. Other files affected: lib/Makefile.am -- to add the new files. lib/memtypes.c -- additional memory types for symbol table stuff
* [lib] Centralise Zserv route type information, auto-generate redist stringsPaul Jakma2006-06-271-4/+7
| | | | | | | | | | | 2006-05-23 Paul Jakma <paul.jakma@sun.com> * route_types.txt: New file, table of ZEBRA_ROUTE definitions. * route_types.awk: New script, to parse previous and generate (for now) redistribute string defines. * Makefile.am: build route_types.h using previous two, ala memtypes.h, include the script and table file in EXTRA_DIST. * command.h: pull in route_types.h, add a REDIST_STR define.
* [lib] fix libtool version argument in Makefile.amPaul Jakma2006-03-301-1/+1
| | | | | | 2006-03-16 Paul Jakma <paul.jakma@sun.com> * Makefile.am: Fix -version-info argument.
* 2005-11-03 Paul Jakma <paul.jakma@sun.com>paul2005-11-031-1/+2
| | | | | | | | | | | | | | | | | | | | | * zebra.h: BSD BYTE_ORDER define isn't available everywhere, define if needs be. * checksum.h: new file. checksum.c exports in_cksum, provide a header for it. * checksum.c: (in_cksum) callers shouldn't have to know it uses a u_short internally, change to void *. * Makefile.am: Add checksum.h * command.h: remove bogus trailling slash. * md5.c: (general) Update it for the twentieth century. ANSI declarations are widely supported now.. Don't include system headers, only include zebra.h. Use POSIX types (the alternative is to define u_int64_t in a portable way - rest of Quagga needs same cleanup). Make endian-conditional code be compiler conditional rather than preprocessor conditional, so that breakage gets noticed quicker. * md5.h: POSIX types. Get rid of the odd __P() non-ANSI capable compiler compatibility hack.
* 2005-09-28 Alain Ritoux <alain.ritoux@6wind.com>vincent2005-09-281-1/+1
| | | | | | | | | * lib/md5-gnu.h: removed * lib/md5.h: replaces md5-gnu.h * lib/Makefile.am: use correct md5.h * lib/md5.c: import from WIDE * ospfd/ospf_packet.c: use new md5 API * ripd/ripd.c: use new md5 API
* 2005-04-25 Paul Jakma <paul.jakma@sun.com>paul2005-04-251-2/+3
| | | | | | | | | | * workqueue.{c,h}: Helper API for setting up and running queues via background threads. * command.c: install the 'show workqueues' command * memtypes.c: Add work queue mtypes, and a rib-queue type for a zebra rib work queue. * memtypes.h: Updated to match memtypes.c * Makefile.am: Add new workqueue files to build.
* - arg, fix the missing slash. Beat myself with the diff of the last commitpaul2005-04-251-1/+1
| | | | to HACKING (which I added..)
* 2005-04-25 Paul Jakma <paul.jakma@sun.com>paul2005-04-251-2/+2
| | | | | * Makefile.am: Refer to source files via srcdir variable, fix out-of-tree build breakage.
* 2005-04-15 Paul Jakma <paul@dishone.st>paul2005-04-151-1/+1
| | | | | | * Makefile.am: memtypes.awk is gawk dependent, use the GAWK automake var. * memtypes.h: New file, auto-generated, checked in for convenience.
* 2005-04-15 Paul Jakma <paul@dishone.st>paul2005-04-151-3/+7
| | | | | | | | | | | | | | | | * memtypes.c: The new, unified location for memory type definitions. The memtype enum and declarations for memory_lists are built from this automatically and put into memtypes.h. * memtypes.awk: New script to generate memtypes.h from memtypes.c * memory.h: Finally, the enum can banished! * memory.c: Finally, the seperate mtype memory_list definitions can be banished! (log_memstats) Increase width of fields (show_memory_zebra_cmd) display zebra specific memory types. Increase width of fields. * Makefile.am: Add memtypes.{c,h}, add BUILT_SOURCES for memtypes.h Add a rule to build memtypes.h using memtypes.awk. Add memtypes.awk to EXTRA_DIST.
* * configure.ac, */Makefile.am: Fix previous commit. SNMP includeshasso2005-03-281-1/+1
| | | | | must be after lib/ includes in some systems. Introduce SNMP_INCLUDES for that.
* 2004-11-26 Andrew J. Schorr <ajschorr@alumni.princeton.edu>ajs2004-11-261-2/+2
| | | | | | | * debug.[ch]: Remove unused files. * Makefile.am: Remove references to debug.c and debug.h * ospf_main.c: Remove #include "debug.h" (was not being used, and lib/debug.h has now been deleted).
* 2004-11-26 Andrew J. Schorr <ajschorr@alumni.princeton.edu>ajs2004-11-261-1/+1
| | | | * Makefile.am: Need to add zassert.h to pkginclude_HEADERS.
* Small copyright string and hostname related cleanup.hasso2004-10-191-5/+2
|
* Number of warnings is down to 3 again in lib directory. A lot of const'shasso2004-10-051-1/+1
| | | | added to strings and a lot of int -> unsigned int changes.
* (somewhat unrelated cleanups, but all are very minor)gdt2004-07-231-0/+1
| | | | | | | | | | | | | | | 2004-07-23 Greg Troxel <gdt@poblano.ir.bbn.com> * */Makefile.am: Use ../dir/libfoo.la, rather than "-L../dir -lfoo", to avoid linking against installed libraries from a previous version. * {lib,ospfd,ospfclient}/Makefile.am: explicitly define the shared library version number to be 0.0 * configure.ac: remove spurious , so extract.pl is chmod'd +x. * HACKING: explain shared library versioning rules
* 2004-07-09 Paul Jakma <paul@dishone.st>paul2004-07-091-2/+2
| | | | | * jhash.{c,h}: New files. Bob Jenkins' public domain hashing function, as implemented in linux kernel by David Miller.
* Add libtool support.libtool-aftergdt2004-06-301-4/+4
| | | | | | | | | | | | | | | | libzebra and libospfapiclient are now built shared, and linked shared with the daemons. This reduces the memory needed when running multiple daemons; each daemon is at least 150k smaller. Static libraries are still built, and libtool should use them on platforms which don't have shared libaries. As with autoconf, the user of a distribution does not need libtool; one just needs that to build from CVS. libospf.a is still a non-shared library, and still installed, not because that makese sense, but because I don't understand why it is the way it is now. Note that the tree was tagged 'libtool-before' just before this commit.
* Start of new ospf6d merge from Zebra.hasso2004-05-181-2/+2
|
* 2004-01-19 Paul Jakma <paul@dishone.st>paul2004-01-191-2/+3
| | | | | | | * tests/test-sig.c: New file, regression test for sigevents. * lib/Makefile.am: add sigevent.{c,h} * (isis|rip|ripng|ospf|ospf6|bgp)d/\1_main.c: modify for sigevents. * zebra/main.c: ditto.
* {lib,ospfd,ospfapi}/Makefile.am:gdt2003-12-081-1/+1
| | | | | Use pkginclude_HEADERS rather than include_HEADERS to place includes in ${prefix}/include/quaggainstead of polluting ${prefix}/include.
* 2003-10-24 Paul Jakma <paul@dishone.st>paul2003-10-241-1/+1
| | | | | | | | | * configure.ac: Check for fcntl() * {bgpd,ospf,ospf6d,ripd,ripngd}/Makefile.am: Install conf file via regular automake means, not magic install incantations, see bug #38. * lib/Makefile.am: install the headers, needed to link libzebra.a (and hence libospf.a, OSPF-API, etc.)
* 2003-08-27 Jay Fenlason <fenlason@redhat.com>paul2003-08-271-1/+1
| | | | | * lib/Makefile.am: Do not use a lib (libcap) as a dependency * zebra/Makefile.am: Link in libcap
* 2003-06-04 Paul Jakma <paul@dishone.st>paul2003-06-041-3/+4
| | | | * Merge of zebra privileges
* Revert my http://hasso.linux.ee/zebra/ht-ifrmap-14042003.patch patch. Usedhasso2003-05-241-2/+2
| | | | | same idea as in lib/distribute.c to allow extract.pl to pick up commands for vtysh.
* Hasso Tepperpaul2003-04-191-2/+2
| | | | | | | http://hasso.linux.ee/zebra/ht-ifrmap-14042003.patch Allows to extract.pl to pickup "route-map xxx in/out dev" commands for vtysh (ripngd). As lib/if_rmap.[c|h] are used in ripngd only, I moved them to the ripngd/ directory.
* Amir Guindehi <amir@datacore.ch>paul2003-03-171-1/+1
| | | | | | | | -------------------------------- I've attached a small patch for zebra-pj, which adds the installation of libospf.a libzebra.a, libospfapi.a and the needed headers for ospfapi clients. the headers get installed to /usr/include/ospfd/* and /usr/include/ospfapi.
* Initial revisionpaul2002-12-131-0/+29