summaryrefslogtreecommitdiffstats
path: root/lib/vty_local.h
Commit message (Collapse)AuthorAgeFilesLines
* Work in progress -- pthread handling and debug improvementsChris Hall2012-05-281-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Logging: * added "debug bgp io" -- to log all BGP Engine I/O, with the option to log input or output only. This is similar to "debug bgp update", but that affects the Routing Engine, while this affects the BGP Engine. * reviewed and updated "debug bgp fsm". The fsm logging now covers all aspects of the fsm, which is all in the BGP Engine. Any nominally fsm logging in the Routing Engine is now "event" logging. Added collision resolution to fsm logging. Dovetailed fsm and keepalive logging. * removed logging of route advertisment timer and withdraw events. pthread and nexus handling: * qpt_thread object created to encapsulate a pthread, with means to keep track of existing pthreads and their cpu usage. This is now used instead of the list of qpnexus for the watch-dog. * added explicit qpt_finish() and call from qexit(). Collects up and destroys all qpt_thread -- including any "detached" qpt_thread. * changed qpt_thread_signal() to qpt_thread_raise() Now takes qpt_thread object (not pthread_t) and also is now agnostic about qpthreads_enabled. Work in progress -- pthread handling and debug improvements Logging: * added "debug bgp io" -- to log all BGP Engine I/O, with the option to log input or output only. This is similar to "debug bgp update", but that affects the Routing Engine, while this affects the BGP Engine. * reviewed and updated "debug bgp fsm". The fsm logging now covers all aspects of the fsm, which is all in the BGP Engine. Any nominally fsm logging in the Routing Engine is now "event" logging. Added collision resolution to fsm logging. Dovetailed fsm and keepalive logging. * removed logging of route advertisment timer and withdraw events. pthread and nexus handling: * qpt_thread object created to encapsulate a pthread, with means to keep track of existing pthreads and their cpu usage. This is now used instead of the list of qpnexus for the watch-dog. * added explicit qpt_finish() and call from qexit(). Collects up and destroys all qpt_thread -- including any "detached" qpt_thread. * changed qpt_thread_signal() to qpt_thread_raise() Now takes qpt_thread object (not pthread_t) and also is now agnostic about qpthreads_enabled. * tidied up pthread attribute and status handling, to cope with a wider variety of pthread implementations, and to lay ground- work for more pthreads and more subtle scheduling. Logging at pthread start up provides more information about what the local implementation supports. Flags up some issues with FreeBSD -- in particular broken pthread CPU clock :-( * changed handling of "thread specific" variables, so that is now also qpthreads_enabled agnostic. * added tests in configure.ac to identify when: pthread_attr_getstack() pthread_attr_setstack() pthread_attr_get_np() pthread_getattr_np() are available. (For FreeBSD, at least, also need to know whether to include <pthread_np.h>.) Others: * added "NO_RETURN" macro for __attribute__((noreturn)) or local equivalent. * added qfb_nam_t -- a shorter general purpose fixed length sting object.
* vtysh partly restored. bgpd not crashing on over-size messages.Chris Hall2012-02-191-58/+83
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | NB: this is a partial interim version -- NOT for production. Reinstate vtysh. In bgpd: cope better with generating oversize messages. The "pipework" branch is no more. There is now "euro_ix" and "euro_ix_b", where 'b' stands for 'bleedin'. The "pipework" is currently in 'bleedin'. Version updated to: 0.99.18ex20b Major changes in this commit: * modified bgpd to avoid crashing if an oversize message is created. At present, any oversize messages are simply discarded. This may be a mistake... since it is possible that some routes that should have been withdrawn are not. TBA. The stream lib facilities have been overhauled to may this easier. * restoring vtysh. At present the vtysh is thought to work, except that it does not currently create integrated configuration files. For the time being, *only* the following compile: lib, bgpd, zebra, vtysh, tests All other daemons will fail to compile, and must be disabled.
* Changed gcc options to -std=c99 and -O2, and tighted warnings.Chris Hall2011-09-021-1/+1
| | | | Some small changes to accomodate same.
* Update pipework and improve memory reporting.Chris Hall2011-07-211-8/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Improve error handling for all new pipework inputs and outputs. Change behaviour of ^C from VTY Terminal, so that will interrupt output and terminate all running pipes -- including running shell commands. In pipe commands, recognise "~/..." and "~user/..." home directory forms. Changed "~/" to mean the usual home for the current user. "~~/" now means the configuration file directory. Introduced "shdir DIR" command to show what is (currently) what. Changed "<|" so that if the command has a path, it is expanded using Quagga's rules (including "~~/" and "~./") and the "here" directory is set to that path. Fixed collection of stderr output from all pipes so that is separate from stdout output, and is always sent to the base output (eg VTY Terminal). Increase amount of information about the heap that "show mem" shows -- particularly if the "memory_tracker" is enabled. Tested and applied resulting fixes.
* Upgrade of "pipework" -- including piping to/from shell commandsex11pChris Hall2011-03-211-40/+76
| | | | | | Version 0.99.15ex11p A major overhaul.
* Second tranche of updates for pipework branch.Chris Hall2011-02-131-10/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | modified: bgpd/bgp_connection.c modified: bgpd/bgp_debug.c modified: bgpd/bgp_engine.h modified: bgpd/bgp_main.c modified: bgpd/bgp_packet.c modified: bgpd/bgp_peer.c modified: bgpd/bgp_route.c modified: bgpd/bgp_routemap.c modified: bgpd/bgp_session.c modified: bgpd/bgp_vty.c modified: bgpd/bgpd.c modified: bgpd/bgpd.h modified: configure.ac modified: isisd/dict.h modified: isisd/isis_misc.c modified: isisd/isis_routemap.c modified: isisd/isis_spf.c modified: lib/Makefile.am modified: lib/command.c modified: lib/command.h modified: lib/command_execute.h modified: lib/command_parse.c modified: lib/command_parse.h modified: lib/command_queue.c modified: lib/command_queue.h modified: lib/elstring.h modified: lib/heap.c modified: lib/if.c modified: lib/if.h modified: lib/keychain.c modified: lib/keystroke.c modified: lib/keystroke.h modified: lib/list_util.c modified: lib/list_util.h modified: lib/log.c modified: lib/log.h modified: lib/memory.c modified: lib/memory.h modified: lib/memtypes.c modified: lib/misc.h modified: lib/mqueue.c modified: lib/mqueue.h deleted: lib/node_type.h modified: lib/pthread_safe.c modified: lib/qfstring.c modified: lib/qiovec.c modified: lib/qiovec.h modified: lib/qpath.c modified: lib/qpnexus.c modified: lib/qpnexus.h modified: lib/qpselect.c modified: lib/qpthreads.h modified: lib/qstring.c modified: lib/qstring.h modified: lib/qtime.c modified: lib/qtime.h modified: lib/qtimers.c modified: lib/qtimers.h modified: lib/routemap.c modified: lib/symtab.h modified: lib/thread.h deleted: lib/uty.h modified: lib/vector.c modified: lib/vector.h modified: lib/version.h.in modified: lib/vio_fifo.c modified: lib/vio_fifo.h modified: lib/vio_lines.c modified: lib/vio_lines.h modified: lib/vty.c modified: lib/vty.h modified: lib/vty_cli.c modified: lib/vty_cli.h modified: lib/vty_io.c modified: lib/vty_io.h modified: lib/vty_io_basic.c modified: lib/vty_io_basic.h modified: lib/vty_io_file.c modified: lib/vty_io_file.h modified: lib/vty_io_shell.c modified: lib/vty_io_term.c modified: lib/vty_io_term.h modified: lib/vty_local.h modified: lib/vty_pipe.c modified: lib/workqueue.h modified: lib/zebra.h modified: ospf6d/ospf6_lsa.c modified: ripngd/ripngd.c modified: tests/test-list_util.c modified: tests/test-vector.c modified: vtysh/vtysh.c modified: vtysh/vtysh_config.c
* Initial commit to seed the "pipework" branchex10pChris Hall2011-02-131-0/+193
This is a major revision of the command processing, in order to support new lexical level for command lines, plus all the necessary I/O redirection for the pipes. This is version 0.99.15ex10p. This supports: < filename <+ filename .... > filename .... >> filename .... >* Also contains all lexical level handling of '...', "...." and \x in order to allow use of '>' et al if required. Updated command line completion and help is a work in progress.