diff -up quagga-0.99.16/doc/Makefile.am.man quagga-0.99.16/doc/Makefile.am --- quagga-0.99.16/doc/Makefile.am.man 2009-12-09 13:37:12.000000000 +0100 +++ quagga-0.99.16/doc/Makefile.am 2010-07-20 09:45:13.768782383 +0200 @@ -61,7 +61,7 @@ quagga_TEXINFOS = appendix.texi basic.te .dia.png: $(DIATOPNG) "$@" $< -man_MANS = vtysh.1 bgpd.8 ospf6d.8 ospfd.8 ripd.8 ripngd.8 zebra.8 isisd.8 +man_MANS = vtysh.1 bgpd.8 ospf6d.8 ospfd.8 ripd.8 ripngd.8 zebra.8 isisd.8 ospfclient.8 watchquagga.8 EXTRA_DIST = BGP-TypeCode draft-zebra-00.ms draft-zebra-00.txt $(man_MANS) \ mpls/ChangeLog.opaque.txt mpls/cli_summary.txt \ diff -up quagga-0.99.16/doc/Makefile.in.man quagga-0.99.16/doc/Makefile.in --- quagga-0.99.16/doc/Makefile.in.man 2010-03-09 11:55:53.000000000 +0100 +++ quagga-0.99.16/doc/Makefile.in 2010-07-20 09:45:13.769794338 +0200 @@ -271,7 +271,7 @@ quagga_TEXINFOS = appendix.texi basic.te vtysh.texi routeserver.texi defines.texi $(figures_png) snmptrap.texi \ $(figures_txt) -man_MANS = vtysh.1 bgpd.8 ospf6d.8 ospfd.8 ripd.8 ripngd.8 zebra.8 isisd.8 +man_MANS = vtysh.1 bgpd.8 ospf6d.8 ospfd.8 ripd.8 ripngd.8 zebra.8 isisd.8 ospfclient.8 watchquagga.8 EXTRA_DIST = BGP-TypeCode draft-zebra-00.ms draft-zebra-00.txt $(man_MANS) \ mpls/ChangeLog.opaque.txt mpls/cli_summary.txt \ mpls/opaque_lsa.txt mpls/ospfd.conf \ diff -up quagga-0.99.16/doc/ospfclient.8.man quagga-0.99.16/doc/ospfclient.8 --- quagga-0.99.16/doc/ospfclient.8.man 2010-07-20 09:45:13.796017658 +0200 +++ quagga-0.99.16/doc/ospfclient.8 2010-07-20 17:09:50.099039258 +0200 @@ -0,0 +1,42 @@ +.\" This file was originally generated by help2man 1.36. +.TH OSPFCLIENT "1" "July 2010" +.SH NAME +ospfclient \- an example ospf-api client +.SH SYNOPSIS +.B ospfclient +.I ospfd +.I lsatype +.I opaquetype +.I opaqueid +.I ifaddr +.I areaid +.SH DESCRIPTION +.B ospfclient +is a an example ospf-api client to test the ospfd daemon. +.SH OPTIONS +.TP +.I ospfd +A router where the API\-enabled OSPF daemon is running. +.TP +.I lsatype +The value has to be either "9", "10", or "11", depending on the flooding +scope. +.TP +.I opaquetype +The value has to be in the range of 0\-255 (for example, experimental +applications use +.I opaquetype +larger than 128). +.TP +.I opaqueid +Arbitrary application instance (24 bits). +.TP +.I ifaddr +Interface IP address for type 9, otherwise it will be ignored. +.TP +.I areaid +Area in the IP address format for type 10, otherwise it will be ignored. +.SH "SEE ALSO" +.BR ospfd (8). +.SH AUTHORS +See the project homepage at . diff -up quagga-0.99.16/doc/watchquagga.8.man quagga-0.99.16/doc/watchquagga.8 --- quagga-0.99.16/doc/watchquagga.8.man 2010-07-20 09:45:13.798019148 +0200 +++ quagga-0.99.16/doc/watchquagga.8 2010-07-20 17:10:04.052794938 +0200 @@ -0,0 +1,230 @@ +.\" This file was originally generated by help2man 1.36. +.TH WATCHQUAGGA 8 "July 2010" +.SH NAME +watchquagga \- a program to monitor the status of quagga daemons +.SH SYNOPSIS +.B watchquagga +.RI [ option ...] +.IR daemon ... +.br +.B watchquagga +.BR \-h " | " \-v +.SH DESCRIPTION +.B watchquagga +is a watchdog program that monitors the status of supplied quagga +.IR daemon s +and tries to restart them in case they become unresponsive or shut down. +.PP +To determine whether a daemon is running, it tries to connect to the +daemon's VTY UNIX stream socket, and send echo commands to ensure the +daemon responds. When the daemon crashes, EOF is received from the socket, +so that watchquagga can react immediately. +.PP +This program can run in one of the following 5 modes: +.TP +.B Mode 0: monitor +In this mode, the program serves as a monitor and reports status changes. +.IP +Example usage: watchquagga \-d zebra ospfd bgpd +.TP +.B Mode 1: global restart +In this mode, whenever a daemon hangs or crashes, the given command is used +to restart all watched daemons. +.IP +Example usage: watchquagga \-dz \e +.br +-R '/sbin/service zebra restart; /sbin/service ospfd restart' \e +.br +zebra ospfd +.TP +.B Mode 2: individual daemon restart +In this mode, whenever a single daemon hangs or crashes, the given command +is used to restart this daemon only. +.IP +Example usage: watchquagga \-dz \-r '/sbin/service %s restart' \e +.br +zebra ospfd bgpd +.TP +.B Mode 3: phased zebra restart +In this mode, whenever a single daemon hangs or crashes, the given command +is used to restart this daemon only. The only exception is the zebra +daemon; in this case, the following steps are taken: (1) all other daemons +are stopped, (2) zebra is restarted, and (3) other daemons are started +again. +.IP +Example usage: watchquagga \-adz \-r '/sbin/service %s restart' \e +.br +\-s '/sbin/service %s start' \e +.br +\-k '/sbin/service %s stop' zebra ospfd bgpd +.TP +.B Mode 4: phased global restart for any failure +In this mode, whenever a single daemon hangs or crashes, the following +steps are taken: (1) all other daemons are stopped, (2) zebra is restarted, +and (3) other daemons are started again. +.IP +Example usage: watchquagga \-Adz \-r '/sbin/service %s restart' \e +.br +\-s '/sbin/service %s start' \e +.br +\-k '/sbin/service %s stop' zebra ospfd bgpd +.PP +Important: It is believed that mode 2 (individual daemon restart) is not +safe, and mode 3 (phased zebra restart) may not be safe with certain +routing daemons. +.PP +In order to avoid restarting the daemons in quick succession, you can +supply the +.B \-m +and +.B \-M +options to set the minimum and maximum delay between the restart commands. +The minimum restart delay is recalculated each time a restart is attempted. +If the time since the last restart attempt exceeds twice the value of +.BR \-M , +the restart delay is set to the value of +.BR \-m , +otherwise the interval is doubled (but capped at the value of +.BR \-M ). +.SH OPTIONS +.TP +.BR \-d ", " \-\-daemon +Run in daemon mode. When supplied, error messages are sent to Syslog +instead of standard output (stdout). +.TP +.BI \-S " directory" "\fR, \fB\-\-statedir " directory +Set the VTY socket +.I directory +(the default value is "/var/run/quagga"). +.TP +.BR \-e ", " \-\-no\-echo +Do not ping the daemons to test whether they respond. This option is +necessary if one or more daemons do not support the echo command. +.TP +.BI \-l " level" "\fR, \fB\-\-loglevel " level +Set the logging +.I level +(the default value is "6"). The value should range from 0 (LOG_EMERG) to 7 +(LOG_DEBUG), but higher number can be supplied if extra debugging messages +are required. +.TP +.BI \-m " number" "\fR, \fB\-\-min\-restart\-interval " number +Set the minimum +.I number +of seconds to wait between invocations of the daemon restart commands (the +default value is "60"). +.TP +.BI \-M " number" "\fR, \fB\-\-max\-restart\-interval " number +Set the maximum +.I number +of seconds to wait between invocations of the daemon restart commands (the +default value is "600"). +.TP +.BI \-i " number" "\fR, \fB\-\-interval " number +Set the status polling interval in seconds (the default value is "5"). +.TP +.BI \-t " number" "\fR, \fB\-\-timeout " number +Set the unresponsiveness timeout in seconds (the default value is "10"). +.TP +.BI \-T " number" "\fR, \fB\-\-restart\-timeout " number +Set the restart (kill) timeout in seconds (the default value is "20"). If +any background jobs are still running after this period has elapsed, they +will be killed. +.TP +.BI \-r " command" "\fR, \fB\-\-restart " command +Supply a Bourne shell +.I command +to restart a single daemon. The command string should contain the '%s' +placeholder to be substituted with the daemon name. +.IP +Note that +.B \-r +and +.B \-R +options are not compatible. +.TP +.BI \-s " command" "\fR, \fB\-\-start\-command " command +Supply a Bourne shell +.I command +to start a single daemon. The command string should contain the '%s' +placeholder to be substituted with the daemon name. +.TP +.BI \-k " command" "\fR, \fB\-\-kill\-command " command +Supply a Bourne shell +.I command +to stop a single daemon. The command string should contain the '%s' +placeholder to be substituted with the daemon name. +.TP +.BR \-R ", " \-\-restart\-all +When one or more daemons are shut down, try to restart them using the +Bourne shell command supplied on the command line. +.IP +Note that +.B \-r +and +.B \-R +options are not compatible. +.TP +.BR \-z ", " \-\-unresponsive\-restart +When a daemon is in an unresponsive state, treat it as being shut down for +the restart purposes. +.TP +.BR \-a ", " \-\-all\-restart +When zebra hangs or crashes, restart all daemons taking the following +steps: (1) stop all other daemons, (2) restart zebra, and (3) start other +daemons again. +.IP +Note that this option also requires +.BR \-r , +.BR \-s , +and +.B \-k +options to be specified. +.TP +.BR \-A ", " \-\-always\-all\-restart +When any daemon (i.e., not just zebra) hangs or crashes, restart all +daemons taking the following steps: (1) stop all other daemons, (2) restart +zebra, and (3) start other daemons again. +.IP +Note that this option also requires +.BR \-r , +.BR \-s , +and +.B \-k +options to be specified. +.TP +.BI \-p " filename" "\fR, \fB\-\-pid\-file " filename +Set the process identifier +.I filename +(the default value is "/var/run/quagga/watchquagga.pid"). +.TP +.BI \-b " string" "\fR, \fB\-\-blank\-string " string +When the supplied +.I string +is found in any of the command line option arguments (i.e., +.BR \-r , +.BR \-s , +.BR \-k , +or +.BR \-R ), +replace it with a space. +.IP +This is an ugly hack to circumvent problems with passing the command line +arguments containing embedded spaces. +.TP +.BR \-v ", " \-\-version +Display the version information and exit. +.TP +.BR \-h ", " \-\-help +Display the usage information and exit. +.SH SEE ALSO +.BR bgpd (8), +.BR ripd (8), +.BR ripngd (8), +.BR ospfd (8), +.BR ospf6d (8), +.BR isisd (8). +.PP +See the project homepage at . +.SH AUTHORS +Copyright 2004 Andrew J. Schorr