This file describes the procedure for reporting Zebra bugs.
You are not obliged to follow this format , but it would be
great help for Zebra developers if you report a bug as described
below.

Send your report to bug-zebra@gnu.org mailing list.

Please supply the following information:
1. Your zebra version or if it is CVS version then the date you did checkout.
Always try to report the bugs on the current CVS version.
2. Zebra daemons you run e.g. bgpd or ripd, your OS full name,
any specific options you compiled zebra with. 
3. Problem description. Copy and paste relative zebra commands and their
output to describe your network setup e.g. "zebra>show ip route".
Please, also give your simple network layout and output of relative OS commands
(e.g. ifconfig).
4. All zebra configuration files you use. If you don't want to publish
your network numbers change 2 middle bytes in IPv4 address to be XXX e.g.
192.XXX.XXX.32/24. Similar could be done with IPv6.
5. If any zebra daemon core dumped, please, supply stack trace using
the following commands: host> gdb exec_file core_file , (gdb) bt .
6. Run all zebra daemons with full debugging on (see documentation on debugging) and
send _only_ part of logs which are relative to your problem.
7. If the problem is difficult to reproduce please send a shell script to
reproduce it.
8. Patches, workarounds, fixes are always welcome.

Thank You.
