\input texinfo @c -*- texinfo -*-
@c %**start of header
@setchapternewpage odd
@settitle @uref{http://www.quagga.net,,Quagga}
@setfilename quagga.info
@defcodeindex op
@synindex pg cp
@c %**end of header

@c Set variables - sourced from defines.texi
@include defines.texi

@c automake will automatically generate version.texi
@c and set EDITION, VERSION, UPDATED and UPDATED-MONTH
@include version.texi

@copying
@quotation
Permission is granted to make and distribute verbatim copies of this
manual provided the copyright notice and this permission notice are
preserved on all copies.

Permission is granted to copy and distribute modified versions of this
manual under the conditions for verbatim copying, provided that the
entire resulting derived work is distributed under the terms of a
permission notice identical to this one.

Permission is granted to copy and distribute translations of this manual
into another language, under the above conditions for modified versions,
except that this permission notice may be stated in a translation
approved by Kunihiro Ishiguro.
@end quotation
@end copying

@c Info entry
@dircategory Routing Software:
@direntry
* Quagga: (quagga).		The Quagga Software Routing Suite
@end direntry

@c @smallbook

@ifinfo
This file documents the Quagga Software Routing Suite which manages common
TCP/IP routing protocols.

This is Edition @value{EDITION}, last updated @value{UPDATED} of
@cite{The Quagga Manual}, for @uref{http://www.quagga.net/,,Quagga}
Version @value{VERSION}.

@value{COPYRIGHT_STR}

@insertcopying
@end ifinfo

@titlepage
@title @uref{http://www.quagga.net,,Quagga}
@subtitle A routing software package for TCP/IP networks
@subtitle @uref{http://www.quagga.net,,Quagga} version @value{VERSION}
@subtitle @value{UPDATED-MONTH}
@author @value{AUTHORS}

@page
@vskip 0pt plus 1filll
@value{COPYRIGHT_STR}

@insertcopying
@end titlepage
@page

@ifnottex
@node Top
@top Quagga
		     
@uref{http://www.quagga.net,,Quagga} is an advanced routing software package
that provides a suite of TCP/IP based routing protocols.  This is the Manual
for quagga-@value{VERSION}. @uref{http://www.quagga.net,,Quagga} is a fork of 
@uref{http://www.zebra.org,,GNU Zebra}.
@end ifnottex

@menu
* Overview::
* Installation::
* Basic commands::
* Zebra::
* RIP::
* RIPng::
* OSPFv2::
* OSPFv3::
* BGP::
* Configuring Quagga as a Route Server::
* VTY shell::
* Filtering::
* Route Map::
* IPv6 Support::
* Kernel Interface::
* SNMP Support::
* Zebra Protocol::
* Packet Binary Dump Format::
* Command Index::
* VTY Key Index::
@end menu
@contents

@include overview.texi
@include install.texi
@include basic.texi
@include main.texi
@include ripd.texi
@include ripngd.texi
@include ospfd.texi
@include ospf6d.texi
@include bgpd.texi
@include routeserver.texi
@include vtysh.texi
@include filter.texi
@include routemap.texi
@include ipv6.texi
@include kernel.texi
@include snmp.texi
@include protocol.texi
@include appendix.texi

@node Command Index
@unnumbered Command Index

@printindex fn

@node VTY Key Index
@unnumbered VTY Key Index

@printindex ky

@bye
